diff --git a/0001-Add-monochrome-text-support-mda_text-aka-hercules-in.patch b/0001-Add-monochrome-text-support-mda_text-aka-hercules-in.patch index e63a26d..e32595a 100644 --- a/0001-Add-monochrome-text-support-mda_text-aka-hercules-in.patch +++ b/0001-Add-monochrome-text-support-mda_text-aka-hercules-in.patch @@ -1,7 +1,7 @@ From 8c5886df17cdfb148d4e17bddf38143ed65fe674 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Jun 2012 15:27:54 +0200 -Subject: [PATCH 001/364] Add monochrome text support (mda_text, aka +Subject: [PATCH 001/471] Add monochrome text support (mda_text, aka `hercules' in grub-legacy). * grub-core/Makefile.core.def (mda_text): New module. @@ -608,5 +608,5 @@ index a7b13ee..1a666a1 100644 GRUB_VGA_IO_ARX_READ = 0x3c1, GRUB_VGA_IO_MISC_WRITE = 0x3c2, -- -1.8.1.4 +1.8.2.1 diff --git a/0002-missing-file-from-last-commit.patch b/0002-missing-file-from-last-commit.patch index 0bda2fa..e1b9440 100644 --- a/0002-missing-file-from-last-commit.patch +++ b/0002-missing-file-from-last-commit.patch @@ -1,7 +1,7 @@ From d72015266eb5f1cf712db5edec3aa6926447f668 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Jun 2012 15:36:48 +0200 -Subject: [PATCH 002/364] missing file from last commit +Subject: [PATCH 002/471] missing file from last commit --- grub-core/term/i386/pc/mda_text.c | 3 +++ @@ -18,5 +18,5 @@ index 0000000..907a36e +#include "vga_text.c" + -- -1.8.1.4 +1.8.2.1 diff --git a/0003-grub-core-loader-i386-linux.c-find_efi_mmap_size-Don.patch b/0003-grub-core-loader-i386-linux.c-find_efi_mmap_size-Don.patch index e104d33..651caa8 100644 --- a/0003-grub-core-loader-i386-linux.c-find_efi_mmap_size-Don.patch +++ b/0003-grub-core-loader-i386-linux.c-find_efi_mmap_size-Don.patch @@ -1,7 +1,7 @@ From ec6a8c449294b215a2c4019f42110a0c1f770ac2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 2 Jul 2012 11:14:37 +0200 -Subject: [PATCH 003/364] * grub-core/loader/i386/linux.c +Subject: [PATCH 003/471] * grub-core/loader/i386/linux.c (find_efi_mmap_size): Don't decrease efi_mmap_size. Reported by: Stuart Hayes. @@ -54,5 +54,5 @@ index 62087cf..d34b2f8 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0004-include-grub-list.h-FOR_LIST_ELEMENTS_SAFE-New-macro.patch b/0004-include-grub-list.h-FOR_LIST_ELEMENTS_SAFE-New-macro.patch index 5ef4a74..851bf69 100644 --- a/0004-include-grub-list.h-FOR_LIST_ELEMENTS_SAFE-New-macro.patch +++ b/0004-include-grub-list.h-FOR_LIST_ELEMENTS_SAFE-New-macro.patch @@ -1,7 +1,7 @@ From d2ccb3209c62de4292107df4207c02ee59dc11a9 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 2 Jul 2012 11:19:22 +0200 -Subject: [PATCH 004/364] * include/grub/list.h +Subject: [PATCH 004/471] * include/grub/list.h (FOR_LIST_ELEMENTS_SAFE): New macro. * include/grub/command.h (FOR_COMMANDS_SAFE): Likewise. * grub-core/commands/help.c (grub_cmd_help): Use FOR_COMMANDS_SAFE. @@ -57,5 +57,5 @@ index cadb2d9..6f6dec0 100644 static inline void * grub_bad_type_cast_real (int line, const char *file) -- -1.8.1.4 +1.8.2.1 diff --git a/0005-gentpl.py-Make-mans-depend-on-grub-mkconfig_lib.patch b/0005-gentpl.py-Make-mans-depend-on-grub-mkconfig_lib.patch index 0265d2f..ccd08e0 100644 --- a/0005-gentpl.py-Make-mans-depend-on-grub-mkconfig_lib.patch +++ b/0005-gentpl.py-Make-mans-depend-on-grub-mkconfig_lib.patch @@ -1,7 +1,7 @@ From 21c2f856cbdf4a98d015ed05bb6b9b16c021af9c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 2 Jul 2012 11:20:51 +0200 -Subject: [PATCH 005/364] * gentpl.py: Make mans depend on +Subject: [PATCH 005/471] * gentpl.py: Make mans depend on grub-mkconfig_lib. --- @@ -43,5 +43,5 @@ index 13a6081..bab4a8a 100644 PATH=$(builddir):$$PATH pkgdatadir=$(builddir) $(HELP2MAN) --section=[+ mansection +] -i $(top_srcdir)/docs/man/[+ name +].h2m -o $@ [+ name +] """) -- -1.8.1.4 +1.8.2.1 diff --git a/0006-grub-core-net-tftp.c-ack-Fix-endianness-problem.patch b/0006-grub-core-net-tftp.c-ack-Fix-endianness-problem.patch index 07c6612..4e808ae 100644 --- a/0006-grub-core-net-tftp.c-ack-Fix-endianness-problem.patch +++ b/0006-grub-core-net-tftp.c-ack-Fix-endianness-problem.patch @@ -1,7 +1,7 @@ From 8ec34c46a3cc4cacce65e3a2a671e08548c6a95e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 2 Jul 2012 11:22:50 +0200 -Subject: [PATCH 006/364] * grub-core/net/tftp.c (ack): Fix endianness +Subject: [PATCH 006/471] * grub-core/net/tftp.c (ack): Fix endianness problem. (tftp_receive): Likewise. Reported by: Michael Davidsaver. @@ -49,5 +49,5 @@ index 9c70efb..d0f39ea 100644 { file->device->net->stall = 1; -- -1.8.1.4 +1.8.2.1 diff --git a/0007-grub-core-fs-ext2.c-Experimental-support-for-64-bit.patch b/0007-grub-core-fs-ext2.c-Experimental-support-for-64-bit.patch index 65055be..48aa1f4 100644 --- a/0007-grub-core-fs-ext2.c-Experimental-support-for-64-bit.patch +++ b/0007-grub-core-fs-ext2.c-Experimental-support-for-64-bit.patch @@ -1,7 +1,7 @@ From c545d0bb2fe87b5a8ea6a903e4e9c113595ccfff Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 2 Jul 2012 11:28:42 +0200 -Subject: [PATCH 007/364] * grub-core/fs/ext2.c: Experimental support +Subject: [PATCH 007/471] * grub-core/fs/ext2.c: Experimental support for 64-bit. --- @@ -178,5 +178,5 @@ index c50e379..bd1ab24 100644 data->disk = disk; -- -1.8.1.4 +1.8.2.1 diff --git a/0008-grub-core-term-efi-serial.c-Support-1.5-stop-bits.patch b/0008-grub-core-term-efi-serial.c-Support-1.5-stop-bits.patch index 1043813..0669e7b 100644 --- a/0008-grub-core-term-efi-serial.c-Support-1.5-stop-bits.patch +++ b/0008-grub-core-term-efi-serial.c-Support-1.5-stop-bits.patch @@ -1,7 +1,7 @@ From 2cce795e46cef6c5f057d46bae9a845621ca4a95 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 2 Jul 2012 11:30:04 +0200 -Subject: [PATCH 008/364] * grub-core/term/efi/serial.c: Support 1.5 +Subject: [PATCH 008/471] * grub-core/term/efi/serial.c: Support 1.5 stop bits. --- @@ -44,5 +44,5 @@ index da8c3ce..dc5f33b 100644 return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("unsupported serial port stop bits number")); -- -1.8.1.4 +1.8.2.1 diff --git a/0009-grub-core-lib-legacy_parse.c-Support-clear-and-testl.patch b/0009-grub-core-lib-legacy_parse.c-Support-clear-and-testl.patch index 6c82c91..f7624e3 100644 --- a/0009-grub-core-lib-legacy_parse.c-Support-clear-and-testl.patch +++ b/0009-grub-core-lib-legacy_parse.c-Support-clear-and-testl.patch @@ -1,7 +1,7 @@ From 134e4df1335b0498684d093b55332f87c2e8a301 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 2 Jul 2012 11:31:31 +0200 -Subject: [PATCH 009/364] * grub-core/lib/legacy_parse.c: Support clear +Subject: [PATCH 009/471] * grub-core/lib/legacy_parse.c: Support clear and testload. --- @@ -103,5 +103,5 @@ index 14768b8..ddfaec4 100644 char * -- -1.8.1.4 +1.8.2.1 diff --git a/0010-grub-core-Makefile.am-Fix-path-to-boot-i386-pc-start.patch b/0010-grub-core-Makefile.am-Fix-path-to-boot-i386-pc-start.patch index a00745e..72bd9d6 100644 --- a/0010-grub-core-Makefile.am-Fix-path-to-boot-i386-pc-start.patch +++ b/0010-grub-core-Makefile.am-Fix-path-to-boot-i386-pc-start.patch @@ -1,7 +1,7 @@ From f1c2b05162cc583ec64ae0b3cdf5ef128d2ca05c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 7 Jul 2012 14:29:01 +0200 -Subject: [PATCH 010/364] * grub-core/Makefile.am: Fix path to +Subject: [PATCH 010/471] * grub-core/Makefile.am: Fix path to boot/i386/pc/startup_raw.S. --- @@ -35,5 +35,5 @@ index 7dc2519..cc4fb68 100644 CLEANFILES += grub_script.yy.c grub_script.yy.h -- -1.8.1.4 +1.8.2.1 diff --git a/0011-Fix-coreboot-compilation.patch b/0011-Fix-coreboot-compilation.patch index 6a1d09e..e64c608 100644 --- a/0011-Fix-coreboot-compilation.patch +++ b/0011-Fix-coreboot-compilation.patch @@ -1,7 +1,7 @@ From a7fa3c8e8c7b2dab5a704493b7965bbc60f84bed Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 22 Jul 2012 16:21:24 +0200 -Subject: [PATCH 011/364] Fix coreboot compilation. +Subject: [PATCH 011/471] Fix coreboot compilation. * grub-core/term/i386/pc/vga_text.c (grub_vga_text_init): Rename to ... (grub_vga_text_init_real): ... this. @@ -63,5 +63,5 @@ index d1e4ef9..74c155c 100644 .getwh = grub_vga_text_getwh, .getxy = grub_vga_text_getxy, -- -1.8.1.4 +1.8.2.1 diff --git a/0012-grub-core-normal-autofs.c-autoload_fs_module-Save-an.patch b/0012-grub-core-normal-autofs.c-autoload_fs_module-Save-an.patch index 9f51a10..3574025 100644 --- a/0012-grub-core-normal-autofs.c-autoload_fs_module-Save-an.patch +++ b/0012-grub-core-normal-autofs.c-autoload_fs_module-Save-an.patch @@ -1,7 +1,7 @@ From 1f75c529d5309defb33c8c216422003eee1248a5 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 22 Jul 2012 16:23:46 +0200 -Subject: [PATCH 012/364] * grub-core/normal/autofs.c +Subject: [PATCH 012/471] * grub-core/normal/autofs.c (autoload_fs_module): Save and restore filter state. --- @@ -64,5 +64,5 @@ index 0b27abf..721b9c3 100644 /* Read the file fs.lst for auto-loading. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0013-grub-core-lib-xzembed-xz_dec_stream.c-hash_validate-.patch b/0013-grub-core-lib-xzembed-xz_dec_stream.c-hash_validate-.patch index 6876f6c..eb150ef 100644 --- a/0013-grub-core-lib-xzembed-xz_dec_stream.c-hash_validate-.patch +++ b/0013-grub-core-lib-xzembed-xz_dec_stream.c-hash_validate-.patch @@ -1,7 +1,7 @@ From 4942f9b133e52828d2441309beea0e9278e8b80c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 22 Jul 2012 16:27:03 +0200 -Subject: [PATCH 013/364] * grub-core/lib/xzembed/xz_dec_stream.c +Subject: [PATCH 013/471] * grub-core/lib/xzembed/xz_dec_stream.c (hash_validate): Fix behaviour if hash function is unavailable. (dec_stream_header): Likewise. @@ -69,5 +69,5 @@ index 0d79b1f..6170b0c 100644 } else -- -1.8.1.4 +1.8.2.1 diff --git a/0014-grub-core-loader-i386-bsd.c-grub_bsd_elf32_size_hook.patch b/0014-grub-core-loader-i386-bsd.c-grub_bsd_elf32_size_hook.patch index 0a47578..f3bdc3c 100644 --- a/0014-grub-core-loader-i386-bsd.c-grub_bsd_elf32_size_hook.patch +++ b/0014-grub-core-loader-i386-bsd.c-grub_bsd_elf32_size_hook.patch @@ -1,7 +1,7 @@ From 6a6140eac9a2d0889dcf6d118979d4af242b8060 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 22 Jul 2012 16:30:48 +0200 -Subject: [PATCH 014/364] * grub-core/loader/i386/bsd.c +Subject: [PATCH 014/471] * grub-core/loader/i386/bsd.c (grub_bsd_elf32_size_hook): Fix mask. (grub_bsd_elf32_hook): Likewise. (grub_bsd_elf64_size_hook): Likewise. (grub_bsd_elf64_hook): Likewise. (grub_bsd_load_elf): Likewise. @@ -79,5 +79,5 @@ index 0fd4df0..6e024e4 100644 grub_bsd_elf32_size_hook, NULL); if (err) -- -1.8.1.4 +1.8.2.1 diff --git a/0015-New-command-lsefi.patch b/0015-New-command-lsefi.patch index 24ca884..caf574b 100644 --- a/0015-New-command-lsefi.patch +++ b/0015-New-command-lsefi.patch @@ -1,7 +1,7 @@ From c0be2c2099805c621f27d5b3ced224db437a582c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 22 Jul 2012 19:59:06 +0200 -Subject: [PATCH 015/364] New command `lsefi'. +Subject: [PATCH 015/471] New command `lsefi'. * grub-core/Makefile.core.def (lsefi): New module. * grub-core/commands/efi/lsefi.c: New file. @@ -364,5 +364,5 @@ index 26127de..9e7a8d8 100644 #define GRUB_EFI_ACPI_TABLE_GUID \ -- -1.8.1.4 +1.8.2.1 diff --git a/0016-util-grub-mkconfig_lib.in-grub_quote-Remove-extra-la.patch b/0016-util-grub-mkconfig_lib.in-grub_quote-Remove-extra-la.patch index 105e7c3..dabe937 100644 --- a/0016-util-grub-mkconfig_lib.in-grub_quote-Remove-extra-la.patch +++ b/0016-util-grub-mkconfig_lib.in-grub_quote-Remove-extra-la.patch @@ -1,7 +1,7 @@ From 14589a819717d1d6614687202159a0070bba1f8f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 22 Jul 2012 20:02:17 +0200 -Subject: [PATCH 016/364] * util/grub-mkconfig_lib.in (grub_quote): +Subject: [PATCH 016/471] * util/grub-mkconfig_lib.in (grub_quote): Remove extra layer of escape. * util/grub.d/10_hurd.in: Add missing quoting. * util/grub.d/10_illumos.in: Likewise. * util/grub.d/10_kfreebsd.in: Likewise. * util/grub.d/10_linux.in: Likewise. * @@ -158,5 +158,5 @@ index 1d94502..33f1592 100644 EOF fi -- -1.8.1.4 +1.8.2.1 diff --git a/0017-EHCI-and-OHCI-PCI-bus-master.patch b/0017-EHCI-and-OHCI-PCI-bus-master.patch index 49c1c9e..443e1ca 100644 --- a/0017-EHCI-and-OHCI-PCI-bus-master.patch +++ b/0017-EHCI-and-OHCI-PCI-bus-master.patch @@ -1,7 +1,7 @@ From 6054ac4ca1ce5f3e4589bfead3c9c05af89f9ace Mon Sep 17 00:00:00 2001 From: starous Date: Sun, 22 Jul 2012 21:09:30 +0200 -Subject: [PATCH 017/364] EHCI and OHCI PCI bus master +Subject: [PATCH 017/471] EHCI and OHCI PCI bus master --- ChangeLog | 5 +++++ @@ -55,5 +55,5 @@ index 23cf631..6fabb4b 100644 class, subclass, interf); } -- -1.8.1.4 +1.8.2.1 diff --git a/0018-Update-manual-NetBSD-wise.patch b/0018-Update-manual-NetBSD-wise.patch index 3f1cfd2..f5ca233 100644 --- a/0018-Update-manual-NetBSD-wise.patch +++ b/0018-Update-manual-NetBSD-wise.patch @@ -1,7 +1,7 @@ From 8d7ed36e113b21de18a1b4a2bf81d218d79114d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Sutre?= Date: Wed, 1 Aug 2012 00:18:57 +0200 -Subject: [PATCH 018/364] Update manual NetBSD-wise. +Subject: [PATCH 018/471] Update manual NetBSD-wise. --- ChangeLog | 5 +++++ @@ -111,5 +111,5 @@ index b5954da..b0e7f59 100644 @subsection DOS/Windows -- -1.8.1.4 +1.8.2.1 diff --git a/0019-Regenerate-po-POTFILES.in-with-the-following-commman.patch b/0019-Regenerate-po-POTFILES.in-with-the-following-commman.patch index 53cad7f..5684a8f 100644 --- a/0019-Regenerate-po-POTFILES.in-with-the-following-commman.patch +++ b/0019-Regenerate-po-POTFILES.in-with-the-following-commman.patch @@ -1,7 +1,7 @@ From 8b2ef54da3e28cf66637a09c2a2afad9ee56a535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Sutre?= Date: Wed, 1 Aug 2012 01:06:53 +0200 -Subject: [PATCH 019/364] Regenerate po/POTFILES.in with the following commmand +Subject: [PATCH 019/471] Regenerate po/POTFILES.in with the following commmand in a clean tree: export LC_ALL=en_US.UTF-8 @@ -64,5 +64,5 @@ index 987b37a..01cc53c 100644 ./include/grub/video.h ./include/grub/x86_64/at_keyboard.h -- -1.8.1.4 +1.8.2.1 diff --git a/0020-Strengthen-the-configure-test-for-working-nostdinc-i.patch b/0020-Strengthen-the-configure-test-for-working-nostdinc-i.patch index 05d4694..671d3d1 100644 --- a/0020-Strengthen-the-configure-test-for-working-nostdinc-i.patch +++ b/0020-Strengthen-the-configure-test-for-working-nostdinc-i.patch @@ -1,7 +1,7 @@ From cb6d50b03d383cae32b0fbe308acc76c9d041fc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Sutre?= Date: Sun, 5 Aug 2012 16:49:03 +0200 -Subject: [PATCH 020/364] Strengthen the configure test for working -nostdinc +Subject: [PATCH 020/471] Strengthen the configure test for working -nostdinc -isystem. --- @@ -34,5 +34,5 @@ index 91b36d0..190665d 100644 [grub_cv_cc_isystem=yes], [grub_cv_cc_isystem=no]) -- -1.8.1.4 +1.8.2.1 diff --git a/0021-.bzrignore-Add-grub-bios-setup-grub-ofpathname-and.patch b/0021-.bzrignore-Add-grub-bios-setup-grub-ofpathname-and.patch index 62287d3..4068bbf 100644 --- a/0021-.bzrignore-Add-grub-bios-setup-grub-ofpathname-and.patch +++ b/0021-.bzrignore-Add-grub-bios-setup-grub-ofpathname-and.patch @@ -1,7 +1,7 @@ From 96aea00a1794415ecc4f01d3e05569927df19420 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 4 Sep 2012 18:33:33 +0100 -Subject: [PATCH 021/364] * .bzrignore: Add grub-bios-setup, grub-ofpathname, +Subject: [PATCH 021/471] * .bzrignore: Add grub-bios-setup, grub-ofpathname, and grub-sparc64-setup. --- @@ -9,6 +9,34 @@ Subject: [PATCH 021/364] * .bzrignore: Add grub-bios-setup, grub-ofpathname, ChangeLog | 5 +++++ 2 files changed, 8 insertions(+) +diff --git a/.bzrignore b/.bzrignore +index 64aa4c9..e05e5d9 100644 +--- a/.bzrignore ++++ b/.bzrignore +@@ -34,6 +34,7 @@ genkernsyms.sh + gensymlist.sh + gentrigtables + grub-bin2h ++grub-bios-setup + grub_cmd_echo + grub_cmd_regexp + grub-editenv +@@ -49,6 +50,7 @@ grub-macho2img + grub-menulst2cfg + grub-mk* + grub-mount ++grub-ofpathname + grub-pe2elf + grub-probe + grub_probe_init.c +@@ -86,6 +88,7 @@ grub_setup_init.c + grub_setup_init.h + grub-shell + grub-shell-tester ++grub-sparc64-setup + *.img + *.image + include/grub/cpu diff --git a/ChangeLog b/ChangeLog index a0a81b1..ed23d17 100644 --- a/ChangeLog @@ -23,5 +51,5 @@ index a0a81b1..ed23d17 100644 * configure.ac: Strengthen the test for working -nostdinc -isystem. -- -1.8.1.4 +1.8.2.1 diff --git a/0022-docs-man-grub-mkdevicemap.h2m-Remove-since-grub-mkde.patch b/0022-docs-man-grub-mkdevicemap.h2m-Remove-since-grub-mkde.patch index 414cede..b5b7e41 100644 --- a/0022-docs-man-grub-mkdevicemap.h2m-Remove-since-grub-mkde.patch +++ b/0022-docs-man-grub-mkdevicemap.h2m-Remove-since-grub-mkde.patch @@ -1,7 +1,7 @@ From cec2f4441396afd4c6abad10e51e5f0fe1dad686 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 4 Sep 2012 18:39:40 +0100 -Subject: [PATCH 022/364] * docs/man/grub-mkdevicemap.h2m: Remove, since +Subject: [PATCH 022/471] * docs/man/grub-mkdevicemap.h2m: Remove, since grub-mkdevicemap is gone. --- @@ -34,5 +34,5 @@ index 3ef8e97..0000000 -[SEE ALSO] -.BR grub-install (8) -- -1.8.1.4 +1.8.2.1 diff --git a/0023-grub-core-mmap-mips-loongson-Remove-empty-directory.patch b/0023-grub-core-mmap-mips-loongson-Remove-empty-directory.patch index b30d7c5..fbc2307 100644 --- a/0023-grub-core-mmap-mips-loongson-Remove-empty-directory.patch +++ b/0023-grub-core-mmap-mips-loongson-Remove-empty-directory.patch @@ -1,7 +1,7 @@ From 9023fdb4b0f75d3c8e1d0e1b0199ecd416a18c59 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 4 Sep 2012 18:56:13 +0100 -Subject: [PATCH 023/364] * grub-core/mmap/mips/loongson: Remove empty +Subject: [PATCH 023/471] * grub-core/mmap/mips/loongson: Remove empty directory. --- @@ -23,5 +23,5 @@ index 09ffe65..5a938ae 100644 * docs/man/grub-mkdevicemap.h2m: Remove, since grub-mkdevicemap is gone. -- -1.8.1.4 +1.8.2.1 diff --git a/0024-Makefile.am-EXTRA_DIST-Add.patch b/0024-Makefile.am-EXTRA_DIST-Add.patch index e4e26be..f548d40 100644 --- a/0024-Makefile.am-EXTRA_DIST-Add.patch +++ b/0024-Makefile.am-EXTRA_DIST-Add.patch @@ -1,7 +1,7 @@ From 75887218d652d578af29494dd54cd8733643653b Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 4 Sep 2012 18:59:41 +0100 -Subject: [PATCH 024/364] * Makefile.am (EXTRA_DIST): Add +Subject: [PATCH 024/471] * Makefile.am (EXTRA_DIST): Add grub-core/tests/boot/linux.init-mips.S, grub-core/tests/boot/linux.init-ppc.S, and grub-core/tests/boot/linux-ppc.cfg. @@ -42,5 +42,5 @@ index db9e930..3bb911c 100644 .PHONY: bootcheck-linux-i386 bootcheck-linux-x86_64 \ bootcheck-kfreebsd-i386 bootcheck-kfreebsd-x86_64 \ -- -1.8.1.4 +1.8.2.1 diff --git a/0025-Makefile.am-EXTRA_DIST-Add-linguas.sh.-It-s-only-str.patch b/0025-Makefile.am-EXTRA_DIST-Add-linguas.sh.-It-s-only-str.patch index 85b4070..f9c25bb 100644 --- a/0025-Makefile.am-EXTRA_DIST-Add-linguas.sh.-It-s-only-str.patch +++ b/0025-Makefile.am-EXTRA_DIST-Add-linguas.sh.-It-s-only-str.patch @@ -1,7 +1,7 @@ From e8ec492c1f16328149e2e2c1eed6c300529bcb7a Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 4 Sep 2012 23:35:38 +0100 -Subject: [PATCH 025/364] * Makefile.am (EXTRA_DIST): Add linguas.sh. It's +Subject: [PATCH 025/471] * Makefile.am (EXTRA_DIST): Add linguas.sh. It's only strictly required for checkouts from bzr, but it may be useful for users or distributors wishing to update translations against a tarball distribution, and it can be helpful for the tarball to be a superset of @@ -41,5 +41,5 @@ index 3bb911c..30aa5a7 100644 + +EXTRA_DIST += linguas.sh -- -1.8.1.4 +1.8.2.1 diff --git a/0026-grub-core-fs-xfs.c-grub_xfs_read_block-Make-keys-a-c.patch b/0026-grub-core-fs-xfs.c-grub_xfs_read_block-Make-keys-a-c.patch index 3407d93..bb6d6ae 100644 --- a/0026-grub-core-fs-xfs.c-grub_xfs_read_block-Make-keys-a-c.patch +++ b/0026-grub-core-fs-xfs.c-grub_xfs_read_block-Make-keys-a-c.patch @@ -1,7 +1,7 @@ From 981361e1db432371d895ac1339cc4a940cd6830e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 5 Sep 2012 08:45:07 +0200 -Subject: [PATCH 026/364] * grub-core/fs/xfs.c (grub_xfs_read_block): +Subject: [PATCH 026/471] * grub-core/fs/xfs.c (grub_xfs_read_block): Make keys a const pointer. --- @@ -35,5 +35,5 @@ index 2c6b00c..1ed048f 100644 leaf = grub_malloc (node->data->bsize); -- -1.8.1.4 +1.8.2.1 diff --git a/0027-grub-core-partmap-dvh.c-grub_dvh_is_valid-Add-missin.patch b/0027-grub-core-partmap-dvh.c-grub_dvh_is_valid-Add-missin.patch index 74823f9..d75cd9d 100644 --- a/0027-grub-core-partmap-dvh.c-grub_dvh_is_valid-Add-missin.patch +++ b/0027-grub-core-partmap-dvh.c-grub_dvh_is_valid-Add-missin.patch @@ -1,7 +1,7 @@ From 33437c4676de37bf30679b5874813af38e5c00c2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 5 Sep 2012 08:47:39 +0200 -Subject: [PATCH 027/364] * grub-core/partmap/dvh.c (grub_dvh_is_valid): +Subject: [PATCH 027/471] * grub-core/partmap/dvh.c (grub_dvh_is_valid): Add missing byteswap. --- @@ -37,5 +37,5 @@ index c8f467e..79ec01b 100644 return ! sum; } -- -1.8.1.4 +1.8.2.1 diff --git a/0028-grub-core-script-yylex.l-Ignore-unused-function-and-.patch b/0028-grub-core-script-yylex.l-Ignore-unused-function-and-.patch index 5f156a5..a200684 100644 --- a/0028-grub-core-script-yylex.l-Ignore-unused-function-and-.patch +++ b/0028-grub-core-script-yylex.l-Ignore-unused-function-and-.patch @@ -1,7 +1,7 @@ From b7ae222dae310111f17da6e1fc072237977ac417 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 5 Sep 2012 08:51:31 +0200 -Subject: [PATCH 028/364] * grub-core/script/yylex.l: Ignore +Subject: [PATCH 028/471] * grub-core/script/yylex.l: Ignore unused-function and sign-compare warnings. --- @@ -38,5 +38,5 @@ index f6a39c5..8fdcfef 100644 #define yyfree grub_lexer_yyfree #define yyalloc grub_lexer_yyalloc -- -1.8.1.4 +1.8.2.1 diff --git a/0029-grub-core-disk-ieee1275-ofdisk.c-scan-Check-function.patch b/0029-grub-core-disk-ieee1275-ofdisk.c-scan-Check-function.patch index 3485120..6439662 100644 --- a/0029-grub-core-disk-ieee1275-ofdisk.c-scan-Check-function.patch +++ b/0029-grub-core-disk-ieee1275-ofdisk.c-scan-Check-function.patch @@ -1,7 +1,7 @@ From 41596a656df83fe0bd72944b711c127c68d28a94 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 5 Sep 2012 08:56:08 +0200 -Subject: [PATCH 029/364] * grub-core/disk/ieee1275/ofdisk.c (scan): +Subject: [PATCH 029/471] * grub-core/disk/ieee1275/ofdisk.c (scan): Check function return value. * grub-core/lib/ieee1275/datetime.c (grub_get_datetime): Likewise. (grub_set_datetime): Likewise. @@ -63,5 +63,5 @@ index 1947135..8792429 100644 return GRUB_ERR_NONE; -- -1.8.1.4 +1.8.2.1 diff --git a/0030-util-import_gcry.py-Sort-cipher_files-to-make-build-.patch b/0030-util-import_gcry.py-Sort-cipher_files-to-make-build-.patch index ccba181..caee69b 100644 --- a/0030-util-import_gcry.py-Sort-cipher_files-to-make-build-.patch +++ b/0030-util-import_gcry.py-Sort-cipher_files-to-make-build-.patch @@ -1,7 +1,7 @@ From 53a8f5760591b14160bc07ef10f083882516ad27 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 5 Sep 2012 09:00:39 +0100 -Subject: [PATCH 030/364] * util/import_gcry.py: Sort cipher_files, to make +Subject: [PATCH 030/471] * util/import_gcry.py: Sort cipher_files, to make build system generation more deterministic. --- @@ -36,5 +36,5 @@ index 18966a6..64c5870 100644 conf.write ("AutoGen definitions Makefile.tpl;\n\n") confutil = codecs.open ("Makefile.utilgcry.def", "w", "utf-8") -- -1.8.1.4 +1.8.2.1 diff --git a/0031-NEWS-Fix-typo.patch b/0031-NEWS-Fix-typo.patch index bc1642c..3edbe1d 100644 --- a/0031-NEWS-Fix-typo.patch +++ b/0031-NEWS-Fix-typo.patch @@ -1,7 +1,7 @@ From f333a71c6c02232151d9af98a8beae3b5e23e102 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 5 Sep 2012 13:55:54 +0100 -Subject: [PATCH 031/364] * NEWS: Fix typo. +Subject: [PATCH 031/471] * NEWS: Fix typo. --- ChangeLog | 4 ++++ @@ -35,5 +35,5 @@ index f9b06ab..4bb5f98 100644 * Menu is organised with submenus. * Better default video mode selection using EDID. -- -1.8.1.4 +1.8.2.1 diff --git a/0032-configure.ac-Add-SuSe-path.patch b/0032-configure.ac-Add-SuSe-path.patch index ac880eb..c6fe255 100644 --- a/0032-configure.ac-Add-SuSe-path.patch +++ b/0032-configure.ac-Add-SuSe-path.patch @@ -1,7 +1,7 @@ From 4b13dd6c2fe6f75027c51f4b2616509040a5ea33 Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Wed, 5 Sep 2012 16:09:41 +0200 -Subject: [PATCH 032/364] * configure.ac: Add SuSe path. +Subject: [PATCH 032/471] * configure.ac: Add SuSe path. --- ChangeLog | 4 ++++ @@ -34,5 +34,5 @@ index 190665d..ea3830a 100644 FONT_SOURCE="$dir/unifont.$ext" break 2 -- -1.8.1.4 +1.8.2.1 diff --git a/0033-grub-core-Makefile.core.def-efifwsetup-New-module.patch b/0033-grub-core-Makefile.core.def-efifwsetup-New-module.patch index 112daae..9ffa1db 100644 --- a/0033-grub-core-Makefile.core.def-efifwsetup-New-module.patch +++ b/0033-grub-core-Makefile.core.def-efifwsetup-New-module.patch @@ -1,7 +1,7 @@ From 9e9382ece3511ff530cfb3e1c1e7a7dbaa3416b6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sat, 8 Sep 2012 09:40:24 +0200 -Subject: [PATCH 033/364] * grub-core/Makefile.core.def (efifwsetup): +Subject: [PATCH 033/471] * grub-core/Makefile.core.def (efifwsetup): New module. * grub-core/commands/efi/efifwsetup.c: New file. * grub-core/kern/efi/efi.c (grub_efi_set_variable): New function * include/grub/efi/api.h (GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI): New @@ -218,5 +218,5 @@ index e67d92b..489cf9e 100644 EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); -- -1.8.1.4 +1.8.2.1 diff --git a/0034-grub-core-loader-efi-appleloader.c-devpath_8-New-var.patch b/0034-grub-core-loader-efi-appleloader.c-devpath_8-New-var.patch index 494b11c..aa17cbf 100644 --- a/0034-grub-core-loader-efi-appleloader.c-devpath_8-New-var.patch +++ b/0034-grub-core-loader-efi-appleloader.c-devpath_8-New-var.patch @@ -1,7 +1,7 @@ From 8f779ade959a72267dcc045ad71012bf37cb96e0 Mon Sep 17 00:00:00 2001 From: Benoit Gschwind Date: Mon, 10 Sep 2012 09:34:29 +0200 -Subject: [PATCH 034/364] * grub-core/loader/efi/appleloader.c +Subject: [PATCH 034/471] * grub-core/loader/efi/appleloader.c (devpath_8): New var. (devs): Add devpath_8. --- @@ -46,5 +46,5 @@ index e2de89f..56d5538 100644 }; -- -1.8.1.4 +1.8.2.1 diff --git a/0035-grub-core-disk-diskfilter.c-free_array-GRUB_UTIL-Fix.patch b/0035-grub-core-disk-diskfilter.c-free_array-GRUB_UTIL-Fix.patch index b9eced0..e372b32 100644 --- a/0035-grub-core-disk-diskfilter.c-free_array-GRUB_UTIL-Fix.patch +++ b/0035-grub-core-disk-diskfilter.c-free_array-GRUB_UTIL-Fix.patch @@ -1,7 +1,7 @@ From 56348e90bcc1076de7b2aba73b52fa1bafee4478 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 11 Sep 2012 07:53:26 +0200 -Subject: [PATCH 035/364] * grub-core/disk/diskfilter.c (free_array) +Subject: [PATCH 035/471] * grub-core/disk/diskfilter.c (free_array) [GRUB_UTIL]: Fix memory leak. * util/getroot.c (grub_find_device): Likewise. (get_mdadm_uuid): Likewise. (grub_util_is_imsm): Likewise. (grub_util_pull_device): Likewise. * util/grub-probe.c (probe): Likewise. @@ -102,5 +102,5 @@ index 6dd1073..c2a0f62 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0036-Don-t-require-grub-mkconfig_lib-to-generate-manpages.patch b/0036-Don-t-require-grub-mkconfig_lib-to-generate-manpages.patch index fc2ae63..8e9e5aa 100644 --- a/0036-Don-t-require-grub-mkconfig_lib-to-generate-manpages.patch +++ b/0036-Don-t-require-grub-mkconfig_lib-to-generate-manpages.patch @@ -1,7 +1,7 @@ From c7d45a90490c5f3337a6412a6ebe500e3a41a63b Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 12 Sep 2012 08:27:26 +0200 -Subject: [PATCH 036/364] Don't require grub-mkconfig_lib to generate +Subject: [PATCH 036/471] Don't require grub-mkconfig_lib to generate manpages for programs. * gentpl.py (manpage): Additional argument adddeps. Add adddeps to @@ -66,5 +66,5 @@ index bab4a8a..6d7f613 100644 r += rule("[+ name +]", platform_sources(platform) + " $(top_builddir)/config.status", """ -- -1.8.1.4 +1.8.2.1 diff --git a/0037-include-grub-efi-api.h-grub_efi_runtime_services-Mak.patch b/0037-include-grub-efi-api.h-grub_efi_runtime_services-Mak.patch index c41af35..da67970 100644 --- a/0037-include-grub-efi-api.h-grub_efi_runtime_services-Mak.patch +++ b/0037-include-grub-efi-api.h-grub_efi_runtime_services-Mak.patch @@ -1,7 +1,7 @@ From 085ef74104c8f1a5d2cc68a0d1a2e0569827d6f4 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 12 Sep 2012 08:31:05 +0200 -Subject: [PATCH 037/364] * include/grub/efi/api.h +Subject: [PATCH 037/471] * include/grub/efi/api.h (grub_efi_runtime_services): Make vendor_guid a const pointer. * grub-core/efiemu/runtime/efiemu.c (efiemu_memcpy): Make from a const pointer. (efiemu_set_variable): Make vendor_guid a const pointer. @@ -86,5 +86,5 @@ index ae61730..2917d14 100644 grub_efi_uintn_t data_size, void *data); -- -1.8.1.4 +1.8.2.1 diff --git a/0038-grub-core-term-terminfo.c-Only-fix-up-powerpc-key-re.patch b/0038-grub-core-term-terminfo.c-Only-fix-up-powerpc-key-re.patch index d155ed0..246f40b 100644 --- a/0038-grub-core-term-terminfo.c-Only-fix-up-powerpc-key-re.patch +++ b/0038-grub-core-term-terminfo.c-Only-fix-up-powerpc-key-re.patch @@ -1,7 +1,7 @@ From 5ba7247c064336767ee6b0ad9465b547ac90322a Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 14 Sep 2012 11:23:36 +0100 -Subject: [PATCH 038/364] * grub-core/term/terminfo.c: Only fix up powerpc key +Subject: [PATCH 038/471] * grub-core/term/terminfo.c: Only fix up powerpc key repeat on IEEE1275 machines. Fixes powerpc-emu compilation. * include/grub/terminfo.h: Likewise. @@ -70,5 +70,5 @@ index c081a92..20541a9 100644 grub_uint64_t last_key_time; #endif -- -1.8.1.4 +1.8.2.1 diff --git a/0039-util-grub-mkconfig_lib.in-grub_quote-Remove-outdated.patch b/0039-util-grub-mkconfig_lib.in-grub_quote-Remove-outdated.patch index 06e8739..98984bc 100644 --- a/0039-util-grub-mkconfig_lib.in-grub_quote-Remove-outdated.patch +++ b/0039-util-grub-mkconfig_lib.in-grub_quote-Remove-outdated.patch @@ -1,7 +1,7 @@ From 7efa81764aa812d1f44ff53fb42472befea19f0b Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 17 Sep 2012 16:58:50 +0100 -Subject: [PATCH 039/364] * util/grub-mkconfig_lib.in (grub_quote): Remove +Subject: [PATCH 039/471] * util/grub-mkconfig_lib.in (grub_quote): Remove outdated sentence from comment. --- @@ -40,5 +40,5 @@ index beb52ee..a9f5809 100644 sed "s/'/'\\\\''/g" } -- -1.8.1.4 +1.8.2.1 diff --git a/0040-grub-core-loader-i386-linux.c-grub_cmd_linux-Fix-inc.patch b/0040-grub-core-loader-i386-linux.c-grub_cmd_linux-Fix-inc.patch index 7aed109..472b640 100644 --- a/0040-grub-core-loader-i386-linux.c-grub_cmd_linux-Fix-inc.patch +++ b/0040-grub-core-loader-i386-linux.c-grub_cmd_linux-Fix-inc.patch @@ -1,7 +1,7 @@ From 1f5027bb0ec48851cc2f9c54552a6ec1f1145930 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 18 Sep 2012 11:44:29 +0200 -Subject: [PATCH 040/364] * grub-core/loader/i386/linux.c +Subject: [PATCH 040/471] * grub-core/loader/i386/linux.c (grub_cmd_linux): Fix incorrect le-conversion. Reported by: BURETTE, Bernard. @@ -38,5 +38,5 @@ index d34b2f8..bcb037c 100644 return grub_error(GRUB_ERR_BAD_OS, "kernel does not support 64-bit addressing"); -- -1.8.1.4 +1.8.2.1 diff --git a/0041-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch b/0041-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch index 40b75f9..388a0f8 100644 --- a/0041-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch +++ b/0041-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch @@ -1,7 +1,7 @@ From 731ae0c1c7c0458a257e75c55b7739881dc2d5ed Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 18 Sep 2012 11:52:19 +0200 -Subject: [PATCH 041/364] * grub-core/kern/ieee1275/cmain.c +Subject: [PATCH 041/471] * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN on mac. * grub-core/term/ieee1275/console.c (grub_console_init_lately): Use @@ -117,5 +117,5 @@ index 38a75fd..ee9b707 100644 extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); -- -1.8.1.4 +1.8.2.1 diff --git a/0042-util-grub-mkconfig_lib.in-grub_tab-New-variable.patch b/0042-util-grub-mkconfig_lib.in-grub_tab-New-variable.patch index 59ca7f4..c27de41 100644 --- a/0042-util-grub-mkconfig_lib.in-grub_tab-New-variable.patch +++ b/0042-util-grub-mkconfig_lib.in-grub_tab-New-variable.patch @@ -1,7 +1,7 @@ From f46ac5e6c44d2fed8dcd8451196e6141d89cd90d Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 18 Sep 2012 13:04:06 +0200 -Subject: [PATCH 042/364] * util/grub-mkconfig_lib.in (grub_tab): New +Subject: [PATCH 042/471] * util/grub-mkconfig_lib.in (grub_tab): New variable. (grub_add_tab): New function. * util/grub.d/10_hurd.in: Replace \t with $grub_tab orgrub_add_tab. * util/grub.d/10_illumos.in: Likewise. * util/grub.d/10_kfreebsd.in: Likewise. * @@ -356,5 +356,5 @@ index bcc6c25..bf47dc3 100644 mach_device="`echo "${grub_device}" | sed -e 's/(\(hd.*\),msdos\(.*\))/\1s\2/'`" grub_fs="`${grub_probe} --device ${DEVICE} --target=fs`" -- -1.8.1.4 +1.8.2.1 diff --git a/0043-util-grub-setup.c-write_rootdev-Remove-unused-core_i.patch b/0043-util-grub-setup.c-write_rootdev-Remove-unused-core_i.patch index 3e34879..06be9ab 100644 --- a/0043-util-grub-setup.c-write_rootdev-Remove-unused-core_i.patch +++ b/0043-util-grub-setup.c-write_rootdev-Remove-unused-core_i.patch @@ -1,7 +1,7 @@ From fc8c72d6ad43b3fd7a960e67bbacd6fe8d68e48a Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 19 Sep 2012 02:41:51 +0100 -Subject: [PATCH 043/364] * util/grub-setup.c (write_rootdev): Remove unused +Subject: [PATCH 043/471] * util/grub-setup.c (write_rootdev): Remove unused core_img parameter. Update all callers. (setup): Define core_sectors only if GRUB_SETUP_BIOS, to appease 'gcc -Wunused-but-set-variable'. Remove unnecessary nested #ifdef GRUB_SETUP_BIOS. @@ -105,5 +105,5 @@ index 085e8df..de0417f 100644 /* Write the first two sectors of the core image onto the disk. */ grub_util_info ("opening the core image `%s'", core_path); -- -1.8.1.4 +1.8.2.1 diff --git a/0044-grub-core-partmap-msdos.c-pc_partition_map_embed-Rev.patch b/0044-grub-core-partmap-msdos.c-pc_partition_map_embed-Rev.patch index 9a1d8cd..bb6b0ee 100644 --- a/0044-grub-core-partmap-msdos.c-pc_partition_map_embed-Rev.patch +++ b/0044-grub-core-partmap-msdos.c-pc_partition_map_embed-Rev.patch @@ -1,7 +1,7 @@ From fbc6f5faf45f489125f98a11f3593cd43b4d6b76 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 19 Sep 2012 02:44:54 +0100 -Subject: [PATCH 044/364] * grub-core/partmap/msdos.c (pc_partition_map_embed): +Subject: [PATCH 044/471] * grub-core/partmap/msdos.c (pc_partition_map_embed): Revert incorrect off-by-one fix from 2011-02-12. A 62-sector core image should fit before end == 63. @@ -48,5 +48,5 @@ index 6e54a74..10ca3f0 100644 if (*nsectors > max_nsectors) *nsectors = max_nsectors; -- -1.8.1.4 +1.8.2.1 diff --git a/0045-Fix-grub-emu-build-on-FreeBSD.patch b/0045-Fix-grub-emu-build-on-FreeBSD.patch index 0435e06..3480f11 100644 --- a/0045-Fix-grub-emu-build-on-FreeBSD.patch +++ b/0045-Fix-grub-emu-build-on-FreeBSD.patch @@ -1,7 +1,7 @@ From b37a32bb89c476b0ead4c40900de29fe8d73d27e Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sat, 22 Sep 2012 21:19:58 +0100 -Subject: [PATCH 045/364] Fix grub-emu build on FreeBSD. +Subject: [PATCH 045/471] Fix grub-emu build on FreeBSD. * Makefile.util.def (grub-mount): Add LIBGEOM to ldadd. * grub-core/net/drivers/emu/emunet.c: Only include Linux-specific @@ -121,5 +121,5 @@ index b97bea6..c2a25c9 100644 unsigned int i; char *device = 0; -- -1.8.1.4 +1.8.2.1 diff --git a/0046-util-grub-install.in-Make-the-error-message-if-sourc.patch b/0046-util-grub-install.in-Make-the-error-message-if-sourc.patch index 18589b3..a013302 100644 --- a/0046-util-grub-install.in-Make-the-error-message-if-sourc.patch +++ b/0046-util-grub-install.in-Make-the-error-message-if-sourc.patch @@ -1,7 +1,7 @@ From e6f215afa8ff4d586f71276fc12ea14eb1e6cd8b Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 24 Sep 2012 18:50:35 +0100 -Subject: [PATCH 046/364] * util/grub-install.in: Make the error message if +Subject: [PATCH 046/471] * util/grub-install.in: Make the error message if $source_dir doesn't exist more useful. --- @@ -36,5 +36,5 @@ index e19f1cd..56be98f 100644 fi -- -1.8.1.4 +1.8.2.1 diff --git a/0047-grub-core-fs-affs.c-grub_affs_mount-Support-AFFS-boo.patch b/0047-grub-core-fs-affs.c-grub_affs_mount-Support-AFFS-boo.patch index 2efb824..15ed1d5 100644 --- a/0047-grub-core-fs-affs.c-grub_affs_mount-Support-AFFS-boo.patch +++ b/0047-grub-core-fs-affs.c-grub_affs_mount-Support-AFFS-boo.patch @@ -1,7 +1,7 @@ From d36c4c3115977beb5f9247c6c6f0a2a209389f45 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 26 Sep 2012 09:33:41 +0200 -Subject: [PATCH 047/364] * grub-core/fs/affs.c (grub_affs_mount): +Subject: [PATCH 047/471] * grub-core/fs/affs.c (grub_affs_mount): Support AFFS bootblock in sector 1. --- @@ -198,5 +198,5 @@ index ef65479..848a455 100644 grub_free (data); -- -1.8.1.4 +1.8.2.1 diff --git a/0048-util-grub-mkconfig_lib.in-is_path_readable_by_grub-R.patch b/0048-util-grub-mkconfig_lib.in-is_path_readable_by_grub-R.patch index c72e63b..9ea5ccc 100644 --- a/0048-util-grub-mkconfig_lib.in-is_path_readable_by_grub-R.patch +++ b/0048-util-grub-mkconfig_lib.in-is_path_readable_by_grub-R.patch @@ -1,7 +1,7 @@ From 9196249442d3d9b360b77a5bd35ffb6c49935c78 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 26 Sep 2012 13:12:20 +0100 -Subject: [PATCH 048/364] * util/grub-mkconfig_lib.in +Subject: [PATCH 048/471] * util/grub-mkconfig_lib.in (is_path_readable_by_grub): Redirect errors from grub-probe to /dev/null, not stdout. @@ -37,5 +37,5 @@ index 8f21eb2..3574839 100644 else return 1 -- -1.8.1.4 +1.8.2.1 diff --git a/0049-Makefile.util.def-grub-mknetdir-Move-to-prefix-bin.patch b/0049-Makefile.util.def-grub-mknetdir-Move-to-prefix-bin.patch index ef96dbc..4507b03 100644 --- a/0049-Makefile.util.def-grub-mknetdir-Move-to-prefix-bin.patch +++ b/0049-Makefile.util.def-grub-mknetdir-Move-to-prefix-bin.patch @@ -1,7 +1,7 @@ From 42593e7230fad9f87732c1687cb5daff918f2fa1 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 26 Sep 2012 13:51:13 +0100 -Subject: [PATCH 049/364] * Makefile.util.def (grub-mknetdir): Move to +Subject: [PATCH 049/471] * Makefile.util.def (grub-mknetdir): Move to $prefix/bin. Reported by: Daniel Kahn Gillmor. Fixes Debian bug #688799. --- @@ -40,5 +40,5 @@ index 72057cf..8324ede 100644 common = util/grub-mknetdir.in; -- -1.8.1.4 +1.8.2.1 diff --git a/0050-grub-core-loader-i386-linux.c-allocate_pages-Fix-spe.patch b/0050-grub-core-loader-i386-linux.c-allocate_pages-Fix-spe.patch index 0acc26a..6fa2449 100644 --- a/0050-grub-core-loader-i386-linux.c-allocate_pages-Fix-spe.patch +++ b/0050-grub-core-loader-i386-linux.c-allocate_pages-Fix-spe.patch @@ -1,7 +1,7 @@ From 8c38cb1283a0cf1c8eae465bff26e0ca966ac43a Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 5 Oct 2012 13:09:19 +0100 -Subject: [PATCH 050/364] * grub-core/loader/i386/linux.c (allocate_pages): Fix +Subject: [PATCH 050/471] * grub-core/loader/i386/linux.c (allocate_pages): Fix spelling of preferred_address. (grub_cmd_linux): Likewise. * grub-core/net/icmp6.c (struct prefix_option): Fix spelling of preferred_lifetime. Update all users. @@ -128,5 +128,5 @@ index 4fc343d..9ded94b 100644 opt->prefixlen != 64); continue; -- -1.8.1.4 +1.8.2.1 diff --git a/0052-grub-core-commands-configfile.c-GRUB_MOD_INIT-Correc.patch b/0051-grub-core-commands-configfile.c-GRUB_MOD_INIT-Correc.patch similarity index 94% rename from 0052-grub-core-commands-configfile.c-GRUB_MOD_INIT-Correc.patch rename to 0051-grub-core-commands-configfile.c-GRUB_MOD_INIT-Correc.patch index 733dc9a..a9db2de 100644 --- a/0052-grub-core-commands-configfile.c-GRUB_MOD_INIT-Correc.patch +++ b/0051-grub-core-commands-configfile.c-GRUB_MOD_INIT-Correc.patch @@ -1,7 +1,7 @@ From a940b1492cc0c066725e5e49882602fb0e5c7399 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 12 Oct 2012 15:34:33 +0100 -Subject: [PATCH 052/364] * grub-core/commands/configfile.c (GRUB_MOD_INIT): +Subject: [PATCH 051/471] * grub-core/commands/configfile.c (GRUB_MOD_INIT): Correct description of extract_entries_configfile. --- @@ -38,5 +38,5 @@ index 99c0a24..f2d2abb 100644 cmd_dot = -- -1.8.1.4 +1.8.2.1 diff --git a/0051-grub-core-Makefile.am-moddep.lst-Use-AWK-instead-of-.patch b/0052-grub-core-Makefile.am-moddep.lst-Use-AWK-instead-of-.patch similarity index 84% rename from 0051-grub-core-Makefile.am-moddep.lst-Use-AWK-instead-of-.patch rename to 0052-grub-core-Makefile.am-moddep.lst-Use-AWK-instead-of-.patch index afce10c..0ad3f54 100644 --- a/0051-grub-core-Makefile.am-moddep.lst-Use-AWK-instead-of-.patch +++ b/0052-grub-core-Makefile.am-moddep.lst-Use-AWK-instead-of-.patch @@ -1,7 +1,7 @@ -From 331fdad4315282f8e367e291131e048593a3a068 Mon Sep 17 00:00:00 2001 +From bcc11ed025a0e09e2c79cb0a4a60d7f4d574f24f Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 12 Oct 2012 15:04:02 +0200 -Subject: [PATCH 051/364] * grub-core/Makefile.am (moddep.lst): Use $(AWK) +Subject: [PATCH 052/471] * grub-core/Makefile.am (moddep.lst): Use $(AWK) instead of awk --- @@ -22,5 +22,5 @@ index cc4fb68..9cb14e2 100644 CLEANFILES += config.log syminfo.lst moddep.lst -- -1.8.1.4 +1.8.2.1 diff --git a/0053-Add-missing-ChangeLog.patch b/0053-Add-missing-ChangeLog.patch new file mode 100644 index 0000000..f639bc6 --- /dev/null +++ b/0053-Add-missing-ChangeLog.patch @@ -0,0 +1,25 @@ +From 3fdb3a7b38a0cd0179a48790eb1272f9c8e60cd1 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 3 Jun 2013 14:12:46 -0400 +Subject: [PATCH 053/471] Add missing ChangeLog + +--- + ChangeLog | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 9280dba..c7b07bb 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2012-10-12 Christoph Junghans ++ ++ * grub-core/Makefile.am (moddep.lst): Use $(AWK) rather than awk. ++ Fixes Savannah bug #37558. ++ + 2012-10-12 Colin Watson + + * grub-core/commands/configfile.c (GRUB_MOD_INIT): Correct +-- +1.8.2.1 + diff --git a/0053-Fix-ordering-and-tab-indentation-of-NetBSD-boot-menu.patch b/0054-Fix-ordering-and-tab-indentation-of-NetBSD-boot-menu.patch similarity index 90% rename from 0053-Fix-ordering-and-tab-indentation-of-NetBSD-boot-menu.patch rename to 0054-Fix-ordering-and-tab-indentation-of-NetBSD-boot-menu.patch index b66ea63..a7fb9f3 100644 --- a/0053-Fix-ordering-and-tab-indentation-of-NetBSD-boot-menu.patch +++ b/0054-Fix-ordering-and-tab-indentation-of-NetBSD-boot-menu.patch @@ -1,7 +1,7 @@ -From 5bf54ea7bf0fc7d1c2b9806a57566ad25179d07c Mon Sep 17 00:00:00 2001 +From 8109764f605afbc888760e323d19110ccef84e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Sutre?= Date: Sun, 28 Oct 2012 11:55:22 +0100 -Subject: [PATCH 053/364] Fix ordering and tab indentation of NetBSD boot menu +Subject: [PATCH 054/471] Fix ordering and tab indentation of NetBSD boot menu entries. --- @@ -19,9 +19,9 @@ index c7b07bb..caea96d 100644 + * util/grub.d/10_netbsd.in: Fix tab indentation and make sure + that /netbsd appears first (when it exists). + - 2012-10-12 Colin Watson + 2012-10-12 Christoph Junghans - * grub-core/commands/configfile.c (GRUB_MOD_INIT): Correct + * grub-core/Makefile.am (moddep.lst): Use $(AWK) rather than awk. diff --git a/util/grub.d/10_netbsd.in b/util/grub.d/10_netbsd.in index b76332b..dead5c1 100644 --- a/util/grub.d/10_netbsd.in @@ -67,5 +67,5 @@ index b76332b..dead5c1 100644 continue fi -- -1.8.1.4 +1.8.2.1 diff --git a/0054-grub-core-net-bootp.c-parse_dhcp_vendor-Fix-double-i.patch b/0055-grub-core-net-bootp.c-parse_dhcp_vendor-Fix-double-i.patch similarity index 83% rename from 0054-grub-core-net-bootp.c-parse_dhcp_vendor-Fix-double-i.patch rename to 0055-grub-core-net-bootp.c-parse_dhcp_vendor-Fix-double-i.patch index 4cb68cc..32242d6 100644 --- a/0054-grub-core-net-bootp.c-parse_dhcp_vendor-Fix-double-i.patch +++ b/0055-grub-core-net-bootp.c-parse_dhcp_vendor-Fix-double-i.patch @@ -1,7 +1,7 @@ -From ae12080106554c5dd5e2d19799f08a0aa72c9be9 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo +From e64acf0c9e709e2f2fc4908f2123ad908371839b Mon Sep 17 00:00:00 2001 +From: Paulo Flabiano Smorigo Date: Wed, 28 Nov 2012 14:14:20 +0100 -Subject: [PATCH 054/364] * grub-core/net/bootp.c (parse_dhcp_vendor): +Subject: [PATCH 055/471] * grub-core/net/bootp.c (parse_dhcp_vendor): Fix double increment. --- @@ -35,5 +35,5 @@ index bc07d53..f36d4cd 100644 set_env_limn_ro (name, "hostname", (char *) ptr, taglength); break; -- -1.8.1.4 +1.8.2.1 diff --git a/0055-include-grub-types.h-Fix-functionality-unaffecting-t.patch b/0056-include-grub-types.h-Fix-functionality-unaffecting-t.patch similarity index 86% rename from 0055-include-grub-types.h-Fix-functionality-unaffecting-t.patch rename to 0056-include-grub-types.h-Fix-functionality-unaffecting-t.patch index 2bf5d44..8c698d3 100644 --- a/0055-include-grub-types.h-Fix-functionality-unaffecting-t.patch +++ b/0056-include-grub-types.h-Fix-functionality-unaffecting-t.patch @@ -1,7 +1,7 @@ -From aa3830c409ca40e6f0b71279ddb3409262a7bd96 Mon Sep 17 00:00:00 2001 -From: Leif Lindholm +From e2638674dca6e5c31624057734bff69f3bba2e80 Mon Sep 17 00:00:00 2001 +From: Leif Lindholm Date: Wed, 28 Nov 2012 14:18:45 +0100 -Subject: [PATCH 055/364] * include/grub/types.h: Fix functionality +Subject: [PATCH 056/471] * include/grub/types.h: Fix functionality unaffecting typo in GRUB_TARGET_WORDSIZE conditional macro. --- @@ -36,5 +36,5 @@ index 3e677c6..22d1be7 100644 # define GRUB_TARGET_WORDSIZE 32 # elif GRUB_TARGET_SIZEOF_VOID_P == 8 -- -1.8.1.4 +1.8.2.1 diff --git a/0056-Support-big-endian-UFS1.patch b/0057-Support-big-endian-UFS1.patch similarity index 98% rename from 0056-Support-big-endian-UFS1.patch rename to 0057-Support-big-endian-UFS1.patch index 092463f..444b6c3 100644 --- a/0056-Support-big-endian-UFS1.patch +++ b/0057-Support-big-endian-UFS1.patch @@ -1,7 +1,7 @@ -From b4ec418af5d77275f3b3cf5e7566eaa4ecd713bd Mon Sep 17 00:00:00 2001 +From f507bf51532d6523dc7ef142058149a17fec5db7 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 8 Dec 2012 20:56:58 +0100 -Subject: [PATCH 056/364] Support big-endian UFS1. +Subject: [PATCH 057/471] Support big-endian UFS1. * Makefile.util.def (libgrubmods): Add ufs_be.c * grub-core/Makefile.core.def (ufs1_be): New module. @@ -303,5 +303,5 @@ index 0000000..a58f75a +#define MODE_BIGENDIAN 1 +#include "ufs.c" -- -1.8.1.4 +1.8.2.1 diff --git a/0057-Fix-big-endian-mtime.patch b/0058-Fix-big-endian-mtime.patch similarity index 94% rename from 0057-Fix-big-endian-mtime.patch rename to 0058-Fix-big-endian-mtime.patch index 85ab6ee..6d6fa71 100644 --- a/0057-Fix-big-endian-mtime.patch +++ b/0058-Fix-big-endian-mtime.patch @@ -1,7 +1,7 @@ -From 32776fea2049a8b8198fdd59d49e18b4f8916d28 Mon Sep 17 00:00:00 2001 +From 10519a65aaf196c32e687a681b9565a763d772dc Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 8 Dec 2012 21:14:08 +0100 -Subject: [PATCH 057/364] Fix big-endian mtime. +Subject: [PATCH 058/471] Fix big-endian mtime. * grub-core/fs/ufs.c (grub_ufs_inode): Split improperly attached together sec and usec. @@ -75,5 +75,5 @@ index 3f2dba1..c862336 100644 if (hook (filename, &info)) -- -1.8.1.4 +1.8.2.1 diff --git a/0058-grub-core-fs-ufs.c-grub_ufs_dir-Stop-if-direntlen-is.patch b/0059-grub-core-fs-ufs.c-grub_ufs_dir-Stop-if-direntlen-is.patch similarity index 87% rename from 0058-grub-core-fs-ufs.c-grub_ufs_dir-Stop-if-direntlen-is.patch rename to 0059-grub-core-fs-ufs.c-grub_ufs_dir-Stop-if-direntlen-is.patch index 21f70ef..1a12fb5 100644 --- a/0058-grub-core-fs-ufs.c-grub_ufs_dir-Stop-if-direntlen-is.patch +++ b/0059-grub-core-fs-ufs.c-grub_ufs_dir-Stop-if-direntlen-is.patch @@ -1,7 +1,7 @@ -From 5361431d3faa4ddbbd5d5c6a1fa10e0cebc60623 Mon Sep 17 00:00:00 2001 +From 64ab320166410339edd8ae49b19780f1a793f450 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 10 Dec 2012 09:22:40 +0100 -Subject: [PATCH 058/364] * grub-core/fs/ufs.c (grub_ufs_dir): Stop if +Subject: [PATCH 059/471] * grub-core/fs/ufs.c (grub_ufs_dir): Stop if direntlen is 0 to avoid infinite loop on corrupted FS. --- @@ -37,5 +37,5 @@ index c862336..74a4a40 100644 namelen = dirent.namelen_bsd; #else -- -1.8.1.4 +1.8.2.1 diff --git a/0059-util-getroot.c-convert_system_partition_to_system_di.patch b/0060-util-getroot.c-convert_system_partition_to_system_di.patch similarity index 91% rename from 0059-util-getroot.c-convert_system_partition_to_system_di.patch rename to 0060-util-getroot.c-convert_system_partition_to_system_di.patch index afdb78c..56a743b 100644 --- a/0059-util-getroot.c-convert_system_partition_to_system_di.patch +++ b/0060-util-getroot.c-convert_system_partition_to_system_di.patch @@ -1,7 +1,7 @@ -From d2634650c732823bd304e0413f84d383c2689117 Mon Sep 17 00:00:00 2001 +From 62bded903da0a8a30155a757f0a89c3e39b7238c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 10 Dec 2012 11:12:38 +0100 -Subject: [PATCH 059/364] * util/getroot.c +Subject: [PATCH 060/471] * util/getroot.c (convert_system_partition_to_system_disk): Support nbd disks. --- @@ -48,5 +48,5 @@ index c2a25c9..24ce6aa 100644 if (strncmp ("vdisk", p, 5) == 0 && p[5] >= 'a' && p[5] <= 'z') -- -1.8.1.4 +1.8.2.1 diff --git a/0060-util-grub-mkfont.c-argp_parser-Fix-a-typo-which-prev.patch b/0061-util-grub-mkfont.c-argp_parser-Fix-a-typo-which-prev.patch similarity index 84% rename from 0060-util-grub-mkfont.c-argp_parser-Fix-a-typo-which-prev.patch rename to 0061-util-grub-mkfont.c-argp_parser-Fix-a-typo-which-prev.patch index 827fa43..014e464 100644 --- a/0060-util-grub-mkfont.c-argp_parser-Fix-a-typo-which-prev.patch +++ b/0061-util-grub-mkfont.c-argp_parser-Fix-a-typo-which-prev.patch @@ -1,7 +1,7 @@ -From 18c470fb212991eea8749327b7baa44ebefc4215 Mon Sep 17 00:00:00 2001 -From: Vladimir Testov +From 601e4870ed17abe682d5581c8ece9adc61184713 Mon Sep 17 00:00:00 2001 +From: Vladimir Testov Date: Mon, 10 Dec 2012 11:45:00 +0100 -Subject: [PATCH 060/364] * util/grub-mkfont.c (argp_parser): Fix a typo +Subject: [PATCH 061/471] * util/grub-mkfont.c (argp_parser): Fix a typo which prevented --asce from working. --- @@ -36,5 +36,5 @@ index 4e2c5e4..83fb2d2 100644 break; -- -1.8.1.4 +1.8.2.1 diff --git a/0061-grub-core-term-gfxterm.c-grub_virtual_screen_setup-G.patch b/0062-grub-core-term-gfxterm.c-grub_virtual_screen_setup-G.patch similarity index 97% rename from 0061-grub-core-term-gfxterm.c-grub_virtual_screen_setup-G.patch rename to 0062-grub-core-term-gfxterm.c-grub_virtual_screen_setup-G.patch index bc932c3..869044d 100644 --- a/0061-grub-core-term-gfxterm.c-grub_virtual_screen_setup-G.patch +++ b/0062-grub-core-term-gfxterm.c-grub_virtual_screen_setup-G.patch @@ -1,7 +1,7 @@ -From c54df09cdb44ab19f9f7d5ece0f6568f4c19e46f Mon Sep 17 00:00:00 2001 +From ce0e3665b2afdab0e43cf7c0a0aa55149af42a6e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 10 Dec 2012 16:07:33 +0100 -Subject: [PATCH 061/364] * grub-core/term/gfxterm.c +Subject: [PATCH 062/471] * grub-core/term/gfxterm.c (grub_virtual_screen_setup): Get font as argument rather than font name. All users updated. (grub_gfxterm_set_window): Likewise. @@ -144,5 +144,5 @@ index 3fc8d92..361f73e 100644 typedef void (*grub_gfxterm_repaint_callback_t)(int x, int y, int width, int height); -- -1.8.1.4 +1.8.2.1 diff --git a/0062-grub-core-gfxmenu-view.c-init_terminal-Avoid-making-.patch b/0063-grub-core-gfxmenu-view.c-init_terminal-Avoid-making-.patch similarity index 95% rename from 0062-grub-core-gfxmenu-view.c-init_terminal-Avoid-making-.patch rename to 0063-grub-core-gfxmenu-view.c-init_terminal-Avoid-making-.patch index 6ece70c..3888508 100644 --- a/0062-grub-core-gfxmenu-view.c-init_terminal-Avoid-making-.patch +++ b/0063-grub-core-gfxmenu-view.c-init_terminal-Avoid-making-.patch @@ -1,7 +1,7 @@ -From 592fe36daf0064866bbee740383cbf7bd2156639 Mon Sep 17 00:00:00 2001 +From 92e7e2d5571844ef1604386f442eaf1e4085ed64 Mon Sep 17 00:00:00 2001 From: "Dr. Tilmann Bubeck" Date: Mon, 10 Dec 2012 16:14:12 +0100 -Subject: [PATCH 062/364] * grub-core/gfxmenu/view.c (init_terminal): +Subject: [PATCH 063/471] * grub-core/gfxmenu/view.c (init_terminal): Avoid making terminal window too small. --- @@ -83,5 +83,5 @@ index c005773..1918ea4 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0063-grub-core-kern-ieee1275-init.c-grub_machine_get_boot.patch b/0064-grub-core-kern-ieee1275-init.c-grub_machine_get_boot.patch similarity index 94% rename from 0063-grub-core-kern-ieee1275-init.c-grub_machine_get_boot.patch rename to 0064-grub-core-kern-ieee1275-init.c-grub_machine_get_boot.patch index 76e0a6f..938c8a2 100644 --- a/0063-grub-core-kern-ieee1275-init.c-grub_machine_get_boot.patch +++ b/0064-grub-core-kern-ieee1275-init.c-grub_machine_get_boot.patch @@ -1,7 +1,7 @@ -From acfa4335f7ed7310e7ee2da1f68443785f7f7913 Mon Sep 17 00:00:00 2001 +From 188fddf6f99533505a0f8c7c4f8223ba19d8ef6a Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 10 Dec 2012 16:23:16 +0100 -Subject: [PATCH 063/364] * grub-core/kern/ieee1275/init.c +Subject: [PATCH 064/471] * grub-core/kern/ieee1275/init.c (grub_machine_get_bootlocation): Use dynamic allocation for the bootpath buffer. @@ -71,5 +71,5 @@ index 7d03a8a..14dcdf0 100644 /* Claim some available memory in the first /memory node. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0064-util-grub-install.in-Remove-stale-TODO.patch b/0065-util-grub-install.in-Remove-stale-TODO.patch similarity index 87% rename from 0064-util-grub-install.in-Remove-stale-TODO.patch rename to 0065-util-grub-install.in-Remove-stale-TODO.patch index ba7b24e..1cd634c 100644 --- a/0064-util-grub-install.in-Remove-stale-TODO.patch +++ b/0065-util-grub-install.in-Remove-stale-TODO.patch @@ -1,7 +1,7 @@ -From b21a644e810f7c20844b828150d24d58ad0b776e Mon Sep 17 00:00:00 2001 +From 5ed1ee18ef11a1aa0922ce35f56e44cc0cab5da5 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Mon, 10 Dec 2012 17:00:56 +0100 -Subject: [PATCH 064/364] * util/grub-install.in: Remove stale TODO. +Subject: [PATCH 065/471] * util/grub-install.in: Remove stale TODO. --- ChangeLog | 4 ++++ @@ -34,5 +34,5 @@ index 56be98f..a2cf07a 100644 efidir="$efidir/EFI/$efi_distributor" mkdir -p "$efidir" || exit 1 -- -1.8.1.4 +1.8.2.1 diff --git a/0065-util-grub-install.in-Follow-the-symbolic-link-parame.patch b/0066-util-grub-install.in-Follow-the-symbolic-link-parame.patch similarity index 91% rename from 0065-util-grub-install.in-Follow-the-symbolic-link-parame.patch rename to 0066-util-grub-install.in-Follow-the-symbolic-link-parame.patch index 0560d8e..722acbc 100644 --- a/0065-util-grub-install.in-Follow-the-symbolic-link-parame.patch +++ b/0066-util-grub-install.in-Follow-the-symbolic-link-parame.patch @@ -1,7 +1,7 @@ -From 28e8ed1fc8a89e3d4c71be6b27166b26b4e61570 Mon Sep 17 00:00:00 2001 +From 421249fda0ae1b6138ccf14b34fa4c58fd3296d4 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 10 Dec 2012 17:07:01 +0100 -Subject: [PATCH 065/364] * util/grub-install.in: Follow the symbolic +Subject: [PATCH 066/471] * util/grub-install.in: Follow the symbolic link parameter added to the file command. --- @@ -36,5 +36,5 @@ index a2cf07a..9dc4e0b 100644 gettext "Failed to copy Grub to the PReP partition." 1>&2 echo 1>&2 -- -1.8.1.4 +1.8.2.1 diff --git a/0066-grub-core-disk-cryptodisk.c-grub_cmd_cryptomount-Str.patch b/0067-grub-core-disk-cryptodisk.c-grub_cmd_cryptomount-Str.patch similarity index 92% rename from 0066-grub-core-disk-cryptodisk.c-grub_cmd_cryptomount-Str.patch rename to 0067-grub-core-disk-cryptodisk.c-grub_cmd_cryptomount-Str.patch index a25cc6b..7bf1490 100644 --- a/0066-grub-core-disk-cryptodisk.c-grub_cmd_cryptomount-Str.patch +++ b/0067-grub-core-disk-cryptodisk.c-grub_cmd_cryptomount-Str.patch @@ -1,7 +1,7 @@ -From 08a1459a9534fa2337744a32dda511d496e9d6cf Mon Sep 17 00:00:00 2001 +From dc089e5e9c9bf5ba1fa00cf8166f9628804741d9 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 10 Dec 2012 19:15:51 +0100 -Subject: [PATCH 066/364] * grub-core/disk/cryptodisk.c +Subject: [PATCH 067/471] * grub-core/disk/cryptodisk.c (grub_cmd_cryptomount): Strip brackets around device name if necessarry. @@ -50,5 +50,5 @@ index 1ac906d..3de3b86 100644 return grub_errno; -- -1.8.1.4 +1.8.2.1 diff --git a/0067-docs-grub.texi-Network-Update-instructions-on-genera.patch b/0068-docs-grub.texi-Network-Update-instructions-on-genera.patch similarity index 95% rename from 0067-docs-grub.texi-Network-Update-instructions-on-genera.patch rename to 0068-docs-grub.texi-Network-Update-instructions-on-genera.patch index 986925e..889c86a 100644 --- a/0067-docs-grub.texi-Network-Update-instructions-on-genera.patch +++ b/0068-docs-grub.texi-Network-Update-instructions-on-genera.patch @@ -1,7 +1,7 @@ -From 80fa6c9eaeb13ed950d44bae4890c5b2da7ea6f1 Mon Sep 17 00:00:00 2001 +From 3db2aa0adc7c356df7baff39b53212c735fff042 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 10 Dec 2012 22:22:23 +0100 -Subject: [PATCH 067/364] * docs/grub.texi (Network): Update +Subject: [PATCH 068/471] * docs/grub.texi (Network): Update instructions on generating netboot image. --- @@ -82,5 +82,5 @@ index b0e7f59..39d9614 100644 GRUB provides several environment variables which may be used to inspect or change the behaviour of the PXE device: -- -1.8.1.4 +1.8.2.1 diff --git a/0068-util-grub.d-20_linux_xen.in-Addmissing-assignment-to.patch b/0069-util-grub.d-20_linux_xen.in-Addmissing-assignment-to.patch similarity index 88% rename from 0068-util-grub.d-20_linux_xen.in-Addmissing-assignment-to.patch rename to 0069-util-grub.d-20_linux_xen.in-Addmissing-assignment-to.patch index 1cfee0e..3db3306 100644 --- a/0068-util-grub.d-20_linux_xen.in-Addmissing-assignment-to.patch +++ b/0069-util-grub.d-20_linux_xen.in-Addmissing-assignment-to.patch @@ -1,7 +1,7 @@ -From 34cb801ec4d1999babf5f7fe65cd70a149746137 Mon Sep 17 00:00:00 2001 +From bd049427e99ec99447426c2264a432f08b156e4c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 11 Dec 2012 17:40:35 +0100 -Subject: [PATCH 068/364] * util/grub.d/20_linux_xen.in: Addmissing +Subject: [PATCH 069/471] * util/grub.d/20_linux_xen.in: Addmissing assignment to machine. Reported by: Eriks Latosheks . --- @@ -36,5 +36,5 @@ index d4d0110..ac05ee4 100644 i?86) GENKERNEL_ARCH="x86" ;; mips|mips64) GENKERNEL_ARCH="mips" ;; -- -1.8.1.4 +1.8.2.1 diff --git a/0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch b/0070-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch similarity index 93% rename from 0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch rename to 0070-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch index 338368f..be4607f 100644 --- a/0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch +++ b/0070-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch @@ -1,7 +1,7 @@ -From d09689a5a2863043d007c1acb9bf0a8d1d3b776d Mon Sep 17 00:00:00 2001 +From 44fc4a3f10e315aecc593f0642e1fbccbb466bc9 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 28 Dec 2012 06:43:35 +0000 -Subject: [PATCH 069/364] Backport gnulib fixes for C11. Fixes Savannah bug +Subject: [PATCH 070/471] Backport gnulib fixes for C11. Fixes Savannah bug #37738. * grub-core/gnulib/stdio.in.h (gets): Warn on use only if @@ -62,5 +62,5 @@ index f5650cd..8458bec 100644 ]) -- -1.8.1.4 +1.8.2.1 diff --git a/0070-Apply-program-name-transformations-at-build-time-rat.patch b/0071-Apply-program-name-transformations-at-build-time-rat.patch similarity index 99% rename from 0070-Apply-program-name-transformations-at-build-time-rat.patch rename to 0071-Apply-program-name-transformations-at-build-time-rat.patch index 0525fb6..bf66f82 100644 --- a/0070-Apply-program-name-transformations-at-build-time-rat.patch +++ b/0071-Apply-program-name-transformations-at-build-time-rat.patch @@ -1,7 +1,7 @@ -From 6db544ab2cdff7e5821558d150ac848c28c3fc93 Mon Sep 17 00:00:00 2001 +From 899f59e4357a2a3bfb5a2e58ad83700f16d347a7 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 28 Dec 2012 06:57:17 +0000 -Subject: [PATCH 070/364] Apply program name transformations at build-time +Subject: [PATCH 071/471] Apply program name transformations at build-time rather than at run-time. Fixes Debian bug #696465. * acinclude.m4 (grub_TRANSFORM): New macro. @@ -512,5 +512,5 @@ index b3b88f0..2615cab 100644 export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR="@localedir@" -- -1.8.1.4 +1.8.2.1 diff --git a/0071-neater-gnulib-backport.patch b/0072-neater-gnulib-backport.patch similarity index 85% rename from 0071-neater-gnulib-backport.patch rename to 0072-neater-gnulib-backport.patch index 8ab3a94..c213c77 100644 --- a/0071-neater-gnulib-backport.patch +++ b/0072-neater-gnulib-backport.patch @@ -1,7 +1,7 @@ -From 25b73b33cdaafb3f21c5014b090a71f8449653c5 Mon Sep 17 00:00:00 2001 +From e933ab46a2f423c4c0f62283404a7d7787efd30f Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 28 Dec 2012 07:13:34 +0000 -Subject: [PATCH 071/364] neater gnulib backport +Subject: [PATCH 072/471] neater gnulib backport --- m4/stdio_h.m4 | 2 +- @@ -21,5 +21,5 @@ index 8458bec..d3edb42 100644 ]], [dprintf fpurge fseeko ftello getdelim getline gets popen renameat snprintf tmpfile vdprintf vsnprintf]) -- -1.8.1.4 +1.8.2.1 diff --git a/0072-util-grub-mkconfig.in-Accept-GRUB_TERMINAL_OUTPUT-vg.patch b/0073-util-grub-mkconfig.in-Accept-GRUB_TERMINAL_OUTPUT-vg.patch similarity index 90% rename from 0072-util-grub-mkconfig.in-Accept-GRUB_TERMINAL_OUTPUT-vg.patch rename to 0073-util-grub-mkconfig.in-Accept-GRUB_TERMINAL_OUTPUT-vg.patch index b74c0dd..bc2d59c 100644 --- a/0072-util-grub-mkconfig.in-Accept-GRUB_TERMINAL_OUTPUT-vg.patch +++ b/0073-util-grub-mkconfig.in-Accept-GRUB_TERMINAL_OUTPUT-vg.patch @@ -1,7 +1,7 @@ -From 2572b7c6ff8be58b10b3b9d13e35b50a535ee2ac Mon Sep 17 00:00:00 2001 +From 66f89845c04cc5cc358c6bb2cd9c4ac512136698 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 28 Dec 2012 07:21:17 +0000 -Subject: [PATCH 072/364] * util/grub-mkconfig.in: Accept +Subject: [PATCH 073/471] * util/grub-mkconfig.in: Accept GRUB_TERMINAL_OUTPUT=vga_text. Fixes Savannah bug #37821. --- @@ -38,5 +38,5 @@ index 4263367..8decc1d 100644 export LANG=C;; *) echo "Invalid output terminal \"${GRUB_TERMINAL_OUTPUT}\"" >&2 ; exit 1 ;; -- -1.8.1.4 +1.8.2.1 diff --git a/0073-grub-core-bus-usb-ehci.c-grub_ehci_pci_iter-Remove-i.patch b/0074-grub-core-bus-usb-ehci.c-grub_ehci_pci_iter-Remove-i.patch similarity index 97% rename from 0073-grub-core-bus-usb-ehci.c-grub_ehci_pci_iter-Remove-i.patch rename to 0074-grub-core-bus-usb-ehci.c-grub_ehci_pci_iter-Remove-i.patch index f098530..5885b2d 100644 --- a/0073-grub-core-bus-usb-ehci.c-grub_ehci_pci_iter-Remove-i.patch +++ b/0074-grub-core-bus-usb-ehci.c-grub_ehci_pci_iter-Remove-i.patch @@ -1,7 +1,7 @@ -From a0e1ddf87544a8371fff110c451576016ca81fb3 Mon Sep 17 00:00:00 2001 +From 97478894ed1ee9cad7e40ff8d9cd12247747b899 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sun, 30 Dec 2012 09:57:58 +0000 -Subject: [PATCH 073/364] * grub-core/bus/usb/ehci.c (grub_ehci_pci_iter): +Subject: [PATCH 074/471] * grub-core/bus/usb/ehci.c (grub_ehci_pci_iter): Remove incorrect __attribute__ ((unused)). * grub-core/video/bochs.c (find_card): Likewise. * grub-core/video/cirrus.c (find_card): Likewise. * grub-core/video/radeon_fuloong2e.c (find_card): Likewise. * @@ -122,5 +122,5 @@ index 5f22c40..d780983 100644 grub_pci_address_t addr; grub_uint32_t class; -- -1.8.1.4 +1.8.2.1 diff --git a/0074-Remove-several-trivially-unnecessary-uses-of-nested-.patch b/0075-Remove-several-trivially-unnecessary-uses-of-nested-.patch similarity index 99% rename from 0074-Remove-several-trivially-unnecessary-uses-of-nested-.patch rename to 0075-Remove-several-trivially-unnecessary-uses-of-nested-.patch index 93cd3f5..a4761c6 100644 --- a/0074-Remove-several-trivially-unnecessary-uses-of-nested-.patch +++ b/0075-Remove-several-trivially-unnecessary-uses-of-nested-.patch @@ -1,7 +1,7 @@ -From a3564dd3f793d2677584a93284966b6b9f14ebdb Mon Sep 17 00:00:00 2001 +From 78def2574a02429cb43d5f6a44a607315cdcee68 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 31 Dec 2012 17:31:38 +0000 -Subject: [PATCH 074/364] Remove several trivially-unnecessary uses of nested +Subject: [PATCH 075/471] Remove several trivially-unnecessary uses of nested functions. * grub-core/commands/i386/pc/sendkey.c @@ -813,5 +813,5 @@ index 8e2b4da..33b644b 100644 grub_free (script); -- -1.8.1.4 +1.8.2.1 diff --git a/0075-docs-grub.texi-configfile-Explain-environment-variab.patch b/0076-docs-grub.texi-configfile-Explain-environment-variab.patch similarity index 94% rename from 0075-docs-grub.texi-configfile-Explain-environment-variab.patch rename to 0076-docs-grub.texi-configfile-Explain-environment-variab.patch index 81d6b24..6fbf080 100644 --- a/0075-docs-grub.texi-configfile-Explain-environment-variab.patch +++ b/0076-docs-grub.texi-configfile-Explain-environment-variab.patch @@ -1,7 +1,7 @@ -From bf9d0c7cfcc093b873d6d4c594cd407dc6bca69c Mon Sep 17 00:00:00 2001 +From ea42a4554351f4a695bf24f208ec0ad769f05e5c Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 2 Jan 2013 09:29:48 +0000 -Subject: [PATCH 075/364] * docs/grub.texi (configfile): Explain environment +Subject: [PATCH 076/471] * docs/grub.texi (configfile): Explain environment variable handling. (source): New section. Reported by: Arbiel Perlacremaz. Fixes Savannah bug #35564. @@ -69,5 +69,5 @@ index 39d9614..e9af377 100644 @subsection true -- -1.8.1.4 +1.8.2.1 diff --git a/0076-Fix-failing-printf-test.patch b/0077-Fix-failing-printf-test.patch similarity index 92% rename from 0076-Fix-failing-printf-test.patch rename to 0077-Fix-failing-printf-test.patch index 62898f2..a9785d2 100644 --- a/0076-Fix-failing-printf-test.patch +++ b/0077-Fix-failing-printf-test.patch @@ -1,7 +1,7 @@ -From bd0f06eea6be3f3e2efb07069f853741867a320f Mon Sep 17 00:00:00 2001 +From 36cf49ba9881811dec77be5564bf001b2667220b Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 2 Jan 2013 12:48:31 +0000 -Subject: [PATCH 076/364] Fix failing printf test. +Subject: [PATCH 077/471] Fix failing printf test. * grub-core/kern/misc.c (grub_vsnprintf_real): Parse '-', '.', and '$' in the correct order when collecting type information. @@ -66,5 +66,5 @@ index 95d4624..c3203a0 100644 fmt++; -- -1.8.1.4 +1.8.2.1 diff --git a/0077-grub-core-tests-lib-test.c-grub_test_run-Return-non-.patch b/0078-grub-core-tests-lib-test.c-grub_test_run-Return-non-.patch similarity index 91% rename from 0077-grub-core-tests-lib-test.c-grub_test_run-Return-non-.patch rename to 0078-grub-core-tests-lib-test.c-grub_test_run-Return-non-.patch index 7196830..4c9339c 100644 --- a/0077-grub-core-tests-lib-test.c-grub_test_run-Return-non-.patch +++ b/0078-grub-core-tests-lib-test.c-grub_test_run-Return-non-.patch @@ -1,7 +1,7 @@ -From 1fb2a38cdc4278a0c65e9b0cbca6fdaae3343564 Mon Sep 17 00:00:00 2001 +From a87f3af8a497842210564db7fa5d922c4a2be9c8 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 2 Jan 2013 16:42:48 +0000 -Subject: [PATCH 077/364] * grub-core/tests/lib/test.c (grub_test_run): Return +Subject: [PATCH 078/471] * grub-core/tests/lib/test.c (grub_test_run): Return non-zero on test failures, so that a failing unit test correctly causes 'make check' to fail. @@ -51,5 +51,5 @@ index aac77e9..1d2cb8c 100644 + } } -- -1.8.1.4 +1.8.2.1 diff --git a/0078-docs-grub.texi-Invoking-grub-mount-New-section.patch b/0079-docs-grub.texi-Invoking-grub-mount-New-section.patch similarity index 97% rename from 0078-docs-grub.texi-Invoking-grub-mount-New-section.patch rename to 0079-docs-grub.texi-Invoking-grub-mount-New-section.patch index af5f7f2..6c78777 100644 --- a/0078-docs-grub.texi-Invoking-grub-mount-New-section.patch +++ b/0079-docs-grub.texi-Invoking-grub-mount-New-section.patch @@ -1,7 +1,7 @@ -From 9a3cdbccd18ddda45d3e69de75d6c4865da72aae Mon Sep 17 00:00:00 2001 +From d964d1d7d0a8805e9a2cdf63b5124846e5301897 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Thu, 3 Jan 2013 10:32:57 +0000 -Subject: [PATCH 078/364] * docs/grub.texi (Invoking grub-mount): New section. +Subject: [PATCH 079/471] * docs/grub.texi (Invoking grub-mount): New section. Reported by: Filipus Klutiero. Fixes Debian bug #666427. --- @@ -146,5 +146,5 @@ index e9af377..60b18b5 100644 @chapter Invoking grub-probe -- -1.8.1.4 +1.8.2.1 diff --git a/0079-docs-grub.texi-Invoking-grub-mkrelpath-New-section.patch b/0080-docs-grub.texi-Invoking-grub-mkrelpath-New-section.patch similarity index 96% rename from 0079-docs-grub.texi-Invoking-grub-mkrelpath-New-section.patch rename to 0080-docs-grub.texi-Invoking-grub-mkrelpath-New-section.patch index 95bab20..5a42e0f 100644 --- a/0079-docs-grub.texi-Invoking-grub-mkrelpath-New-section.patch +++ b/0080-docs-grub.texi-Invoking-grub-mkrelpath-New-section.patch @@ -1,7 +1,7 @@ -From 3d109c87aec982045fd78e0937589af98eb0ad38 Mon Sep 17 00:00:00 2001 +From 24c95595badc668ca9444155261d67b290b87c84 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Thu, 3 Jan 2013 10:53:53 +0000 -Subject: [PATCH 079/364] * docs/grub.texi (Invoking grub-mkrelpath): New +Subject: [PATCH 080/471] * docs/grub.texi (Invoking grub-mkrelpath): New section. (Invoking grub-script-check): Likewise. --- @@ -121,5 +121,5 @@ index 60b18b5..e23cecc 100644 @appendix How to obtain and build GRUB -- -1.8.1.4 +1.8.2.1 diff --git a/0080-grub-core-fs-iso9660.c-grub_iso9660_susp_iterate-Avo.patch b/0081-grub-core-fs-iso9660.c-grub_iso9660_susp_iterate-Avo.patch similarity index 90% rename from 0080-grub-core-fs-iso9660.c-grub_iso9660_susp_iterate-Avo.patch rename to 0081-grub-core-fs-iso9660.c-grub_iso9660_susp_iterate-Avo.patch index e1a84fd..b03c82d 100644 --- a/0080-grub-core-fs-iso9660.c-grub_iso9660_susp_iterate-Avo.patch +++ b/0081-grub-core-fs-iso9660.c-grub_iso9660_susp_iterate-Avo.patch @@ -1,7 +1,7 @@ -From 7adc96e903f5581b38ba397a6d4d93f923b2fc5e Mon Sep 17 00:00:00 2001 +From d814e848e1800f4571addb7ca2c548d67c470b30 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 3 Jan 2013 21:27:00 +0100 -Subject: [PATCH 080/364] * grub-core/fs/iso9660.c +Subject: [PATCH 081/471] * grub-core/fs/iso9660.c (grub_iso9660_susp_iterate): Avoid hang if entry->len = 0. --- @@ -36,5 +36,5 @@ index cd4acc8..547e156 100644 ((char *) entry + entry->len)) { -- -1.8.1.4 +1.8.2.1 diff --git a/0081-configure.ac-Extend-Wno-trampolines-to-host.patch b/0082-configure.ac-Extend-Wno-trampolines-to-host.patch similarity index 91% rename from 0081-configure.ac-Extend-Wno-trampolines-to-host.patch rename to 0082-configure.ac-Extend-Wno-trampolines-to-host.patch index fe87f9d..1d9c235 100644 --- a/0081-configure.ac-Extend-Wno-trampolines-to-host.patch +++ b/0082-configure.ac-Extend-Wno-trampolines-to-host.patch @@ -1,7 +1,7 @@ -From 242ce139276b9de1e5f960070e433111a3ab5194 Mon Sep 17 00:00:00 2001 +From 496d8726590f4ad432d40ed8e3aad7e92bb3147c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 3 Jan 2013 21:34:34 +0100 -Subject: [PATCH 081/364] * configure.ac: Extend -Wno-trampolines to +Subject: [PATCH 082/471] * configure.ac: Extend -Wno-trampolines to host. --- @@ -52,5 +52,5 @@ index a41f117..dde954e 100644 # Check for host and build compilers. # -- -1.8.1.4 +1.8.2.1 diff --git a/0082-util-grub.d-10_kfreebsd.in-Fix-improper-references-t.patch b/0083-util-grub.d-10_kfreebsd.in-Fix-improper-references-t.patch similarity index 91% rename from 0082-util-grub.d-10_kfreebsd.in-Fix-improper-references-t.patch rename to 0083-util-grub.d-10_kfreebsd.in-Fix-improper-references-t.patch index 8792821..ba0a229 100644 --- a/0082-util-grub.d-10_kfreebsd.in-Fix-improper-references-t.patch +++ b/0083-util-grub.d-10_kfreebsd.in-Fix-improper-references-t.patch @@ -1,7 +1,7 @@ -From 98701532f45165422f45b8cdf405a7f0abf03fba Mon Sep 17 00:00:00 2001 -From: Yuta Satoh +From ce13f1ebba58c7d78dea2b63843eb77818baf566 Mon Sep 17 00:00:00 2001 +From: Yuta Satoh Date: Thu, 3 Jan 2013 23:06:07 +0100 -Subject: [PATCH 082/364] * util/grub.d/10_kfreebsd.in: Fix improper +Subject: [PATCH 083/471] * util/grub.d/10_kfreebsd.in: Fix improper references to grub-probe by ${grub_probe} --- @@ -54,5 +54,5 @@ index 260dda8..2a48b52 100644 kfreebsd_device="${kfreebsd_device}$(${grub_mkrelpath} / | sed -e "s,/*@$,,")" ;; -- -1.8.1.4 +1.8.2.1 diff --git a/0083-util-grub.d-10_kfreebsd.in-Correct-the-patch-to-zpoo.patch b/0084-util-grub.d-10_kfreebsd.in-Correct-the-patch-to-zpoo.patch similarity index 90% rename from 0083-util-grub.d-10_kfreebsd.in-Correct-the-patch-to-zpoo.patch rename to 0084-util-grub.d-10_kfreebsd.in-Correct-the-patch-to-zpoo.patch index adbf885..2bb2434 100644 --- a/0083-util-grub.d-10_kfreebsd.in-Correct-the-patch-to-zpoo.patch +++ b/0084-util-grub.d-10_kfreebsd.in-Correct-the-patch-to-zpoo.patch @@ -1,7 +1,7 @@ -From 40951063e5fd8c4ae34b942039d38bfe69ffecb3 Mon Sep 17 00:00:00 2001 +From aaf55113bb7174787ffe8aa6878086943238a63e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 3 Jan 2013 23:19:19 +0100 -Subject: [PATCH 083/364] * util/grub.d/10_kfreebsd.in: Correct the +Subject: [PATCH 084/471] * util/grub.d/10_kfreebsd.in: Correct the patch to zpool.cache as it's always in /boot/zfs. Reported by: Yuta Satoh. @@ -42,5 +42,5 @@ index 2a48b52..c123ceb 100644 ;; esac -- -1.8.1.4 +1.8.2.1 diff --git a/0084-grub-core-disk-diskfilter.c-grub_diskfilter_write-Ca.patch b/0085-grub-core-disk-diskfilter.c-grub_diskfilter_write-Ca.patch similarity index 95% rename from 0084-grub-core-disk-diskfilter.c-grub_diskfilter_write-Ca.patch rename to 0085-grub-core-disk-diskfilter.c-grub_diskfilter_write-Ca.patch index 4a3b5db..3fa108e 100644 --- a/0084-grub-core-disk-diskfilter.c-grub_diskfilter_write-Ca.patch +++ b/0085-grub-core-disk-diskfilter.c-grub_diskfilter_write-Ca.patch @@ -1,7 +1,7 @@ -From d064a7c4f3cc8a5faba4d4bc4f4ba82677c7b1d7 Mon Sep 17 00:00:00 2001 +From ba8109f7402ff763cbed5607841d438aab56e2cf Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 5 Jan 2013 15:10:46 +0100 -Subject: [PATCH 084/364] * grub-core/disk/diskfilter.c +Subject: [PATCH 085/471] * grub-core/disk/diskfilter.c (grub_diskfilter_write): Call grub_error properly. * grub-core/disk/ieee1275/nand.c (grub_nand_write): Likewise. * grub-core/disk/loopback.c (grub_loopback_write): Likewise. @@ -71,5 +71,5 @@ index f3b19ef..fffd1bb 100644 static struct grub_disk_dev grub_loopback_dev = -- -1.8.1.4 +1.8.2.1 diff --git a/0085-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch b/0086-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch similarity index 96% rename from 0085-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch rename to 0086-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch index 4ddd0ca..13adf8c 100644 --- a/0085-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch +++ b/0086-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch @@ -1,7 +1,7 @@ -From 3ba196532002293027a6a3e96f8eb1960c70e00c Mon Sep 17 00:00:00 2001 +From 7c6640d26459b059d1f6854907351e90070e643e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 5 Jan 2013 16:53:04 +0100 -Subject: [PATCH 085/364] * grub-core/fs/nilfs2.c +Subject: [PATCH 086/471] * grub-core/fs/nilfs2.c (-grub_nilfs2_palloc_groups_per_desc_block): Rename to ... (grub_nilfs2_palloc_log_groups_per_desc_block): ... this. Return log of groups_per_block. All users updated. @@ -89,5 +89,5 @@ index f36c513..5b34486 100644 return grub_nilfs2_palloc_desc_block_offset_log (data, group, log_entry_size) + 1 -- -1.8.1.4 +1.8.2.1 diff --git a/0086-grub-core-fs-ntfs.c-Eliminate-useless-divisions-in-f.patch b/0087-grub-core-fs-ntfs.c-Eliminate-useless-divisions-in-f.patch similarity index 98% rename from 0086-grub-core-fs-ntfs.c-Eliminate-useless-divisions-in-f.patch rename to 0087-grub-core-fs-ntfs.c-Eliminate-useless-divisions-in-f.patch index 127a015..893c1ef 100644 --- a/0086-grub-core-fs-ntfs.c-Eliminate-useless-divisions-in-f.patch +++ b/0087-grub-core-fs-ntfs.c-Eliminate-useless-divisions-in-f.patch @@ -1,7 +1,7 @@ -From aa380d4323bcc4dae0f8bafdd074466f8bc5bcf5 Mon Sep 17 00:00:00 2001 +From e92606660e0fa6a9cf85eaf62677187965094506 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 5 Jan 2013 17:36:04 +0100 -Subject: [PATCH 086/364] * grub-core/fs/ntfs.c: Eliminate useless +Subject: [PATCH 087/471] * grub-core/fs/ntfs.c: Eliminate useless divisions in favor of shifts. * grub-core/fs/ntfscomp.c: Likewise. * include/grub/ntfs.h (grub_ntfs_data): Replace spc with log_spc. (grub_ntfs_comp): Likewise. @@ -326,5 +326,5 @@ index 0935342..cc28a01 100644 }; -- -1.8.1.4 +1.8.2.1 diff --git a/0087-grub-core-fs-ext2.c-grub_ext2_read_block-Use-shifts-.patch b/0088-grub-core-fs-ext2.c-grub_ext2_read_block-Use-shifts-.patch similarity index 96% rename from 0087-grub-core-fs-ext2.c-grub_ext2_read_block-Use-shifts-.patch rename to 0088-grub-core-fs-ext2.c-grub_ext2_read_block-Use-shifts-.patch index ce105fc..763fcaa 100644 --- a/0087-grub-core-fs-ext2.c-grub_ext2_read_block-Use-shifts-.patch +++ b/0088-grub-core-fs-ext2.c-grub_ext2_read_block-Use-shifts-.patch @@ -1,7 +1,7 @@ -From af8a6a082c9ac9fab22f3eff9e81b5e7085debc4 Mon Sep 17 00:00:00 2001 +From 40eeced3fb25780be27799b2a72a2264ef64163b Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 5 Jan 2013 18:37:34 +0100 -Subject: [PATCH 087/364] * grub-core/fs/ext2.c (grub_ext2_read_block): +Subject: [PATCH 088/471] * grub-core/fs/ext2.c (grub_ext2_read_block): Use shifts rather than divisions. --- @@ -99,5 +99,5 @@ index bd1ab24..cf2e2f4 100644 else { -- -1.8.1.4 +1.8.2.1 diff --git a/0088-grub-core-fs-minix.c-grub_minix_read_file-Simplify-a.patch b/0089-grub-core-fs-minix.c-grub_minix_read_file-Simplify-a.patch similarity index 91% rename from 0088-grub-core-fs-minix.c-grub_minix_read_file-Simplify-a.patch rename to 0089-grub-core-fs-minix.c-grub_minix_read_file-Simplify-a.patch index d0ebda4..80c0202 100644 --- a/0088-grub-core-fs-minix.c-grub_minix_read_file-Simplify-a.patch +++ b/0089-grub-core-fs-minix.c-grub_minix_read_file-Simplify-a.patch @@ -1,7 +1,7 @@ -From 8c3fd8eea724a1490d29937b1d23cde259bf63cb Mon Sep 17 00:00:00 2001 +From 55a1c78a484d48c96291f0f2891745d8b60c2201 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 7 Jan 2013 11:27:18 +0100 -Subject: [PATCH 088/364] * grub-core/fs/minix.c (grub_minix_read_file): +Subject: [PATCH 089/471] * grub-core/fs/minix.c (grub_minix_read_file): Simplify arithmetics. --- @@ -43,5 +43,5 @@ index 1e1c13b..a622533 100644 / (data->block_size << GRUB_DISK_SECTOR_BITS)); blockoff = (((grub_uint32_t) pos) -- -1.8.1.4 +1.8.2.1 diff --git a/0089-docs-grub.texi-grub_cpu-New-subsection.patch b/0090-docs-grub.texi-grub_cpu-New-subsection.patch similarity index 91% rename from 0089-docs-grub.texi-grub_cpu-New-subsection.patch rename to 0090-docs-grub.texi-grub_cpu-New-subsection.patch index 5878960..96e867d 100644 --- a/0089-docs-grub.texi-grub_cpu-New-subsection.patch +++ b/0090-docs-grub.texi-grub_cpu-New-subsection.patch @@ -1,7 +1,7 @@ -From 05f5634a5c5a66d535962a96635a9c153cf67e8f Mon Sep 17 00:00:00 2001 +From 53580ba03c453b315d716fdf6539c4150d0089c3 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 7 Jan 2013 10:43:00 +0000 -Subject: [PATCH 089/364] * docs/grub.texi (grub_cpu): New subsection. +Subject: [PATCH 090/471] * docs/grub.texi (grub_cpu): New subsection. (grub_platform): Likewise. --- @@ -57,5 +57,5 @@ index e23cecc..a92bd96 100644 @subsection icondir -- -1.8.1.4 +1.8.2.1 diff --git a/0090-grub-core-io-bufio.c-grub_bufio_open-Use-grub_zalloc.patch b/0091-grub-core-io-bufio.c-grub_bufio_open-Use-grub_zalloc.patch similarity index 96% rename from 0090-grub-core-io-bufio.c-grub_bufio_open-Use-grub_zalloc.patch rename to 0091-grub-core-io-bufio.c-grub_bufio_open-Use-grub_zalloc.patch index 0428541..2425d3d 100644 --- a/0090-grub-core-io-bufio.c-grub_bufio_open-Use-grub_zalloc.patch +++ b/0091-grub-core-io-bufio.c-grub_bufio_open-Use-grub_zalloc.patch @@ -1,7 +1,7 @@ -From c86f86069fd8d600ebc4ffbd8a786c58fccff886 Mon Sep 17 00:00:00 2001 +From 00e72549c724d80285041e5dac8adc310dd2c746 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 7 Jan 2013 10:45:05 +0000 -Subject: [PATCH 090/364] * grub-core/io/bufio.c (grub_bufio_open): Use +Subject: [PATCH 091/471] * grub-core/io/bufio.c (grub_bufio_open): Use grub_zalloc instead of explicitly zeroing elements. * grub-core/io/gzio.c (grub_gzio_open): Likewise. * grub-core/io/lzopio.c (grub_lzopio_open): Remove explicit zeroing of elements in a structure already allocated using @@ -137,5 +137,5 @@ index ae30e6f..27657d8 100644 /* FIXME: don't test footer on not easily seekable files. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0091-grub-core-kern-disk.c-grub_disk_write-Fix-sector-num.patch b/0092-grub-core-kern-disk.c-grub_disk_write-Fix-sector-num.patch similarity index 93% rename from 0091-grub-core-kern-disk.c-grub_disk_write-Fix-sector-num.patch rename to 0092-grub-core-kern-disk.c-grub_disk_write-Fix-sector-num.patch index f9f27d1..d988f79 100644 --- a/0091-grub-core-kern-disk.c-grub_disk_write-Fix-sector-num.patch +++ b/0092-grub-core-kern-disk.c-grub_disk_write-Fix-sector-num.patch @@ -1,7 +1,7 @@ -From 1ed52ffd389d28a8c1711fedcd9a841258c30e28 Mon Sep 17 00:00:00 2001 +From 2aa6a4fce53d2a43cc00fde2362eb39d1fdb9f4d Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 10 Jan 2013 08:09:26 +0100 -Subject: [PATCH 091/364] * grub-core/kern/disk.c (grub_disk_write): Fix +Subject: [PATCH 092/471] * grub-core/kern/disk.c (grub_disk_write): Fix sector number on 4K sector devices. --- @@ -55,5 +55,5 @@ index 1f55f90..94318af 100644 buf = (const char *) buf + len; size -= len; -- -1.8.1.4 +1.8.2.1 diff --git a/0092-Support-Apple-FAT-binaries-on-non-Apple-platforms.patch b/0093-Support-Apple-FAT-binaries-on-non-Apple-platforms.patch similarity index 97% rename from 0092-Support-Apple-FAT-binaries-on-non-Apple-platforms.patch rename to 0093-Support-Apple-FAT-binaries-on-non-Apple-platforms.patch index ef8a26d..a480fe7 100644 --- a/0092-Support-Apple-FAT-binaries-on-non-Apple-platforms.patch +++ b/0093-Support-Apple-FAT-binaries-on-non-Apple-platforms.patch @@ -1,7 +1,7 @@ -From 474f5d13721ed87fde38bdad282164ee84c1be0a Mon Sep 17 00:00:00 2001 +From 9b1eeacef1a590c4bb1cd99f24b7038e77c3de33 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 10 Jan 2013 12:50:01 +0100 -Subject: [PATCH 092/364] Support Apple FAT binaries on non-Apple +Subject: [PATCH 093/471] Support Apple FAT binaries on non-Apple platforms. * include/grub/macho.h (GRUB_MACHO_FAT_EFI_MAGIC): New define. @@ -146,5 +146,5 @@ index 6a98b6e..21f0714 100644 typedef grub_uint32_t grub_macho_cpu_type_t; typedef grub_uint32_t grub_macho_cpu_subtype_t; -- -1.8.1.4 +1.8.2.1 diff --git a/0093-grub-core-fs-ntfs.c-Ue-more-appropriate-types.patch b/0094-grub-core-fs-ntfs.c-Ue-more-appropriate-types.patch similarity index 99% rename from 0093-grub-core-fs-ntfs.c-Ue-more-appropriate-types.patch rename to 0094-grub-core-fs-ntfs.c-Ue-more-appropriate-types.patch index 1607a07..0299142 100644 --- a/0093-grub-core-fs-ntfs.c-Ue-more-appropriate-types.patch +++ b/0094-grub-core-fs-ntfs.c-Ue-more-appropriate-types.patch @@ -1,7 +1,7 @@ -From 75bd81540fab6830213d51e024b53d51f3fe6dcb Mon Sep 17 00:00:00 2001 +From 6ec699808b2c156f52ec3867b2cc20c8a66116d3 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 11 Jan 2013 07:41:05 +0100 -Subject: [PATCH 093/364] * grub-core/fs/ntfs.c: Ue more appropriate +Subject: [PATCH 094/471] * grub-core/fs/ntfs.c: Ue more appropriate types. * grub-core/fs/ntfscomp.c: Likewise. * include/grub/ntfs.h: Likewise. @@ -624,5 +624,5 @@ index cc28a01..37983c4 100644 grub_size_t len, struct grub_ntfs_rlst * ctx, -- -1.8.1.4 +1.8.2.1 diff --git a/0094-Import-gcrypt-public-key-cryptography-and-implement-.patch b/0095-Import-gcrypt-public-key-cryptography-and-implement-.patch similarity index 99% rename from 0094-Import-gcrypt-public-key-cryptography-and-implement-.patch rename to 0095-Import-gcrypt-public-key-cryptography-and-implement-.patch index cf8fd4e..9667471 100644 --- a/0094-Import-gcrypt-public-key-cryptography-and-implement-.patch +++ b/0095-Import-gcrypt-public-key-cryptography-and-implement-.patch @@ -1,7 +1,7 @@ -From 5d27e1e9a4819f8f791a43c968ad49f11615d67a Mon Sep 17 00:00:00 2001 +From e64d71f2706db5a3a99c174a3ee7bf3885fb6e35 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 11 Jan 2013 21:32:42 +0100 -Subject: [PATCH 094/364] Import gcrypt public-key cryptography and +Subject: [PATCH 095/471] Import gcrypt public-key cryptography and implement signature checking. --- @@ -44056,5 +44056,5 @@ index 0000000..1cf31bd +p \ No newline at end of file -- -1.8.1.4 +1.8.2.1 diff --git a/0095-Clean-up-dangling-references-to-grub-setup.patch b/0096-Clean-up-dangling-references-to-grub-setup.patch similarity index 98% rename from 0095-Clean-up-dangling-references-to-grub-setup.patch rename to 0096-Clean-up-dangling-references-to-grub-setup.patch index 631ecfd..4bf6cc2 100644 --- a/0095-Clean-up-dangling-references-to-grub-setup.patch +++ b/0096-Clean-up-dangling-references-to-grub-setup.patch @@ -1,7 +1,7 @@ -From d803dd359dd431cad08e95952f90c3f4f5acc9b7 Mon Sep 17 00:00:00 2001 +From d1a9a3ec88483b5f1aa1e4a6c8bc38d47efa73af Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sat, 12 Jan 2013 13:30:37 +0000 -Subject: [PATCH 095/364] Clean up dangling references to grub-setup. Fixes +Subject: [PATCH 096/471] Clean up dangling references to grub-setup. Fixes Ubuntu bug #1082045. * docs/grub.texi (Images): Refer generally to grub-install rather @@ -220,5 +220,5 @@ index 218bbd9..aac27c7 100644 gettext "Report bugs to ."; echo } -- -1.8.1.4 +1.8.2.1 diff --git a/0096-autogen.sh-Do-not-try-to-delete-nonexistant-files.patch b/0097-autogen.sh-Do-not-try-to-delete-nonexistant-files.patch similarity index 95% rename from 0096-autogen.sh-Do-not-try-to-delete-nonexistant-files.patch rename to 0097-autogen.sh-Do-not-try-to-delete-nonexistant-files.patch index a3f830e..eb086da 100644 --- a/0096-autogen.sh-Do-not-try-to-delete-nonexistant-files.patch +++ b/0097-autogen.sh-Do-not-try-to-delete-nonexistant-files.patch @@ -1,7 +1,7 @@ -From dc00947d8ca3b793b23cf0c3c3c3af24ae57e043 Mon Sep 17 00:00:00 2001 +From babdc8b1ff0e83bb9c03fa7b28240adbdd8bba34 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 12 Jan 2013 16:14:09 +0100 -Subject: [PATCH 096/364] * autogen.sh: Do not try to delete nonexistant +Subject: [PATCH 097/471] * autogen.sh: Do not try to delete nonexistant files. * util/import_gcrypth.sed: Add some missing header removals. --- @@ -72,5 +72,5 @@ index 1cf31bd..dead8e6 100644 p \ No newline at end of file -- -1.8.1.4 +1.8.2.1 diff --git a/0097-Remove-autogenerated-files-from-VCS.patch b/0098-Remove-autogenerated-files-from-VCS.patch similarity index 99% rename from 0097-Remove-autogenerated-files-from-VCS.patch rename to 0098-Remove-autogenerated-files-from-VCS.patch index 9537908..bf845cf 100644 --- a/0097-Remove-autogenerated-files-from-VCS.patch +++ b/0098-Remove-autogenerated-files-from-VCS.patch @@ -1,7 +1,7 @@ -From 1a2fd466e880636d53969b1c614d223ed94cf35b Mon Sep 17 00:00:00 2001 +From 4f807b753f72016b58e78342cf218ac14ff5204a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 12 Jan 2013 16:17:31 +0100 -Subject: [PATCH 097/364] Remove autogenerated files from VCS +Subject: [PATCH 098/471] Remove autogenerated files from VCS --- .bzrignore | 2 + @@ -9,6 +9,16 @@ Subject: [PATCH 097/364] Remove autogenerated files from VCS 2 files changed, 2 insertions(+), 1333 deletions(-) delete mode 100644 include/grub/gcrypt/gcrypt.h +diff --git a/.bzrignore b/.bzrignore +index e05e5d9..c6797ad 100644 +--- a/.bzrignore ++++ b/.bzrignore +@@ -172,3 +172,5 @@ Makefile.utilgcry.def + po/*.po + po/*.gmo + po/LINGUAS ++include/grub/gcrypt/gcrypt.h ++include/grub/gcrypt/g10lib.h diff --git a/include/grub/gcrypt/gcrypt.h b/include/grub/gcrypt/gcrypt.h deleted file mode 100644 index fc83571..0000000 @@ -1349,5 +1359,5 @@ index fc83571..0000000 -@emacs_local_vars_end@ -*/ -- -1.8.1.4 +1.8.2.1 diff --git a/0098-grub-core-lib-libgcrypt_wrap-mem.c-_gcry_log_bug-Mak.patch b/0099-grub-core-lib-libgcrypt_wrap-mem.c-_gcry_log_bug-Mak.patch similarity index 89% rename from 0098-grub-core-lib-libgcrypt_wrap-mem.c-_gcry_log_bug-Mak.patch rename to 0099-grub-core-lib-libgcrypt_wrap-mem.c-_gcry_log_bug-Mak.patch index cf4af16..2d22759 100644 --- a/0098-grub-core-lib-libgcrypt_wrap-mem.c-_gcry_log_bug-Mak.patch +++ b/0099-grub-core-lib-libgcrypt_wrap-mem.c-_gcry_log_bug-Mak.patch @@ -1,7 +1,7 @@ -From a718c4254f78dd96e9fa1c1e704ba337f8e009e0 Mon Sep 17 00:00:00 2001 +From 9042354c7f7656b6d21cc99241dc637e702e1962 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 12 Jan 2013 16:21:06 +0100 -Subject: [PATCH 098/364] * grub-core/lib/libgcrypt_wrap/mem.c +Subject: [PATCH 099/471] * grub-core/lib/libgcrypt_wrap/mem.c (_gcry_log_bug): Make gcrypt bugs fatal. --- @@ -37,5 +37,5 @@ index a9f0aff..64e8b62 100644 gcry_err_code_t -- -1.8.1.4 +1.8.2.1 diff --git a/0099-grub-core-lib-libgcrypt_wrap-mem.c-gcry_x-alloc-Make.patch b/0100-grub-core-lib-libgcrypt_wrap-mem.c-gcry_x-alloc-Make.patch similarity index 93% rename from 0099-grub-core-lib-libgcrypt_wrap-mem.c-gcry_x-alloc-Make.patch rename to 0100-grub-core-lib-libgcrypt_wrap-mem.c-gcry_x-alloc-Make.patch index 7a7670f..f54e2ba 100644 --- a/0099-grub-core-lib-libgcrypt_wrap-mem.c-gcry_x-alloc-Make.patch +++ b/0100-grub-core-lib-libgcrypt_wrap-mem.c-gcry_x-alloc-Make.patch @@ -1,7 +1,7 @@ -From 076ad04668ff689b023166931edca6fa03530bf9 Mon Sep 17 00:00:00 2001 +From 4cdf790013d4c087da018961e5081562df307bbf Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 12 Jan 2013 16:27:37 +0100 -Subject: [PATCH 099/364] * grub-core/lib/libgcrypt_wrap/mem.c +Subject: [PATCH 100/471] * grub-core/lib/libgcrypt_wrap/mem.c (gcry_x*alloc): Make out of memory fatal. --- @@ -86,5 +86,5 @@ index 64e8b62..94f9d65 100644 void -- -1.8.1.4 +1.8.2.1 diff --git a/0100-grub-core-commands-verify.c-Mark-messages-for-transl.patch b/0101-grub-core-commands-verify.c-Mark-messages-for-transl.patch similarity index 99% rename from 0100-grub-core-commands-verify.c-Mark-messages-for-transl.patch rename to 0101-grub-core-commands-verify.c-Mark-messages-for-transl.patch index 29eb178..e02e92e 100644 --- a/0100-grub-core-commands-verify.c-Mark-messages-for-transl.patch +++ b/0101-grub-core-commands-verify.c-Mark-messages-for-transl.patch @@ -1,7 +1,7 @@ -From 3db3ccbf0ad7a5c4593f94ea9660552ab82f6f08 Mon Sep 17 00:00:00 2001 +From 4ae6c0a73dc061e5cd6510af7fc57c8e87748841 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 12 Jan 2013 16:31:17 +0100 -Subject: [PATCH 100/364] * grub-core/commands/verify.c: Mark messages +Subject: [PATCH 101/471] * grub-core/commands/verify.c: Mark messages for translating. --- @@ -347,5 +347,5 @@ index 415e4bf..66a027f 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0101-Remove-nested-functions-from-PCI-iterators.patch b/0102-Remove-nested-functions-from-PCI-iterators.patch similarity index 99% rename from 0101-Remove-nested-functions-from-PCI-iterators.patch rename to 0102-Remove-nested-functions-from-PCI-iterators.patch index dc8583a..82d5042 100644 --- a/0101-Remove-nested-functions-from-PCI-iterators.patch +++ b/0102-Remove-nested-functions-from-PCI-iterators.patch @@ -1,7 +1,7 @@ -From ded88969f8361b022582023d32e0a8e9f30eafe0 Mon Sep 17 00:00:00 2001 +From ea82e6e679c8a29563116142bc474357c552a353 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sun, 13 Jan 2013 01:10:41 +0000 -Subject: [PATCH 101/364] Remove nested functions from PCI iterators. +Subject: [PATCH 102/471] Remove nested functions from PCI iterators. * grub-core/bus/pci.c (grub_pci_iterate): Add hook_data argument, passed to hook. Update all callers to pass appropriate hook data. @@ -1210,5 +1210,5 @@ index aaf0101..e163d47 100644 struct grub_pci_dma_chunk; -- -1.8.1.4 +1.8.2.1 diff --git a/0102-util-grub-mkimage.c-generate_image-Fix-size-of-publi.patch b/0103-util-grub-mkimage.c-generate_image-Fix-size-of-publi.patch similarity index 90% rename from 0102-util-grub-mkimage.c-generate_image-Fix-size-of-publi.patch rename to 0103-util-grub-mkimage.c-generate_image-Fix-size-of-publi.patch index 4aba9d6..c84b4a7 100644 --- a/0102-util-grub-mkimage.c-generate_image-Fix-size-of-publi.patch +++ b/0103-util-grub-mkimage.c-generate_image-Fix-size-of-publi.patch @@ -1,7 +1,7 @@ -From e482ffb0dcaa5a0b5d69aeaa178ece164cf9ba8c Mon Sep 17 00:00:00 2001 +From 10d401fa8e217dab7d3bea3bc75ce2ab7248b42a Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sun, 13 Jan 2013 01:47:46 +0000 -Subject: [PATCH 102/364] * util/grub-mkimage.c (generate_image): Fix "size of +Subject: [PATCH 103/471] * util/grub-mkimage.c (generate_image): Fix "size of public key" info message. --- @@ -40,5 +40,5 @@ index 23a9970..d0eecf2 100644 } } -- -1.8.1.4 +1.8.2.1 diff --git a/0103-New-command-list_trusted.patch b/0104-New-command-list_trusted.patch similarity index 96% rename from 0103-New-command-list_trusted.patch rename to 0104-New-command-list_trusted.patch index eaa43de..8c7813c 100644 --- a/0103-New-command-list_trusted.patch +++ b/0104-New-command-list_trusted.patch @@ -1,7 +1,7 @@ -From 350332f3a15fa7968366cea163a1c88753af80ac Mon Sep 17 00:00:00 2001 +From 232b501f28ef5a2b6c67a73a4b3babe8a3457330 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 13 Jan 2013 17:49:05 +0100 -Subject: [PATCH 103/364] New command list_trusted. +Subject: [PATCH 104/471] New command list_trusted. * grub-core/commands/verify.c (grub_cmd_list): New function. --- @@ -93,5 +93,5 @@ index 66a027f..d399d0f 100644 grub_unregister_command (cmd_distrust); } -- -1.8.1.4 +1.8.2.1 diff --git a/0104-Fix-compilation-with-older-compilers.patch b/0105-Fix-compilation-with-older-compilers.patch similarity index 98% rename from 0104-Fix-compilation-with-older-compilers.patch rename to 0105-Fix-compilation-with-older-compilers.patch index 252ebbb..f965fc9 100644 --- a/0104-Fix-compilation-with-older-compilers.patch +++ b/0105-Fix-compilation-with-older-compilers.patch @@ -1,7 +1,7 @@ -From 6ac2ef1dc40513b7c2eb2e0d3026e6d6d86cae1d Mon Sep 17 00:00:00 2001 +From 395b75cfab614ada328c1dd88b94a4e5867f641c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 13 Jan 2013 21:06:25 +0100 -Subject: [PATCH 104/364] Fix compilation with older compilers. +Subject: [PATCH 105/471] Fix compilation with older compilers. * grub-core/Makefile.core.def (mpi): Add mpi-inline.c. * grub-core/lib/libgcrypt_wrap/cipher_wrap.h: Remove redundant @@ -204,5 +204,5 @@ index dead8e6..6cb53cf 100644 p \ No newline at end of file -- -1.8.1.4 +1.8.2.1 diff --git a/0105-grub-core-kern-emu-hostdisk.c-read_device_map-Explic.patch b/0106-grub-core-kern-emu-hostdisk.c-read_device_map-Explic.patch similarity index 96% rename from 0105-grub-core-kern-emu-hostdisk.c-read_device_map-Explic.patch rename to 0106-grub-core-kern-emu-hostdisk.c-read_device_map-Explic.patch index b8bba8e..8c51ad4 100644 --- a/0105-grub-core-kern-emu-hostdisk.c-read_device_map-Explic.patch +++ b/0106-grub-core-kern-emu-hostdisk.c-read_device_map-Explic.patch @@ -1,7 +1,7 @@ -From 423468a725a578a1829dac2278fd68da52843106 Mon Sep 17 00:00:00 2001 +From df5ceb21a0574898799f6571555b8bf7da539b2b Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 13 Jan 2013 22:45:16 +0100 -Subject: [PATCH 105/364] * grub-core/kern/emu/hostdisk.c +Subject: [PATCH 106/471] * grub-core/kern/emu/hostdisk.c (read_device_map): Explicitly delimit path in strings using quotes. * util/getroot.c (grub_guess_root_devices): Likewise. (grub_make_system_path_relative_to_its_root): Likewise. * @@ -107,5 +107,5 @@ index 9de9ffc..f0a34b5 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0106-Remove-nested-functions-from-memory-map-iterators.patch b/0107-Remove-nested-functions-from-memory-map-iterators.patch similarity index 99% rename from 0106-Remove-nested-functions-from-memory-map-iterators.patch rename to 0107-Remove-nested-functions-from-memory-map-iterators.patch index 0aacd5a..995da00 100644 --- a/0106-Remove-nested-functions-from-memory-map-iterators.patch +++ b/0107-Remove-nested-functions-from-memory-map-iterators.patch @@ -1,7 +1,7 @@ -From adab1994c1bbc38744a4631c7d1df08f3439c471 Mon Sep 17 00:00:00 2001 +From 8cfbc2324ec86aa465ec9a70d61aafe5ae38c2ab Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 15 Jan 2013 12:02:35 +0000 -Subject: [PATCH 106/364] Remove nested functions from memory map iterators. +Subject: [PATCH 107/471] Remove nested functions from memory map iterators. * grub-core/efiemu/mm.c (grub_efiemu_mmap_iterate): Add hook_data argument, passed to hook. @@ -3552,5 +3552,5 @@ index 61470d7..3311fcb 100644 int grub_mmap_register (grub_uint64_t start, grub_uint64_t size, int type); -- -1.8.1.4 +1.8.2.1 diff --git a/0107-Remove-nested-functions-from-script-reading-and-pars.patch b/0108-Remove-nested-functions-from-script-reading-and-pars.patch similarity index 99% rename from 0107-Remove-nested-functions-from-script-reading-and-pars.patch rename to 0108-Remove-nested-functions-from-script-reading-and-pars.patch index 220f58a..239d622 100644 --- a/0107-Remove-nested-functions-from-script-reading-and-pars.patch +++ b/0108-Remove-nested-functions-from-script-reading-and-pars.patch @@ -1,7 +1,7 @@ -From 14b058a0b48a201ce5d139e36b64ee6590075845 Mon Sep 17 00:00:00 2001 +From 6b2f4673544608621b9c527983037f446caa201d Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 15 Jan 2013 12:03:25 +0000 -Subject: [PATCH 107/364] Remove nested functions from script reading and +Subject: [PATCH 108/471] Remove nested functions from script reading and parsing. * grub-core/kern/parser.c (grub_parser_split_cmdline): Add @@ -812,5 +812,5 @@ index 73d51f0..203a3ff 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0108-grub-core-script-lexer.c-grub_script_lexer_init-Rena.patch b/0109-grub-core-script-lexer.c-grub_script_lexer_init-Rena.patch similarity index 92% rename from 0108-grub-core-script-lexer.c-grub_script_lexer_init-Rena.patch rename to 0109-grub-core-script-lexer.c-grub_script_lexer_init-Rena.patch index 066d901..caa2729 100644 --- a/0108-grub-core-script-lexer.c-grub_script_lexer_init-Rena.patch +++ b/0109-grub-core-script-lexer.c-grub_script_lexer_init-Rena.patch @@ -1,7 +1,7 @@ -From 60c3912bdb7a4dcc6fed286d18d8ce83d4f9b132 Mon Sep 17 00:00:00 2001 +From 6e8d1dda03d29aae8ae79b62a40ed95fbf85bbd2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 16 Jan 2013 09:06:11 +0100 -Subject: [PATCH 108/364] * grub-core/script/lexer.c +Subject: [PATCH 109/471] * grub-core/script/lexer.c (grub_script_lexer_init): Rename getline argument to prevent name collision. @@ -46,5 +46,5 @@ index cb9d6b0..128d238 100644 /* The other elements of lexerstate are all zeros already. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0109-Improve-bidi-handling-in-entry-editor.patch b/0110-Improve-bidi-handling-in-entry-editor.patch similarity index 99% rename from 0109-Improve-bidi-handling-in-entry-editor.patch rename to 0110-Improve-bidi-handling-in-entry-editor.patch index aff2d73..277b642 100644 --- a/0109-Improve-bidi-handling-in-entry-editor.patch +++ b/0110-Improve-bidi-handling-in-entry-editor.patch @@ -1,7 +1,7 @@ -From c9b4dc3d736299b64bf79c87cef9b745d041c6ec Mon Sep 17 00:00:00 2001 +From 1ce5f411b75c2bcd899e1a838d1d6292d6c76972 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 16 Jan 2013 13:41:16 +0100 -Subject: [PATCH 109/364] Improve bidi handling in entry editor. +Subject: [PATCH 110/471] Improve bidi handling in entry editor. --- ChangeLog | 4 + @@ -1368,5 +1368,5 @@ index 763e25e..eb5051a 100644 + #endif -- -1.8.1.4 +1.8.2.1 diff --git a/0110-New-terminal-outputs-using-serial-morse-and-spkmodem.patch b/0111-New-terminal-outputs-using-serial-morse-and-spkmodem.patch similarity index 99% rename from 0110-New-terminal-outputs-using-serial-morse-and-spkmodem.patch rename to 0111-New-terminal-outputs-using-serial-morse-and-spkmodem.patch index 777fae9..60ada0e 100644 --- a/0110-New-terminal-outputs-using-serial-morse-and-spkmodem.patch +++ b/0111-New-terminal-outputs-using-serial-morse-and-spkmodem.patch @@ -1,7 +1,7 @@ -From ec44b444dcdb795834b085825341771296f469ad Mon Sep 17 00:00:00 2001 +From ded439de5b72d33474f96fbc08b9687a76c938ac Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 16 Jan 2013 20:39:54 +0100 -Subject: [PATCH 110/364] New terminal outputs using serial: morse and +Subject: [PATCH 111/471] New terminal outputs using serial: morse and spkmodem. --- @@ -801,5 +801,5 @@ index 0000000..cbec3af + return 0; +} -- -1.8.1.4 +1.8.2.1 diff --git a/0111-Add-new-command-pcidump.patch b/0112-Add-new-command-pcidump.patch similarity index 98% rename from 0111-Add-new-command-pcidump.patch rename to 0112-Add-new-command-pcidump.patch index 0ca82c1..7ff94ed 100644 --- a/0111-Add-new-command-pcidump.patch +++ b/0112-Add-new-command-pcidump.patch @@ -1,7 +1,7 @@ -From d230dcf6c99b852adcee4a26c4c81dd15b83ce56 Mon Sep 17 00:00:00 2001 +From d08c1b02d9227c5ac0e335736f93e4e06b305b80 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 16 Jan 2013 20:44:11 +0100 -Subject: [PATCH 111/364] Add new command pcidump. +Subject: [PATCH 112/471] Add new command pcidump. --- ChangeLog | 4 ++ @@ -227,5 +227,5 @@ index 6fdf0e0..4eaba7c 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0112-Rewrite-spkmodem-to-use-PIT-for-timing.-Double-the-s.patch b/0113-Rewrite-spkmodem-to-use-PIT-for-timing.-Double-the-s.patch similarity index 97% rename from 0112-Rewrite-spkmodem-to-use-PIT-for-timing.-Double-the-s.patch rename to 0113-Rewrite-spkmodem-to-use-PIT-for-timing.-Double-the-s.patch index 41e4579..204b71b 100644 --- a/0112-Rewrite-spkmodem-to-use-PIT-for-timing.-Double-the-s.patch +++ b/0113-Rewrite-spkmodem-to-use-PIT-for-timing.-Double-the-s.patch @@ -1,7 +1,7 @@ -From e04d3c4daab9688ee2ccfb222be4cbb57e02184f Mon Sep 17 00:00:00 2001 +From 66d63873e7eeb1cebf49a56e91856d4a9644a8e2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 17 Jan 2013 20:06:52 +0100 -Subject: [PATCH 112/364] Rewrite spkmodem to use PIT for timing. Double +Subject: [PATCH 113/471] Rewrite spkmodem to use PIT for timing. Double the speed. --- @@ -173,5 +173,5 @@ index cbec3af..4cc88b8 100644 bitn--; if (bitn < 0) -- -1.8.1.4 +1.8.2.1 diff --git a/0113-Add-license-header-to-spkmodem-recv.c.patch b/0114-Add-license-header-to-spkmodem-recv.c.patch similarity index 92% rename from 0113-Add-license-header-to-spkmodem-recv.c.patch rename to 0114-Add-license-header-to-spkmodem-recv.c.patch index cec9fc0..09d3b44 100644 --- a/0113-Add-license-header-to-spkmodem-recv.c.patch +++ b/0114-Add-license-header-to-spkmodem-recv.c.patch @@ -1,7 +1,7 @@ -From 9c17bace090e3609df7bea42e840ecfeb2eb39e1 Mon Sep 17 00:00:00 2001 +From 1ba9c912459e367cf685a95aed87ab0179733eab Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 18 Jan 2013 11:54:28 +0100 -Subject: [PATCH 113/364] Add license header to spkmodem-recv.c. +Subject: [PATCH 114/471] Add license header to spkmodem-recv.c. --- ChangeLog | 4 ++++ @@ -47,5 +47,5 @@ index 4cc88b8..9075f9a 100644 #include #include -- -1.8.1.4 +1.8.2.1 diff --git a/0114-Fix-typos-for-developer-and-development.patch b/0115-Fix-typos-for-developer-and-development.patch similarity index 93% rename from 0114-Fix-typos-for-developer-and-development.patch rename to 0115-Fix-typos-for-developer-and-development.patch index 6af4c92..b2ee611 100644 --- a/0114-Fix-typos-for-developer-and-development.patch +++ b/0115-Fix-typos-for-developer-and-development.patch @@ -1,7 +1,7 @@ -From 3597696bb12a2de057ab658596eb5c6d1b2aab66 Mon Sep 17 00:00:00 2001 +From c8cffbd532a02b6abaf75316b3296f84f40abbd0 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sun, 20 Jan 2013 13:24:47 +0000 -Subject: [PATCH 114/364] Fix typos for "developer" and "development". +Subject: [PATCH 115/471] Fix typos for "developer" and "development". --- ChangeLog | 4 ++++ @@ -57,5 +57,5 @@ index f36d4cd..33f860a 100644 ptr += taglength; -- -1.8.1.4 +1.8.2.1 diff --git a/0115-Remove-nested-functions-from-device-iterators.patch b/0116-Remove-nested-functions-from-device-iterators.patch similarity index 99% rename from 0115-Remove-nested-functions-from-device-iterators.patch rename to 0116-Remove-nested-functions-from-device-iterators.patch index 2d92860..d449752 100644 --- a/0115-Remove-nested-functions-from-device-iterators.patch +++ b/0116-Remove-nested-functions-from-device-iterators.patch @@ -1,7 +1,7 @@ -From ba97422da261d8d41d61af28af5344c47a723cff Mon Sep 17 00:00:00 2001 +From 5092c4144b402744481e435bedca2bcbda3839e4 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sun, 20 Jan 2013 15:52:15 +0000 -Subject: [PATCH 115/364] Remove nested functions from device iterators. +Subject: [PATCH 116/471] Remove nested functions from device iterators. * include/grub/arc/arc.h (grub_arc_iterate_devs_hook_t): New type. (grub_arc_iterate_devs): Add hook_data argument. @@ -4095,5 +4095,5 @@ index de0417f..187345a 100644 /* Make sure that the last blocklist is a terminator. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0116-Remove-nested-functions-from-ELF-iterators.patch b/0117-Remove-nested-functions-from-ELF-iterators.patch similarity index 99% rename from 0116-Remove-nested-functions-from-ELF-iterators.patch rename to 0117-Remove-nested-functions-from-ELF-iterators.patch index 409206b..0245d33 100644 --- a/0116-Remove-nested-functions-from-ELF-iterators.patch +++ b/0117-Remove-nested-functions-from-ELF-iterators.patch @@ -1,7 +1,7 @@ -From 01b48ebb8a7fcf2b6dd29517726f173da0d42048 Mon Sep 17 00:00:00 2001 +From b12fd30b36756327edca502b8af4e8eee264d564 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sun, 20 Jan 2013 15:54:09 +0000 -Subject: [PATCH 116/364] Remove nested functions from ELF iterators. +Subject: [PATCH 117/471] Remove nested functions from ELF iterators. --- ChangeLog | 4 + @@ -559,5 +559,5 @@ index aae95f5..d1a8d54 100644 #endif /* ! GRUB_ELFLOAD_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0117-util-grub-script-check.c-main-Uniform-the-error-mess.patch b/0118-util-grub-script-check.c-main-Uniform-the-error-mess.patch similarity index 89% rename from 0117-util-grub-script-check.c-main-Uniform-the-error-mess.patch rename to 0118-util-grub-script-check.c-main-Uniform-the-error-mess.patch index ae5db17..c1b3f9c 100644 --- a/0117-util-grub-script-check.c-main-Uniform-the-error-mess.patch +++ b/0118-util-grub-script-check.c-main-Uniform-the-error-mess.patch @@ -1,7 +1,7 @@ -From 0b5d3a484eb1e0f2289065366f329b25906dfbbf Mon Sep 17 00:00:00 2001 +From cdb3e2bd06aacff0c75034d360753dae90e7f104 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 20 Jan 2013 22:05:55 +0100 -Subject: [PATCH 117/364] * util/grub-script-check.c (main): Uniform the +Subject: [PATCH 118/471] * util/grub-script-check.c (main): Uniform the error message. --- @@ -35,5 +35,5 @@ index 203a3ff..48c772a 100644 argp_help (&argp, stderr, ARGP_HELP_STD_USAGE, program); free(program); -- -1.8.1.4 +1.8.2.1 diff --git a/0118-docs-grub.texi-Simple-configuration-Clarify-GRUB_HID.patch b/0119-docs-grub.texi-Simple-configuration-Clarify-GRUB_HID.patch similarity index 92% rename from 0118-docs-grub.texi-Simple-configuration-Clarify-GRUB_HID.patch rename to 0119-docs-grub.texi-Simple-configuration-Clarify-GRUB_HID.patch index c0f9407..a007503 100644 --- a/0118-docs-grub.texi-Simple-configuration-Clarify-GRUB_HID.patch +++ b/0119-docs-grub.texi-Simple-configuration-Clarify-GRUB_HID.patch @@ -1,7 +1,7 @@ -From 652031cd423e0c17b40fb63e6882809ee85167fc Mon Sep 17 00:00:00 2001 +From 5aeecd9f2ac75a500e74f96256371b501f9d2d24 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Sun, 20 Jan 2013 22:42:08 +0100 -Subject: [PATCH 118/364] * docs/grub.texi (Simple configuration): +Subject: [PATCH 119/471] * docs/grub.texi (Simple configuration): Clarify GRUB_HIDDEN_TIMEOUT is interrupted by ESC. --- @@ -43,5 +43,5 @@ index 2dc0cbe..fbbcfb9 100644 @item GRUB_HIDDEN_TIMEOUT_QUIET -- -1.8.1.4 +1.8.2.1 diff --git a/0119-Split-long-USB-transfers-into-short-ones.patch b/0120-Split-long-USB-transfers-into-short-ones.patch similarity index 93% rename from 0119-Split-long-USB-transfers-into-short-ones.patch rename to 0120-Split-long-USB-transfers-into-short-ones.patch index 0232a87..db96759 100644 --- a/0119-Split-long-USB-transfers-into-short-ones.patch +++ b/0120-Split-long-USB-transfers-into-short-ones.patch @@ -1,7 +1,7 @@ -From 1e5b1dd686ca089f9b4034ec26541e7515c9fa58 Mon Sep 17 00:00:00 2001 +From 2c1ea139e754820b55f58bdc32f3376671c453db Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 20 Jan 2013 22:45:53 +0100 -Subject: [PATCH 119/364] Split long USB transfers into short ones. +Subject: [PATCH 120/471] Split long USB transfers into short ones. --- ChangeLog | 4 ++++ @@ -67,5 +67,5 @@ index 5ee276d..5429007 100644 { GRUB_USB_TRANSFER_TYPE_IN, -- -1.8.1.4 +1.8.2.1 diff --git a/0120-include-grub-elf.h-Update-ARM-definitions-based-on-b.patch b/0121-include-grub-elf.h-Update-ARM-definitions-based-on-b.patch similarity index 96% rename from 0120-include-grub-elf.h-Update-ARM-definitions-based-on-b.patch rename to 0121-include-grub-elf.h-Update-ARM-definitions-based-on-b.patch index 9ac3926..f3eb62e 100644 --- a/0120-include-grub-elf.h-Update-ARM-definitions-based-on-b.patch +++ b/0121-include-grub-elf.h-Update-ARM-definitions-based-on-b.patch @@ -1,7 +1,7 @@ -From 9775ebe3966c84e7b86ea66bc5cc7a828391c7f2 Mon Sep 17 00:00:00 2001 -From: Leif Lindholm +From 12afe18a58fd41bbf739b71c08409283dca2a8d8 Mon Sep 17 00:00:00 2001 +From: Leif Lindholm Date: Sun, 20 Jan 2013 23:01:47 +0100 -Subject: [PATCH 120/364] * include/grub/elf.h: Update ARM definitions +Subject: [PATCH 121/471] * include/grub/elf.h: Update ARM definitions based on binutils. --- @@ -149,5 +149,5 @@ index 9a75b52..d4a2a5f 100644 #define R_ARM_RSBREL32 250 #define R_ARM_THM_RPC22 251 -- -1.8.1.4 +1.8.2.1 diff --git a/0121-conf-Makefile.common-Fix-autogen-rules-to-pass-defin.patch b/0122-conf-Makefile.common-Fix-autogen-rules-to-pass-defin.patch similarity index 94% rename from 0121-conf-Makefile.common-Fix-autogen-rules-to-pass-defin.patch rename to 0122-conf-Makefile.common-Fix-autogen-rules-to-pass-defin.patch index 35aa12e..74edd99 100644 --- a/0121-conf-Makefile.common-Fix-autogen-rules-to-pass-defin.patch +++ b/0122-conf-Makefile.common-Fix-autogen-rules-to-pass-defin.patch @@ -1,7 +1,7 @@ -From e07d75a6383eee9001fe03500dea921ca257bbf7 Mon Sep 17 00:00:00 2001 +From d79401f4ebfcae849c514bfed11e3562651c8a86 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Sun, 20 Jan 2013 23:44:42 +0100 -Subject: [PATCH 121/364] * conf/Makefile.common: Fix autogen rules to +Subject: [PATCH 122/471] * conf/Makefile.common: Fix autogen rules to pass definition files on stdin; Makefile.util.am needs Makefile.utilgcry.def @@ -44,5 +44,5 @@ index 5b9cd92..75c0a5e 100644 + cat $(top_srcdir)/grub-core/Makefile.core.def $(top_srcdir)/grub-core/Makefile.gcry.def | autogen -T $(top_srcdir)/Makefile.tpl | sed -e '/^$$/{N;/^\\n$$/D;}' > $@.new || (rm -f $@.new; exit 1) mv $@.new $@ -- -1.8.1.4 +1.8.2.1 diff --git a/0122-grub-core-loader-i386-linux.c-grub_cmd_initrd-Don-t-.patch b/0123-grub-core-loader-i386-linux.c-grub_cmd_initrd-Don-t-.patch similarity index 91% rename from 0122-grub-core-loader-i386-linux.c-grub_cmd_initrd-Don-t-.patch rename to 0123-grub-core-loader-i386-linux.c-grub_cmd_initrd-Don-t-.patch index 66f3f6c..bcb05ef 100644 --- a/0122-grub-core-loader-i386-linux.c-grub_cmd_initrd-Don-t-.patch +++ b/0123-grub-core-loader-i386-linux.c-grub_cmd_initrd-Don-t-.patch @@ -1,7 +1,7 @@ -From 092f6d440ed6015b5216e4eda1e8adeb9922d064 Mon Sep 17 00:00:00 2001 +From e98482f5ae472fb1f27a589dfb769c03121992ba Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Sun, 20 Jan 2013 23:03:35 +0000 -Subject: [PATCH 122/364] * grub-core/loader/i386/linux.c (grub_cmd_initrd): +Subject: [PATCH 123/471] * grub-core/loader/i386/linux.c (grub_cmd_initrd): Don't add the initrd size to addr_min, since the initrd will be allocated after this address. @@ -39,5 +39,5 @@ index 41357a5..92cabfb 100644 /* Put the initrd as high as possible, 4KiB aligned. */ addr = (addr_max - size) & ~0xFFF; -- -1.8.1.4 +1.8.2.1 diff --git a/0123-util-grub-mkimage.c-main-Postpone-freeing-arguments..patch b/0124-util-grub-mkimage.c-main-Postpone-freeing-arguments..patch similarity index 89% rename from 0123-util-grub-mkimage.c-main-Postpone-freeing-arguments..patch rename to 0124-util-grub-mkimage.c-main-Postpone-freeing-arguments..patch index 0384809..9db67a2 100644 --- a/0123-util-grub-mkimage.c-main-Postpone-freeing-arguments..patch +++ b/0124-util-grub-mkimage.c-main-Postpone-freeing-arguments..patch @@ -1,7 +1,7 @@ -From 1696cf18731d8be3262fb35137dc9b463caf6c4f Mon Sep 17 00:00:00 2001 +From d47a9c22d29f5237a0ecf981c70e55bb9c6a73c6 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Sun, 20 Jan 2013 23:16:34 +0000 -Subject: [PATCH 123/364] * util/grub-mkimage.c (main): Postpone freeing +Subject: [PATCH 124/471] * util/grub-mkimage.c (main): Postpone freeing arguments.output until after its use in generate_image. --- @@ -44,5 +44,5 @@ index d0eecf2..29bda17 100644 return 0; } -- -1.8.1.4 +1.8.2.1 diff --git a/0124-docs-grub.texi-Multi-boot-manual-config-Fix-typo-for.patch b/0125-docs-grub.texi-Multi-boot-manual-config-Fix-typo-for.patch similarity index 90% rename from 0124-docs-grub.texi-Multi-boot-manual-config-Fix-typo-for.patch rename to 0125-docs-grub.texi-Multi-boot-manual-config-Fix-typo-for.patch index bd07ee9..5b5ca6b 100644 --- a/0124-docs-grub.texi-Multi-boot-manual-config-Fix-typo-for.patch +++ b/0125-docs-grub.texi-Multi-boot-manual-config-Fix-typo-for.patch @@ -1,7 +1,7 @@ -From f65b9f8567fcad44f9dbcedba0a5e03a9ddaa70d Mon Sep 17 00:00:00 2001 +From 4dc1cb37683d657957cb385878d72ca41bde056f Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 21 Jan 2013 00:05:41 +0000 -Subject: [PATCH 124/364] * docs/grub.texi (Multi-boot manual config): Fix typo +Subject: [PATCH 125/471] * docs/grub.texi (Multi-boot manual config): Fix typo for "recommended". --- @@ -36,5 +36,5 @@ index fbbcfb9..b177111 100644 @node Embedded configuration -- -1.8.1.4 +1.8.2.1 diff --git a/0125-Remove-nested-functions-from-filesystem-directory-it.patch b/0126-Remove-nested-functions-from-filesystem-directory-it.patch similarity index 99% rename from 0125-Remove-nested-functions-from-filesystem-directory-it.patch rename to 0126-Remove-nested-functions-from-filesystem-directory-it.patch index 064a4b7..08ca20f 100644 --- a/0125-Remove-nested-functions-from-filesystem-directory-it.patch +++ b/0126-Remove-nested-functions-from-filesystem-directory-it.patch @@ -1,7 +1,7 @@ -From 2bef9aff563a9d988b8203e53d715890c7ca9095 Mon Sep 17 00:00:00 2001 +From 1eb3760d2821962f09cbbe2e4fa0d75a4e1a761c Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 21 Jan 2013 01:33:46 +0000 -Subject: [PATCH 125/364] Remove nested functions from filesystem directory +Subject: [PATCH 126/471] Remove nested functions from filesystem directory iterators. * include/grub/fs.h (grub_fs_dir_hook_t): New type. @@ -4773,5 +4773,5 @@ index e3eb1d7..d0ab6a2 100644 grub_errno = GRUB_ERR_NONE; return 0; -- -1.8.1.4 +1.8.2.1 diff --git a/0126-grub-core-partmap-msdos.c-embed_signatures-Add-the-s.patch b/0127-grub-core-partmap-msdos.c-embed_signatures-Add-the-s.patch similarity index 91% rename from 0126-grub-core-partmap-msdos.c-embed_signatures-Add-the-s.patch rename to 0127-grub-core-partmap-msdos.c-embed_signatures-Add-the-s.patch index 1685d22..a77a628 100644 --- a/0126-grub-core-partmap-msdos.c-embed_signatures-Add-the-s.patch +++ b/0127-grub-core-partmap-msdos.c-embed_signatures-Add-the-s.patch @@ -1,7 +1,7 @@ -From a2102b2ce0666edcfef953fac2215221ba1a35bd Mon Sep 17 00:00:00 2001 +From 808c2412749490421a02568d4db2db0e11790b92 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 21 Jan 2013 11:10:25 +0000 -Subject: [PATCH 126/364] * grub-core/partmap/msdos.c (embed_signatures): Add +Subject: [PATCH 127/471] * grub-core/partmap/msdos.c (embed_signatures): Add the signature of an Acer registration utility with several sightings in the wild. Reported by: Rickard Westman. Fixes Ubuntu bug #987022. @@ -45,5 +45,5 @@ index 47527c3..b0e11c4 100644 }; #endif -- -1.8.1.4 +1.8.2.1 diff --git a/0127-Improve-spkmomdem-reliability-by-adding-a-separator-.patch b/0128-Improve-spkmomdem-reliability-by-adding-a-separator-.patch similarity index 92% rename from 0127-Improve-spkmomdem-reliability-by-adding-a-separator-.patch rename to 0128-Improve-spkmomdem-reliability-by-adding-a-separator-.patch index 62fcb08..6897b64 100644 --- a/0127-Improve-spkmomdem-reliability-by-adding-a-separator-.patch +++ b/0128-Improve-spkmomdem-reliability-by-adding-a-separator-.patch @@ -1,7 +1,7 @@ -From 966ef4a54d21d846304a7eafa125574a28f68caf Mon Sep 17 00:00:00 2001 +From abeaa68b6a8318786ec2b9e642f328e7ca67c165 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 21 Jan 2013 14:55:30 +0100 -Subject: [PATCH 127/364] Improve spkmomdem reliability by adding a +Subject: [PATCH 128/471] Improve spkmomdem reliability by adding a separator between bytes. --- @@ -72,5 +72,5 @@ index 9075f9a..9083c1a 100644 read_sample (); continue; -- -1.8.1.4 +1.8.2.1 diff --git a/0128-grub-core-commands-lsmmap.c-Fix-unused-variable-on-e.patch b/0129-grub-core-commands-lsmmap.c-Fix-unused-variable-on-e.patch similarity index 90% rename from 0128-grub-core-commands-lsmmap.c-Fix-unused-variable-on-e.patch rename to 0129-grub-core-commands-lsmmap.c-Fix-unused-variable-on-e.patch index 22db0cf..5c07921 100644 --- a/0128-grub-core-commands-lsmmap.c-Fix-unused-variable-on-e.patch +++ b/0129-grub-core-commands-lsmmap.c-Fix-unused-variable-on-e.patch @@ -1,7 +1,7 @@ -From 891878c304ebb9da65969fd53a576305e8c880ab Mon Sep 17 00:00:00 2001 +From 7104dd04809457081b323d166d54945d8c2e2219 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 21 Jan 2013 14:57:35 +0100 -Subject: [PATCH 128/364] * grub-core/commands/lsmmap.c: Fix unused +Subject: [PATCH 129/471] * grub-core/commands/lsmmap.c: Fix unused variable on emu. --- @@ -44,5 +44,5 @@ index 8e7f2a5..c1a05d8 100644 static int lsmmap_hook (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, -- -1.8.1.4 +1.8.2.1 diff --git a/0129-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate-Fi.patch b/0130-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate-Fi.patch similarity index 89% rename from 0129-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate-Fi.patch rename to 0130-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate-Fi.patch index 7bde89c..9825f71 100644 --- a/0129-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate-Fi.patch +++ b/0130-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate-Fi.patch @@ -1,7 +1,7 @@ -From b9711c98bf23241a2cf73d01fe4ffc266171f27f Mon Sep 17 00:00:00 2001 +From 30f0ba576620a7016899533e3ebb8ae66cc418cf Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 21 Jan 2013 13:59:28 +0000 -Subject: [PATCH 129/364] * grub-core/disk/arc/arcdisk.c +Subject: [PATCH 130/471] * grub-core/disk/arc/arcdisk.c (grub_arcdisk_iterate): Fix parameter declarations. --- @@ -36,5 +36,5 @@ index 37c0ac3..5d12128 100644 { struct grub_arcdisk_iterate_ctx ctx = { hook, hook_data }; -- -1.8.1.4 +1.8.2.1 diff --git a/0130-Fix-powerpc-and-sparc64-build-failures-caused-by-un-.patch b/0131-Fix-powerpc-and-sparc64-build-failures-caused-by-un-.patch similarity index 97% rename from 0130-Fix-powerpc-and-sparc64-build-failures-caused-by-un-.patch rename to 0131-Fix-powerpc-and-sparc64-build-failures-caused-by-un-.patch index 663c3cb..d1becb6 100644 --- a/0130-Fix-powerpc-and-sparc64-build-failures-caused-by-un-.patch +++ b/0131-Fix-powerpc-and-sparc64-build-failures-caused-by-un-.patch @@ -1,7 +1,7 @@ -From 9a854b2d6f1c40dc029d74a46af934908bf1cd5f Mon Sep 17 00:00:00 2001 +From 617d656f2e310da90dd5d4f426cb7f7c9d7a3069 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 21 Jan 2013 14:41:06 +0000 -Subject: [PATCH 130/364] Fix powerpc and sparc64 build failures caused by +Subject: [PATCH 131/471] Fix powerpc and sparc64 build failures caused by un-nesting memory map iterators. --- @@ -200,5 +200,5 @@ index a485284..c85fcfd 100644 static grub_err_t -- -1.8.1.4 +1.8.2.1 diff --git a/0131-grub-core-commands-ls.c-grub_ls_print_devices-Add-mi.patch b/0132-grub-core-commands-ls.c-grub_ls_print_devices-Add-mi.patch similarity index 90% rename from 0131-grub-core-commands-ls.c-grub_ls_print_devices-Add-mi.patch rename to 0132-grub-core-commands-ls.c-grub_ls_print_devices-Add-mi.patch index 84e6551..bd0254c 100644 --- a/0131-grub-core-commands-ls.c-grub_ls_print_devices-Add-mi.patch +++ b/0132-grub-core-commands-ls.c-grub_ls_print_devices-Add-mi.patch @@ -1,7 +1,7 @@ -From 3181e3e2ffb3ee423962aeae12eb30ab51b09721 Mon Sep 17 00:00:00 2001 +From b878041a451a90c4d75c66d7c7ba9d570e19f271 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 21 Jan 2013 17:46:24 +0100 -Subject: [PATCH 131/364] * grub-core/commands/ls.c +Subject: [PATCH 132/471] * grub-core/commands/ls.c (grub_ls_print_devices): Add missing asterisk. --- @@ -40,5 +40,5 @@ index 0b86619..83930aa 100644 else grub_printf ("(%s) ", name); -- -1.8.1.4 +1.8.2.1 diff --git a/0132-Make-color-variables-global-instead-of-it-being-per-.patch b/0133-Make-color-variables-global-instead-of-it-being-per-.patch similarity index 99% rename from 0132-Make-color-variables-global-instead-of-it-being-per-.patch rename to 0133-Make-color-variables-global-instead-of-it-being-per-.patch index 5cf7d45..735540e 100644 --- a/0132-Make-color-variables-global-instead-of-it-being-per-.patch +++ b/0133-Make-color-variables-global-instead-of-it-being-per-.patch @@ -1,7 +1,7 @@ -From 6f069a71e2664086c5c4d662014d5c43e484da97 Mon Sep 17 00:00:00 2001 +From 4313186239f13535bbf6c7b7a2a80cd1b8a832d2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 21 Jan 2013 17:53:41 +0100 -Subject: [PATCH 132/364] Make color variables global instead of it +Subject: [PATCH 133/471] Make color variables global instead of it being per-terminal. --- @@ -543,5 +543,5 @@ index 39c3d5a..84f5766 100644 { struct grub_term_autoload *next; -- -1.8.1.4 +1.8.2.1 diff --git a/0133-Improve-spkmomdem-reliability-by-adding-a-separator-.patch b/0134-Improve-spkmomdem-reliability-by-adding-a-separator-.patch similarity index 84% rename from 0133-Improve-spkmomdem-reliability-by-adding-a-separator-.patch rename to 0134-Improve-spkmomdem-reliability-by-adding-a-separator-.patch index 7ce4f38..33a4f0b 100644 --- a/0133-Improve-spkmomdem-reliability-by-adding-a-separator-.patch +++ b/0134-Improve-spkmomdem-reliability-by-adding-a-separator-.patch @@ -1,7 +1,7 @@ -From bd8b317a9f59463b5fc668985df739075bf97ee6 Mon Sep 17 00:00:00 2001 +From a16f3422534819db2c9b87648072cf7b6d8f3c10 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 21 Jan 2013 20:03:15 +0100 -Subject: [PATCH 133/364] Improve spkmomdem reliability by adding a +Subject: [PATCH 134/471] Improve spkmomdem reliability by adding a separator between bytes. --- @@ -23,5 +23,5 @@ index 43622be..dc03268 100644 grub_putcode ('\n', term); if (state != &local_state && ++state->num_lines -- -1.8.1.4 +1.8.2.1 diff --git a/0134-grub-core-normal-term.c-print_ucs4_terminal-Don-t-ou.patch b/0135-grub-core-normal-term.c-print_ucs4_terminal-Don-t-ou.patch similarity index 84% rename from 0134-grub-core-normal-term.c-print_ucs4_terminal-Don-t-ou.patch rename to 0135-grub-core-normal-term.c-print_ucs4_terminal-Don-t-ou.patch index 394c3ae..5b8cb31 100644 --- a/0134-grub-core-normal-term.c-print_ucs4_terminal-Don-t-ou.patch +++ b/0135-grub-core-normal-term.c-print_ucs4_terminal-Don-t-ou.patch @@ -1,7 +1,7 @@ -From 139e527e2b46b84c8a57a03dcce9383612a2b589 Mon Sep 17 00:00:00 2001 +From 94a0e7cd49455fd2a6717211393e336f5e26e755 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 21 Jan 2013 20:33:38 +0100 -Subject: [PATCH 134/364] * grub-core/normal/term.c +Subject: [PATCH 135/471] * grub-core/normal/term.c (print_ucs4_terminal): Don't output right margin when not needed. --- @@ -24,5 +24,5 @@ index 32b891a..cf7a777 100644 2013-01-21 Vladimir Serbinenko -- -1.8.1.4 +1.8.2.1 diff --git a/0135-Improve-spkmodem-reliability-by-adding-a-separator-b.patch b/0136-Improve-spkmodem-reliability-by-adding-a-separator-b.patch similarity index 91% rename from 0135-Improve-spkmodem-reliability-by-adding-a-separator-b.patch rename to 0136-Improve-spkmodem-reliability-by-adding-a-separator-b.patch index 1ad4a08..b018b0f 100644 --- a/0135-Improve-spkmodem-reliability-by-adding-a-separator-b.patch +++ b/0136-Improve-spkmodem-reliability-by-adding-a-separator-b.patch @@ -1,7 +1,7 @@ -From c769c9030bec4ec97310bf93e440020b83d8f100 Mon Sep 17 00:00:00 2001 +From 259d86f862615a6135d96553768b564785f56a30 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 21 Jan 2013 21:05:33 +0100 -Subject: [PATCH 135/364] Improve spkmodem reliability by adding a separator +Subject: [PATCH 136/471] Improve spkmodem reliability by adding a separator between bytes. --- @@ -46,5 +46,5 @@ index 5bff429..f20a27d 100644 return 0; -- -1.8.1.4 +1.8.2.1 diff --git a/0136-Remove-nested-functions-from-USB-iterators.patch b/0137-Remove-nested-functions-from-USB-iterators.patch similarity index 98% rename from 0136-Remove-nested-functions-from-USB-iterators.patch rename to 0137-Remove-nested-functions-from-USB-iterators.patch index ec41517..7ea7ed7 100644 --- a/0136-Remove-nested-functions-from-USB-iterators.patch +++ b/0137-Remove-nested-functions-from-USB-iterators.patch @@ -1,7 +1,7 @@ -From 68a73af56d5070833b4a4785647e539a0a3da063 Mon Sep 17 00:00:00 2001 +From c01c5f4a571b66bd330f4312f643f283bc8161c8 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 21 Jan 2013 21:02:24 +0000 -Subject: [PATCH 136/364] Remove nested functions from USB iterators. +Subject: [PATCH 137/471] Remove nested functions from USB iterators. * include/grub/usb.h (grub_usb_iterate_hook_t): New type. (grub_usb_controller_iterate_hook_t): Likewise. @@ -387,5 +387,5 @@ index 08d57b2..cefa8b6 100644 grub_usb_err_t (*setup_transfer) (grub_usb_controller_t dev, grub_usb_transfer_t transfer); -- -1.8.1.4 +1.8.2.1 diff --git a/0137-grub-core-font-font.c-blit_comb-do_blit-Make-static-.patch b/0138-grub-core-font-font.c-blit_comb-do_blit-Make-static-.patch similarity index 98% rename from 0137-grub-core-font-font.c-blit_comb-do_blit-Make-static-.patch rename to 0138-grub-core-font-font.c-blit_comb-do_blit-Make-static-.patch index c478d9b..d10bf20 100644 --- a/0137-grub-core-font-font.c-blit_comb-do_blit-Make-static-.patch +++ b/0138-grub-core-font-font.c-blit_comb-do_blit-Make-static-.patch @@ -1,7 +1,7 @@ -From 5d4c7b334f440e337abf83b29408e06474497655 Mon Sep 17 00:00:00 2001 +From 84f37bce3a842058d6f33839e541d79cec384fab Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Mon, 21 Jan 2013 21:03:26 +0000 -Subject: [PATCH 137/364] * grub-core/font/font.c (blit_comb: do_blit): Make +Subject: [PATCH 138/471] * grub-core/font/font.c (blit_comb: do_blit): Make static instead of nested. (blit_comb: add_device_width): Likewise. --- @@ -271,5 +271,5 @@ index fca8c8d..6b54a84 100644 static struct grub_font_glyph * -- -1.8.1.4 +1.8.2.1 diff --git a/0138-include-grub-kernel.h-FOR_MODULES-Adjust-to-preserve.patch b/0139-include-grub-kernel.h-FOR_MODULES-Adjust-to-preserve.patch similarity index 90% rename from 0138-include-grub-kernel.h-FOR_MODULES-Adjust-to-preserve.patch rename to 0139-include-grub-kernel.h-FOR_MODULES-Adjust-to-preserve.patch index 3d4d888..e7a71c5 100644 --- a/0138-include-grub-kernel.h-FOR_MODULES-Adjust-to-preserve.patch +++ b/0139-include-grub-kernel.h-FOR_MODULES-Adjust-to-preserve.patch @@ -1,7 +1,7 @@ -From 5657a74faa6aa56753f42e65b0806afb3cb7c842 Mon Sep 17 00:00:00 2001 +From a074aa6ad158c90a065d5b9f7727a07254f0e6b2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 21 Jan 2013 22:44:20 +0100 -Subject: [PATCH 138/364] * include/grub/kernel.h (FOR_MODULES): Adjust +Subject: [PATCH 139/471] * include/grub/kernel.h (FOR_MODULES): Adjust to preserve alignment invariants. --- @@ -36,5 +36,5 @@ index 033479e..23e4f02 100644 grub_addr_t grub_modules_get_end (void); -- -1.8.1.4 +1.8.2.1 diff --git a/0139-grub-core-lib-libgcrypt_wrap-cipher_wrap.h-Include-s.patch b/0140-grub-core-lib-libgcrypt_wrap-cipher_wrap.h-Include-s.patch similarity index 90% rename from 0139-grub-core-lib-libgcrypt_wrap-cipher_wrap.h-Include-s.patch rename to 0140-grub-core-lib-libgcrypt_wrap-cipher_wrap.h-Include-s.patch index 352a688..d4bba59 100644 --- a/0139-grub-core-lib-libgcrypt_wrap-cipher_wrap.h-Include-s.patch +++ b/0140-grub-core-lib-libgcrypt_wrap-cipher_wrap.h-Include-s.patch @@ -1,7 +1,7 @@ -From 457800079c4b331161d9ca011f2d8971758f03c9 Mon Sep 17 00:00:00 2001 +From 416beb4f9c97d91d06f5844339113c5be9350834 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 22 Jan 2013 07:46:29 +0100 -Subject: [PATCH 139/364] * grub-core/lib/libgcrypt_wrap/cipher_wrap.h: +Subject: [PATCH 140/471] * grub-core/lib/libgcrypt_wrap/cipher_wrap.h: Include sys/types.h rather than defining WORDS_BIGENDIAN manually. --- @@ -42,5 +42,5 @@ index 118b2f1..f537d50 100644 #undef __GNU_LIBRARY__ #define __GNU_LIBRARY__ 1 -- -1.8.1.4 +1.8.2.1 diff --git a/0140-util-grub-reboot.in-usage-Document-the-need-for.patch b/0141-util-grub-reboot.in-usage-Document-the-need-for.patch similarity index 94% rename from 0140-util-grub-reboot.in-usage-Document-the-need-for.patch rename to 0141-util-grub-reboot.in-usage-Document-the-need-for.patch index 993d154..9aedc37 100644 --- a/0140-util-grub-reboot.in-usage-Document-the-need-for.patch +++ b/0141-util-grub-reboot.in-usage-Document-the-need-for.patch @@ -1,7 +1,7 @@ -From 46759fbe61fcca60bc4e619a9cde0977f48c0723 Mon Sep 17 00:00:00 2001 +From 6066d6ec61ebed7aeded9b412dfc541ba5ae2827 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 22 Jan 2013 14:28:32 +0000 -Subject: [PATCH 140/364] * util/grub-reboot.in (usage): Document the need for +Subject: [PATCH 141/471] * util/grub-reboot.in (usage): Document the need for GRUB_DEFAULT=saved. * util/grub-set-default.in (usage): Likewise. Reported by: Brian Candler. Fixes Ubuntu bug #1102925. @@ -67,5 +67,5 @@ index 443e56f..ea18da1 100644 print_option_help "-h, --help" "$(gettext "print this message and exit")" print_option_help "-v, --version" "$(gettext "print the version information and exit")" -- -1.8.1.4 +1.8.2.1 diff --git a/0141-Improve-FreeDOS-direct-loading-support-compatibility.patch b/0142-Improve-FreeDOS-direct-loading-support-compatibility.patch similarity index 97% rename from 0141-Improve-FreeDOS-direct-loading-support-compatibility.patch rename to 0142-Improve-FreeDOS-direct-loading-support-compatibility.patch index 3b441ad..f7f9a95 100644 --- a/0141-Improve-FreeDOS-direct-loading-support-compatibility.patch +++ b/0142-Improve-FreeDOS-direct-loading-support-compatibility.patch @@ -1,7 +1,7 @@ -From cf10c476b8dbe718f05da15a705ba106eae9f621 Mon Sep 17 00:00:00 2001 -From: "C. Masloch" +From be56f8f0420fa5efc55ac9789d41c6307a84bef0 Mon Sep 17 00:00:00 2001 +From: "C. Masloch" Date: Sun, 27 Jan 2013 16:07:25 +0100 -Subject: [PATCH 141/364] Improve FreeDOS direct loading support +Subject: [PATCH 142/471] Improve FreeDOS direct loading support compatibility. * include/grub/i386/relocator.h (grub_relocator16_state): @@ -207,5 +207,5 @@ index 46becb8..5f89a7e 100644 }; -- -1.8.1.4 +1.8.2.1 diff --git a/0142-grub-core-normal-menu_text.c-grub_menu_init_page-Fix.patch b/0143-grub-core-normal-menu_text.c-grub_menu_init_page-Fix.patch similarity index 91% rename from 0142-grub-core-normal-menu_text.c-grub_menu_init_page-Fix.patch rename to 0143-grub-core-normal-menu_text.c-grub_menu_init_page-Fix.patch index 954670a..b61642b 100644 --- a/0142-grub-core-normal-menu_text.c-grub_menu_init_page-Fix.patch +++ b/0143-grub-core-normal-menu_text.c-grub_menu_init_page-Fix.patch @@ -1,7 +1,7 @@ -From d663de5bc403d819059ec5b8faeade326311644b Mon Sep 17 00:00:00 2001 +From 7d0513c0e5552c09b21e66f73b718f51cb8a6afc Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 27 Jan 2013 16:12:05 +0100 -Subject: [PATCH 142/364] * grub-core/normal/menu_text.c +Subject: [PATCH 143/471] * grub-core/normal/menu_text.c (grub_menu_init_page): Fix behaviour when menu highlight color isn't set. --- @@ -36,5 +36,5 @@ index 80a7cd9..0031b0c 100644 /* Then give user a chance to replace them. */ grub_parse_color_name_pair (&grub_color_menu_normal, -- -1.8.1.4 +1.8.2.1 diff --git a/0143-util-grub-install.in-change-misleading-comment-about.patch b/0144-util-grub-install.in-change-misleading-comment-about.patch similarity index 88% rename from 0143-util-grub-install.in-change-misleading-comment-about.patch rename to 0144-util-grub-install.in-change-misleading-comment-about.patch index cecd639..bc9c332 100644 --- a/0143-util-grub-install.in-change-misleading-comment-about.patch +++ b/0144-util-grub-install.in-change-misleading-comment-about.patch @@ -1,7 +1,7 @@ -From 860427424f29d2e1e799509aea585cf928982bba Mon Sep 17 00:00:00 2001 +From a3221152fcd1056ad93b0ec4d4a6bb7954e19349 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Sun, 27 Jan 2013 16:17:21 +0100 -Subject: [PATCH 143/364] * util/grub-install.in: change misleading +Subject: [PATCH 144/471] * util/grub-install.in: change misleading comment about device.map creation --- @@ -36,5 +36,5 @@ index aac27c7..9e63cf5 100644 # Make sure that there is no duplicated entry. tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' "$device_map" \ -- -1.8.1.4 +1.8.2.1 diff --git a/0144-grub-core-fs-xfs.c-grub_xfs_read_block-Fix-computati.patch b/0145-grub-core-fs-xfs.c-grub_xfs_read_block-Fix-computati.patch similarity index 90% rename from 0144-grub-core-fs-xfs.c-grub_xfs_read_block-Fix-computati.patch rename to 0145-grub-core-fs-xfs.c-grub_xfs_read_block-Fix-computati.patch index c858562..91a846d 100644 --- a/0144-grub-core-fs-xfs.c-grub_xfs_read_block-Fix-computati.patch +++ b/0145-grub-core-fs-xfs.c-grub_xfs_read_block-Fix-computati.patch @@ -1,7 +1,7 @@ -From 08e4779087f1086d7e2b1d4818ea48618abc63ec Mon Sep 17 00:00:00 2001 +From 077f5078ad094f096e623008b0e94cf86bd6e703 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 30 Jan 2013 09:22:43 +0100 -Subject: [PATCH 144/364] * grub-core/fs/xfs.c (grub_xfs_read_block): +Subject: [PATCH 145/471] * grub-core/fs/xfs.c (grub_xfs_read_block): Fix computation in presence of extended attributes. --- @@ -38,5 +38,5 @@ index 49d2a89..aee1582 100644 recoffset = ((1 << node->data->sblock.log2_inode) - ((char *) &node->inode.data.btree.keys -- -1.8.1.4 +1.8.2.1 diff --git a/0145-grub-core-bus-usb-serial-common.c-grub_usbserial_att.patch b/0146-grub-core-bus-usb-serial-common.c-grub_usbserial_att.patch similarity index 89% rename from 0145-grub-core-bus-usb-serial-common.c-grub_usbserial_att.patch rename to 0146-grub-core-bus-usb-serial-common.c-grub_usbserial_att.patch index c509aa3..3f23f09 100644 --- a/0145-grub-core-bus-usb-serial-common.c-grub_usbserial_att.patch +++ b/0146-grub-core-bus-usb-serial-common.c-grub_usbserial_att.patch @@ -1,7 +1,7 @@ -From e296c452399417a814ab8b025234235d7ea1552e Mon Sep 17 00:00:00 2001 +From 8e014243b08f8aa9515f2e9e94e379c049bbf6d7 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Feb 2013 21:32:17 +0100 -Subject: [PATCH 145/364] * grub-core/bus/usb/serial/common.c +Subject: [PATCH 146/471] * grub-core/bus/usb/serial/common.c (grub_usbserial_attach): Fix missing zero-out of port structure. --- @@ -36,5 +36,5 @@ index 55d1884..9530259 100644 { grub_print_error (); -- -1.8.1.4 +1.8.2.1 diff --git a/0146-grub-core-bus-usb-usb.c-grub_usb_device_attach-Add-m.patch b/0147-grub-core-bus-usb-usb.c-grub_usb_device_attach-Add-m.patch similarity index 91% rename from 0146-grub-core-bus-usb-usb.c-grub_usb_device_attach-Add-m.patch rename to 0147-grub-core-bus-usb-usb.c-grub_usb_device_attach-Add-m.patch index 6596055..2190c78 100644 --- a/0146-grub-core-bus-usb-usb.c-grub_usb_device_attach-Add-m.patch +++ b/0147-grub-core-bus-usb-usb.c-grub_usb_device_attach-Add-m.patch @@ -1,7 +1,7 @@ -From b7ad8ce9acca6630b6e822f0f4c4e0fa28291860 Mon Sep 17 00:00:00 2001 +From 3ebe52d52ce44412edb87037d4d7378b04a3ad17 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Feb 2013 21:43:49 +0100 -Subject: [PATCH 146/364] * grub-core/bus/usb/usb.c +Subject: [PATCH 147/471] * grub-core/bus/usb/usb.c (grub_usb_device_attach): Add missing grub_print_error. --- @@ -48,5 +48,5 @@ index 6fbf134..5df08e9 100644 } } -- -1.8.1.4 +1.8.2.1 diff --git a/0147-grub-core-commands-lsacpi.c-Show-more-info.-Hide-som.patch b/0148-grub-core-commands-lsacpi.c-Show-more-info.-Hide-som.patch similarity index 98% rename from 0147-grub-core-commands-lsacpi.c-Show-more-info.-Hide-som.patch rename to 0148-grub-core-commands-lsacpi.c-Show-more-info.-Hide-som.patch index 496769c..2ee29fd 100644 --- a/0147-grub-core-commands-lsacpi.c-Show-more-info.-Hide-som.patch +++ b/0148-grub-core-commands-lsacpi.c-Show-more-info.-Hide-som.patch @@ -1,7 +1,7 @@ -From 15fb0e0734d438c6873c00c0ec9838764414ae98 Mon Sep 17 00:00:00 2001 +From 1246dfa7e45257c44f175112ab70bcf8d0c84c82 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Feb 2013 21:45:39 +0100 -Subject: [PATCH 147/364] * grub-core/commands/lsacpi.c: Show more info. +Subject: [PATCH 148/471] * grub-core/commands/lsacpi.c: Show more info. Hide some boring parts unless they have unexpected values. --- @@ -171,5 +171,5 @@ index 07c3f0d..1038479 100644 static const struct grub_arg_option options[] = { -- -1.8.1.4 +1.8.2.1 diff --git a/0148-Missing-part-of-last-commit.patch b/0149-Missing-part-of-last-commit.patch similarity index 92% rename from 0148-Missing-part-of-last-commit.patch rename to 0149-Missing-part-of-last-commit.patch index 0cfedcc..ded02ea 100644 --- a/0148-Missing-part-of-last-commit.patch +++ b/0149-Missing-part-of-last-commit.patch @@ -1,7 +1,7 @@ -From 0484a13a5db39105b817cb9b10702d038e26b918 Mon Sep 17 00:00:00 2001 +From 02d70c1a8f1f21728461d44e157e605957588eff Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Feb 2013 21:48:01 +0100 -Subject: [PATCH 148/364] Missing part of last commit +Subject: [PATCH 149/471] Missing part of last commit --- include/grub/acpi.h | 31 ++++++++++++++++++++++++++++++- @@ -63,5 +63,5 @@ index ee0a108..52d190c 100644 struct grub_acpi_madt_entry_sapic { -- -1.8.1.4 +1.8.2.1 diff --git a/0149-Implement-USBDebug-full-USB-stack-variant.patch b/0150-Implement-USBDebug-full-USB-stack-variant.patch similarity index 98% rename from 0149-Implement-USBDebug-full-USB-stack-variant.patch rename to 0150-Implement-USBDebug-full-USB-stack-variant.patch index 3737588..94721c7 100644 --- a/0149-Implement-USBDebug-full-USB-stack-variant.patch +++ b/0150-Implement-USBDebug-full-USB-stack-variant.patch @@ -1,7 +1,7 @@ -From d425de05c38b6f588052be462e8539f2fb879e24 Mon Sep 17 00:00:00 2001 +From 771516d92320eccf7c517ec6481c257b564bf5dd Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Feb 2013 21:49:29 +0100 -Subject: [PATCH 149/364] Implement USBDebug (full USB stack variant). +Subject: [PATCH 150/471] Implement USBDebug (full USB stack variant). --- ChangeLog | 4 ++ @@ -268,5 +268,5 @@ index 7420125..f81f97a 100644 grub_usbserial_fetch (struct grub_serial_port *port, grub_size_t header_size); -- -1.8.1.4 +1.8.2.1 diff --git a/0150-grub-core-fs-fshelp.c-find_file-Set-oldnode-to-zero-.patch b/0151-grub-core-fs-fshelp.c-find_file-Set-oldnode-to-zero-.patch similarity index 92% rename from 0150-grub-core-fs-fshelp.c-find_file-Set-oldnode-to-zero-.patch rename to 0151-grub-core-fs-fshelp.c-find_file-Set-oldnode-to-zero-.patch index e9dcb54..853b96b 100644 --- a/0150-grub-core-fs-fshelp.c-find_file-Set-oldnode-to-zero-.patch +++ b/0151-grub-core-fs-fshelp.c-find_file-Set-oldnode-to-zero-.patch @@ -1,7 +1,7 @@ -From 6b0ffea6b4093185ae5eedc1ce115c4b1a51e65d Mon Sep 17 00:00:00 2001 +From cfdae836643ea68d85b8d0aa37df635600d8d102 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Feb 2013 21:51:09 +0100 -Subject: [PATCH 150/364] * grub-core/fs/fshelp.c (find_file): Set +Subject: [PATCH 151/471] * grub-core/fs/fshelp.c (find_file): Set oldnode to zero after freeing it. --- @@ -63,5 +63,5 @@ index 7e557c3..11a1259 100644 /* Found the node! */ if (! next || *next == '\0') -- -1.8.1.4 +1.8.2.1 diff --git a/0151-grub-core-disk-cryptodisk.c-grub_cryptodisk_scan_dev.patch b/0152-grub-core-disk-cryptodisk.c-grub_cryptodisk_scan_dev.patch similarity index 89% rename from 0151-grub-core-disk-cryptodisk.c-grub_cryptodisk_scan_dev.patch rename to 0152-grub-core-disk-cryptodisk.c-grub_cryptodisk_scan_dev.patch index a9feea8..28ef982 100644 --- a/0151-grub-core-disk-cryptodisk.c-grub_cryptodisk_scan_dev.patch +++ b/0152-grub-core-disk-cryptodisk.c-grub_cryptodisk_scan_dev.patch @@ -1,7 +1,7 @@ -From e24e009bf730aaeef10783fca8ec04221a115713 Mon Sep 17 00:00:00 2001 +From 9f9f731f87ebef9d95f9065a2bf0ae6f22b57d74 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 4 Feb 2013 15:36:03 +0100 -Subject: [PATCH 151/364] * grub-core/disk/cryptodisk.c +Subject: [PATCH 152/471] * grub-core/disk/cryptodisk.c (grub_cryptodisk_scan_device): Don't stop on first error. --- @@ -39,5 +39,5 @@ index ce755c3..f39c1ab 100644 err = grub_cryptodisk_scan_device_real (name, source); -- -1.8.1.4 +1.8.2.1 diff --git a/0152-grub-core-commands-lsacpi.c-Fix-types-on-64-bit-plat.patch b/0153-grub-core-commands-lsacpi.c-Fix-types-on-64-bit-plat.patch similarity index 96% rename from 0152-grub-core-commands-lsacpi.c-Fix-types-on-64-bit-plat.patch rename to 0153-grub-core-commands-lsacpi.c-Fix-types-on-64-bit-plat.patch index 5ae9985..e271d68 100644 --- a/0152-grub-core-commands-lsacpi.c-Fix-types-on-64-bit-plat.patch +++ b/0153-grub-core-commands-lsacpi.c-Fix-types-on-64-bit-plat.patch @@ -1,7 +1,7 @@ -From 2e26bf539522207793cbdb2f26241273bb41d8fe Mon Sep 17 00:00:00 2001 +From 4a14b388a009df7d77e2afbce555c2d5d4999b55 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 6 Feb 2013 17:37:29 +0100 -Subject: [PATCH 152/364] * grub-core/commands/lsacpi.c: Fix types on +Subject: [PATCH 153/471] * grub-core/commands/lsacpi.c: Fix types on 64-bit platform. --- @@ -96,5 +96,5 @@ index 1038479..0824914 100644 grub_printf (" non-zero reserved %02x%02x%02x\n", rsdp->reserved[0], rsdp->reserved[1], rsdp->reserved[2]); } -- -1.8.1.4 +1.8.2.1 diff --git a/0153-Support-Openfirmware-disks-with-non-512B-sectors.patch b/0154-Support-Openfirmware-disks-with-non-512B-sectors.patch similarity index 97% rename from 0153-Support-Openfirmware-disks-with-non-512B-sectors.patch rename to 0154-Support-Openfirmware-disks-with-non-512B-sectors.patch index 058574d..f84095f 100644 --- a/0153-Support-Openfirmware-disks-with-non-512B-sectors.patch +++ b/0154-Support-Openfirmware-disks-with-non-512B-sectors.patch @@ -1,7 +1,7 @@ -From 069348765049ede8357b604a232cc636e5f2dbbb Mon Sep 17 00:00:00 2001 +From 2274f0f3de80c1f36668815ce3f79f73716eda73 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 19 Feb 2013 09:10:26 +0100 -Subject: [PATCH 153/364] Support Openfirmware disks with non-512B +Subject: [PATCH 154/471] Support Openfirmware disks with non-512B sectors. * grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_open): Get the block @@ -149,5 +149,5 @@ index 2f69e3f..3f58317 100644 + #endif /* ! GRUB_INIT_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0154-Implement-new-command-cmosdump.patch b/0155-Implement-new-command-cmosdump.patch similarity index 97% rename from 0154-Implement-new-command-cmosdump.patch rename to 0155-Implement-new-command-cmosdump.patch index 4e93566..eb51b11 100644 --- a/0154-Implement-new-command-cmosdump.patch +++ b/0155-Implement-new-command-cmosdump.patch @@ -1,7 +1,7 @@ -From e720300246bd79d0cdb36dc9df4491557ee48663 Mon Sep 17 00:00:00 2001 +From 69209411d039be9bc278e12c7b6736b7a1101229 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 24 Feb 2013 19:44:17 +0100 -Subject: [PATCH 154/364] Implement new command cmosdump. +Subject: [PATCH 155/471] Implement new command cmosdump. --- ChangeLog | 4 +++ @@ -191,5 +191,5 @@ index 4aef40e..0759704 100644 #endif /* GRUB_CPU_CMOS_H */ -- -1.8.1.4 +1.8.2.1 diff --git a/0155-grub-core-normal-misc.c-grub_normal_print_device_inf.patch b/0156-grub-core-normal-misc.c-grub_normal_print_device_inf.patch similarity index 93% rename from 0155-grub-core-normal-misc.c-grub_normal_print_device_inf.patch rename to 0156-grub-core-normal-misc.c-grub_normal_print_device_inf.patch index a02358d..ca92535 100644 --- a/0155-grub-core-normal-misc.c-grub_normal_print_device_inf.patch +++ b/0156-grub-core-normal-misc.c-grub_normal_print_device_inf.patch @@ -1,7 +1,7 @@ -From 464ba9e859f993a3c5fe9dc3036f4acc51c94f84 Mon Sep 17 00:00:00 2001 +From 903c800bb58246d4cfd68e45288c1a6e2a2b57d5 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 25 Feb 2013 10:45:19 +0100 -Subject: [PATCH 155/364] * grub-core/normal/misc.c +Subject: [PATCH 156/471] * grub-core/normal/misc.c (grub_normal_print_device_info): Use KiB to display sizes and display sector size. @@ -50,5 +50,5 @@ index e1e47b5..d23de62 100644 grub_device_close (dev); } -- -1.8.1.4 +1.8.2.1 diff --git a/0156-Makefile.util.def-Add-partmap-msdos.c-to-common-libr.patch b/0157-Makefile.util.def-Add-partmap-msdos.c-to-common-libr.patch similarity index 97% rename from 0156-Makefile.util.def-Add-partmap-msdos.c-to-common-libr.patch rename to 0157-Makefile.util.def-Add-partmap-msdos.c-to-common-libr.patch index 433f1eb..e683d16 100644 --- a/0156-Makefile.util.def-Add-partmap-msdos.c-to-common-libr.patch +++ b/0157-Makefile.util.def-Add-partmap-msdos.c-to-common-libr.patch @@ -1,7 +1,7 @@ -From 13d76e946f149e21c67938e7dadcbb3db9019b17 Mon Sep 17 00:00:00 2001 +From afa175e51f263d3090d1ba078bed97c7204ed986 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Mon, 25 Feb 2013 22:11:06 +0100 -Subject: [PATCH 156/364] * Makefile.util.def: Add partmap/msdos.c to +Subject: [PATCH 157/471] * Makefile.util.def: Add partmap/msdos.c to common library. * include/grub/msdos_partition.h: Add GRUB_PC_PARTITION_TYPE_LDM * grub-core/disk/ldm.c: Check for existence of GRUB_PC_PARTITION_TYPE_LDM. @@ -156,5 +156,5 @@ index 1e9b65e..92f8539 100644 #define GRUB_PC_PARTITION_TYPE_MINIX 0x80 #define GRUB_PC_PARTITION_TYPE_LINUX_MINIX 0x81 -- -1.8.1.4 +1.8.2.1 diff --git a/0157-grub-core-normal-menu_entry.c-insert_string-fix-off-.patch b/0158-grub-core-normal-menu_entry.c-insert_string-fix-off-.patch similarity index 92% rename from 0157-grub-core-normal-menu_entry.c-insert_string-fix-off-.patch rename to 0158-grub-core-normal-menu_entry.c-insert_string-fix-off-.patch index 235d7f3..56c4fea 100644 --- a/0157-grub-core-normal-menu_entry.c-insert_string-fix-off-.patch +++ b/0158-grub-core-normal-menu_entry.c-insert_string-fix-off-.patch @@ -1,7 +1,7 @@ -From c6faf0e2eb58a0f9d31c6b110cd58b4956b13465 Mon Sep 17 00:00:00 2001 +From 510ac1b166c642ccf6a57515922730c73f492f55 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Mon, 25 Feb 2013 22:42:25 +0100 -Subject: [PATCH 157/364] * grub-core/normal/menu_entry.c +Subject: [PATCH 158/471] * grub-core/normal/menu_entry.c (insert_string): fix off by one access to unallocated memory. --- @@ -47,5 +47,5 @@ index 7cd67f3..85f97da 100644 if (! init_line (screen, screen->lines + screen->line + 1)) return 0; -- -1.8.1.4 +1.8.2.1 diff --git a/0158-grub-core-normal-menu_entry.c-update_screen-remove.patch b/0159-grub-core-normal-menu_entry.c-update_screen-remove.patch similarity index 92% rename from 0158-grub-core-normal-menu_entry.c-update_screen-remove.patch rename to 0159-grub-core-normal-menu_entry.c-update_screen-remove.patch index a1372cd..bed20e3 100644 --- a/0158-grub-core-normal-menu_entry.c-update_screen-remove.patch +++ b/0159-grub-core-normal-menu_entry.c-update_screen-remove.patch @@ -1,7 +1,7 @@ -From 6f9a84ac7b589b9f4a65177ab64f819fdc39b09a Mon Sep 17 00:00:00 2001 +From e70b39ab235c0ef7390ea8cec91f05428d2e775a Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Mon, 25 Feb 2013 22:53:40 +0100 -Subject: [PATCH 158/364] * grub-core/normal/menu_entry.c +Subject: [PATCH 159/471] * grub-core/normal/menu_entry.c (update_screen): remove unused variable `off' which caused scroll down arrow to be always shown. @@ -47,5 +47,5 @@ index 85f97da..f4c8afd 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0159-grub-core-disk-efi-efidisk.c-grub_efidisk_get_device.patch b/0160-grub-core-disk-efi-efidisk.c-grub_efidisk_get_device.patch similarity index 92% rename from 0159-grub-core-disk-efi-efidisk.c-grub_efidisk_get_device.patch rename to 0160-grub-core-disk-efi-efidisk.c-grub_efidisk_get_device.patch index ffae510..a29c5ad 100644 --- a/0159-grub-core-disk-efi-efidisk.c-grub_efidisk_get_device.patch +++ b/0160-grub-core-disk-efi-efidisk.c-grub_efidisk_get_device.patch @@ -1,7 +1,7 @@ -From 10f5d37fd38d6c87a4273e3aa4957fbf90a28a75 Mon Sep 17 00:00:00 2001 +From 3416608ab2fe1766fe912bb51d7f56e76fd286d9 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Tue, 26 Feb 2013 22:45:00 +0100 -Subject: [PATCH 159/364] * +Subject: [PATCH 160/471] * grub-core/disk/efi/efidisk.c(grub_efidisk_get_device_name): Fix memory leak if device name is not found. @@ -40,5 +40,5 @@ index 98cd226..19c5923 100644 grub_free (dup_dp); -- -1.8.1.4 +1.8.2.1 diff --git a/0160-grub-core-partmap-msdos.c-grub_partition_msdos_itera.patch b/0161-grub-core-partmap-msdos.c-grub_partition_msdos_itera.patch similarity index 90% rename from 0160-grub-core-partmap-msdos.c-grub_partition_msdos_itera.patch rename to 0161-grub-core-partmap-msdos.c-grub_partition_msdos_itera.patch index 3f1faea..109e190 100644 --- a/0160-grub-core-partmap-msdos.c-grub_partition_msdos_itera.patch +++ b/0161-grub-core-partmap-msdos.c-grub_partition_msdos_itera.patch @@ -1,7 +1,7 @@ -From 012631e24db4e27a151faede9b6750cfc87e4ca6 Mon Sep 17 00:00:00 2001 +From 15b9a41db9fc3eb1a976228fc956a9e6561fa37a Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Wed, 27 Feb 2013 10:02:39 +0100 -Subject: [PATCH 160/364] * grub-core/partmap/msdos.c +Subject: [PATCH 161/471] * grub-core/partmap/msdos.c (grub_partition_msdos_iterate): Fix off by one error in enumerating extended partitions. @@ -37,5 +37,5 @@ index b0e11c4..0d0a6b7 100644 partition number. */ p.number++; -- -1.8.1.4 +1.8.2.1 diff --git a/0161-Remove-nested-functions-from-disk-and-file-read-hook.patch b/0162-Remove-nested-functions-from-disk-and-file-read-hook.patch similarity index 99% rename from 0161-Remove-nested-functions-from-disk-and-file-read-hook.patch rename to 0162-Remove-nested-functions-from-disk-and-file-read-hook.patch index 0c6f040..393844d 100644 --- a/0161-Remove-nested-functions-from-disk-and-file-read-hook.patch +++ b/0162-Remove-nested-functions-from-disk-and-file-read-hook.patch @@ -1,7 +1,7 @@ -From 616e091047d45c0fb5908323a456096fc57824b7 Mon Sep 17 00:00:00 2001 -From: Colin Watson +From 0ddc619999a799152c6fb5e81653bbef2a19a1d5 Mon Sep 17 00:00:00 2001 +From: Colin Watson Date: Wed, 27 Feb 2013 17:19:15 +0100 -Subject: [PATCH 161/364] Remove nested functions from disk and file +Subject: [PATCH 162/471] Remove nested functions from disk and file read hooks. * include/grub/disk.h (grub_disk_read_hook_t): New type. @@ -1933,5 +1933,5 @@ index 187345a..5a7a857 100644 } core_dev->disk->partition = container; -- -1.8.1.4 +1.8.2.1 diff --git a/0162-grub-core-loader-machoXX.c-Remove-nested-functions.patch b/0163-grub-core-loader-machoXX.c-Remove-nested-functions.patch similarity index 98% rename from 0162-grub-core-loader-machoXX.c-Remove-nested-functions.patch rename to 0163-grub-core-loader-machoXX.c-Remove-nested-functions.patch index aa436b3..4425fdd 100644 --- a/0162-grub-core-loader-machoXX.c-Remove-nested-functions.patch +++ b/0163-grub-core-loader-machoXX.c-Remove-nested-functions.patch @@ -1,7 +1,7 @@ -From fbb356247b5f555c776fca710a1059e6fce16e98 Mon Sep 17 00:00:00 2001 +From ce1cd200024547db7be52f08d80ccb2a3ece94c3 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 27 Feb 2013 20:56:23 +0100 -Subject: [PATCH 162/364] * grub-core/loader/machoXX.c: Remove nested +Subject: [PATCH 163/471] * grub-core/loader/machoXX.c: Remove nested functions. --- @@ -335,5 +335,5 @@ index 5b78a61..3a382b3 100644 return entry_point; } -- -1.8.1.4 +1.8.2.1 diff --git a/0163-util-grub-fstest.c-Remove-nested-functions.patch b/0164-util-grub-fstest.c-Remove-nested-functions.patch similarity index 97% rename from 0163-util-grub-fstest.c-Remove-nested-functions.patch rename to 0164-util-grub-fstest.c-Remove-nested-functions.patch index 47abbf6..bd7a53c 100644 --- a/0163-util-grub-fstest.c-Remove-nested-functions.patch +++ b/0164-util-grub-fstest.c-Remove-nested-functions.patch @@ -1,7 +1,7 @@ -From 4c12073435b0bc85e373bd74bb8091ccc538df6b Mon Sep 17 00:00:00 2001 +From 1d4fd1febde6768099515759de61cbea61291cec Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Feb 2013 09:36:55 +0100 -Subject: [PATCH 163/364] * util/grub-fstest.c: Remove nested functions. +Subject: [PATCH 164/471] * util/grub-fstest.c: Remove nested functions. --- ChangeLog | 4 ++ @@ -269,5 +269,5 @@ index a546b75..253dee8 100644 printf ("%08x\n", grub_be_to_cpu32 (grub_get_unaligned32 (GRUB_MD_CRC32->read (crc32_context)))); -- -1.8.1.4 +1.8.2.1 diff --git a/0164-grub-core-commands-parttool.c-grub_cmd_parttool-Move.patch b/0165-grub-core-commands-parttool.c-grub_cmd_parttool-Move.patch similarity index 96% rename from 0164-grub-core-commands-parttool.c-grub_cmd_parttool-Move.patch rename to 0165-grub-core-commands-parttool.c-grub_cmd_parttool-Move.patch index b916078..af8303f 100644 --- a/0164-grub-core-commands-parttool.c-grub_cmd_parttool-Move.patch +++ b/0165-grub-core-commands-parttool.c-grub_cmd_parttool-Move.patch @@ -1,7 +1,7 @@ -From c902417ff9033152f80cfddd55140bb4b216cfa5 Mon Sep 17 00:00:00 2001 +From 54bcc777d8392980436b4ce859e7fb92ba0655d3 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Feb 2013 09:43:25 +0100 -Subject: [PATCH 164/364] * grub-core/commands/parttool.c +Subject: [PATCH 165/471] * grub-core/commands/parttool.c (grub_cmd_parttool): Move show_help out of parent function. --- @@ -143,5 +143,5 @@ index fadf873..0f9b651 100644 parsed = (int *) grub_zalloc (argc * sizeof (int)); -- -1.8.1.4 +1.8.2.1 diff --git a/0165-grub-core-fs-iso9660.c-Remove-nested-functions.patch b/0166-grub-core-fs-iso9660.c-Remove-nested-functions.patch similarity index 99% rename from 0165-grub-core-fs-iso9660.c-Remove-nested-functions.patch rename to 0166-grub-core-fs-iso9660.c-Remove-nested-functions.patch index b08c03a..716e524 100644 --- a/0165-grub-core-fs-iso9660.c-Remove-nested-functions.patch +++ b/0166-grub-core-fs-iso9660.c-Remove-nested-functions.patch @@ -1,7 +1,7 @@ -From 649c9b2ef46f82724c81ed62139f1ac46b4bd758 Mon Sep 17 00:00:00 2001 +From 57a7fa5e58d024dbae7650121e25e561e6193a26 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Feb 2013 10:30:35 +0100 -Subject: [PATCH 165/364] * grub-core/fs/iso9660.c: Remove nested +Subject: [PATCH 166/471] * grub-core/fs/iso9660.c: Remove nested functions. --- @@ -618,5 +618,5 @@ index 19471e8..01a07b8 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0166-grub-core-fs-minix.c-Remove-nested-functions.patch b/0167-grub-core-fs-minix.c-Remove-nested-functions.patch similarity index 96% rename from 0166-grub-core-fs-minix.c-Remove-nested-functions.patch rename to 0167-grub-core-fs-minix.c-Remove-nested-functions.patch index c0ea5cc..de09f3b 100644 --- a/0166-grub-core-fs-minix.c-Remove-nested-functions.patch +++ b/0167-grub-core-fs-minix.c-Remove-nested-functions.patch @@ -1,7 +1,7 @@ -From a870b5f756cc03e163a0ed2a44276bac9ffd1f94 Mon Sep 17 00:00:00 2001 +From 6e7405adb0dacbc8a7424b777cdc1106ac44182e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Feb 2013 10:50:01 +0100 -Subject: [PATCH 166/364] * grub-core/fs/minix.c: Remove nested +Subject: [PATCH 167/471] * grub-core/fs/minix.c: Remove nested functions. --- @@ -107,5 +107,5 @@ index 918fe56..225770a 100644 return indir; } -- -1.8.1.4 +1.8.2.1 diff --git a/0167-grub-core-fs-jfs.c-Remove-nested-functions.patch b/0168-grub-core-fs-jfs.c-Remove-nested-functions.patch similarity index 97% rename from 0167-grub-core-fs-jfs.c-Remove-nested-functions.patch rename to 0168-grub-core-fs-jfs.c-Remove-nested-functions.patch index 621e340..640a761 100644 --- a/0167-grub-core-fs-jfs.c-Remove-nested-functions.patch +++ b/0168-grub-core-fs-jfs.c-Remove-nested-functions.patch @@ -1,7 +1,7 @@ -From f360e6e4d10c7f304127c50e03fd1c84c226f65e Mon Sep 17 00:00:00 2001 +From dde79d96f8e70ebbb540ba20ff57e6b6a215cf04 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Feb 2013 10:51:32 +0100 -Subject: [PATCH 167/364] * grub-core/fs/jfs.c: Remove nested functions. +Subject: [PATCH 168/471] * grub-core/fs/jfs.c: Remove nested functions. --- ChangeLog | 4 ++ @@ -185,5 +185,5 @@ index 88b21ad..4122eff 100644 len -= 15; nextent = next_leaf->next; -- -1.8.1.4 +1.8.2.1 diff --git a/0168-grub-core-lib-arg.c-grub_arg_show_help-Move-showargs.patch b/0169-grub-core-lib-arg.c-grub_arg_show_help-Move-showargs.patch similarity index 96% rename from 0168-grub-core-lib-arg.c-grub_arg_show_help-Move-showargs.patch rename to 0169-grub-core-lib-arg.c-grub_arg_show_help-Move-showargs.patch index 51be0e6..c628e56 100644 --- a/0168-grub-core-lib-arg.c-grub_arg_show_help-Move-showargs.patch +++ b/0169-grub-core-lib-arg.c-grub_arg_show_help-Move-showargs.patch @@ -1,7 +1,7 @@ -From 34611e94df43293bd6fa318ffb61dd73a2501fae Mon Sep 17 00:00:00 2001 +From ab14a5821210215ae91cad02ca547062efd8b5b0 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Feb 2013 11:00:59 +0100 -Subject: [PATCH 168/364] * grub-core/lib/arg.c (grub_arg_show_help): +Subject: [PATCH 169/471] * grub-core/lib/arg.c (grub_arg_show_help): Move showargs out of its parent. --- @@ -149,5 +149,5 @@ index a2d9416..da44e30 100644 grub_printf ("\nReport bugs to <%s>.\n", PACKAGE_BUGREPORT); #endif -- -1.8.1.4 +1.8.2.1 diff --git a/0169-grub-core-kern-i386-coreboot-mmap.c-grub_linuxbios_t.patch b/0170-grub-core-kern-i386-coreboot-mmap.c-grub_linuxbios_t.patch similarity index 93% rename from 0169-grub-core-kern-i386-coreboot-mmap.c-grub_linuxbios_t.patch rename to 0170-grub-core-kern-i386-coreboot-mmap.c-grub_linuxbios_t.patch index 7d1fc2d..e1e67b2 100644 --- a/0169-grub-core-kern-i386-coreboot-mmap.c-grub_linuxbios_t.patch +++ b/0170-grub-core-kern-i386-coreboot-mmap.c-grub_linuxbios_t.patch @@ -1,7 +1,7 @@ -From ab5a005a1cf0d03e88efb2a2853ed4668986a325 Mon Sep 17 00:00:00 2001 +From 1bb8529d22d03246f4049eee9567db161df3fdb5 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Feb 2013 13:16:39 +0100 -Subject: [PATCH 169/364] * grub-core/kern/i386/coreboot/mmap.c +Subject: [PATCH 170/471] * grub-core/kern/i386/coreboot/mmap.c (grub_linuxbios_table_iterate): Fix end of table condition. --- @@ -62,5 +62,5 @@ index aa18539..bac5492 100644 typedef struct grub_linuxbios_table_header *grub_linuxbios_table_header_t; -- -1.8.1.4 +1.8.2.1 diff --git a/0170-Enable-linux16-on-non-BIOS-systems-for-i.a.-memtest.patch b/0171-Enable-linux16-on-non-BIOS-systems-for-i.a.-memtest.patch similarity index 96% rename from 0170-Enable-linux16-on-non-BIOS-systems-for-i.a.-memtest.patch rename to 0171-Enable-linux16-on-non-BIOS-systems-for-i.a.-memtest.patch index 2837cda..7a90a3c 100644 --- a/0170-Enable-linux16-on-non-BIOS-systems-for-i.a.-memtest.patch +++ b/0171-Enable-linux16-on-non-BIOS-systems-for-i.a.-memtest.patch @@ -1,7 +1,7 @@ -From 6002efaf14b06075755a6c552989a463c4bd8e4f Mon Sep 17 00:00:00 2001 +From d8d7d9fd00cfac60bb26d66c2a1ce07275c35b8b Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 28 Feb 2013 22:48:41 +0100 -Subject: [PATCH 170/364] Enable linux16 on non-BIOS systems for i.a. +Subject: [PATCH 171/471] Enable linux16 on non-BIOS systems for i.a. memtest. * grub-core/loader/i386/pc/linux.c (grub_cmd_linux): Handle hole at 0 @@ -134,5 +134,5 @@ index 4eeb1b6..39206c8 100644 grub_linux_is_bzimage ? "bzImage" : "zImage", real_size, grub_linux16_prot_size); -- -1.8.1.4 +1.8.2.1 diff --git a/0171-grub-core-kern-main.c-grub_set_prefix_and_root-Strip.patch b/0172-grub-core-kern-main.c-grub_set_prefix_and_root-Strip.patch similarity index 92% rename from 0171-grub-core-kern-main.c-grub_set_prefix_and_root-Strip.patch rename to 0172-grub-core-kern-main.c-grub_set_prefix_and_root-Strip.patch index d2deb3a..22aace5 100644 --- a/0171-grub-core-kern-main.c-grub_set_prefix_and_root-Strip.patch +++ b/0172-grub-core-kern-main.c-grub_set_prefix_and_root-Strip.patch @@ -1,7 +1,7 @@ -From 1d7f76afcf0ea16e362edbf053bb5b34d8dad048 Mon Sep 17 00:00:00 2001 +From 7a75aadaef0e9d8d36e4c24e906b36336854db7e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Mar 2013 10:35:51 +0100 -Subject: [PATCH 171/364] * grub-core/kern/main.c +Subject: [PATCH 172/471] * grub-core/kern/main.c (grub_set_prefix_and_root): Strip trailing platform from firmware path. --- @@ -45,5 +45,5 @@ index 3262444..c43ac6b 100644 grub_free (fwpath); if (device) -- -1.8.1.4 +1.8.2.1 diff --git a/0172-grub-core-disk-efi-efidisk.c-Transform-iterate_child.patch b/0173-grub-core-disk-efi-efidisk.c-Transform-iterate_child.patch similarity index 96% rename from 0172-grub-core-disk-efi-efidisk.c-Transform-iterate_child.patch rename to 0173-grub-core-disk-efi-efidisk.c-Transform-iterate_child.patch index b0c8e65..7fabf63 100644 --- a/0172-grub-core-disk-efi-efidisk.c-Transform-iterate_child.patch +++ b/0173-grub-core-disk-efi-efidisk.c-Transform-iterate_child.patch @@ -1,7 +1,7 @@ -From d81bf19e26c7af47e38206a7cbd825f559ac7457 Mon Sep 17 00:00:00 2001 +From 143156f6eb6dc06491c5c4c9a5fad15646fa8c31 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Mar 2013 10:37:11 +0100 -Subject: [PATCH 172/364] * grub-core/disk/efi/efidisk.c: Transform +Subject: [PATCH 173/471] * grub-core/disk/efi/efidisk.c: Transform iterate_child_devices into a FOR_CHILDREN macro. --- @@ -115,5 +115,5 @@ index 19c5923..c883b2c 100644 if (handle != 0) -- -1.8.1.4 +1.8.2.1 diff --git a/0173-grub-core-loader-i386-pc-linux.c-grub_cmd_linux-Fix-.patch b/0174-grub-core-loader-i386-pc-linux.c-grub_cmd_linux-Fix-.patch similarity index 90% rename from 0173-grub-core-loader-i386-pc-linux.c-grub_cmd_linux-Fix-.patch rename to 0174-grub-core-loader-i386-pc-linux.c-grub_cmd_linux-Fix-.patch index 9354300..e707999 100644 --- a/0173-grub-core-loader-i386-pc-linux.c-grub_cmd_linux-Fix-.patch +++ b/0174-grub-core-loader-i386-pc-linux.c-grub_cmd_linux-Fix-.patch @@ -1,7 +1,7 @@ -From 3e5394dbb6b5e9bc1ad10279270aecb578ff07b2 Mon Sep 17 00:00:00 2001 +From a446d9c14fa9e4a10a1ab8f50fa60b9530d8064f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Mar 2013 10:39:41 +0100 -Subject: [PATCH 173/364] * grub-core/loader/i386/pc/linux.c +Subject: [PATCH 174/471] * grub-core/loader/i386/pc/linux.c (grub_cmd_linux): Fix compilation for 64-bit platforms. --- @@ -41,5 +41,5 @@ index 39206c8..3ce21bc 100644 relocator = grub_relocator_new (); if (!relocator) -- -1.8.1.4 +1.8.2.1 diff --git a/0174-Remove-nested-functions-from-videoinfo-iterators.patch b/0175-Remove-nested-functions-from-videoinfo-iterators.patch similarity index 98% rename from 0174-Remove-nested-functions-from-videoinfo-iterators.patch rename to 0175-Remove-nested-functions-from-videoinfo-iterators.patch index f6b1aca..77e578b 100644 --- a/0174-Remove-nested-functions-from-videoinfo-iterators.patch +++ b/0175-Remove-nested-functions-from-videoinfo-iterators.patch @@ -1,7 +1,7 @@ -From 031f4b44a6488a0bd7fe79657480484ac981ce9e Mon Sep 17 00:00:00 2001 +From 9b2828fc730a0d09ff5934a44bb0e25e7fdf06f2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Mar 2013 11:11:36 +0100 -Subject: [PATCH 174/364] Remove nested functions from videoinfo +Subject: [PATCH 175/471] Remove nested functions from videoinfo iterators. --- @@ -235,5 +235,5 @@ index 08f7300..9fe4783 100644 grub_err_t (*get_edid) (struct grub_video_edid_info *edid_info); -- -1.8.1.4 +1.8.2.1 diff --git a/0175-grub-core-gentrigtables.c-Make-tables-const.patch b/0176-grub-core-gentrigtables.c-Make-tables-const.patch similarity index 92% rename from 0175-grub-core-gentrigtables.c-Make-tables-const.patch rename to 0176-grub-core-gentrigtables.c-Make-tables-const.patch index 2ab1632..b44dd36 100644 --- a/0175-grub-core-gentrigtables.c-Make-tables-const.patch +++ b/0176-grub-core-gentrigtables.c-Make-tables-const.patch @@ -1,7 +1,7 @@ -From adebf599a9df7cf86a40a04429edcf24a572adac Mon Sep 17 00:00:00 2001 +From 1e5f024ecad805f5abad75459689b1a03ac3da81 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Mar 2013 11:15:09 +0100 -Subject: [PATCH 175/364] * grub-core/gentrigtables.c: Make tables +Subject: [PATCH 176/471] * grub-core/gentrigtables.c: Make tables const. --- @@ -53,5 +53,5 @@ index 2512a5f..f19617c 100644 static __inline int grub_sin (int x) -- -1.8.1.4 +1.8.2.1 diff --git a/0176-grub-core-kern-emu-hostdisk.c-read_device_map-Remove.patch b/0177-grub-core-kern-emu-hostdisk.c-read_device_map-Remove.patch similarity index 94% rename from 0176-grub-core-kern-emu-hostdisk.c-read_device_map-Remove.patch rename to 0177-grub-core-kern-emu-hostdisk.c-read_device_map-Remove.patch index 665ec9c..41749ff 100644 --- a/0176-grub-core-kern-emu-hostdisk.c-read_device_map-Remove.patch +++ b/0177-grub-core-kern-emu-hostdisk.c-read_device_map-Remove.patch @@ -1,7 +1,7 @@ -From 473af7902f97c7677c802ab3d2a42be8f39fa30d Mon Sep 17 00:00:00 2001 +From aa3e16df89e62894f53aca3a255bf1b06f5cbe24 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Mar 2013 13:46:24 +0100 -Subject: [PATCH 176/364] * grub-core/kern/emu/hostdisk.c +Subject: [PATCH 177/471] * grub-core/kern/emu/hostdisk.c (read_device_map): Remove nested function. --- @@ -78,5 +78,5 @@ index 92ce1d9..62a579b 100644 /* NUL-terminate the filename. */ e = p; -- -1.8.1.4 +1.8.2.1 diff --git a/0177-util-grub-editenv.c-list_variables-Move-print_var-ou.patch b/0178-util-grub-editenv.c-list_variables-Move-print_var-ou.patch similarity index 91% rename from 0177-util-grub-editenv.c-list_variables-Move-print_var-ou.patch rename to 0178-util-grub-editenv.c-list_variables-Move-print_var-ou.patch index 2fbccbc..f276008 100644 --- a/0177-util-grub-editenv.c-list_variables-Move-print_var-ou.patch +++ b/0178-util-grub-editenv.c-list_variables-Move-print_var-ou.patch @@ -1,7 +1,7 @@ -From 276613c0ebf746e6cde7068918f9dd2158f37cd8 Mon Sep 17 00:00:00 2001 +From 2c4eef8547deac274f15a90781548d74227a78f0 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Mar 2013 13:52:05 +0100 -Subject: [PATCH 177/364] * util/grub-editenv.c (list_variables): Move +Subject: [PATCH 178/471] * util/grub-editenv.c (list_variables): Move print_var out of its parent. --- @@ -55,5 +55,5 @@ index 175ca8e..9b51acf 100644 grub_envblk_iterate (envblk, print_var); grub_envblk_close (envblk); -- -1.8.1.4 +1.8.2.1 diff --git a/0178-grub-core-fs-hfsplus.c-grub_hfsplus_btree_iterate_no.patch b/0179-grub-core-fs-hfsplus.c-grub_hfsplus_btree_iterate_no.patch similarity index 98% rename from 0178-grub-core-fs-hfsplus.c-grub_hfsplus_btree_iterate_no.patch rename to 0179-grub-core-fs-hfsplus.c-grub_hfsplus_btree_iterate_no.patch index 4ad16a6..720a721 100644 --- a/0178-grub-core-fs-hfsplus.c-grub_hfsplus_btree_iterate_no.patch +++ b/0179-grub-core-fs-hfsplus.c-grub_hfsplus_btree_iterate_no.patch @@ -1,7 +1,7 @@ -From c00446a08396d8ddb56ec13cb0ef12c921d348e2 Mon Sep 17 00:00:00 2001 +From b84a77fb369ad36eb12126ca42d6b0d31259f71e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 1 Mar 2013 14:02:27 +0100 -Subject: [PATCH 178/364] * grub-core/fs/hfsplus.c +Subject: [PATCH 179/471] * grub-core/fs/hfsplus.c (grub_hfsplus_btree_iterate_node): Pass the context through. (grub_hfsplus_iterate_dir): Move nested function out of its parent. @@ -300,5 +300,5 @@ index 29a3a94..a507c0f 100644 /* Open a file named NAME and initialize FILE. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0179-grub-core-fs-hfs.c-Remove-nested-functions.patch b/0180-grub-core-fs-hfs.c-Remove-nested-functions.patch similarity index 99% rename from 0179-grub-core-fs-hfs.c-Remove-nested-functions.patch rename to 0180-grub-core-fs-hfs.c-Remove-nested-functions.patch index aca9972..0a27f51 100644 --- a/0179-grub-core-fs-hfs.c-Remove-nested-functions.patch +++ b/0180-grub-core-fs-hfs.c-Remove-nested-functions.patch @@ -1,7 +1,7 @@ -From 52b8c810d30007f088a939c89343775fad18036b Mon Sep 17 00:00:00 2001 +From 1e33a3f3c57c499e8ef08f438b1de69b6da09f9b Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 11:31:00 +0100 -Subject: [PATCH 179/364] * grub-core/fs/hfs.c: Remove nested functions. +Subject: [PATCH 180/471] * grub-core/fs/hfs.c: Remove nested functions. --- ChangeLog | 4 + @@ -472,5 +472,5 @@ index 4b2b5aa..73ac7f9 100644 fail: grub_free (data); -- -1.8.1.4 +1.8.2.1 diff --git a/0180-grub-core-commands-loadenv.c-grub_cmd_list_env-Move-.patch b/0181-grub-core-commands-loadenv.c-grub_cmd_list_env-Move-.patch similarity index 93% rename from 0180-grub-core-commands-loadenv.c-grub_cmd_list_env-Move-.patch rename to 0181-grub-core-commands-loadenv.c-grub_cmd_list_env-Move-.patch index 679796d..528c55d 100644 --- a/0180-grub-core-commands-loadenv.c-grub_cmd_list_env-Move-.patch +++ b/0181-grub-core-commands-loadenv.c-grub_cmd_list_env-Move-.patch @@ -1,7 +1,7 @@ -From d4428b6c09ead48f694ccedd22dc9e9cb773dc77 Mon Sep 17 00:00:00 2001 +From cda677f0e4db75bd50c339706331e4dd36b88926 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 11:45:01 +0100 -Subject: [PATCH 180/364] * grub-core/commands/loadenv.c +Subject: [PATCH 181/471] * grub-core/commands/loadenv.c (grub_cmd_list_env): Move print_var out of its parent. --- @@ -59,5 +59,5 @@ index 4b94173..c0a42c5 100644 if (! file) return grub_errno; -- -1.8.1.4 +1.8.2.1 diff --git a/0181-grub-core-normal-charset.c-grub_bidi_logical_to_visu.patch b/0182-grub-core-normal-charset.c-grub_bidi_logical_to_visu.patch similarity index 97% rename from 0181-grub-core-normal-charset.c-grub_bidi_logical_to_visu.patch rename to 0182-grub-core-normal-charset.c-grub_bidi_logical_to_visu.patch index c42c07a..7e69113 100644 --- a/0181-grub-core-normal-charset.c-grub_bidi_logical_to_visu.patch +++ b/0182-grub-core-normal-charset.c-grub_bidi_logical_to_visu.patch @@ -1,7 +1,7 @@ -From 46992a68784aedc4e53ce749a88b6034209af87e Mon Sep 17 00:00:00 2001 +From a8cf486e737e91b508d9a5135b887eb93062b7a1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 11:47:59 +0100 -Subject: [PATCH 181/364] * grub-core/normal/charset.c +Subject: [PATCH 182/471] * grub-core/normal/charset.c (grub_bidi_logical_to_visual): Add hook pass-through parameter. All users updated and unnested. @@ -133,5 +133,5 @@ index eb5051a..5a96a19 100644 grub_size_t start_width, grub_uint32_t codechar, struct grub_term_pos *pos, -- -1.8.1.4 +1.8.2.1 diff --git a/0182-grub-core-script-execute.c-gettext_append-Remove-nes.patch b/0183-grub-core-script-execute.c-gettext_append-Remove-nes.patch similarity index 98% rename from 0182-grub-core-script-execute.c-gettext_append-Remove-nes.patch rename to 0183-grub-core-script-execute.c-gettext_append-Remove-nes.patch index e1bec98..a5ad906 100644 --- a/0182-grub-core-script-execute.c-gettext_append-Remove-nes.patch +++ b/0183-grub-core-script-execute.c-gettext_append-Remove-nes.patch @@ -1,7 +1,7 @@ -From 5a04b68d6ab44ac2da3dee3d0d36747156c21238 Mon Sep 17 00:00:00 2001 +From fd9da4fd011c2df3b6c78795fe3ffe023e571db9 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 12:17:52 +0100 -Subject: [PATCH 182/364] * grub-core/script/execute.c (gettext_append): +Subject: [PATCH 183/471] * grub-core/script/execute.c (gettext_append): Remove nested functions. --- @@ -315,5 +315,5 @@ index 6619c2e..d6a2c78 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0183-grub-core-lib-ia64-longjmp.S-Fix-the-name-of-longjmp.patch b/0184-grub-core-lib-ia64-longjmp.S-Fix-the-name-of-longjmp.patch similarity index 95% rename from 0183-grub-core-lib-ia64-longjmp.S-Fix-the-name-of-longjmp.patch rename to 0184-grub-core-lib-ia64-longjmp.S-Fix-the-name-of-longjmp.patch index f514359..f6871ed 100644 --- a/0183-grub-core-lib-ia64-longjmp.S-Fix-the-name-of-longjmp.patch +++ b/0184-grub-core-lib-ia64-longjmp.S-Fix-the-name-of-longjmp.patch @@ -1,7 +1,7 @@ -From 299c2c7a024efb609bf7fcf63e0cd9b59e16e684 Mon Sep 17 00:00:00 2001 +From cf81cc89f1aa6d5b00e9ddd06e47836ff8e4e377 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 15:31:17 +0100 -Subject: [PATCH 183/364] * grub-core/lib/ia64/longjmp.S: Fix the name +Subject: [PATCH 184/471] * grub-core/lib/ia64/longjmp.S: Fix the name of longjmp function. * grub-core/lib/ia64/setjmp.S: Fix the name of setjmp function. @@ -86,5 +86,5 @@ index a71c9c5..6e9bc8b 100644 +int grub_setjmp (grub_jmp_buf env) __attribute__ ((returns_twice)); void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn)); -- -1.8.1.4 +1.8.2.1 diff --git a/0184-Make-elfload-not-use-hooks.-Opt-for-flags-and-iterat.patch b/0185-Make-elfload-not-use-hooks.-Opt-for-flags-and-iterat.patch similarity index 99% rename from 0184-Make-elfload-not-use-hooks.-Opt-for-flags-and-iterat.patch rename to 0185-Make-elfload-not-use-hooks.-Opt-for-flags-and-iterat.patch index 2dedcfb..7e06dd9 100644 --- a/0184-Make-elfload-not-use-hooks.-Opt-for-flags-and-iterat.patch +++ b/0185-Make-elfload-not-use-hooks.-Opt-for-flags-and-iterat.patch @@ -1,7 +1,7 @@ -From efd159c0660c89f90089c7570c17c58c68df6dbe Mon Sep 17 00:00:00 2001 +From 6b0582fa0af9c5b2c3537198b3b142222137978c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 16:45:57 +0100 -Subject: [PATCH 184/364] Make elfload not use hooks. Opt for flags and +Subject: [PATCH 185/471] Make elfload not use hooks. Opt for flags and iterators instead. --- @@ -1180,5 +1180,5 @@ index d1a8d54..f854d0b 100644 #endif /* ! GRUB_ELFLOAD_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0185-grub-core-kern-term.c-grub_term_normal_color.patch b/0186-grub-core-kern-term.c-grub_term_normal_color.patch similarity index 91% rename from 0185-grub-core-kern-term.c-grub_term_normal_color.patch rename to 0186-grub-core-kern-term.c-grub_term_normal_color.patch index 2e97490..fc35e5a 100644 --- a/0185-grub-core-kern-term.c-grub_term_normal_color.patch +++ b/0186-grub-core-kern-term.c-grub_term_normal_color.patch @@ -1,7 +1,7 @@ -From 447bcdcd7ad914c3a18f6d91096fc78102e33b3e Mon Sep 17 00:00:00 2001 +From b6887b1a809fdd22b2a28b5b0ec5a6462ca9a870 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 23:23:51 +0100 -Subject: [PATCH 185/364] * grub-core/kern/term.c +Subject: [PATCH 186/471] * grub-core/kern/term.c (grub_term_normal_color), (grub_term_highlight_color): Add back lost defaults. @@ -41,5 +41,5 @@ index 34096bc..44ada25 100644 void (*grub_term_poll_usb) (void) = NULL; void (*grub_net_poll_cards_idle) (void) = NULL; -- -1.8.1.4 +1.8.2.1 diff --git a/0186-Move-to-more-hookless-approach-in-IEEE1275-devices-h.patch b/0187-Move-to-more-hookless-approach-in-IEEE1275-devices-h.patch similarity index 99% rename from 0186-Move-to-more-hookless-approach-in-IEEE1275-devices-h.patch rename to 0187-Move-to-more-hookless-approach-in-IEEE1275-devices-h.patch index 5cc390a..940cf15 100644 --- a/0186-Move-to-more-hookless-approach-in-IEEE1275-devices-h.patch +++ b/0187-Move-to-more-hookless-approach-in-IEEE1275-devices-h.patch @@ -1,7 +1,7 @@ -From ae439540d2e2027ea4d9c5dcb18cdc9fc120c676 Mon Sep 17 00:00:00 2001 +From 4f258868283bf563138c854d65df1e5f34eea2af Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 23:51:19 +0100 -Subject: [PATCH 186/364] Move to more hookless approach in IEEE1275 +Subject: [PATCH 187/471] Move to more hookless approach in IEEE1275 devices handling. --- @@ -991,5 +991,5 @@ index ee9b707..1e8ba6f 100644 #endif /* ! GRUB_IEEE1275_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0187-include-grub-mips-loongson-cmos.h-Fix-high-CMOS-addr.patch b/0188-include-grub-mips-loongson-cmos.h-Fix-high-CMOS-addr.patch similarity index 89% rename from 0187-include-grub-mips-loongson-cmos.h-Fix-high-CMOS-addr.patch rename to 0188-include-grub-mips-loongson-cmos.h-Fix-high-CMOS-addr.patch index 4fa7826..1f7a338 100644 --- a/0187-include-grub-mips-loongson-cmos.h-Fix-high-CMOS-addr.patch +++ b/0188-include-grub-mips-loongson-cmos.h-Fix-high-CMOS-addr.patch @@ -1,7 +1,7 @@ -From 19efc9d2e2ee9483f6067b32d39415ece22d4e40 Mon Sep 17 00:00:00 2001 +From 99e847792b982949b9a4824dd4aa50e414881fc2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 23:57:34 +0100 -Subject: [PATCH 187/364] * include/grub/mips/loongson/cmos.h: Fix high +Subject: [PATCH 188/471] * include/grub/mips/loongson/cmos.h: Fix high CMOS addresses. --- @@ -38,5 +38,5 @@ index 96d50f2..0c8cc8d 100644 #endif /* GRUB_CPU_CMOS_H */ -- -1.8.1.4 +1.8.2.1 diff --git a/0188-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch b/0189-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch similarity index 91% rename from 0188-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch rename to 0189-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch index e8fdebc..26601e0 100644 --- a/0188-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch +++ b/0189-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch @@ -1,7 +1,7 @@ -From b2f7a41fb3505137cd02a22913787ec45512aaad Mon Sep 17 00:00:00 2001 +From f7afdfb1d4cc6b8843e11069cb1601caaca50c73 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 2 Mar 2013 23:59:05 +0100 -Subject: [PATCH 188/364] * include/grub/cmos.h: Handle high CMOS +Subject: [PATCH 189/471] * include/grub/cmos.h: Handle high CMOS addresses on sparc64. --- @@ -50,5 +50,5 @@ index aa2b233..56ccc71 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0189-grub-core-disk-ieee1275-nand.c-Fix-compilation-on.patch b/0190-grub-core-disk-ieee1275-nand.c-Fix-compilation-on.patch similarity index 88% rename from 0189-grub-core-disk-ieee1275-nand.c-Fix-compilation-on.patch rename to 0190-grub-core-disk-ieee1275-nand.c-Fix-compilation-on.patch index 2fe35fc..88d0ee1 100644 --- a/0189-grub-core-disk-ieee1275-nand.c-Fix-compilation-on.patch +++ b/0190-grub-core-disk-ieee1275-nand.c-Fix-compilation-on.patch @@ -1,7 +1,7 @@ -From 78ba098e4146119aab14f66f13ad4d8e20962342 Mon Sep 17 00:00:00 2001 +From cc5a726891122e51c14803d81a7142205dd5e98f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 3 Mar 2013 01:30:55 +0100 -Subject: [PATCH 189/364] * grub-core/disk/ieee1275/nand.c: Fix +Subject: [PATCH 190/471] * grub-core/disk/ieee1275/nand.c: Fix compilation on i386-ieee1275. --- @@ -36,5 +36,5 @@ index 30ea0f2..576e9cc 100644 have_nand = 1; break; -- -1.8.1.4 +1.8.2.1 diff --git a/0190-grub-core-kern-env.c-include-grub-env.h-Change-itera.patch b/0191-grub-core-kern-env.c-include-grub-env.h-Change-itera.patch similarity index 98% rename from 0190-grub-core-kern-env.c-include-grub-env.h-Change-itera.patch rename to 0191-grub-core-kern-env.c-include-grub-env.h-Change-itera.patch index 3b24593..27d4536 100644 --- a/0190-grub-core-kern-env.c-include-grub-env.h-Change-itera.patch +++ b/0191-grub-core-kern-env.c-include-grub-env.h-Change-itera.patch @@ -1,7 +1,7 @@ -From fae25d35c12764fae63a85df467470d6a1120bd5 Mon Sep 17 00:00:00 2001 +From 3ac82fb82508c811ded4ff43c023c0b571b24fed Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 3 Mar 2013 01:34:27 +0100 -Subject: [PATCH 190/364] * grub-core/kern/env.c, include/grub/env.h: +Subject: [PATCH 191/471] * grub-core/kern/env.c, include/grub/env.h: Change iterator through all vars to a macro. All users updated. --- @@ -415,5 +415,5 @@ index ef42582..76f832e 100644 grub_env_read_hook_t read_hook, grub_env_write_hook_t write_hook); -- -1.8.1.4 +1.8.2.1 diff --git a/0191-grub-core-commands-regexp.c-set_matches-Move-setvar-.patch b/0192-grub-core-commands-regexp.c-set_matches-Move-setvar-.patch similarity index 94% rename from 0191-grub-core-commands-regexp.c-set_matches-Move-setvar-.patch rename to 0192-grub-core-commands-regexp.c-set_matches-Move-setvar-.patch index 3fe01c2..c6678f7 100644 --- a/0191-grub-core-commands-regexp.c-set_matches-Move-setvar-.patch +++ b/0192-grub-core-commands-regexp.c-set_matches-Move-setvar-.patch @@ -1,7 +1,7 @@ -From 722e9b8b8bcf3d27f5f69b64ebcf10fad9e86cbb Mon Sep 17 00:00:00 2001 +From b5b12db0916b3436e872c23e08ad8627c0e726f1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 3 Mar 2013 15:24:02 +0100 -Subject: [PATCH 191/364] * grub-core/commands/regexp.c (set_matches): +Subject: [PATCH 192/471] * grub-core/commands/regexp.c (set_matches): Move setvar out of its parent. --- @@ -86,5 +86,5 @@ index b0706d0..f00b184 100644 if (err != GRUB_ERR_NONE) -- -1.8.1.4 +1.8.2.1 diff --git a/0192-grub-core-script-execute.c-grub_script_arglist_to_ar.patch b/0193-grub-core-script-execute.c-grub_script_arglist_to_ar.patch similarity index 96% rename from 0192-grub-core-script-execute.c-grub_script_arglist_to_ar.patch rename to 0193-grub-core-script-execute.c-grub_script_arglist_to_ar.patch index e094106..8314992 100644 --- a/0192-grub-core-script-execute.c-grub_script_arglist_to_ar.patch +++ b/0193-grub-core-script-execute.c-grub_script_arglist_to_ar.patch @@ -1,7 +1,7 @@ -From cd2343c20da69dd14df7ff8f558014edb70f8927 Mon Sep 17 00:00:00 2001 +From 80253b05980830416244cc190158435d7fc306b2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 3 Mar 2013 15:26:29 +0100 -Subject: [PATCH 192/364] * grub-core/script/execute.c +Subject: [PATCH 193/471] * grub-core/script/execute.c (grub_script_arglist_to_argv): Move append out of its parent. --- @@ -123,5 +123,5 @@ index d6a2c78..a1dcc34 100644 } grub_free (expansions); -- -1.8.1.4 +1.8.2.1 diff --git a/0193-Remove-all-trampoline-support.-Add-Wtrampolines-when.patch b/0194-Remove-all-trampoline-support.-Add-Wtrampolines-when.patch similarity index 98% rename from 0193-Remove-all-trampoline-support.-Add-Wtrampolines-when.patch rename to 0194-Remove-all-trampoline-support.-Add-Wtrampolines-when.patch index 6a5c052..5e5326f 100644 --- a/0193-Remove-all-trampoline-support.-Add-Wtrampolines-when.patch +++ b/0194-Remove-all-trampoline-support.-Add-Wtrampolines-when.patch @@ -1,7 +1,7 @@ -From b4a236b957cd9f65bc70f04a0365085f8183bcb9 Mon Sep 17 00:00:00 2001 +From 03cd56052af22492179742054c0e6c0382f85afb Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 3 Mar 2013 15:57:30 +0100 -Subject: [PATCH 193/364] Remove all trampoline support. Add +Subject: [PATCH 194/471] Remove all trampoline support. Add -Wtrampolines when present. Remove symbols used for trampolines to make link fail if trampolines are present. @@ -198,5 +198,5 @@ index 33e6b73..11eeb22 100644 void EXPORT_FUNC (__register_frame_info) (void); void EXPORT_FUNC (__deregister_frame_info) (void); -- -1.8.1.4 +1.8.2.1 diff --git a/0194-grub-core-term-terminfo.c-grub_terminfo_cls-Issue-an.patch b/0195-grub-core-term-terminfo.c-grub_terminfo_cls-Issue-an.patch similarity index 89% rename from 0194-grub-core-term-terminfo.c-grub_terminfo_cls-Issue-an.patch rename to 0195-grub-core-term-terminfo.c-grub_terminfo_cls-Issue-an.patch index 27fa422..c95c024 100644 --- a/0194-grub-core-term-terminfo.c-grub_terminfo_cls-Issue-an.patch +++ b/0195-grub-core-term-terminfo.c-grub_terminfo_cls-Issue-an.patch @@ -1,7 +1,7 @@ -From 90d1b9374dd522d4552b17b8fe1b4a49de63b997 Mon Sep 17 00:00:00 2001 +From 0cbe55531afbe9cb9a8e63d27452a6261b7736c2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 5 Mar 2013 20:00:51 +0100 -Subject: [PATCH 194/364] * grub-core/term/terminfo.c +Subject: [PATCH 195/471] * grub-core/term/terminfo.c (grub_terminfo_cls): Issue an explicit gotoxy to 0,0. --- @@ -37,5 +37,5 @@ index eb0ef00..a46bb4b 100644 void -- -1.8.1.4 +1.8.2.1 diff --git a/0195-Lift-up-core-size-limits-on-some-platforms.-Fix-pote.patch b/0196-Lift-up-core-size-limits-on-some-platforms.-Fix-pote.patch similarity index 99% rename from 0195-Lift-up-core-size-limits-on-some-platforms.-Fix-pote.patch rename to 0196-Lift-up-core-size-limits-on-some-platforms.-Fix-pote.patch index 5cfe307..2bc5621 100644 --- a/0195-Lift-up-core-size-limits-on-some-platforms.-Fix-pote.patch +++ b/0196-Lift-up-core-size-limits-on-some-platforms.-Fix-pote.patch @@ -1,7 +1,7 @@ -From 68cd2e93537bee644f0595cb0b734fe53cfa0637 Mon Sep 17 00:00:00 2001 +From 1e70833b4206de6b356cc5f6052228d66c283761 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 7 Mar 2013 08:17:24 +0100 -Subject: [PATCH 195/364] Lift up core size limits on some platforms. +Subject: [PATCH 196/471] Lift up core size limits on some platforms. Fix potential memory corruption with big core on small memory systems. Document remaining limits. @@ -458,5 +458,5 @@ index 29bda17..845abed 100644 phdr->p_paddr = grub_host_to_target32 (target_addr_mods); phdr->p_align = grub_host_to_target32 (image_target->link_align); -- -1.8.1.4 +1.8.2.1 diff --git a/0196-grub-core-normal-crypto.c-read_crypto_list-Fix-incor.patch b/0197-grub-core-normal-crypto.c-read_crypto_list-Fix-incor.patch similarity index 92% rename from 0196-grub-core-normal-crypto.c-read_crypto_list-Fix-incor.patch rename to 0197-grub-core-normal-crypto.c-read_crypto_list-Fix-incor.patch index a8dfb0f..ec24bd5 100644 --- a/0196-grub-core-normal-crypto.c-read_crypto_list-Fix-incor.patch +++ b/0197-grub-core-normal-crypto.c-read_crypto_list-Fix-incor.patch @@ -1,7 +1,7 @@ -From 412f61e8c25bfde5526d86bc2db1988e4c403e1d Mon Sep 17 00:00:00 2001 +From b3e3387c94fa080342c9dadd32cf83155e4ce85b Mon Sep 17 00:00:00 2001 From: Nickolai Zeldovich Date: Thu, 7 Mar 2013 08:41:27 +0100 -Subject: [PATCH 196/364] * grub-core/normal/crypto.c +Subject: [PATCH 197/471] * grub-core/normal/crypto.c (read_crypto_list): Fix incorrect OOM check. * grub-core/normal/term.c (read_terminal_list): Likewise. @@ -52,5 +52,5 @@ index ae91071..f89e5d2 100644 grub_errno = GRUB_ERR_NONE; grub_free (cur); -- -1.8.1.4 +1.8.2.1 diff --git a/0197-grub-core-commands-acpi.c-grub_acpi_create_ebda-Don-.patch b/0198-grub-core-commands-acpi.c-grub_acpi_create_ebda-Don-.patch similarity index 93% rename from 0197-grub-core-commands-acpi.c-grub_acpi_create_ebda-Don-.patch rename to 0198-grub-core-commands-acpi.c-grub_acpi_create_ebda-Don-.patch index 35e9704..263d30e 100644 --- a/0197-grub-core-commands-acpi.c-grub_acpi_create_ebda-Don-.patch +++ b/0198-grub-core-commands-acpi.c-grub_acpi_create_ebda-Don-.patch @@ -1,7 +1,7 @@ -From c96f4909ef077ca8a1b8a5db356ed290e6177b5f Mon Sep 17 00:00:00 2001 +From fa35f13018c92b66f4a68e1f32ede2b0327f993b Mon Sep 17 00:00:00 2001 From: Nickolai Zeldovich Date: Thu, 7 Mar 2013 08:52:29 +0100 -Subject: [PATCH 197/364] * grub-core/commands/acpi.c +Subject: [PATCH 198/471] * grub-core/commands/acpi.c (grub_acpi_create_ebda): Don't dereference null pointer. While the code is technically correct, gcc may eliminate a null check if pointer is already dereferenced. @@ -53,5 +53,5 @@ index 891e392..8000873 100644 ctx.ebda_len = (ebda_kb_len + 1) << 10; -- -1.8.1.4 +1.8.2.1 diff --git a/0198-grub-core-fs-iso9660.c-add_part-Remove-always_inline.patch b/0199-grub-core-fs-iso9660.c-add_part-Remove-always_inline.patch similarity index 88% rename from 0198-grub-core-fs-iso9660.c-add_part-Remove-always_inline.patch rename to 0199-grub-core-fs-iso9660.c-add_part-Remove-always_inline.patch index f9eb3b5..f62c60f 100644 --- a/0198-grub-core-fs-iso9660.c-add_part-Remove-always_inline.patch +++ b/0199-grub-core-fs-iso9660.c-add_part-Remove-always_inline.patch @@ -1,7 +1,7 @@ -From 169e65c4e6af3ed59e0854bd41531989a3b34ff5 Mon Sep 17 00:00:00 2001 +From 45025027ddbcf13fb5a5ee3a42f5318219f78fb4 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Thu, 7 Mar 2013 09:11:36 +0100 -Subject: [PATCH 198/364] * grub-core/fs/iso9660.c (add_part): Remove +Subject: [PATCH 199/471] * grub-core/fs/iso9660.c (add_part): Remove always_inline attribute causing gcc error with gcc 4.7.1. --- @@ -36,5 +36,5 @@ index 01a07b8..cdbd6dc 100644 const char *part, int len2) -- -1.8.1.4 +1.8.2.1 diff --git a/0199-grub-core-fs-fshelp.c-grub_fshelp_log2blksize-Remove.patch b/0200-grub-core-fs-fshelp.c-grub_fshelp_log2blksize-Remove.patch similarity index 93% rename from 0199-grub-core-fs-fshelp.c-grub_fshelp_log2blksize-Remove.patch rename to 0200-grub-core-fs-fshelp.c-grub_fshelp_log2blksize-Remove.patch index cacb83f..c110e75 100644 --- a/0199-grub-core-fs-fshelp.c-grub_fshelp_log2blksize-Remove.patch +++ b/0200-grub-core-fs-fshelp.c-grub_fshelp_log2blksize-Remove.patch @@ -1,7 +1,7 @@ -From d99417e57a1c5fb1628cc7010a9deabf41786a18 Mon Sep 17 00:00:00 2001 +From 4e7071ba5f26c0de531f071eeb3b8ebc517d4a2a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 14:27:04 +0100 -Subject: [PATCH 199/364] * grub-core/fs/fshelp.c +Subject: [PATCH 200/471] * grub-core/fs/fshelp.c (grub_fshelp_log2blksize): Remove now unused function. --- @@ -66,5 +66,5 @@ index 5c57236..3892304 100644 - #endif /* ! GRUB_FSHELP_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0200-Avoid-costly-64-bit-division-in-grub_get_time_ms-on-.patch b/0201-Avoid-costly-64-bit-division-in-grub_get_time_ms-on-.patch similarity index 98% rename from 0200-Avoid-costly-64-bit-division-in-grub_get_time_ms-on-.patch rename to 0201-Avoid-costly-64-bit-division-in-grub_get_time_ms-on-.patch index 6945db0..e8f2bd8 100644 --- a/0200-Avoid-costly-64-bit-division-in-grub_get_time_ms-on-.patch +++ b/0201-Avoid-costly-64-bit-division-in-grub_get_time_ms-on-.patch @@ -1,7 +1,7 @@ -From d47c03e078f39034d1843dfe8a84aedff40638ba Mon Sep 17 00:00:00 2001 +From 637ede531e110b92cf5e8fd5be8561c5a5bd3429 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 17:45:38 +0100 -Subject: [PATCH 200/364] Avoid costly 64-bit division in +Subject: [PATCH 201/471] Avoid costly 64-bit division in grub_get_time_ms on most platforms. --- @@ -367,5 +367,5 @@ index 2442d7e..d25d0e3 100644 #endif /* ! KERNEL_CPU_TSC_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0201-grub-core-fs-hfs.c-grub_hfs_read_file-Avoid-divmod64.patch b/0202-grub-core-fs-hfs.c-grub_hfs_read_file-Avoid-divmod64.patch similarity index 94% rename from 0201-grub-core-fs-hfs.c-grub_hfs_read_file-Avoid-divmod64.patch rename to 0202-grub-core-fs-hfs.c-grub_hfs_read_file-Avoid-divmod64.patch index 9ef8ea3..c7980cf 100644 --- a/0201-grub-core-fs-hfs.c-grub_hfs_read_file-Avoid-divmod64.patch +++ b/0202-grub-core-fs-hfs.c-grub_hfs_read_file-Avoid-divmod64.patch @@ -1,7 +1,7 @@ -From ee4b14ff422b784baa941c80613c79b8ab5140ea Mon Sep 17 00:00:00 2001 +From 816fd37ee87127911c61b5464dfdd25145b36e1c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 18:27:53 +0100 -Subject: [PATCH 201/364] * grub-core/fs/hfs.c (grub_hfs_read_file): +Subject: [PATCH 202/471] * grub-core/fs/hfs.c (grub_hfs_read_file): Avoid divmod64 since the maximum size is 4G - 1 on hfs --- @@ -77,5 +77,5 @@ index 73ac7f9..14520c0 100644 skipfirst = blockoff; blockend -= skipfirst; -- -1.8.1.4 +1.8.2.1 diff --git a/0202-Adjust-types-in-gdb-module-to-have-intended-unsigned.patch b/0203-Adjust-types-in-gdb-module-to-have-intended-unsigned.patch similarity index 94% rename from 0202-Adjust-types-in-gdb-module-to-have-intended-unsigned.patch rename to 0203-Adjust-types-in-gdb-module-to-have-intended-unsigned.patch index d7f307a..a9b9165 100644 --- a/0202-Adjust-types-in-gdb-module-to-have-intended-unsigned.patch +++ b/0203-Adjust-types-in-gdb-module-to-have-intended-unsigned.patch @@ -1,7 +1,7 @@ -From 38ce1e9087067fa3fbb132d943b35d3a995408a5 Mon Sep 17 00:00:00 2001 +From 03976ab690ee925d6bd752c6996856dbf0a40a74 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 18:36:39 +0100 -Subject: [PATCH 202/364] Adjust types in gdb module to have intended +Subject: [PATCH 203/471] Adjust types in gdb module to have intended unsigned shifts rather than signed divisions. --- @@ -75,5 +75,5 @@ index 59fd456..e73d135 100644 #endif /* ! GRUB_GDB_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0203-grub-core-video-i386-pc-vbe.c.patch b/0204-grub-core-video-i386-pc-vbe.c.patch similarity index 90% rename from 0203-grub-core-video-i386-pc-vbe.c.patch rename to 0204-grub-core-video-i386-pc-vbe.c.patch index 9ddb23a..69dd818 100644 --- a/0203-grub-core-video-i386-pc-vbe.c.patch +++ b/0204-grub-core-video-i386-pc-vbe.c.patch @@ -1,7 +1,7 @@ -From ed1dd57ff45a059bc3f54c96ac9e41bbc002186f Mon Sep 17 00:00:00 2001 +From 019109ed5ab8eb903c99026393c1b7d0ded973f2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 18:49:05 +0100 -Subject: [PATCH 203/364] * grub-core/video/i386/pc/vbe.c +Subject: [PATCH 204/471] * grub-core/video/i386/pc/vbe.c (grub_video_vbe_print_adapter_specific_info): Replace division by shifts. @@ -40,5 +40,5 @@ index e8a8c7a..f112f15 100644 static struct grub_video_adapter grub_video_vbe_adapter = -- -1.8.1.4 +1.8.2.1 diff --git a/0204-include-grub-datetime.h-grub_datetime2unixtime-Fix-u.patch b/0205-include-grub-datetime.h-grub_datetime2unixtime-Fix-u.patch similarity index 91% rename from 0204-include-grub-datetime.h-grub_datetime2unixtime-Fix-u.patch rename to 0205-include-grub-datetime.h-grub_datetime2unixtime-Fix-u.patch index a1d8351..b455211 100644 --- a/0204-include-grub-datetime.h-grub_datetime2unixtime-Fix-u.patch +++ b/0205-include-grub-datetime.h-grub_datetime2unixtime-Fix-u.patch @@ -1,7 +1,7 @@ -From 8aaee3ccd69f2eb821116c0496b734641fb69b05 Mon Sep 17 00:00:00 2001 +From 9024078c32dd74ba0e376d422cba33f587f7756d Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 19:19:21 +0100 -Subject: [PATCH 204/364] * include/grub/datetime.h +Subject: [PATCH 205/471] * include/grub/datetime.h (grub_datetime2unixtime): Fix unixtime computation for some years before epoch. Avode confusing division while on it. @@ -42,5 +42,5 @@ index 3a3b3d0..fef2814 100644 ret += y4 * SECPER4YEARS; ret += ay * SECPERYEAR; -- -1.8.1.4 +1.8.2.1 diff --git a/0205-grub-core-loader-i386-pc-plan9.c-fill_disk-Fix-types.patch b/0206-grub-core-loader-i386-pc-plan9.c-fill_disk-Fix-types.patch similarity index 91% rename from 0205-grub-core-loader-i386-pc-plan9.c-fill_disk-Fix-types.patch rename to 0206-grub-core-loader-i386-pc-plan9.c-fill_disk-Fix-types.patch index 37effe8..04a1b8a 100644 --- a/0205-grub-core-loader-i386-pc-plan9.c-fill_disk-Fix-types.patch +++ b/0206-grub-core-loader-i386-pc-plan9.c-fill_disk-Fix-types.patch @@ -1,7 +1,7 @@ -From 17a6553c2d4bbe04e9063dac50637262af4aeac1 Mon Sep 17 00:00:00 2001 +From b21d161bc61fc8b411f21df0f25598090a5b66cc Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 19:27:50 +0100 -Subject: [PATCH 205/364] * grub-core/loader/i386/pc/plan9.c +Subject: [PATCH 206/471] * grub-core/loader/i386/pc/plan9.c (fill_disk): Fix types to use intended shifts rather than division. --- @@ -47,5 +47,5 @@ index 7dc12a8..1c7b381 100644 unit = 0; else -- -1.8.1.4 +1.8.2.1 diff --git a/0206-grub-core-commands-verify.c-grub_verify_signature-Us.patch b/0207-grub-core-commands-verify.c-grub_verify_signature-Us.patch similarity index 93% rename from 0206-grub-core-commands-verify.c-grub_verify_signature-Us.patch rename to 0207-grub-core-commands-verify.c-grub_verify_signature-Us.patch index 75d97ea..1088f9b 100644 --- a/0206-grub-core-commands-verify.c-grub_verify_signature-Us.patch +++ b/0207-grub-core-commands-verify.c-grub_verify_signature-Us.patch @@ -1,7 +1,7 @@ -From 2f505c89522520243b7164a744953afa6dc8691d Mon Sep 17 00:00:00 2001 +From b5787296b70e61c93502181d5ca0f23502eeaebb Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 19:39:14 +0100 -Subject: [PATCH 206/364] * grub-core/commands/verify.c +Subject: [PATCH 207/471] * grub-core/commands/verify.c (grub_verify_signature): Use unsigned operations to have intended shifts and not divisions. @@ -47,5 +47,5 @@ index d399d0f..38bb941 100644 if (!grub_crypto_pk_dsa) return grub_error (GRUB_ERR_BAD_SIGNATURE, N_("module `%s' isn't loaded"), "gcry_dsa"); -- -1.8.1.4 +1.8.2.1 diff --git a/0207-grub-core-lib-arg.c-grub_arg_list_alloc-Use-shifts-r.patch b/0208-grub-core-lib-arg.c-grub_arg_list_alloc-Use-shifts-r.patch similarity index 92% rename from 0207-grub-core-lib-arg.c-grub_arg_list_alloc-Use-shifts-r.patch rename to 0208-grub-core-lib-arg.c-grub_arg_list_alloc-Use-shifts-r.patch index b501f4d..535a70a 100644 --- a/0207-grub-core-lib-arg.c-grub_arg_list_alloc-Use-shifts-r.patch +++ b/0208-grub-core-lib-arg.c-grub_arg_list_alloc-Use-shifts-r.patch @@ -1,7 +1,7 @@ -From f57dd7a0c54ee35789d8cb44989622c269342db7 Mon Sep 17 00:00:00 2001 +From 2b7ba382e92e9e62d51b3dd630046982b83c8e99 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 20:08:15 +0100 -Subject: [PATCH 207/364] * grub-core/lib/arg.c (grub_arg_list_alloc): +Subject: [PATCH 208/471] * grub-core/lib/arg.c (grub_arg_list_alloc): Use shifts rather than divisions. --- @@ -56,5 +56,5 @@ index da44e30..7492ac6 100644 } return list; -- -1.8.1.4 +1.8.2.1 diff --git a/0208-grub-core-loader-i386-bsdXX.c-grub_openbsd_find_ramd.patch b/0209-grub-core-loader-i386-bsdXX.c-grub_openbsd_find_ramd.patch similarity index 90% rename from 0208-grub-core-loader-i386-bsdXX.c-grub_openbsd_find_ramd.patch rename to 0209-grub-core-loader-i386-bsdXX.c-grub_openbsd_find_ramd.patch index 87fcd01..8692c63 100644 --- a/0208-grub-core-loader-i386-bsdXX.c-grub_openbsd_find_ramd.patch +++ b/0209-grub-core-loader-i386-bsdXX.c-grub_openbsd_find_ramd.patch @@ -1,7 +1,7 @@ -From a3b87da49162a9c439bf464d0f45a0f48912bff9 Mon Sep 17 00:00:00 2001 +From c8390bb346d14738026c6909767e27c46414da88 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 10 Mar 2013 20:37:41 +0100 -Subject: [PATCH 208/364] * grub-core/loader/i386/bsdXX.c +Subject: [PATCH 209/471] * grub-core/loader/i386/bsdXX.c (grub_openbsd_find_ramdisk): Use multiplication rather than division. --- @@ -38,5 +38,5 @@ index 3f9f093..9e36cd4 100644 { if (ELF_ST_TYPE (sym->st_info) != STT_OBJECT) -- -1.8.1.4 +1.8.2.1 diff --git a/0209-Resend-a-packet-if-we-got-the-wrong-buffer-in-status.patch b/0210-Resend-a-packet-if-we-got-the-wrong-buffer-in-status.patch similarity index 95% rename from 0209-Resend-a-packet-if-we-got-the-wrong-buffer-in-status.patch rename to 0210-Resend-a-packet-if-we-got-the-wrong-buffer-in-status.patch index 751a4ca..c34b544 100644 --- a/0209-Resend-a-packet-if-we-got-the-wrong-buffer-in-status.patch +++ b/0210-Resend-a-packet-if-we-got-the-wrong-buffer-in-status.patch @@ -1,7 +1,7 @@ -From a9a4ba2857cae31eac34febe2d08e9d6849b119e Mon Sep 17 00:00:00 2001 +From a2ada321927efea6453a7488cefac7434c591212 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 17 Mar 2013 13:33:16 +0100 -Subject: [PATCH 209/364] Resend a packet if we got the wrong buffer in +Subject: [PATCH 210/471] Resend a packet if we got the wrong buffer in status. --- @@ -80,5 +80,5 @@ index 3877451..1bd7af2 100644 #endif void *data; -- -1.8.1.4 +1.8.2.1 diff --git a/0210-Better-estimate-the-maximum-USB-transfer-size.patch b/0211-Better-estimate-the-maximum-USB-transfer-size.patch similarity index 98% rename from 0210-Better-estimate-the-maximum-USB-transfer-size.patch rename to 0211-Better-estimate-the-maximum-USB-transfer-size.patch index 05470a6..3fee152 100644 --- a/0210-Better-estimate-the-maximum-USB-transfer-size.patch +++ b/0211-Better-estimate-the-maximum-USB-transfer-size.patch @@ -1,7 +1,7 @@ -From 880bee5493e9515001f87355f54af34df64c90f4 Mon Sep 17 00:00:00 2001 +From 45b13f9d1572538ea6dc89017767abb9676e9426 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 19 Mar 2013 08:17:51 +0100 -Subject: [PATCH 210/364] Better estimate the maximum USB transfer size. +Subject: [PATCH 211/471] Better estimate the maximum USB transfer size. --- ChangeLog | 4 ++ @@ -233,5 +233,5 @@ index cefa8b6..55f65f7 100644 /* The next host controller. */ struct grub_usb_controller_dev *next; -- -1.8.1.4 +1.8.2.1 diff --git a/0211-remove-get_endpoint_descriptor-and-change-all-functi.patch b/0212-remove-get_endpoint_descriptor-and-change-all-functi.patch similarity index 99% rename from 0211-remove-get_endpoint_descriptor-and-change-all-functi.patch rename to 0212-remove-get_endpoint_descriptor-and-change-all-functi.patch index 29725c5..f89900e 100644 --- a/0211-remove-get_endpoint_descriptor-and-change-all-functi.patch +++ b/0212-remove-get_endpoint_descriptor-and-change-all-functi.patch @@ -1,7 +1,7 @@ -From 944030c773c6dc4500d5ccf7762705b3fb1494e1 Mon Sep 17 00:00:00 2001 +From f6ca5450858cedbe0fc18c973fc19e1242f71f45 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 19 Mar 2013 11:19:36 +0100 -Subject: [PATCH 211/364] remove get_endpoint_descriptor and change all +Subject: [PATCH 212/471] remove get_endpoint_descriptor and change all functions needing descriptor to just receive it as argument rather than endpoint address. @@ -411,5 +411,5 @@ index 55f65f7..32f0ecd 100644 grub_usb_check_transfer (grub_usb_transfer_t trans, grub_size_t *actual); void -- -1.8.1.4 +1.8.2.1 diff --git a/0212-Implement-boot-time-analysis-framework.patch b/0213-Implement-boot-time-analysis-framework.patch similarity index 99% rename from 0212-Implement-boot-time-analysis-framework.patch rename to 0213-Implement-boot-time-analysis-framework.patch index 40f03f9..1cf3a68 100644 --- a/0212-Implement-boot-time-analysis-framework.patch +++ b/0213-Implement-boot-time-analysis-framework.patch @@ -1,7 +1,7 @@ -From 6136b9fb4811ee44ec16f3ad9f4306d0798419b1 Mon Sep 17 00:00:00 2001 +From 2fa8f0208a907ec3e59e75a5ad970739d308d286 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 19 Mar 2013 20:25:09 +0100 -Subject: [PATCH 212/364] Implement boot time analysis framework. +Subject: [PATCH 213/471] Implement boot time analysis framework. --- ChangeLog | 6 +++- @@ -591,5 +591,5 @@ index 11eeb22..f0ecaec 100644 + #endif /* ! GRUB_MISC_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0213-Fix-USB-devices-not-being-detected-when-requested.patch b/0214-Fix-USB-devices-not-being-detected-when-requested.patch similarity index 98% rename from 0213-Fix-USB-devices-not-being-detected-when-requested.patch rename to 0214-Fix-USB-devices-not-being-detected-when-requested.patch index 229a7a5..aebff23 100644 --- a/0213-Fix-USB-devices-not-being-detected-when-requested.patch +++ b/0214-Fix-USB-devices-not-being-detected-when-requested.patch @@ -1,7 +1,7 @@ -From e8bff0306f0d095082eea159133007f1de62b169 Mon Sep 17 00:00:00 2001 +From 1d79a30acc9b9cf67c9d669a2a57b3ce26683ff6 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 19 Mar 2013 20:35:21 +0100 -Subject: [PATCH 213/364] Fix USB devices not being detected when +Subject: [PATCH 214/471] Fix USB devices not being detected when requested due to delayed attach. --- @@ -263,5 +263,5 @@ index 32f0ecd..7164dd5 100644 void grub_usb_device_attach (grub_usb_device_t dev); grub_usb_err_t -- -1.8.1.4 +1.8.2.1 diff --git a/0214-Initialize-USB-ports-in-parallel-to-speed-up-boot.patch b/0215-Initialize-USB-ports-in-parallel-to-speed-up-boot.patch similarity index 99% rename from 0214-Initialize-USB-ports-in-parallel-to-speed-up-boot.patch rename to 0215-Initialize-USB-ports-in-parallel-to-speed-up-boot.patch index aa1cd75..5bfa004 100644 --- a/0214-Initialize-USB-ports-in-parallel-to-speed-up-boot.patch +++ b/0215-Initialize-USB-ports-in-parallel-to-speed-up-boot.patch @@ -1,7 +1,7 @@ -From b5ba765ba55f33743558a7f3a965b6156903e381 Mon Sep 17 00:00:00 2001 +From b528ebd33741511b054926e6076b23ab0637f6da Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 19 Mar 2013 23:06:44 +0100 -Subject: [PATCH 214/364] Initialize USB ports in parallel to speed-up +Subject: [PATCH 215/471] Initialize USB ports in parallel to speed-up boot. --- @@ -535,5 +535,5 @@ index 7164dd5..12a456b 100644 grub_uint32_t statuschange; -- -1.8.1.4 +1.8.2.1 diff --git a/0215-include-grub-boottime.h-Add-missing-file.patch b/0216-include-grub-boottime.h-Add-missing-file.patch similarity index 83% rename from 0215-include-grub-boottime.h-Add-missing-file.patch rename to 0216-include-grub-boottime.h-Add-missing-file.patch index 6bd18e8..7874cbf 100644 --- a/0215-include-grub-boottime.h-Add-missing-file.patch +++ b/0216-include-grub-boottime.h-Add-missing-file.patch @@ -1,7 +1,7 @@ -From 07cecc1a92518d0e2fb621f826befb14bb1413ca Mon Sep 17 00:00:00 2001 +From 3a4118ef309840ef7a053c299bc0436d5de4171f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 20 Mar 2013 16:58:07 +0100 -Subject: [PATCH 215/364] * include/grub/boottime.h: Add missing file. +Subject: [PATCH 216/471] * include/grub/boottime.h: Add missing file. --- ChangeLog | 4 ++++ @@ -25,5 +25,5 @@ diff --git a/include/grub/boottime.h b/include/grub/boottime.h new file mode 100644 index 0000000..e69de29 -- -1.8.1.4 +1.8.2.1 diff --git a/0216-Fix-a-conflict-between-ports-structures-with-2-contr.patch b/0217-Fix-a-conflict-between-ports-structures-with-2-contr.patch similarity index 97% rename from 0216-Fix-a-conflict-between-ports-structures-with-2-contr.patch rename to 0217-Fix-a-conflict-between-ports-structures-with-2-contr.patch index 714ea61..f08d94e 100644 --- a/0216-Fix-a-conflict-between-ports-structures-with-2-contr.patch +++ b/0217-Fix-a-conflict-between-ports-structures-with-2-contr.patch @@ -1,7 +1,7 @@ -From 018defe9d63f3a44e87b3345a8e5daeaa389a2bf Mon Sep 17 00:00:00 2001 +From e3e32021b775ea8066f4c76d03e803e2d50716ce Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 20 Mar 2013 17:07:08 +0100 -Subject: [PATCH 216/364] Fix a conflict between ports structures with 2 +Subject: [PATCH 217/471] Fix a conflict between ports structures with 2 controllers of same kind. --- @@ -130,5 +130,5 @@ index 12a456b..9e2c221 100644 grub_uint64_t pending_reset; -- -1.8.1.4 +1.8.2.1 diff --git a/0217-New-commands-cbmemc-lscoreboot-coreboot_boottime-to-.patch b/0218-New-commands-cbmemc-lscoreboot-coreboot_boottime-to-.patch similarity index 99% rename from 0217-New-commands-cbmemc-lscoreboot-coreboot_boottime-to-.patch rename to 0218-New-commands-cbmemc-lscoreboot-coreboot_boottime-to-.patch index bda4de7..5acd386 100644 --- a/0217-New-commands-cbmemc-lscoreboot-coreboot_boottime-to-.patch +++ b/0218-New-commands-cbmemc-lscoreboot-coreboot_boottime-to-.patch @@ -1,7 +1,7 @@ -From d060cd9ae53e59c0bf1e58f05c6ead1989b7d291 Mon Sep 17 00:00:00 2001 +From 0f1725945089691326aaa827ac6338eca584b802 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 20 Mar 2013 17:13:31 +0100 -Subject: [PATCH 217/364] New commands cbmemc, lscoreboot, +Subject: [PATCH 218/471] New commands cbmemc, lscoreboot, coreboot_boottime to inspect coreboot tables content. Support for cbmemc. --- @@ -600,5 +600,5 @@ index 416faa4..4fcc3da 100644 grub_dyncmd_get_cmd (grub_command_t cmd); -- -1.8.1.4 +1.8.2.1 diff --git a/0218-grub-core-commands-boottime.c-Fix-copyright-header.patch b/0219-grub-core-commands-boottime.c-Fix-copyright-header.patch similarity index 89% rename from 0218-grub-core-commands-boottime.c-Fix-copyright-header.patch rename to 0219-grub-core-commands-boottime.c-Fix-copyright-header.patch index cbedfcc..06afb80 100644 --- a/0218-grub-core-commands-boottime.c-Fix-copyright-header.patch +++ b/0219-grub-core-commands-boottime.c-Fix-copyright-header.patch @@ -1,7 +1,7 @@ -From d1318e17015a2dd058e06b4769d4bb67a95f832b Mon Sep 17 00:00:00 2001 +From d0d1029ea33d43710c48bd24d3905d2bbcc0d671 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 20 Mar 2013 17:16:35 +0100 -Subject: [PATCH 218/364] * grub-core/commands/boottime.c: Fix copyright +Subject: [PATCH 219/471] * grub-core/commands/boottime.c: Fix copyright header. --- @@ -37,5 +37,5 @@ index cd7f70a..7370d27 100644 * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -- -1.8.1.4 +1.8.2.1 diff --git a/0219-Slight-improve-in-USB-related-boot-time-checkpoints.patch b/0220-Slight-improve-in-USB-related-boot-time-checkpoints.patch similarity index 95% rename from 0219-Slight-improve-in-USB-related-boot-time-checkpoints.patch rename to 0220-Slight-improve-in-USB-related-boot-time-checkpoints.patch index ff3e398..a83d353 100644 --- a/0219-Slight-improve-in-USB-related-boot-time-checkpoints.patch +++ b/0220-Slight-improve-in-USB-related-boot-time-checkpoints.patch @@ -1,7 +1,7 @@ -From d0340ebbae7c69cc2ba5c7d8001c674f90ae2265 Mon Sep 17 00:00:00 2001 +From 171c7ed5ddba903d30c342c09013decfbe18c992 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 20 Mar 2013 17:21:13 +0100 -Subject: [PATCH 219/364] Slight improve in USB-related boot-time +Subject: [PATCH 220/471] Slight improve in USB-related boot-time checkpoints. --- @@ -77,5 +77,5 @@ index fd7b94e..6fc9d02 100644 { rescan = 0; -- -1.8.1.4 +1.8.2.1 diff --git a/0220-grub-core-commands-verify.c-hashes-Add-several-hashe.patch b/0221-grub-core-commands-verify.c-hashes-Add-several-hashe.patch similarity index 88% rename from 0220-grub-core-commands-verify.c-hashes-Add-several-hashe.patch rename to 0221-grub-core-commands-verify.c-hashes-Add-several-hashe.patch index 197b1cd..4bf5f82 100644 --- a/0220-grub-core-commands-verify.c-hashes-Add-several-hashe.patch +++ b/0221-grub-core-commands-verify.c-hashes-Add-several-hashe.patch @@ -1,7 +1,7 @@ -From d7fd8ed25c43bd6d83e9b549a329feebaec79946 Mon Sep 17 00:00:00 2001 +From 834773665859d4a23553406715d11b3e3328b5ac Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 20 Mar 2013 17:24:39 +0100 -Subject: [PATCH 220/364] * grub-core/commands/verify.c (hashes): Add +Subject: [PATCH 221/471] * grub-core/commands/verify.c (hashes): Add several hashes from the spec. --- @@ -41,5 +41,5 @@ index 38bb941..6c0b580 100644 struct -- -1.8.1.4 +1.8.2.1 diff --git a/0221-po-POTFILES.in-Regenerate.patch b/0222-po-POTFILES.in-Regenerate.patch similarity index 98% rename from 0221-po-POTFILES.in-Regenerate.patch rename to 0222-po-POTFILES.in-Regenerate.patch index d448fea..e980d03 100644 --- a/0221-po-POTFILES.in-Regenerate.patch +++ b/0222-po-POTFILES.in-Regenerate.patch @@ -1,7 +1,7 @@ -From 39ad20fe77008cdcbab99329d34b4dee56c26dcd Mon Sep 17 00:00:00 2001 +From 011eecc4abbc1fd9d40e8eb154652f8ec5d025c1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 21 Mar 2013 21:54:31 +0100 -Subject: [PATCH 221/364] * po/POTFILES.in: Regenerate. +Subject: [PATCH 222/471] * po/POTFILES.in: Regenerate. --- ChangeLog | 4 +++ @@ -228,5 +228,5 @@ index 01cc53c..ec79914 100644 ./util/resolve.c +./util/spkmodem-recv.c -- -1.8.1.4 +1.8.2.1 diff --git a/0222-grub-core-commands-i386-coreboot-cbls.c-Fix-typos-an.patch b/0223-grub-core-commands-i386-coreboot-cbls.c-Fix-typos-an.patch similarity index 91% rename from 0222-grub-core-commands-i386-coreboot-cbls.c-Fix-typos-an.patch rename to 0223-grub-core-commands-i386-coreboot-cbls.c-Fix-typos-an.patch index 96fb035..8aea9ec 100644 --- a/0222-grub-core-commands-i386-coreboot-cbls.c-Fix-typos-an.patch +++ b/0223-grub-core-commands-i386-coreboot-cbls.c-Fix-typos-an.patch @@ -1,7 +1,7 @@ -From 20c550c1de7da63334394e04474f89f3378412cc Mon Sep 17 00:00:00 2001 +From c34f460b7eb8625156597c388dec0da50bfa6a79 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 22 Mar 2013 14:06:48 +0100 -Subject: [PATCH 222/364] * grub-core/commands/i386/coreboot/cbls.c: Fix +Subject: [PATCH 223/471] * grub-core/commands/i386/coreboot/cbls.c: Fix typos and wrong description. --- @@ -45,5 +45,5 @@ index dc46d55..151f9e8 100644 [0x19] = "VBNV", [0xc8] = "CMOS option table", -- -1.8.1.4 +1.8.2.1 diff --git a/0223-Add-ability-to-generate-newc-additions-on-runtime.patch b/0224-Add-ability-to-generate-newc-additions-on-runtime.patch similarity index 99% rename from 0223-Add-ability-to-generate-newc-additions-on-runtime.patch rename to 0224-Add-ability-to-generate-newc-additions-on-runtime.patch index b064bc5..606e51d 100644 --- a/0223-Add-ability-to-generate-newc-additions-on-runtime.patch +++ b/0224-Add-ability-to-generate-newc-additions-on-runtime.patch @@ -1,7 +1,7 @@ -From 78ea5ad1d1b80e3534d8ceabbf23ba23a62fd22f Mon Sep 17 00:00:00 2001 +From 4aaa34677317a2d9c574f368e8895a9a2971f002 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 22 Mar 2013 21:01:28 +0100 -Subject: [PATCH 223/364] Add ability to generate newc additions on +Subject: [PATCH 224/471] Add ability to generate newc additions on runtime. --- @@ -884,5 +884,5 @@ index 0000000..594a3f3 +grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx, + char *argv[], void *target); -- -1.8.1.4 +1.8.2.1 diff --git a/0224-grub-core-fs-zfs-zfs.c-Fix-incorrect-handling-of-spe.patch b/0225-grub-core-fs-zfs-zfs.c-Fix-incorrect-handling-of-spe.patch similarity index 96% rename from 0224-grub-core-fs-zfs-zfs.c-Fix-incorrect-handling-of-spe.patch rename to 0225-grub-core-fs-zfs-zfs.c-Fix-incorrect-handling-of-spe.patch index d2d27d9..a94a963 100644 --- a/0224-grub-core-fs-zfs-zfs.c-Fix-incorrect-handling-of-spe.patch +++ b/0225-grub-core-fs-zfs-zfs.c-Fix-incorrect-handling-of-spe.patch @@ -1,7 +1,7 @@ -From 42aa5a0f3a2519102f5f925bd7147e93a641682a Mon Sep 17 00:00:00 2001 +From d05e156bbc8198da89d45410b796a893e264229a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 22 Mar 2013 22:18:38 +0100 -Subject: [PATCH 224/364] * grub-core/fs/zfs/zfs.c: Fix incorrect +Subject: [PATCH 225/471] * grub-core/fs/zfs/zfs.c: Fix incorrect handling of special volumes. --- @@ -166,5 +166,5 @@ index 822d65b..3d57978 100644 headobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&data->dnode.dn))->dd_head_dataset_obj, data->dnode.endian); err = dnode_get (&(data->mos), childobj, -- -1.8.1.4 +1.8.2.1 diff --git a/0225-grub-core-term-at_keyboard.c-Increase-robustness-on-.patch b/0226-grub-core-term-at_keyboard.c-Increase-robustness-on-.patch similarity index 94% rename from 0225-grub-core-term-at_keyboard.c-Increase-robustness-on-.patch rename to 0226-grub-core-term-at_keyboard.c-Increase-robustness-on-.patch index b087ca5..9c0279a 100644 --- a/0225-grub-core-term-at_keyboard.c-Increase-robustness-on-.patch +++ b/0226-grub-core-term-at_keyboard.c-Increase-robustness-on-.patch @@ -1,7 +1,7 @@ -From 99462758030178ce8e28fc59e9275824e1e0fd1b Mon Sep 17 00:00:00 2001 +From 22a5b3e8041be8b3abdfe52ebf155136218489bb Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 23 Mar 2013 16:54:36 +0100 -Subject: [PATCH 225/364] * grub-core/term/at_keyboard.c: Increase +Subject: [PATCH 226/471] * grub-core/term/at_keyboard.c: Increase robustness on coreboot and qemu. --- @@ -66,5 +66,5 @@ index 2afcceb..b2f328f 100644 grub_keyboard_controller_orig = grub_keyboard_controller_read (); grub_keyboard_orig_set = query_mode (); -- -1.8.1.4 +1.8.2.1 diff --git a/0226-Add-new-proc-filesystem-framework-and-put-luks_scrip.patch b/0227-Add-new-proc-filesystem-framework-and-put-luks_scrip.patch similarity index 99% rename from 0226-Add-new-proc-filesystem-framework-and-put-luks_scrip.patch rename to 0227-Add-new-proc-filesystem-framework-and-put-luks_scrip.patch index f8cc8e0..132c625 100644 --- a/0226-Add-new-proc-filesystem-framework-and-put-luks_scrip.patch +++ b/0227-Add-new-proc-filesystem-framework-and-put-luks_scrip.patch @@ -1,7 +1,7 @@ -From a613c3ea1106ce4dc1e44f88665d14259b659da8 Mon Sep 17 00:00:00 2001 +From f18b04893c6f40415fb577a286982a3046fcecd2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 24 Mar 2013 13:05:59 +0100 -Subject: [PATCH 226/364] Add new 'proc' filesystem framework and put +Subject: [PATCH 227/471] Add new 'proc' filesystem framework and put luks_script into it. --- @@ -510,5 +510,5 @@ index 0000000..55cbb21 + +#endif -- -1.8.1.4 +1.8.2.1 diff --git a/0227-grub-core-Makefile.core.def-vbe-Disable-on-coreboot-.patch b/0228-grub-core-Makefile.core.def-vbe-Disable-on-coreboot-.patch similarity index 88% rename from 0227-grub-core-Makefile.core.def-vbe-Disable-on-coreboot-.patch rename to 0228-grub-core-Makefile.core.def-vbe-Disable-on-coreboot-.patch index 58dd09a..6323827 100644 --- a/0227-grub-core-Makefile.core.def-vbe-Disable-on-coreboot-.patch +++ b/0228-grub-core-Makefile.core.def-vbe-Disable-on-coreboot-.patch @@ -1,7 +1,7 @@ -From 53fc7d734da80509a08ccbf6246f5fe26ab61a91 Mon Sep 17 00:00:00 2001 +From 2fe37186ad9206f74f8435c64bafb39d3085b3f2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 24 Mar 2013 13:07:51 +0100 -Subject: [PATCH 227/364] * grub-core/Makefile.core.def (vbe): Disable +Subject: [PATCH 228/471] * grub-core/Makefile.core.def (vbe): Disable on coreboot and multiboot platforms. --- @@ -38,5 +38,5 @@ index b1c1ab9..4f705b9 100644 module = { -- -1.8.1.4 +1.8.2.1 diff --git a/0228-util-grub-mkconfig_lib.in-prepare_grub_to_access_dev.patch b/0229-util-grub-mkconfig_lib.in-prepare_grub_to_access_dev.patch similarity index 95% rename from 0228-util-grub-mkconfig_lib.in-prepare_grub_to_access_dev.patch rename to 0229-util-grub-mkconfig_lib.in-prepare_grub_to_access_dev.patch index 5ae21af..90babe4 100644 --- a/0228-util-grub-mkconfig_lib.in-prepare_grub_to_access_dev.patch +++ b/0229-util-grub-mkconfig_lib.in-prepare_grub_to_access_dev.patch @@ -1,7 +1,7 @@ -From 321ac40b339af9820d4f9df7d301524a3b9ffbbe Mon Sep 17 00:00:00 2001 +From a4a74e06ccc7868c9dd3a5da8c24d7244fdae50e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 24 Mar 2013 13:11:19 +0100 -Subject: [PATCH 228/364] * util/grub-mkconfig_lib.in +Subject: [PATCH 229/471] * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix handling of multi-device filesystems. --- @@ -77,5 +77,5 @@ index e560dd7..b48e2af 100644 echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" echo "else" -- -1.8.1.4 +1.8.2.1 diff --git a/0229-grub-core-Makefile.core.def-vga-Disable-on-coreboot-.patch b/0230-grub-core-Makefile.core.def-vga-Disable-on-coreboot-.patch similarity index 88% rename from 0229-grub-core-Makefile.core.def-vga-Disable-on-coreboot-.patch rename to 0230-grub-core-Makefile.core.def-vga-Disable-on-coreboot-.patch index a7be99a..bc87d10 100644 --- a/0229-grub-core-Makefile.core.def-vga-Disable-on-coreboot-.patch +++ b/0230-grub-core-Makefile.core.def-vga-Disable-on-coreboot-.patch @@ -1,7 +1,7 @@ -From 71b0dcebbd780be081b55821e3b3f83badb387a1 Mon Sep 17 00:00:00 2001 +From e95df86d49c55f3c5ffd27161eddba81202220d7 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 24 Mar 2013 14:01:51 +0100 -Subject: [PATCH 229/364] * grub-core/Makefile.core.def (vga): Disable +Subject: [PATCH 230/471] * grub-core/Makefile.core.def (vga): Disable on coreboot and multiboot platforms. --- @@ -38,5 +38,5 @@ index 4f705b9..911754d 100644 module = { -- -1.8.1.4 +1.8.2.1 diff --git a/0230-util-grub.d-20_linux_xen.in-Automatically-add-no-rea.patch b/0231-util-grub.d-20_linux_xen.in-Automatically-add-no-rea.patch similarity index 91% rename from 0230-util-grub.d-20_linux_xen.in-Automatically-add-no-rea.patch rename to 0231-util-grub.d-20_linux_xen.in-Automatically-add-no-rea.patch index ea5f8cf..f014656 100644 --- a/0230-util-grub.d-20_linux_xen.in-Automatically-add-no-rea.patch +++ b/0231-util-grub.d-20_linux_xen.in-Automatically-add-no-rea.patch @@ -1,7 +1,7 @@ -From 7ecfb461eeb576ba07a0f810a19c2ed4149ea2c7 Mon Sep 17 00:00:00 2001 +From b138cfd473ab65282af07d400fc95a8a5bc7e22e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 24 Mar 2013 14:03:33 +0100 -Subject: [PATCH 230/364] * util/grub.d/20_linux_xen.in: Automatically +Subject: [PATCH 231/471] * util/grub.d/20_linux_xen.in: Automatically add no-real-mode edd=off on non-BIOS platforms. --- @@ -43,5 +43,5 @@ index ac05ee4..6651cbc 100644 module ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} EOF -- -1.8.1.4 +1.8.2.1 diff --git a/0231-Replace-the-region-at-0-from-coreboot-tables-to-avai.patch b/0232-Replace-the-region-at-0-from-coreboot-tables-to-avai.patch similarity index 97% rename from 0231-Replace-the-region-at-0-from-coreboot-tables-to-avai.patch rename to 0232-Replace-the-region-at-0-from-coreboot-tables-to-avai.patch index e4d71c4..71b993a 100644 --- a/0231-Replace-the-region-at-0-from-coreboot-tables-to-avai.patch +++ b/0232-Replace-the-region-at-0-from-coreboot-tables-to-avai.patch @@ -1,7 +1,7 @@ -From ba34f38a269b2cb0deb9a6c0574d1d192e99f2aa Mon Sep 17 00:00:00 2001 +From 186c206f29e4ce0c6645c51dd477a8ce93952d51 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 25 Mar 2013 10:23:04 +0100 -Subject: [PATCH 231/364] Replace the region at 0 from coreboot tables +Subject: [PATCH 232/471] Replace the region at 0 from coreboot tables to available in BSD memory map. --- @@ -123,5 +123,5 @@ index 3311fcb..0df8074 100644 /* This one is special: it's used internally but is never reported by firmware. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0232-grub-core-normal-menu.c-Wait-if-there-were-errors-sh.patch b/0233-grub-core-normal-menu.c-Wait-if-there-were-errors-sh.patch similarity index 90% rename from 0232-grub-core-normal-menu.c-Wait-if-there-were-errors-sh.patch rename to 0233-grub-core-normal-menu.c-Wait-if-there-were-errors-sh.patch index 150d162..32c9dbb 100644 --- a/0232-grub-core-normal-menu.c-Wait-if-there-were-errors-sh.patch +++ b/0233-grub-core-normal-menu.c-Wait-if-there-were-errors-sh.patch @@ -1,7 +1,7 @@ -From 55073b6febd54c1dfe6366f9e8a4d945d1eb70ca Mon Sep 17 00:00:00 2001 +From f6301725f6a55b194640ed2ebf7c182b2cb079ed Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 25 Mar 2013 10:32:06 +0100 -Subject: [PATCH 232/364] * grub-core/normal/menu.c: Wait if there were +Subject: [PATCH 233/471] * grub-core/normal/menu.c: Wait if there were errors shown at "boot" command. --- @@ -45,5 +45,5 @@ index 7e0a158..787b287 100644 { if (menu && menu->size) -- -1.8.1.4 +1.8.2.1 diff --git a/0233-grub-core-disk-ahci.c-Give-more-time-for-AHCI-reques.patch b/0234-grub-core-disk-ahci.c-Give-more-time-for-AHCI-reques.patch similarity index 89% rename from 0233-grub-core-disk-ahci.c-Give-more-time-for-AHCI-reques.patch rename to 0234-grub-core-disk-ahci.c-Give-more-time-for-AHCI-reques.patch index 18c1b9e..9b91265 100644 --- a/0233-grub-core-disk-ahci.c-Give-more-time-for-AHCI-reques.patch +++ b/0234-grub-core-disk-ahci.c-Give-more-time-for-AHCI-reques.patch @@ -1,7 +1,7 @@ -From e8d8a43fd12c2a407358bed74697c168578ca1e5 Mon Sep 17 00:00:00 2001 +From 5aaeba2813e16d393e7f87b918734044c86743f0 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 25 Mar 2013 10:32:56 +0100 -Subject: [PATCH 233/364] * grub-core/disk/ahci.c: Give more time for +Subject: [PATCH 234/471] * grub-core/disk/ahci.c: Give more time for AHCI request. --- @@ -37,5 +37,5 @@ index f9258fd..143ab97 100644 if (grub_get_time_ms () > endtime) { -- -1.8.1.4 +1.8.2.1 diff --git a/0234-grub-core-gfxmenu-font.c-grub_font_get_string_width-.patch b/0235-grub-core-gfxmenu-font.c-grub_font_get_string_width-.patch similarity index 88% rename from 0234-grub-core-gfxmenu-font.c-grub_font_get_string_width-.patch rename to 0235-grub-core-gfxmenu-font.c-grub_font_get_string_width-.patch index aa9aa42..aeb64ef 100644 --- a/0234-grub-core-gfxmenu-font.c-grub_font_get_string_width-.patch +++ b/0235-grub-core-gfxmenu-font.c-grub_font_get_string_width-.patch @@ -1,7 +1,7 @@ -From 4560492f5a1aa3dcedc05a628b79ee3ce8d2dd20 Mon Sep 17 00:00:00 2001 +From 3c16d2a0969c34faa8d2a0fba94f4535effef5fc Mon Sep 17 00:00:00 2001 From: Vladimir Testov Date: Tue, 26 Mar 2013 08:26:01 +0100 -Subject: [PATCH 234/364] * grub-core/gfxmenu/font.c +Subject: [PATCH 235/471] * grub-core/gfxmenu/font.c (grub_font_get_string_width): Fix memory leak. --- @@ -35,5 +35,5 @@ index 7174837..4a8e1f1 100644 return width; } -- -1.8.1.4 +1.8.2.1 diff --git a/0235-grub-core-commands-acpihalt.c-skip_ext_op-Add-suppor.patch b/0236-grub-core-commands-acpihalt.c-skip_ext_op-Add-suppor.patch similarity index 97% rename from 0235-grub-core-commands-acpihalt.c-skip_ext_op-Add-suppor.patch rename to 0236-grub-core-commands-acpihalt.c-skip_ext_op-Add-suppor.patch index a727b16..610388b 100644 --- a/0235-grub-core-commands-acpihalt.c-skip_ext_op-Add-suppor.patch +++ b/0236-grub-core-commands-acpihalt.c-skip_ext_op-Add-suppor.patch @@ -1,7 +1,7 @@ -From 7dca4f4e8f3666892b8139529213fd394844815f Mon Sep 17 00:00:00 2001 -From: Colin Watson +From e8cf8971da1fc1932b04e642104db9606fd0414e Mon Sep 17 00:00:00 2001 +From: Colin Watson Date: Tue, 26 Mar 2013 11:29:52 +0100 -Subject: [PATCH 235/364] * grub-core/commands/acpihalt.c (skip_ext_op): +Subject: [PATCH 236/471] * grub-core/commands/acpihalt.c (skip_ext_op): Add support for skipping Event, Device, Processor, PowerRes, ThermalZone, and BankField extended opcodes. (get_sleep_type): Add minimal scope handling (just enough to handle setting the scope to @@ -221,5 +221,5 @@ index 52d190c..8fa957d 100644 #endif /* ! GRUB_ACPI_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0236-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch b/0237-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch similarity index 96% rename from 0236-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch rename to 0237-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch index 39e0282..7adc8f7 100644 --- a/0236-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch +++ b/0237-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch @@ -1,7 +1,7 @@ -From 7916d7c3a1e92dfbd8720a6275d7f23025abe612 Mon Sep 17 00:00:00 2001 +From 22b474d62ab256dda084737fe608f1c9411c3dae Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 26 Mar 2013 11:34:56 +0100 -Subject: [PATCH 236/364] * grub-core/kern/efi/mm.c +Subject: [PATCH 237/471] * grub-core/kern/efi/mm.c (grub_efi_finish_boot_services): Try terminating EFI services several times due to quirks in some implementations. @@ -87,5 +87,5 @@ index 351317b..77c9384 100644 if (outbuf_size) *outbuf_size = finish_mmap_size; -- -1.8.1.4 +1.8.2.1 diff --git a/0237-grub-core-commands-verify.c-Fix-hash-algorithms-valu.patch b/0238-grub-core-commands-verify.c-Fix-hash-algorithms-valu.patch similarity index 89% rename from 0237-grub-core-commands-verify.c-Fix-hash-algorithms-valu.patch rename to 0238-grub-core-commands-verify.c-Fix-hash-algorithms-valu.patch index 97980ea..4764fe7 100644 --- a/0237-grub-core-commands-verify.c-Fix-hash-algorithms-valu.patch +++ b/0238-grub-core-commands-verify.c-Fix-hash-algorithms-valu.patch @@ -1,7 +1,7 @@ -From 41554b3b4fc818587dc532bfe045c282185903be Mon Sep 17 00:00:00 2001 +From 11df2f23b04ed345abae66b4d428c401eac7acd3 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Mon, 1 Apr 2013 01:43:04 +0200 -Subject: [PATCH 237/364] * grub-core/commands/verify.c: Fix hash +Subject: [PATCH 238/471] * grub-core/commands/verify.c: Fix hash algorithms values for the first three hashes - they start with 1, not with 0. @@ -39,5 +39,5 @@ index 6c0b580..b4d5e7b 100644 [0x09] = "sha384", [0x0a] = "sha512", -- -1.8.1.4 +1.8.2.1 diff --git a/0238-INSTALL-Mention-xorriso-requirement.patch b/0239-INSTALL-Mention-xorriso-requirement.patch similarity index 85% rename from 0238-INSTALL-Mention-xorriso-requirement.patch rename to 0239-INSTALL-Mention-xorriso-requirement.patch index 3878844..a18e53a 100644 --- a/0238-INSTALL-Mention-xorriso-requirement.patch +++ b/0239-INSTALL-Mention-xorriso-requirement.patch @@ -1,7 +1,7 @@ -From 1a0d5df4f75260dd999aef39a79532a7adb24bb1 Mon Sep 17 00:00:00 2001 +From 111eff14a0f98fc525577fa0e85c49a365f4defd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Szymczyszyn?= Date: Mon, 1 Apr 2013 02:55:10 +0200 -Subject: [PATCH 238/364] * INSTALL: Mention xorriso requirement. +Subject: [PATCH 239/471] * INSTALL: Mention xorriso requirement. --- ChangeLog | 4 ++++ @@ -33,5 +33,5 @@ index e325fa2..128bf47 100644 Configuring the GRUB ==================== -- -1.8.1.4 +1.8.2.1 diff --git a/0239-grub-core-partmap-apple.c-apple_partition_map_iterat.patch b/0240-grub-core-partmap-apple.c-apple_partition_map_iterat.patch similarity index 92% rename from 0239-grub-core-partmap-apple.c-apple_partition_map_iterat.patch rename to 0240-grub-core-partmap-apple.c-apple_partition_map_iterat.patch index 484f1c4..0ad2dbe 100644 --- a/0239-grub-core-partmap-apple.c-apple_partition_map_iterat.patch +++ b/0240-grub-core-partmap-apple.c-apple_partition_map_iterat.patch @@ -1,7 +1,7 @@ -From ab72a23a2a1fe9990661a31bdc71ffd951489636 Mon Sep 17 00:00:00 2001 +From 47d846664c3791668cdff2c1d307e193687be1aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Szymczyszyn?= Date: Mon, 1 Apr 2013 02:58:47 +0200 -Subject: [PATCH 239/364] * grub-core/partmap/apple.c +Subject: [PATCH 240/471] * grub-core/partmap/apple.c (apple_partition_map_iterate): Add missing closing bracket. --- @@ -47,5 +47,5 @@ index f4e608f..c3ead0f 100644 GRUB_APPLE_PART_MAGIC); break; -- -1.8.1.4 +1.8.2.1 diff --git a/0240-grub-core-gfxmenu-gui_circular_progress.c-Fix-off-by.patch b/0241-grub-core-gfxmenu-gui_circular_progress.c-Fix-off-by.patch similarity index 89% rename from 0240-grub-core-gfxmenu-gui_circular_progress.c-Fix-off-by.patch rename to 0241-grub-core-gfxmenu-gui_circular_progress.c-Fix-off-by.patch index 1369344..6f8e29e 100644 --- a/0240-grub-core-gfxmenu-gui_circular_progress.c-Fix-off-by.patch +++ b/0241-grub-core-gfxmenu-gui_circular_progress.c-Fix-off-by.patch @@ -1,7 +1,7 @@ -From 67ce00e14b3ba739178e9effc215744e4634e4da Mon Sep 17 00:00:00 2001 +From cdfccef227436ae09bb0999597c575ec568eaffc Mon Sep 17 00:00:00 2001 From: Vladimir Testov Date: Wed, 3 Apr 2013 08:51:13 +0200 -Subject: [PATCH 240/364] * grub-core/gfxmenu/gui_circular_progress.c: +Subject: [PATCH 241/471] * grub-core/gfxmenu/gui_circular_progress.c: Fix off-by-one error. --- @@ -41,5 +41,5 @@ index 098ae1c..d07ca6e 100644 int i; -- -1.8.1.4 +1.8.2.1 diff --git a/0241-grub-core-gfxmenu-view.c-Fix-off-by-one-error.patch b/0242-grub-core-gfxmenu-view.c-Fix-off-by-one-error.patch similarity index 89% rename from 0241-grub-core-gfxmenu-view.c-Fix-off-by-one-error.patch rename to 0242-grub-core-gfxmenu-view.c-Fix-off-by-one-error.patch index 999044e..cc2a696 100644 --- a/0241-grub-core-gfxmenu-view.c-Fix-off-by-one-error.patch +++ b/0242-grub-core-gfxmenu-view.c-Fix-off-by-one-error.patch @@ -1,7 +1,7 @@ -From 7be9ea372ccf543e52f5a3d047d3e2023cd9e6b7 Mon Sep 17 00:00:00 2001 +From 208140ce98ff032d1b6c16403a06b99ef701937a Mon Sep 17 00:00:00 2001 From: Vladimir Testov Date: Wed, 3 Apr 2013 08:53:58 +0200 -Subject: [PATCH 241/364] * grub-core/gfxmenu/view.c: Fix off-by-one +Subject: [PATCH 242/471] * grub-core/gfxmenu/view.c: Fix off-by-one error. --- @@ -37,5 +37,5 @@ index 1918ea4..6de96ca 100644 grub_video_swap_buffers (); if (view->double_repaint) -- -1.8.1.4 +1.8.2.1 diff --git a/0242-grub-core-gfxmenu-gui_circular_progress.c-Take-both-.patch b/0243-grub-core-gfxmenu-gui_circular_progress.c-Take-both-.patch similarity index 93% rename from 0242-grub-core-gfxmenu-gui_circular_progress.c-Take-both-.patch rename to 0243-grub-core-gfxmenu-gui_circular_progress.c-Take-both-.patch index 4d9be74..f6cd30f 100644 --- a/0242-grub-core-gfxmenu-gui_circular_progress.c-Take-both-.patch +++ b/0243-grub-core-gfxmenu-gui_circular_progress.c-Take-both-.patch @@ -1,7 +1,7 @@ -From a2575f0e5de45c022ed54a5b368e82b2a688c73e Mon Sep 17 00:00:00 2001 +From 60c4d08965790dd35eb8abaf274bf3b6b3c7e85d Mon Sep 17 00:00:00 2001 From: Vladimir Testov Date: Wed, 3 Apr 2013 09:20:29 +0200 -Subject: [PATCH 242/364] * grub-core/gfxmenu/gui_circular_progress.c: +Subject: [PATCH 243/471] * grub-core/gfxmenu/gui_circular_progress.c: Take both width and height into account when calculating radius. --- @@ -51,5 +51,5 @@ index f0ecaec..c953a00 100644 + #endif /* ! GRUB_MISC_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0243-grub-core-gfxmenu-gui_progress_bar.c-Handle-padding-.patch b/0244-grub-core-gfxmenu-gui_progress_bar.c-Handle-padding-.patch similarity index 92% rename from 0243-grub-core-gfxmenu-gui_progress_bar.c-Handle-padding-.patch rename to 0244-grub-core-gfxmenu-gui_progress_bar.c-Handle-padding-.patch index afe5ecc..098115d 100644 --- a/0243-grub-core-gfxmenu-gui_progress_bar.c-Handle-padding-.patch +++ b/0244-grub-core-gfxmenu-gui_progress_bar.c-Handle-padding-.patch @@ -1,7 +1,7 @@ -From 911b53873d4c24656d2587650103ca3af081fa61 Mon Sep 17 00:00:00 2001 +From b7267fc19bc52b86e21615aede30b31c8348de81 Mon Sep 17 00:00:00 2001 From: Vladimir Testov Date: Wed, 3 Apr 2013 09:34:08 +0200 -Subject: [PATCH 243/364] * grub-core/gfxmenu/gui_progress_bar.c: Handle +Subject: [PATCH 244/471] * grub-core/gfxmenu/gui_progress_bar.c: Handle padding sizes. --- @@ -49,5 +49,5 @@ index 7b005f4..965c6b3 100644 bar->draw (bar, 0, 0); hl->draw (hl, bar_l_pad, bar_t_pad); -- -1.8.1.4 +1.8.2.1 diff --git a/0244-include-grub-elf.h-Add-missing-ARM-relocation-codes-.patch b/0245-include-grub-elf.h-Add-missing-ARM-relocation-codes-.patch similarity index 96% rename from 0244-include-grub-elf.h-Add-missing-ARM-relocation-codes-.patch rename to 0245-include-grub-elf.h-Add-missing-ARM-relocation-codes-.patch index 2c54087..1b9c70a 100644 --- a/0244-include-grub-elf.h-Add-missing-ARM-relocation-codes-.patch +++ b/0245-include-grub-elf.h-Add-missing-ARM-relocation-codes-.patch @@ -1,7 +1,7 @@ -From d00603517b5b4226d3467765d46628db271ad887 Mon Sep 17 00:00:00 2001 -From: Francesco Lavra +From 58e08a1795d63ba85b006c54dc7bbfe0afd624a7 Mon Sep 17 00:00:00 2001 +From: Francesco Lavra Date: Wed, 3 Apr 2013 11:23:22 +0200 -Subject: [PATCH 244/364] * include/grub/elf.h: Add missing ARM +Subject: [PATCH 245/471] * include/grub/elf.h: Add missing ARM relocation codes and fix existing ones. --- @@ -178,5 +178,5 @@ index d4a2a5f..708cd6a 100644 #define R_ARM_NUM 256 -- -1.8.1.4 +1.8.2.1 diff --git a/0245-util-grub-mount.c-fuse_init-Return-error-if-fuse_mai.patch b/0246-util-grub-mount.c-fuse_init-Return-error-if-fuse_mai.patch similarity index 89% rename from 0245-util-grub-mount.c-fuse_init-Return-error-if-fuse_mai.patch rename to 0246-util-grub-mount.c-fuse_init-Return-error-if-fuse_mai.patch index 0e24c92..6d2bd41 100644 --- a/0245-util-grub-mount.c-fuse_init-Return-error-if-fuse_mai.patch +++ b/0246-util-grub-mount.c-fuse_init-Return-error-if-fuse_mai.patch @@ -1,7 +1,7 @@ -From 52556c462eeee3a3f10f79923dd3b9eff1e520e7 Mon Sep 17 00:00:00 2001 +From c59392f94ef1544cc8d24cecfbca69798ba7e556 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Wed, 3 Apr 2013 11:28:16 +0200 -Subject: [PATCH 245/364] * util/grub-mount.c (fuse_init): Return error +Subject: [PATCH 246/471] * util/grub-mount.c (fuse_init): Return error if fuse_main failed. --- @@ -46,5 +46,5 @@ index d0ab6a2..4a2333a 100644 static struct argp_option options[] = { -- -1.8.1.4 +1.8.2.1 diff --git a/0246-Fix-screen-corruption-in-menu-entry-editor-and-simpl.patch b/0247-Fix-screen-corruption-in-menu-entry-editor-and-simpl.patch similarity index 96% rename from 0246-Fix-screen-corruption-in-menu-entry-editor-and-simpl.patch rename to 0247-Fix-screen-corruption-in-menu-entry-editor-and-simpl.patch index 97b52cc..7770746 100644 --- a/0246-Fix-screen-corruption-in-menu-entry-editor-and-simpl.patch +++ b/0247-Fix-screen-corruption-in-menu-entry-editor-and-simpl.patch @@ -1,7 +1,7 @@ -From 04ff4b20743dbb42ec7a61de0682574f694b10ea Mon Sep 17 00:00:00 2001 +From f51e0c966f51523abcc5856a5667537d1dcf62ca Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 3 Apr 2013 15:19:34 +0200 -Subject: [PATCH 246/364] Fix screen corruption in menu entry editor and +Subject: [PATCH 247/471] Fix screen corruption in menu entry editor and simplify the code flow while on it. --- @@ -130,5 +130,5 @@ index 32deba3..f05184b 100644 visual_len_show = vptr - visual_show; -- -1.8.1.4 +1.8.2.1 diff --git a/0247-grub-core-term-i386-pc-console.c-grub_console_getwh-.patch b/0248-grub-core-term-i386-pc-console.c-grub_console_getwh-.patch similarity index 90% rename from 0247-grub-core-term-i386-pc-console.c-grub_console_getwh-.patch rename to 0248-grub-core-term-i386-pc-console.c-grub_console_getwh-.patch index 9c92a2d..f4c0053 100644 --- a/0247-grub-core-term-i386-pc-console.c-grub_console_getwh-.patch +++ b/0248-grub-core-term-i386-pc-console.c-grub_console_getwh-.patch @@ -1,7 +1,7 @@ -From f83e8de1b9f832f9d3ef54ea4ba7f5694ac5a3ed Mon Sep 17 00:00:00 2001 +From 7d0fb871481447b7f8ac06d7bc23ee6a5204ff76 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 3 Apr 2013 15:21:51 +0200 -Subject: [PATCH 247/364] * grub-core/term/i386/pc/console.c +Subject: [PATCH 248/471] * grub-core/term/i386/pc/console.c (grub_console_getwh): Decrease reported width by one to compensate for curesor algorithm problem. @@ -40,5 +40,5 @@ index 2aa1943..ee6650b 100644 static void -- -1.8.1.4 +1.8.2.1 diff --git a/0248-grub-core-commands-verify.c-Save-verified-file-to-av.patch b/0249-grub-core-commands-verify.c-Save-verified-file-to-av.patch similarity index 97% rename from 0248-grub-core-commands-verify.c-Save-verified-file-to-av.patch rename to 0249-grub-core-commands-verify.c-Save-verified-file-to-av.patch index 48d7d4a..cdfda86 100644 --- a/0248-grub-core-commands-verify.c-Save-verified-file-to-av.patch +++ b/0249-grub-core-commands-verify.c-Save-verified-file-to-av.patch @@ -1,7 +1,7 @@ -From 2923eb14c2e0feab103391314331a13f069df813 Mon Sep 17 00:00:00 2001 +From 389f8af28dcc1f7620fabf5032f680fba0bd28e3 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 3 Apr 2013 17:32:33 +0200 -Subject: [PATCH 248/364] * grub-core/commands/verify.c: Save verified +Subject: [PATCH 249/471] * grub-core/commands/verify.c: Save verified file to avoid it being tampered with after verification was done. --- @@ -193,5 +193,5 @@ index c953a00..0ea5114 100644 + #endif /* ! GRUB_MISC_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0249-grub-core-lib-posix_wrap-locale.h-GRUB_UTIL-Include-.patch b/0250-grub-core-lib-posix_wrap-locale.h-GRUB_UTIL-Include-.patch similarity index 87% rename from 0249-grub-core-lib-posix_wrap-locale.h-GRUB_UTIL-Include-.patch rename to 0250-grub-core-lib-posix_wrap-locale.h-GRUB_UTIL-Include-.patch index eb87915..4a9bd7f 100644 --- a/0249-grub-core-lib-posix_wrap-locale.h-GRUB_UTIL-Include-.patch +++ b/0250-grub-core-lib-posix_wrap-locale.h-GRUB_UTIL-Include-.patch @@ -1,7 +1,7 @@ -From fc4e8f971c20e45d49c3a252c119d1b27802f79f Mon Sep 17 00:00:00 2001 +From 7e4711a6dcd3375aa4ee4342c05b38f6f7ad3965 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 4 Apr 2013 08:54:02 +0200 -Subject: [PATCH 249/364] * grub-core/lib/posix_wrap/locale.h +Subject: [PATCH 250/471] * grub-core/lib/posix_wrap/locale.h [GRUB_UTIL]: Include host locale.h. --- @@ -30,5 +30,5 @@ index e69de29..569a765 100644 +#include_next +#endif -- -1.8.1.4 +1.8.2.1 diff --git a/0250-util-grub-setup.c-setup-Handle-some-corner-cases.patch b/0251-util-grub-setup.c-setup-Handle-some-corner-cases.patch similarity index 93% rename from 0250-util-grub-setup.c-setup-Handle-some-corner-cases.patch rename to 0251-util-grub-setup.c-setup-Handle-some-corner-cases.patch index df9bcb4..77a6e52 100644 --- a/0250-util-grub-setup.c-setup-Handle-some-corner-cases.patch +++ b/0251-util-grub-setup.c-setup-Handle-some-corner-cases.patch @@ -1,7 +1,7 @@ -From 14cd2eb249c43b97193fc8456e0ffa073537bdbd Mon Sep 17 00:00:00 2001 +From fad6a3928fd73156c9a861e6b8b81b4099e450a3 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 4 Apr 2013 08:55:06 +0200 -Subject: [PATCH 250/364] * util/grub-setup.c (setup): Handle some +Subject: [PATCH 251/471] * util/grub-setup.c (setup): Handle some corner cases. --- @@ -64,5 +64,5 @@ index 5a7a857..27a815f 100644 fclose (fp); } -- -1.8.1.4 +1.8.2.1 diff --git a/0251-grub-core-bus-usb-usbtrans.c-grub_usb_bulk_readwrite.patch b/0252-grub-core-bus-usb-usbtrans.c-grub_usb_bulk_readwrite.patch similarity index 90% rename from 0251-grub-core-bus-usb-usbtrans.c-grub_usb_bulk_readwrite.patch rename to 0252-grub-core-bus-usb-usbtrans.c-grub_usb_bulk_readwrite.patch index 7c5f8aa..c83bc6d 100644 --- a/0251-grub-core-bus-usb-usbtrans.c-grub_usb_bulk_readwrite.patch +++ b/0252-grub-core-bus-usb-usbtrans.c-grub_usb_bulk_readwrite.patch @@ -1,7 +1,7 @@ -From c9e516f1d40681546719f1bbf33f81db8e968361 Mon Sep 17 00:00:00 2001 +From 9b8bc0c9e2af96dcc3a50fc02a0b1b76c7f6967f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 4 Apr 2013 08:56:45 +0200 -Subject: [PATCH 251/364] * grub-core/bus/usb/usbtrans.c +Subject: [PATCH 252/471] * grub-core/bus/usb/usbtrans.c (grub_usb_bulk_readwrite_packetize): Init err. --- @@ -38,5 +38,5 @@ index 533c3e7..557e71c 100644 grub_size_t max_bulk_transfer_len = MAX_USB_TRANSFER_LEN; grub_size_t max; -- -1.8.1.4 +1.8.2.1 diff --git a/0252-Use-TSC-as-a-possible-time-source-on-i386-ieee1275.patch b/0253-Use-TSC-as-a-possible-time-source-on-i386-ieee1275.patch similarity index 95% rename from 0252-Use-TSC-as-a-possible-time-source-on-i386-ieee1275.patch rename to 0253-Use-TSC-as-a-possible-time-source-on-i386-ieee1275.patch index 07eccd5..b385add 100644 --- a/0252-Use-TSC-as-a-possible-time-source-on-i386-ieee1275.patch +++ b/0253-Use-TSC-as-a-possible-time-source-on-i386-ieee1275.patch @@ -1,7 +1,7 @@ -From 0535e4875ec962879b74f69e472615245f7ff987 Mon Sep 17 00:00:00 2001 +From 983f68a83a2200719a45c0974bb0505431904da5 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 4 Apr 2013 09:55:44 +0200 -Subject: [PATCH 252/364] Use TSC as a possible time source on +Subject: [PATCH 253/471] Use TSC as a possible time source on i386-ieee1275. --- @@ -110,5 +110,5 @@ index 0894cb6..391a734 100644 grub_uint32_t msecs = 0; -- -1.8.1.4 +1.8.2.1 diff --git a/0253-grub-core-disk-efi-efidisk.c-Handle-partitions-on-no.patch b/0254-grub-core-disk-efi-efidisk.c-Handle-partitions-on-no.patch similarity index 95% rename from 0253-grub-core-disk-efi-efidisk.c-Handle-partitions-on-no.patch rename to 0254-grub-core-disk-efi-efidisk.c-Handle-partitions-on-no.patch index 7fb23ce..225fa53 100644 --- a/0253-grub-core-disk-efi-efidisk.c-Handle-partitions-on-no.patch +++ b/0254-grub-core-disk-efi-efidisk.c-Handle-partitions-on-no.patch @@ -1,7 +1,7 @@ -From 9c5d1aa956de89b429997b19e20cdd887f612414 Mon Sep 17 00:00:00 2001 +From c7bee25f2d477017a38009140579ba89de3d27f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Apr 2013 10:35:50 +0200 -Subject: [PATCH 253/364] * grub-core/disk/efi/efidisk.c: Handle +Subject: [PATCH 254/471] * grub-core/disk/efi/efidisk.c: Handle partitions on non-512B disks. --- @@ -70,5 +70,5 @@ index c883b2c..0a364f1 100644 dev_name = grub_strdup (parent->name); } -- -1.8.1.4 +1.8.2.1 diff --git a/0254-Unify-file-copying-setup-across-different-install-sc.patch b/0255-Unify-file-copying-setup-across-different-install-sc.patch similarity index 99% rename from 0254-Unify-file-copying-setup-across-different-install-sc.patch rename to 0255-Unify-file-copying-setup-across-different-install-sc.patch index cd87dcd..57554f0 100644 --- a/0254-Unify-file-copying-setup-across-different-install-sc.patch +++ b/0255-Unify-file-copying-setup-across-different-install-sc.patch @@ -1,7 +1,7 @@ -From 2b7cc814ca7d780576f2fd7fa41058a5a15a589a Mon Sep 17 00:00:00 2001 +From f07aaa099fe586b6df049097f62704cc5081a63a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 4 Apr 2013 19:59:59 +0200 -Subject: [PATCH 254/364] Unify file copying setup across different +Subject: [PATCH 255/471] Unify file copying setup across different install scripts. Add options for performing partial install. --- @@ -584,5 +584,5 @@ index 78b83e0..a5434c4 100644 cp -f "$file" "${memdisk_dir}"/"$file"; done -- -1.8.1.4 +1.8.2.1 diff --git a/0255-util-grub-mkimage.c-Introduce-new-define-EFI32_HEADE.patch b/0256-util-grub-mkimage.c-Introduce-new-define-EFI32_HEADE.patch similarity index 94% rename from 0255-util-grub-mkimage.c-Introduce-new-define-EFI32_HEADE.patch rename to 0256-util-grub-mkimage.c-Introduce-new-define-EFI32_HEADE.patch index a25d063..83c9943 100644 --- a/0255-util-grub-mkimage.c-Introduce-new-define-EFI32_HEADE.patch +++ b/0256-util-grub-mkimage.c-Introduce-new-define-EFI32_HEADE.patch @@ -1,7 +1,7 @@ -From 74f9afff3de573ac527fee26c516e057918ab7ef Mon Sep 17 00:00:00 2001 +From acc679d013ced54cd51b285443bbadbb64ddc545 Mon Sep 17 00:00:00 2001 From: Francesco Lavra Date: Thu, 4 Apr 2013 20:07:44 +0200 -Subject: [PATCH 255/364] * util/grub-mkimage.c: Introduce new define +Subject: [PATCH 256/471] * util/grub-mkimage.c: Introduce new define EFI32_HEADER_SIZE. --- @@ -68,5 +68,5 @@ index 845abed..ecea5d4 100644 header_size = EFI64_HEADER_SIZE; -- -1.8.1.4 +1.8.2.1 diff --git a/0256-docs-grub.texi-Document-menuentry-id-option.patch b/0257-docs-grub.texi-Document-menuentry-id-option.patch similarity index 94% rename from 0256-docs-grub.texi-Document-menuentry-id-option.patch rename to 0257-docs-grub.texi-Document-menuentry-id-option.patch index f1c071f..330f244 100644 --- a/0256-docs-grub.texi-Document-menuentry-id-option.patch +++ b/0257-docs-grub.texi-Document-menuentry-id-option.patch @@ -1,7 +1,7 @@ -From f15f2bd2977f88231e5c4ae718421360129c889d Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From 6b83cf4249d933950a7d6b1cf3b0baea881f691f Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Fri, 5 Apr 2013 10:08:20 +0200 -Subject: [PATCH 256/364] * docs/grub.texi: Document menuentry --id +Subject: [PATCH 257/471] * docs/grub.texi: Document menuentry --id option. --- @@ -73,5 +73,5 @@ index 0b66827..742d406 100644 This defines a submenu. An entry called @var{title} will be added to the menu; when that entry is selected, a new menu will be displayed showing all -- -1.8.1.4 +1.8.2.1 diff --git a/0257-docs-grub.texi-Document-more-user-commands.patch b/0258-docs-grub.texi-Document-more-user-commands.patch similarity index 99% rename from 0257-docs-grub.texi-Document-more-user-commands.patch rename to 0258-docs-grub.texi-Document-more-user-commands.patch index bc77c35..108b3d2 100644 --- a/0257-docs-grub.texi-Document-more-user-commands.patch +++ b/0258-docs-grub.texi-Document-more-user-commands.patch @@ -1,7 +1,7 @@ -From 96fd4bad7168a598343b0a7ac9a1901a8075a2c3 Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From be47d58313f553c6a6b057ec9554a1a67480e102 Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Fri, 5 Apr 2013 10:18:42 +0200 -Subject: [PATCH 257/364] * docs/grub.texi: Document more user commands. +Subject: [PATCH 258/471] * docs/grub.texi: Document more user commands. --- ChangeLog | 4 + @@ -542,5 +542,5 @@ index 742d406..bd366a6 100644 -- -1.8.1.4 +1.8.2.1 diff --git a/0258-Move-GRUB_CHAR_BIT-to-types.h.patch b/0259-Move-GRUB_CHAR_BIT-to-types.h.patch similarity index 90% rename from 0258-Move-GRUB_CHAR_BIT-to-types.h.patch rename to 0259-Move-GRUB_CHAR_BIT-to-types.h.patch index a15b054..cc80fd9 100644 --- a/0258-Move-GRUB_CHAR_BIT-to-types.h.patch +++ b/0259-Move-GRUB_CHAR_BIT-to-types.h.patch @@ -1,7 +1,7 @@ -From 1c71a6e0aa77b119cb196b296aff5393246c541d Mon Sep 17 00:00:00 2001 +From e7e304cc384896eeb5204d9792f8f014ee4179e5 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 5 Apr 2013 10:31:12 +0200 -Subject: [PATCH 258/364] Move GRUB_CHAR_BIT to types.h. +Subject: [PATCH 259/471] Move GRUB_CHAR_BIT to types.h. --- ChangeLog | 4 ++++ @@ -44,5 +44,5 @@ index 22d1be7..7c56f40 100644 + #endif /* ! GRUB_TYPES_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0259-include-grub-bsdlabel.h-Use-enums.patch b/0260-include-grub-bsdlabel.h-Use-enums.patch similarity index 96% rename from 0259-include-grub-bsdlabel.h-Use-enums.patch rename to 0260-include-grub-bsdlabel.h-Use-enums.patch index 0d539ef..4501d16 100644 --- a/0259-include-grub-bsdlabel.h-Use-enums.patch +++ b/0260-include-grub-bsdlabel.h-Use-enums.patch @@ -1,7 +1,7 @@ -From c74a404c260cba6d901b51e9915639966ff1a732 Mon Sep 17 00:00:00 2001 +From 76257d602eeded1439d5910a99bec69d3898fce3 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 5 Apr 2013 10:33:53 +0200 -Subject: [PATCH 259/364] * include/grub/bsdlabel.h: Use enums. +Subject: [PATCH 260/471] * include/grub/bsdlabel.h: Use enums. --- ChangeLog | 4 +++ @@ -116,5 +116,5 @@ index b10336c..8f241df 100644 #define GRUB_PC_PARTITION_BSD_LABEL_WHOLE_DISK_PARTITION 2 -- -1.8.1.4 +1.8.2.1 diff --git a/0260-grub-core-commands-verify.c-Use-GRUB_CHAR_BIT.patch b/0261-grub-core-commands-verify.c-Use-GRUB_CHAR_BIT.patch similarity index 92% rename from 0260-grub-core-commands-verify.c-Use-GRUB_CHAR_BIT.patch rename to 0261-grub-core-commands-verify.c-Use-GRUB_CHAR_BIT.patch index 0b0405a..15fb828 100644 --- a/0260-grub-core-commands-verify.c-Use-GRUB_CHAR_BIT.patch +++ b/0261-grub-core-commands-verify.c-Use-GRUB_CHAR_BIT.patch @@ -1,7 +1,7 @@ -From f7db5c611d5560adea0c15e804d3b6dbca5d03b9 Mon Sep 17 00:00:00 2001 +From 05a23e591725c80f04edf07207ac37157c76ddfb Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 5 Apr 2013 10:52:13 +0200 -Subject: [PATCH 260/364] * grub-core/commands/verify.c: Use +Subject: [PATCH 261/471] * grub-core/commands/verify.c: Use GRUB_CHAR_BIT. --- @@ -55,5 +55,5 @@ index bd47611..fd6f436 100644 } else -- -1.8.1.4 +1.8.2.1 diff --git a/0261-Add-new-defines-GRUB_RSDP_SIGNATURE_SIZE-and-GRUB_RS.patch b/0262-Add-new-defines-GRUB_RSDP_SIGNATURE_SIZE-and-GRUB_RS.patch similarity index 97% rename from 0261-Add-new-defines-GRUB_RSDP_SIGNATURE_SIZE-and-GRUB_RS.patch rename to 0262-Add-new-defines-GRUB_RSDP_SIGNATURE_SIZE-and-GRUB_RS.patch index f247fd6..a37cff4 100644 --- a/0261-Add-new-defines-GRUB_RSDP_SIGNATURE_SIZE-and-GRUB_RS.patch +++ b/0262-Add-new-defines-GRUB_RSDP_SIGNATURE_SIZE-and-GRUB_RS.patch @@ -1,7 +1,7 @@ -From ef226c0cc274e70d8a2be3798a1c7ae3e96dbdce Mon Sep 17 00:00:00 2001 +From b880c54029696992290b7a0a635343762a4675c9 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 5 Apr 2013 10:56:43 +0200 -Subject: [PATCH 261/364] Add new defines GRUB_RSDP_SIGNATURE_SIZE and +Subject: [PATCH 262/471] Add new defines GRUB_RSDP_SIGNATURE_SIZE and GRUB_RSDP_SIGNATURE. --- @@ -133,5 +133,5 @@ index 8fa957d..32bb95c 100644 grub_uint8_t oemid[6]; grub_uint8_t revision; -- -1.8.1.4 +1.8.2.1 diff --git a/0262-Replace-8-with-GRUB_CHAR_BIT-in-several-places-when-.patch b/0263-Replace-8-with-GRUB_CHAR_BIT-in-several-places-when-.patch similarity index 94% rename from 0262-Replace-8-with-GRUB_CHAR_BIT-in-several-places-when-.patch rename to 0263-Replace-8-with-GRUB_CHAR_BIT-in-several-places-when-.patch index a26bccf..a0311ed 100644 --- a/0262-Replace-8-with-GRUB_CHAR_BIT-in-several-places-when-.patch +++ b/0263-Replace-8-with-GRUB_CHAR_BIT-in-several-places-when-.patch @@ -1,7 +1,7 @@ -From 28faaaf7c2a7b639839dcb027275f0f8631ed837 Mon Sep 17 00:00:00 2001 +From 7f2a48513c893b2d17b6b920adc89a64ea279e08 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 5 Apr 2013 10:59:26 +0200 -Subject: [PATCH 262/364] Replace 8 with GRUB_CHAR_BIT in several places +Subject: [PATCH 263/471] Replace 8 with GRUB_CHAR_BIT in several places when appropriate. --- @@ -65,5 +65,5 @@ index 0b94414..55aa5b9 100644 grub_puts_ (N_("Attempting to decrypt master key...")); -- -1.8.1.4 +1.8.2.1 diff --git a/0263-grub-core-commands-acpi.c-Use-sizeof-rather-than-har.patch b/0264-grub-core-commands-acpi.c-Use-sizeof-rather-than-har.patch similarity index 95% rename from 0263-grub-core-commands-acpi.c-Use-sizeof-rather-than-har.patch rename to 0264-grub-core-commands-acpi.c-Use-sizeof-rather-than-har.patch index bb9bd23..c383562 100644 --- a/0263-grub-core-commands-acpi.c-Use-sizeof-rather-than-har.patch +++ b/0264-grub-core-commands-acpi.c-Use-sizeof-rather-than-har.patch @@ -1,7 +1,7 @@ -From a275d1fc56fb118a9ebdd48c8680d0b47e3c3c59 Mon Sep 17 00:00:00 2001 +From a3da4fed0728b2ed108fd7b02047e5ea568e8d89 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 5 Apr 2013 11:01:19 +0200 -Subject: [PATCH 263/364] * grub-core/commands/acpi.c: Use sizeof rather +Subject: [PATCH 264/471] * grub-core/commands/acpi.c: Use sizeof rather than hardcoding the size. --- @@ -74,5 +74,5 @@ index 4ca8cf7..14f639c 100644 playground_size += sizeof (struct grub_acpi_rsdp_v20); -- -1.8.1.4 +1.8.2.1 diff --git a/0264-util-grub-mkfont.c-Prefer-enum-to-define.patch b/0265-util-grub-mkfont.c-Prefer-enum-to-define.patch similarity index 89% rename from 0264-util-grub-mkfont.c-Prefer-enum-to-define.patch rename to 0265-util-grub-mkfont.c-Prefer-enum-to-define.patch index 29281b1..2189304 100644 --- a/0264-util-grub-mkfont.c-Prefer-enum-to-define.patch +++ b/0265-util-grub-mkfont.c-Prefer-enum-to-define.patch @@ -1,7 +1,7 @@ -From d01148a183ca591cc2e2c9313f939eb4392d0166 Mon Sep 17 00:00:00 2001 +From 79cd77365b72e4fc4131b1b2f87b10875536495f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 5 Apr 2013 11:13:37 +0200 -Subject: [PATCH 264/364] * util/grub-mkfont.c: Prefer enum to #define. +Subject: [PATCH 265/471] * util/grub-mkfont.c: Prefer enum to #define. --- ChangeLog | 4 ++++ @@ -45,5 +45,5 @@ index 83fb2d2..0343fd2 100644 struct grub_font_info { -- -1.8.1.4 +1.8.2.1 diff --git a/0265-Use-GRUB_PROPERLY_ALIGNED_ARRAY-in-grub-core-disk-cr.patch b/0266-Use-GRUB_PROPERLY_ALIGNED_ARRAY-in-grub-core-disk-cr.patch similarity index 93% rename from 0265-Use-GRUB_PROPERLY_ALIGNED_ARRAY-in-grub-core-disk-cr.patch rename to 0266-Use-GRUB_PROPERLY_ALIGNED_ARRAY-in-grub-core-disk-cr.patch index fefc3a3..25f68ab 100644 --- a/0265-Use-GRUB_PROPERLY_ALIGNED_ARRAY-in-grub-core-disk-cr.patch +++ b/0266-Use-GRUB_PROPERLY_ALIGNED_ARRAY-in-grub-core-disk-cr.patch @@ -1,7 +1,7 @@ -From e16d5721a09be08276d8b0555a69f798dcf12550 Mon Sep 17 00:00:00 2001 +From 830a8f214176981d1947534daa362a1fcb28e540 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 5 Apr 2013 13:26:10 +0200 -Subject: [PATCH 265/364] Use GRUB_PROPERLY_ALIGNED_ARRAY in +Subject: [PATCH 266/471] Use GRUB_PROPERLY_ALIGNED_ARRAY in grub-core/disk/cryptodisk.c and grub-core/disk/geli.c. --- @@ -52,5 +52,5 @@ index 55aa5b9..2aa1ae0 100644 grub_dprintf ("geli", "rekeying %" PRIuGRUB_UINT64_T " keysize=%d\n", zoneno, dev->rekey_derived_size); -- -1.8.1.4 +1.8.2.1 diff --git a/0266-util-grub.d-30_os-prober.in-Support-btrrfs-linux-pro.patch b/0267-util-grub.d-30_os-prober.in-Support-btrrfs-linux-pro.patch similarity index 92% rename from 0266-util-grub.d-30_os-prober.in-Support-btrrfs-linux-pro.patch rename to 0267-util-grub.d-30_os-prober.in-Support-btrrfs-linux-pro.patch index 54a9cb4..e9fb178 100644 --- a/0266-util-grub.d-30_os-prober.in-Support-btrrfs-linux-pro.patch +++ b/0267-util-grub.d-30_os-prober.in-Support-btrrfs-linux-pro.patch @@ -1,7 +1,7 @@ -From 790ea9881cf13902e966034fdde12850d7b5085b Mon Sep 17 00:00:00 2001 +From ae5570799e55cdbd6969ac88a20b4039b10b2b16 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Fri, 5 Apr 2013 14:55:37 +0200 -Subject: [PATCH 266/364] * util/grub.d/30_os-prober.in: Support btrrfs +Subject: [PATCH 267/471] * util/grub.d/30_os-prober.in: Support btrrfs linux-prober extensions. --- @@ -51,5 +51,5 @@ index bf47dc3..e20d8b3 100644 boot_device_id= is_first_entry=true -- -1.8.1.4 +1.8.2.1 diff --git a/0267-util-grub-install_header-Use-PACKAGE-.mo-in-message-.patch b/0268-util-grub-install_header-Use-PACKAGE-.mo-in-message-.patch similarity index 91% rename from 0267-util-grub-install_header-Use-PACKAGE-.mo-in-message-.patch rename to 0268-util-grub-install_header-Use-PACKAGE-.mo-in-message-.patch index 8a62c76..26da696 100644 --- a/0267-util-grub-install_header-Use-PACKAGE-.mo-in-message-.patch +++ b/0268-util-grub-install_header-Use-PACKAGE-.mo-in-message-.patch @@ -1,7 +1,7 @@ -From ae1957bc0b8982ee73b60aa194f72bc538c60854 Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From 84643f33b9711f4b3195bec54e1ef674fd12d073 Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Sat, 6 Apr 2013 20:14:29 +0200 -Subject: [PATCH 267/364] * util/grub-install_header: Use @PACKAGE@.mo +Subject: [PATCH 268/471] * util/grub-install_header: Use @PACKAGE@.mo in message catalog name instead of hardcoding grub.mo. --- @@ -48,5 +48,5 @@ index 7c2c0a5..69aac46 100644 done fi -- -1.8.1.4 +1.8.2.1 diff --git a/0268-conf-Makefile.extra-dist-EXTRA_DIST-Add.patch b/0269-conf-Makefile.extra-dist-EXTRA_DIST-Add.patch similarity index 88% rename from 0268-conf-Makefile.extra-dist-EXTRA_DIST-Add.patch rename to 0269-conf-Makefile.extra-dist-EXTRA_DIST-Add.patch index 3c71e7f..570409c 100644 --- a/0268-conf-Makefile.extra-dist-EXTRA_DIST-Add.patch +++ b/0269-conf-Makefile.extra-dist-EXTRA_DIST-Add.patch @@ -1,7 +1,7 @@ -From b970f640ef40de57c1d69ef7cbce96287d3a034f Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From 2fa196c854ab32d9b367c2c8fc55835c747c6cb1 Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Sat, 6 Apr 2013 20:49:02 +0200 -Subject: [PATCH 268/364] * conf/Makefile.extra-dist (EXTRA_DIST): Add +Subject: [PATCH 269/471] * conf/Makefile.extra-dist (EXTRA_DIST): Add grub-core/lib/libgcrypt/src/gcrypt.h.in and util/import_gcrypth.sed. --- @@ -43,5 +43,5 @@ index c862206..2e36500 100644 EXTRA_DIST += m4/gnulib-cache.m4 EXTRA_DIST += m4/glibc2.m4 -- -1.8.1.4 +1.8.2.1 diff --git a/0269-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch b/0269-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch deleted file mode 100644 index 9b37b19..0000000 --- a/0269-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch +++ /dev/null @@ -1,92 +0,0 @@ -From ae9964bfa8ff7b27534cbf8ff40cdbbaa02c8d48 Mon Sep 17 00:00:00 2001 -From: Vladimir 'phcoder' Serbinenko -Date: Sun, 7 Apr 2013 17:48:22 +0200 -Subject: [PATCH 269/364] * grub-core/normal/term.c: Few more fixes for - menu entry editor rendering. Reported by: Andrey Borzenkov - - ---- - ChangeLog | 6 ++++++ - grub-core/normal/term.c | 24 ++++++++++++++++-------- - 2 files changed, 22 insertions(+), 8 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index 9163911..8b90e7a 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,9 @@ -+2013-04-07 Vladimir Serbinenko -+ -+ * grub-core/normal/term.c: Few more fixes for menu entry editor -+ rendering. -+ Reported by: Andrey Borzenkov -+ - 2013-04-06 Andrey Borzenkov - - * conf/Makefile.extra-dist (EXTRA_DIST): Add -diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c -index f05184b..d73d29c 100644 ---- a/grub-core/normal/term.c -+++ b/grub-core/normal/term.c -@@ -746,9 +746,12 @@ print_ucs4_terminal (const grub_uint32_t * str, - putcode_real (*ptr2, term, fixed_tab); - } - -- sp = max_width - pos[last_position - str].x + 1; -- if (sp > 0) -- grub_print_spaces (term, sp); -+ if (contchar) -+ { -+ sp = max_width - pos[last_position - str].x + 1; -+ if (sp > 0) -+ grub_print_spaces (term, sp); -+ } - } - return dry_run ? lines : 0; - } -@@ -780,7 +783,8 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, - grub_ssize_t visual_len, - int margin_left, int margin_right, - struct grub_term_output *term, -- struct term_state *state, int fixed_tab) -+ struct term_state *state, int fixed_tab, -+ grub_uint32_t contchar) - { - const struct grub_unicode_glyph *visual_ptr; - for (visual_ptr = visual; visual_ptr < visual + visual_len; visual_ptr++) -@@ -799,7 +803,11 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, - return 1; - } - -- grub_print_spaces (term, margin_left); -+ if (!contchar) -+ grub_print_spaces (term, margin_left); -+ else -+ grub_term_gotoxy (term, margin_left, -+ grub_term_getxy (term) & 0xff); - } - grub_free (visual_ptr->combining); - } -@@ -839,7 +847,7 @@ print_backlog (struct grub_term_output *term, - ret = put_glyphs_terminal (state->backlog_glyphs, - state->backlog_len, - margin_left, margin_right, term, state, -- state->backlog_fixed_tab); -+ state->backlog_fixed_tab, 0); - if (!ret) - { - grub_free (state->free); -@@ -942,8 +950,8 @@ print_ucs4_real (const grub_uint32_t * str, - else - { - ret = put_glyphs_terminal (visual_show, visual_len_show, margin_left, -- contchar ? margin_right : 1, -- term, state, fixed_tab); -+ contchar ? 0 : margin_right, -+ term, state, fixed_tab, contchar); - - if (!ret) - grub_free (visual); --- -1.8.1.4 - diff --git a/0270-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch b/0270-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch index 380b121..92f696b 100644 --- a/0270-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch +++ b/0270-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch @@ -1,122 +1,92 @@ -From 4e8d4c0c9af6f05c4b7a9d64baaf846449624068 Mon Sep 17 00:00:00 2001 +From a36ddee93b64424dfd6c99fe919910c47a30836f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko -Date: Mon, 8 Apr 2013 14:35:26 +0200 -Subject: [PATCH 270/364] * grub-core/normal/term.c: Few more fixes for +Date: Sun, 7 Apr 2013 17:48:22 +0200 +Subject: [PATCH 270/471] * grub-core/normal/term.c: Few more fixes for menu entry editor rendering. Reported by: Andrey Borzenkov --- - ChangeLog | 6 ++++++ - grub-core/normal/menu_entry.c | 11 ++++++++++- - grub-core/normal/term.c | 13 ++++++++++--- - include/grub/term.h | 8 -------- - 4 files changed, 26 insertions(+), 12 deletions(-) + ChangeLog | 6 ++++++ + grub-core/normal/term.c | 24 ++++++++++++++++-------- + 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog -index 8b90e7a..0c97d42 100644 +index 9163911..8b90e7a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ -+2013-04-08 Vladimir Serbinenko ++2013-04-07 Vladimir Serbinenko + + * grub-core/normal/term.c: Few more fixes for menu entry editor + rendering. + Reported by: Andrey Borzenkov + - 2013-04-07 Vladimir Serbinenko - - * grub-core/normal/term.c: Few more fixes for menu entry editor -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index 80f9464..e0407aa 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -118,6 +118,15 @@ ensure_space (struct line *linep, int extra) - return 1; - } - -+/* The max column number of an entry. The last "-1" is for a -+ continuation marker. */ -+static inline int -+grub_term_entry_width (struct grub_term_output *term) -+{ -+ return grub_term_border_width (term) - GRUB_TERM_MARGIN * 2 - 2; -+} -+ -+ - /* Return the number of lines occupied by this line on the screen. */ - static int - get_logical_num_lines (struct line *linep, struct per_term_screen *term_screen) -@@ -150,7 +159,7 @@ print_empty_line (int y, struct per_term_screen *term_screen) - GRUB_TERM_LEFT_BORDER_X + GRUB_TERM_MARGIN + 1, - y + GRUB_TERM_FIRST_ENTRY_Y); - -- for (i = 0; i < grub_term_entry_width (term_screen->term); i++) -+ for (i = 0; i < grub_term_entry_width (term_screen->term) + 1; i++) - grub_putcode (' ', term_screen->term); - } + 2013-04-06 Andrey Borzenkov + * conf/Makefile.extra-dist (EXTRA_DIST): Add diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c -index d73d29c..f9620f6 100644 +index f05184b..d73d29c 100644 --- a/grub-core/normal/term.c +++ b/grub-core/normal/term.c -@@ -787,13 +787,17 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, - grub_uint32_t contchar) +@@ -746,9 +746,12 @@ print_ucs4_terminal (const grub_uint32_t * str, + putcode_real (*ptr2, term, fixed_tab); + } + +- sp = max_width - pos[last_position - str].x + 1; +- if (sp > 0) +- grub_print_spaces (term, sp); ++ if (contchar) ++ { ++ sp = max_width - pos[last_position - str].x + 1; ++ if (sp > 0) ++ grub_print_spaces (term, sp); ++ } + } + return dry_run ? lines : 0; + } +@@ -780,7 +783,8 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, + grub_ssize_t visual_len, + int margin_left, int margin_right, + struct grub_term_output *term, +- struct term_state *state, int fixed_tab) ++ struct term_state *state, int fixed_tab, ++ grub_uint32_t contchar) { const struct grub_unicode_glyph *visual_ptr; -+ int since_last_nl = 1; for (visual_ptr = visual; visual_ptr < visual + visual_len; visual_ptr++) - { -- if (visual_ptr->base == '\n') -- grub_print_spaces (term, margin_right); -+ if (visual_ptr->base == '\n' && contchar) -+ fill_margin (term, margin_right); -+ - putglyph (visual_ptr, term, fixed_tab); -+ since_last_nl++; - if (visual_ptr->base == '\n') - { -+ since_last_nl = 0; - if (state && ++state->num_lines - >= (grub_ssize_t) grub_term_height (term) - 2) - { -@@ -811,6 +815,9 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, +@@ -799,7 +803,11 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, + return 1; + } + +- grub_print_spaces (term, margin_left); ++ if (!contchar) ++ grub_print_spaces (term, margin_left); ++ else ++ grub_term_gotoxy (term, margin_left, ++ grub_term_getxy (term) & 0xff); } grub_free (visual_ptr->combining); } -+ if (contchar && since_last_nl) -+ fill_margin (term, margin_right); -+ - return 0; - } - -@@ -950,7 +957,7 @@ print_ucs4_real (const grub_uint32_t * str, +@@ -839,7 +847,7 @@ print_backlog (struct grub_term_output *term, + ret = put_glyphs_terminal (state->backlog_glyphs, + state->backlog_len, + margin_left, margin_right, term, state, +- state->backlog_fixed_tab); ++ state->backlog_fixed_tab, 0); + if (!ret) + { + grub_free (state->free); +@@ -942,8 +950,8 @@ print_ucs4_real (const grub_uint32_t * str, else { ret = put_glyphs_terminal (visual_show, visual_len_show, margin_left, -- contchar ? 0 : margin_right, -+ margin_right, - term, state, fixed_tab, contchar); +- contchar ? margin_right : 1, +- term, state, fixed_tab); ++ contchar ? 0 : margin_right, ++ term, state, fixed_tab, contchar); if (!ret) -diff --git a/include/grub/term.h b/include/grub/term.h -index 655a5e3..565d14f 100644 ---- a/include/grub/term.h -+++ b/include/grub/term.h -@@ -347,14 +347,6 @@ grub_term_border_width (struct grub_term_output *term) - return grub_term_width (term) - GRUB_TERM_MARGIN * 2; - } - --/* The max column number of an entry. The last "-1" is for a -- continuation marker. */ --static inline int --grub_term_entry_width (struct grub_term_output *term) --{ -- return grub_term_border_width (term) - GRUB_TERM_MARGIN * 2 - 1; --} -- - static inline grub_uint16_t - grub_term_getxy (struct grub_term_output *term) - { + grub_free (visual); -- -1.8.1.4 +1.8.2.1 diff --git a/0271-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch b/0271-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch new file mode 100644 index 0000000..0393efe --- /dev/null +++ b/0271-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch @@ -0,0 +1,122 @@ +From 6a5471c23274d40eec0226793a1dd09fd0a16b5b Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 8 Apr 2013 14:35:26 +0200 +Subject: [PATCH 271/471] * grub-core/normal/term.c: Few more fixes for + menu entry editor rendering. Reported by: Andrey Borzenkov + + +--- + ChangeLog | 6 ++++++ + grub-core/normal/menu_entry.c | 11 ++++++++++- + grub-core/normal/term.c | 13 ++++++++++--- + include/grub/term.h | 8 -------- + 4 files changed, 26 insertions(+), 12 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 8b90e7a..0c97d42 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2013-04-08 Vladimir Serbinenko ++ ++ * grub-core/normal/term.c: Few more fixes for menu entry editor ++ rendering. ++ Reported by: Andrey Borzenkov ++ + 2013-04-07 Vladimir Serbinenko + + * grub-core/normal/term.c: Few more fixes for menu entry editor +diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c +index 80f9464..e0407aa 100644 +--- a/grub-core/normal/menu_entry.c ++++ b/grub-core/normal/menu_entry.c +@@ -118,6 +118,15 @@ ensure_space (struct line *linep, int extra) + return 1; + } + ++/* The max column number of an entry. The last "-1" is for a ++ continuation marker. */ ++static inline int ++grub_term_entry_width (struct grub_term_output *term) ++{ ++ return grub_term_border_width (term) - GRUB_TERM_MARGIN * 2 - 2; ++} ++ ++ + /* Return the number of lines occupied by this line on the screen. */ + static int + get_logical_num_lines (struct line *linep, struct per_term_screen *term_screen) +@@ -150,7 +159,7 @@ print_empty_line (int y, struct per_term_screen *term_screen) + GRUB_TERM_LEFT_BORDER_X + GRUB_TERM_MARGIN + 1, + y + GRUB_TERM_FIRST_ENTRY_Y); + +- for (i = 0; i < grub_term_entry_width (term_screen->term); i++) ++ for (i = 0; i < grub_term_entry_width (term_screen->term) + 1; i++) + grub_putcode (' ', term_screen->term); + } + +diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c +index d73d29c..f9620f6 100644 +--- a/grub-core/normal/term.c ++++ b/grub-core/normal/term.c +@@ -787,13 +787,17 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, + grub_uint32_t contchar) + { + const struct grub_unicode_glyph *visual_ptr; ++ int since_last_nl = 1; + for (visual_ptr = visual; visual_ptr < visual + visual_len; visual_ptr++) + { +- if (visual_ptr->base == '\n') +- grub_print_spaces (term, margin_right); ++ if (visual_ptr->base == '\n' && contchar) ++ fill_margin (term, margin_right); ++ + putglyph (visual_ptr, term, fixed_tab); ++ since_last_nl++; + if (visual_ptr->base == '\n') + { ++ since_last_nl = 0; + if (state && ++state->num_lines + >= (grub_ssize_t) grub_term_height (term) - 2) + { +@@ -811,6 +815,9 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, + } + grub_free (visual_ptr->combining); + } ++ if (contchar && since_last_nl) ++ fill_margin (term, margin_right); ++ + return 0; + } + +@@ -950,7 +957,7 @@ print_ucs4_real (const grub_uint32_t * str, + else + { + ret = put_glyphs_terminal (visual_show, visual_len_show, margin_left, +- contchar ? 0 : margin_right, ++ margin_right, + term, state, fixed_tab, contchar); + + if (!ret) +diff --git a/include/grub/term.h b/include/grub/term.h +index 655a5e3..565d14f 100644 +--- a/include/grub/term.h ++++ b/include/grub/term.h +@@ -347,14 +347,6 @@ grub_term_border_width (struct grub_term_output *term) + return grub_term_width (term) - GRUB_TERM_MARGIN * 2; + } + +-/* The max column number of an entry. The last "-1" is for a +- continuation marker. */ +-static inline int +-grub_term_entry_width (struct grub_term_output *term) +-{ +- return grub_term_border_width (term) - GRUB_TERM_MARGIN * 2 - 1; +-} +- + static inline grub_uint16_t + grub_term_getxy (struct grub_term_output *term) + { +-- +1.8.2.1 + diff --git a/0271-docs-grub-dev.texi-Move-itemize-after-subsection-to-.patch b/0272-docs-grub-dev.texi-Move-itemize-after-subsection-to-.patch similarity index 89% rename from 0271-docs-grub-dev.texi-Move-itemize-after-subsection-to-.patch rename to 0272-docs-grub-dev.texi-Move-itemize-after-subsection-to-.patch index 46dd5b3..399a152 100644 --- a/0271-docs-grub-dev.texi-Move-itemize-after-subsection-to-.patch +++ b/0272-docs-grub-dev.texi-Move-itemize-after-subsection-to-.patch @@ -1,7 +1,7 @@ -From 8f7bea9a0975542cc54653d67bf090b4ed63064a Mon Sep 17 00:00:00 2001 +From d7dd0e368672fca3430b6c7d5c5c4a753a62e8a2 Mon Sep 17 00:00:00 2001 From: Bryan Hundven Date: Mon, 8 Apr 2013 15:23:07 +0200 -Subject: [PATCH 271/364] * docs/grub-dev.texi: Move @itemize after +Subject: [PATCH 272/471] * docs/grub-dev.texi: Move @itemize after @subsection to satisfy texinfo-5.1. --- @@ -37,5 +37,5 @@ index a4a3820..f74c966 100644 @example grub_err_t grub_video_bitmap_create (struct grub_video_bitmap **bitmap, unsigned int width, unsigned int height, enum grub_video_blit_format blit_format) -- -1.8.1.4 +1.8.2.1 diff --git a/0272-grub-core-term-i386-pc-console.c-Fix-cursor-moving-a.patch b/0273-grub-core-term-i386-pc-console.c-Fix-cursor-moving-a.patch similarity index 93% rename from 0272-grub-core-term-i386-pc-console.c-Fix-cursor-moving-a.patch rename to 0273-grub-core-term-i386-pc-console.c-Fix-cursor-moving-a.patch index 7c9afd7..18b28f7 100644 --- a/0272-grub-core-term-i386-pc-console.c-Fix-cursor-moving-a.patch +++ b/0273-grub-core-term-i386-pc-console.c-Fix-cursor-moving-a.patch @@ -1,7 +1,7 @@ -From 105030380129f8c17035ac88980eaa4c151ee521 Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From c5e950e3eceeb286dbdd4c5c2f3bc53979ad1a1d Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Mon, 8 Apr 2013 19:51:33 +0200 -Subject: [PATCH 272/364] * grub-core/term/i386/pc/console.c: Fix cursor +Subject: [PATCH 273/471] * grub-core/term/i386/pc/console.c: Fix cursor moving algorithm. --- @@ -78,5 +78,5 @@ index ee6650b..358611a 100644 static void -- -1.8.1.4 +1.8.2.1 diff --git a/0273-grub-core-Makefile.core.def-Add-kern-elfXX.c-to-elf-.patch b/0274-grub-core-Makefile.core.def-Add-kern-elfXX.c-to-elf-.patch similarity index 83% rename from 0273-grub-core-Makefile.core.def-Add-kern-elfXX.c-to-elf-.patch rename to 0274-grub-core-Makefile.core.def-Add-kern-elfXX.c-to-elf-.patch index 04fb539..dfd0fd8 100644 --- a/0273-grub-core-Makefile.core.def-Add-kern-elfXX.c-to-elf-.patch +++ b/0274-grub-core-Makefile.core.def-Add-kern-elfXX.c-to-elf-.patch @@ -1,7 +1,7 @@ -From 0dd4469b79f41c950f59eeb1f7899bb3f2e246fe Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From d1fbca9cf80bc38ca6c758a6663c947293f6a237 Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Mon, 8 Apr 2013 19:57:56 +0200 -Subject: [PATCH 273/364] * grub-core/Makefile.core.def: Add +Subject: [PATCH 274/471] * grub-core/Makefile.core.def: Add kern/elfXX.c to elf module as extra_dist. --- @@ -38,5 +38,5 @@ index 4b4c024..fece882 100644 module = { -- -1.8.1.4 +1.8.2.1 diff --git a/0274-Fix-ia64-efi-image-generation-on-big-endian-machines.patch b/0275-Fix-ia64-efi-image-generation-on-big-endian-machines.patch similarity index 99% rename from 0274-Fix-ia64-efi-image-generation-on-big-endian-machines.patch rename to 0275-Fix-ia64-efi-image-generation-on-big-endian-machines.patch index 876787c..a6de5f9 100644 --- a/0274-Fix-ia64-efi-image-generation-on-big-endian-machines.patch +++ b/0275-Fix-ia64-efi-image-generation-on-big-endian-machines.patch @@ -1,7 +1,7 @@ -From e5668a21f2e71785573ab072471c9254fa6e73b0 Mon Sep 17 00:00:00 2001 +From 1b3ac6280e2c0ec4ad4aa9aae034075bb961d21c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 9 Apr 2013 19:19:19 +0200 -Subject: [PATCH 274/364] Fix ia64-efi image generation on big-endian +Subject: [PATCH 275/471] Fix ia64-efi image generation on big-endian machines. Deduplicate some code while on it. Reported by: Leif Lindholm. --- @@ -780,5 +780,5 @@ index 476d05e..b6b263d 100644 ia64_toff = *kernel_sz; *kernel_sz += ALIGN_UP (tramp, 16); -- -1.8.1.4 +1.8.2.1 diff --git a/0275-autogen.sh-Use-h-not-f-to-test-for-existence-of-symb.patch b/0276-autogen.sh-Use-h-not-f-to-test-for-existence-of-symb.patch similarity index 87% rename from 0275-autogen.sh-Use-h-not-f-to-test-for-existence-of-symb.patch rename to 0276-autogen.sh-Use-h-not-f-to-test-for-existence-of-symb.patch index c8d3a37..c96af48 100644 --- a/0275-autogen.sh-Use-h-not-f-to-test-for-existence-of-symb.patch +++ b/0276-autogen.sh-Use-h-not-f-to-test-for-existence-of-symb.patch @@ -1,7 +1,7 @@ -From c6be98fd2558c7354ac1653c2d1526c89ef80f75 Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From 2d3ccedf0ae9aeb340622628c74a1d58132d35f2 Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Wed, 10 Apr 2013 15:57:40 +0200 -Subject: [PATCH 275/364] * autogen.sh: Use "-h", not "-f", to test for +Subject: [PATCH 276/471] * autogen.sh: Use "-h", not "-f", to test for existence of symbolic links under grub-core/lib/libgcrypt-grub/mpi. --- @@ -36,5 +36,5 @@ index 7a4b5c8..d47650b 100755 fi ln -s generic/"$x" grub-core/lib/libgcrypt-grub/mpi/"$x" -- -1.8.1.4 +1.8.2.1 diff --git a/0276-Fix-missing-PVs-if-they-don-t-contain-interesting-LV.patch b/0277-Fix-missing-PVs-if-they-don-t-contain-interesting-LV.patch similarity index 97% rename from 0276-Fix-missing-PVs-if-they-don-t-contain-interesting-LV.patch rename to 0277-Fix-missing-PVs-if-they-don-t-contain-interesting-LV.patch index 2faf45e..fba7a7a 100644 --- a/0276-Fix-missing-PVs-if-they-don-t-contain-interesting-LV.patch +++ b/0277-Fix-missing-PVs-if-they-don-t-contain-interesting-LV.patch @@ -1,7 +1,7 @@ -From 799c9e78e1e63c3abf22f62b453dcd9b50f929c2 Mon Sep 17 00:00:00 2001 +From ac3bee8949b5edab8797d75c5e1b3f176c904a4a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 11 Apr 2013 00:08:27 +0200 -Subject: [PATCH 276/364] Fix missing PVs if they don't contain +Subject: [PATCH 277/471] Fix missing PVs if they don't contain "interesting" LV. Closes #38677. Fix few warining messages and leaks while on it. @@ -175,5 +175,5 @@ index 654d1e1..f65fd1e 100644 #ifdef HAVE_DEVICE_MAPPER { -- -1.8.1.4 +1.8.2.1 diff --git a/0277-util-grub.d-30_os-prober.in-Add-onstr-to-entries-for.patch b/0278-util-grub.d-30_os-prober.in-Add-onstr-to-entries-for.patch similarity index 90% rename from 0277-util-grub.d-30_os-prober.in-Add-onstr-to-entries-for.patch rename to 0278-util-grub.d-30_os-prober.in-Add-onstr-to-entries-for.patch index 8b6f89b..6e5ca10 100644 --- a/0277-util-grub.d-30_os-prober.in-Add-onstr-to-entries-for.patch +++ b/0278-util-grub.d-30_os-prober.in-Add-onstr-to-entries-for.patch @@ -1,7 +1,7 @@ -From 590d8ede1ee3d379b19371c1e1a833906bfe0fa0 Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From 9ac4eee966697d77e5e55e02335e6a62c4f85769 Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Thu, 11 Apr 2013 15:11:14 +0200 -Subject: [PATCH 277/364] * util/grub.d/30_os-prober.in: Add onstr to +Subject: [PATCH 278/471] * util/grub.d/30_os-prober.in: Add onstr to entries for visual distinction. --- @@ -45,5 +45,5 @@ index e20d8b3..5500a3c 100644 fi title="${LLABEL} $onstr" -- -1.8.1.4 +1.8.2.1 diff --git a/0278-Use-ACPI-shutdown-intests-as-traditional-port-was-re.patch b/0279-Use-ACPI-shutdown-intests-as-traditional-port-was-re.patch similarity index 98% rename from 0278-Use-ACPI-shutdown-intests-as-traditional-port-was-re.patch rename to 0279-Use-ACPI-shutdown-intests-as-traditional-port-was-re.patch index b1f4b29..7fb444a 100644 --- a/0278-Use-ACPI-shutdown-intests-as-traditional-port-was-re.patch +++ b/0279-Use-ACPI-shutdown-intests-as-traditional-port-was-re.patch @@ -1,7 +1,7 @@ -From 3f4af0c00ca064488a7186696fecf27a55a2165f Mon Sep 17 00:00:00 2001 +From 7789de5b693525b7df0fca50d68000c26bdcfe8c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 11 Apr 2013 21:09:43 +0200 -Subject: [PATCH 278/364] Use ACPI shutdown intests as traditional port +Subject: [PATCH 279/471] Use ACPI shutdown intests as traditional port was removed. --- @@ -447,5 +447,5 @@ index 0000000..8f794fc + movw $0x1004, %dx + outw %ax, %dx -- -1.8.1.4 +1.8.2.1 diff --git a/0279-Import-new-gnulib.patch b/0280-Import-new-gnulib.patch similarity index 99% rename from 0279-Import-new-gnulib.patch rename to 0280-Import-new-gnulib.patch index 30defe1..3fe0fe4 100644 --- a/0279-Import-new-gnulib.patch +++ b/0280-Import-new-gnulib.patch @@ -1,7 +1,7 @@ -From 6a26cd474ef12887f60a6c9c0be1ffb9b0a510cd Mon Sep 17 00:00:00 2001 +From b4dc7c544885995fe4b33549216495cced7b87e4 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 11 Apr 2013 21:12:46 +0200 -Subject: [PATCH 279/364] Import new gnulib. +Subject: [PATCH 280/471] Import new gnulib. --- ChangeLog | 4 + @@ -29449,5 +29449,5 @@ index ec79914..ac39418 100644 ./include/grub/reader.h ./include/grub/reed_solomon.h -- -1.8.1.4 +1.8.2.1 diff --git a/0280-docs-grub.texi-Fix-description-of-GRUB_CMDLINE_XEN-a.patch b/0281-docs-grub.texi-Fix-description-of-GRUB_CMDLINE_XEN-a.patch similarity index 90% rename from 0280-docs-grub.texi-Fix-description-of-GRUB_CMDLINE_XEN-a.patch rename to 0281-docs-grub.texi-Fix-description-of-GRUB_CMDLINE_XEN-a.patch index 5532e32..0746647 100644 --- a/0280-docs-grub.texi-Fix-description-of-GRUB_CMDLINE_XEN-a.patch +++ b/0281-docs-grub.texi-Fix-description-of-GRUB_CMDLINE_XEN-a.patch @@ -1,7 +1,7 @@ -From 5e6e83436dcaf78f4be5fad2d27c0a5df8fa57e0 Mon Sep 17 00:00:00 2001 +From 0be9bd30234b5dad6303a9d3a4747fca36f6e903 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 11 Apr 2013 21:46:21 +0200 -Subject: [PATCH 280/364] * docs/grub.texi: Fix description of +Subject: [PATCH 281/471] * docs/grub.texi: Fix description of GRUB_CMDLINE_XEN and GRUB_CMDLINE_XEN_DEFAULT. Reported by: Marc Warne (GigaTux) @@ -43,5 +43,5 @@ index bd366a6..f6f9506 100644 @item GRUB_CMDLINE_LINUX_XEN_REPLACE @item GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT -- -1.8.1.4 +1.8.2.1 diff --git a/0281-Merge-powerpc-grub-mkrescue-flavour-with-common.-Use.patch b/0282-Merge-powerpc-grub-mkrescue-flavour-with-common.-Use.patch similarity index 99% rename from 0281-Merge-powerpc-grub-mkrescue-flavour-with-common.-Use.patch rename to 0282-Merge-powerpc-grub-mkrescue-flavour-with-common.-Use.patch index 0c7f644..b84fbd2 100644 --- a/0281-Merge-powerpc-grub-mkrescue-flavour-with-common.-Use.patch +++ b/0282-Merge-powerpc-grub-mkrescue-flavour-with-common.-Use.patch @@ -1,7 +1,7 @@ -From 7ef3eb66fabfe125a79f6a88a25730a7a0bb9c05 Mon Sep 17 00:00:00 2001 +From 575b44b648a5007217689a857f82129a56cabc7c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Thu, 11 Apr 2013 23:15:26 +0200 -Subject: [PATCH 281/364] Merge powerpc grub-mkrescue flavour with +Subject: [PATCH 282/471] Merge powerpc grub-mkrescue flavour with common. Use xorriso HFS+ feature for it. --- @@ -1096,5 +1096,5 @@ index 2615cab..0000000 - -exit 0 -- -1.8.1.4 +1.8.2.1 diff --git a/0282-Support-i386-ieee1275-grub-mkrescue-and-make-check-o.patch b/0283-Support-i386-ieee1275-grub-mkrescue-and-make-check-o.patch similarity index 97% rename from 0282-Support-i386-ieee1275-grub-mkrescue-and-make-check-o.patch rename to 0283-Support-i386-ieee1275-grub-mkrescue-and-make-check-o.patch index 02931b3..18154e3 100644 --- a/0282-Support-i386-ieee1275-grub-mkrescue-and-make-check-o.patch +++ b/0283-Support-i386-ieee1275-grub-mkrescue-and-make-check-o.patch @@ -1,7 +1,7 @@ -From 6a2668284e0bf240c50cdff8540573a9150106d1 Mon Sep 17 00:00:00 2001 +From 260299d1466df594ec9e53e8de234143a5977158 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 01:29:45 +0200 -Subject: [PATCH 282/364] Support i386-ieee1275 grub-mkrescue and make +Subject: [PATCH 283/471] Support i386-ieee1275 grub-mkrescue and make check on it. --- @@ -169,5 +169,5 @@ index a6e4de6..510d95f 100644 efi_dir=`mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 mkdir -p "${efi_dir}/efi/boot" -- -1.8.1.4 +1.8.2.1 diff --git a/0283-tests-partmap_test.in-Fix-missing-qemudisk-setting.patch b/0284-tests-partmap_test.in-Fix-missing-qemudisk-setting.patch similarity index 86% rename from 0283-tests-partmap_test.in-Fix-missing-qemudisk-setting.patch rename to 0284-tests-partmap_test.in-Fix-missing-qemudisk-setting.patch index 8105758..30d2d6a 100644 --- a/0283-tests-partmap_test.in-Fix-missing-qemudisk-setting.patch +++ b/0284-tests-partmap_test.in-Fix-missing-qemudisk-setting.patch @@ -1,7 +1,7 @@ -From 4ad3b808b24202670c65a20e1f0a532499772312 Mon Sep 17 00:00:00 2001 +From 1cdeab20151734836049af9353c344ba3f803c26 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 01:44:14 +0200 -Subject: [PATCH 283/364] * tests/partmap_test.in: Fix missing qemudisk +Subject: [PATCH 284/471] * tests/partmap_test.in: Fix missing qemudisk setting. --- @@ -34,5 +34,5 @@ index a0beb2a..8d68a28 100644 esac imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 -- -1.8.1.4 +1.8.2.1 diff --git a/0284-tests-grub_cmd_date.in-New-test-for-datetime.patch b/0285-tests-grub_cmd_date.in-New-test-for-datetime.patch similarity index 91% rename from 0284-tests-grub_cmd_date.in-New-test-for-datetime.patch rename to 0285-tests-grub_cmd_date.in-New-test-for-datetime.patch index c05bc1d..ef40299 100644 --- a/0284-tests-grub_cmd_date.in-New-test-for-datetime.patch +++ b/0285-tests-grub_cmd_date.in-New-test-for-datetime.patch @@ -1,7 +1,7 @@ -From 369b824667cc2a140e0efaccf480d43e07199d8d Mon Sep 17 00:00:00 2001 +From 58ed755e7e3b0c0a44ea16ad51fc862c6cda1b32 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 01:47:38 +0200 -Subject: [PATCH 284/364] * tests/grub_cmd_date.in: New test for +Subject: [PATCH 285/471] * tests/grub_cmd_date.in: New test for datetime. --- @@ -61,5 +61,5 @@ index 0000000..1c8e7e6 +fi +echo "Date not in range: $pdt <= $dtg <= $ndt" -- -1.8.1.4 +1.8.2.1 diff --git a/0285-docs-grub.texi-Update-coreboot-status-info.patch b/0286-docs-grub.texi-Update-coreboot-status-info.patch similarity index 97% rename from 0285-docs-grub.texi-Update-coreboot-status-info.patch rename to 0286-docs-grub.texi-Update-coreboot-status-info.patch index fc604b8..8437cd7 100644 --- a/0285-docs-grub.texi-Update-coreboot-status-info.patch +++ b/0286-docs-grub.texi-Update-coreboot-status-info.patch @@ -1,7 +1,7 @@ -From 17ed0de277435222aba484b3903a55710075f999 Mon Sep 17 00:00:00 2001 +From 8bfc7bf55ca478fe743f70b8699eca27383e2045 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 14:03:52 +0200 -Subject: [PATCH 285/364] * docs/grub.texi: Update coreboot status info. +Subject: [PATCH 286/471] * docs/grub.texi: Update coreboot status info. --- ChangeLog | 4 ++++ @@ -128,5 +128,5 @@ index f6f9506..87d19ea 100644 @item 32-bit and 64-bit EFI have different structures and work in different CPU modes so it's not possible to chainload 32-bit bootloader on 64-bit platform and vice-versa @item Some modules may need to be disabled -- -1.8.1.4 +1.8.2.1 diff --git a/0286-Turn-off-QEMU-ACPI-way-since-new-releases-don-t-have.patch b/0287-Turn-off-QEMU-ACPI-way-since-new-releases-don-t-have.patch similarity index 98% rename from 0286-Turn-off-QEMU-ACPI-way-since-new-releases-don-t-have.patch rename to 0287-Turn-off-QEMU-ACPI-way-since-new-releases-don-t-have.patch index f0ff082..68fcb0c 100644 --- a/0286-Turn-off-QEMU-ACPI-way-since-new-releases-don-t-have.patch +++ b/0287-Turn-off-QEMU-ACPI-way-since-new-releases-don-t-have.patch @@ -1,7 +1,7 @@ -From 4a1875b61089e467165be46a7e538e8beb47d8ac Mon Sep 17 00:00:00 2001 +From 0cd3f74d3dd9f2be5d819a802d0579e5ff2256ab Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 14:49:33 +0200 -Subject: [PATCH 286/364] Turn off QEMU ACPI-way since new releases +Subject: [PATCH 287/471] Turn off QEMU ACPI-way since new releases don't have shutdown port anymore. --- @@ -246,5 +246,5 @@ index 9f8bc40..e37f5df 100644 + movw $0x7004, %dx outw %ax, %dx -- -1.8.1.4 +1.8.2.1 diff --git a/0287-tests-util-grub-shell.in-Fix-it-on-powerpc.patch b/0288-tests-util-grub-shell.in-Fix-it-on-powerpc.patch similarity index 93% rename from 0287-tests-util-grub-shell.in-Fix-it-on-powerpc.patch rename to 0288-tests-util-grub-shell.in-Fix-it-on-powerpc.patch index 14eb2b2..67e1530 100644 --- a/0287-tests-util-grub-shell.in-Fix-it-on-powerpc.patch +++ b/0288-tests-util-grub-shell.in-Fix-it-on-powerpc.patch @@ -1,7 +1,7 @@ -From 47af30033ffebe7e3fa55fe430d95241ccc46b6c Mon Sep 17 00:00:00 2001 +From d6ab257f56d41f230ba4a5697177ba9c0e8c685a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 14:52:05 +0200 -Subject: [PATCH 287/364] * tests/util/grub-shell.in: Fix it on powerpc. +Subject: [PATCH 288/471] * tests/util/grub-shell.in: Fix it on powerpc. --- ChangeLog | 4 ++++ @@ -51,5 +51,5 @@ index c6d1cd7..e467b4a 100644 "/boot/grub/grub.cfg=${cfgfile}" "/boot/grub/testcase.cfg=${source}" \ ${files} >/dev/null 2>&1 -- -1.8.1.4 +1.8.2.1 diff --git a/0288-Disable-partmap-check-on-i386-ieee1275-due-to-openfi.patch b/0289-Disable-partmap-check-on-i386-ieee1275-due-to-openfi.patch similarity index 88% rename from 0288-Disable-partmap-check-on-i386-ieee1275-due-to-openfi.patch rename to 0289-Disable-partmap-check-on-i386-ieee1275-due-to-openfi.patch index 2ec7102..4956550 100644 --- a/0288-Disable-partmap-check-on-i386-ieee1275-due-to-openfi.patch +++ b/0289-Disable-partmap-check-on-i386-ieee1275-due-to-openfi.patch @@ -1,7 +1,7 @@ -From 2afcbe8d422beb164190383d6c22dc3115d31bfd Mon Sep 17 00:00:00 2001 +From 6ce24e7ceb07f674d037d0838eb50794bfadb59a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 17:51:43 +0200 -Subject: [PATCH 288/364] Disable partmap check on i386-ieee1275 due to +Subject: [PATCH 289/471] Disable partmap check on i386-ieee1275 due to openfirmware issues. --- @@ -37,5 +37,5 @@ index 8d68a28..f667f86 100644 *) disk=hd0 -- -1.8.1.4 +1.8.2.1 diff --git a/0289-grub-core-net-drivers-ieee1275-ofnet.c-Don-t-attempt.patch b/0290-grub-core-net-drivers-ieee1275-ofnet.c-Don-t-attempt.patch similarity index 90% rename from 0289-grub-core-net-drivers-ieee1275-ofnet.c-Don-t-attempt.patch rename to 0290-grub-core-net-drivers-ieee1275-ofnet.c-Don-t-attempt.patch index 4398392..42428c3 100644 --- a/0289-grub-core-net-drivers-ieee1275-ofnet.c-Don-t-attempt.patch +++ b/0290-grub-core-net-drivers-ieee1275-ofnet.c-Don-t-attempt.patch @@ -1,7 +1,7 @@ -From 2754f0b18b723314a78d2cc8bc9d8cd4b6279e9b Mon Sep 17 00:00:00 2001 +From 1776464a786731863fd93bf4ce8171063673dec1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 19:25:16 +0200 -Subject: [PATCH 289/364] * grub-core/net/drivers/ieee1275/ofnet.c: +Subject: [PATCH 290/471] * grub-core/net/drivers/ieee1275/ofnet.c: Don't attempt to send more than buffer size. --- @@ -38,5 +38,5 @@ index 1acfb73..cd9b159 100644 if (status) return grub_error (GRUB_ERR_IO, N_("couldn't send network packet")); -- -1.8.1.4 +1.8.2.1 diff --git a/0290-grub-core-net-http.c-Fix-bad-free.patch b/0291-grub-core-net-http.c-Fix-bad-free.patch similarity index 93% rename from 0290-grub-core-net-http.c-Fix-bad-free.patch rename to 0291-grub-core-net-http.c-Fix-bad-free.patch index 74b9020..e709c8e 100644 --- a/0290-grub-core-net-http.c-Fix-bad-free.patch +++ b/0291-grub-core-net-http.c-Fix-bad-free.patch @@ -1,7 +1,7 @@ -From 401a7131f31017fc73138d0e8c72ab92332b72c6 Mon Sep 17 00:00:00 2001 +From 20f0e206ae3a863c3e9e3a5a198fbac1aa549514 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 20:17:53 +0200 -Subject: [PATCH 290/364] * grub-core/net/http.c: Fix bad free. +Subject: [PATCH 291/471] * grub-core/net/http.c: Fix bad free. --- ChangeLog | 4 ++++ @@ -72,5 +72,5 @@ index a7542d1..4684f8b 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0291-Fix-handling-of-split-transfers.patch b/0292-Fix-handling-of-split-transfers.patch similarity index 97% rename from 0291-Fix-handling-of-split-transfers.patch rename to 0292-Fix-handling-of-split-transfers.patch index 0773cc7..115ed3d 100644 --- a/0291-Fix-handling-of-split-transfers.patch +++ b/0292-Fix-handling-of-split-transfers.patch @@ -1,7 +1,7 @@ -From a79437c27655683e0d1bff3224c63839ae00455c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ale=C5=A1=20Nesrsta?= +From 16e60d9443ebe87df0cecac9a22df6e0440b805d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ale=C5=A1=20Nesrsta?= Date: Fri, 12 Apr 2013 20:42:46 +0200 -Subject: [PATCH 291/364] Fix handling of split transfers. +Subject: [PATCH 292/471] Fix handling of split transfers. --- ChangeLog | 4 ++++ @@ -199,5 +199,5 @@ index 9e2c221..1cc9942 100644 -- -1.8.1.4 +1.8.2.1 diff --git a/0292-grub-core-bus-usb-ehci.c-grub_ehci_fini_hw-Ignore-er.patch b/0293-grub-core-bus-usb-ehci.c-grub_ehci_fini_hw-Ignore-er.patch similarity index 91% rename from 0292-grub-core-bus-usb-ehci.c-grub_ehci_fini_hw-Ignore-er.patch rename to 0293-grub-core-bus-usb-ehci.c-grub_ehci_fini_hw-Ignore-er.patch index f295982..c911817 100644 --- a/0292-grub-core-bus-usb-ehci.c-grub_ehci_fini_hw-Ignore-er.patch +++ b/0293-grub-core-bus-usb-ehci.c-grub_ehci_fini_hw-Ignore-er.patch @@ -1,7 +1,7 @@ -From 7fa632d01cbce0bbbcceeb9823593a61f1e86820 Mon Sep 17 00:00:00 2001 +From 37444041eb9063e3c4cdccefdb3f3574f0ced4ec Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 20:51:11 +0200 -Subject: [PATCH 292/364] * grub-core/bus/usb/ehci.c +Subject: [PATCH 293/471] * grub-core/bus/usb/ehci.c (grub_ehci_fini_hw): Ignore errors, not much we can do about it anyway. @@ -43,5 +43,5 @@ index 18b12b2..d18a87f 100644 return GRUB_USB_ERR_NONE; -- -1.8.1.4 +1.8.2.1 diff --git a/0293-util-grub-mkimage.c-Document-memdisk-implying-prefix.patch b/0294-util-grub-mkimage.c-Document-memdisk-implying-prefix.patch similarity index 91% rename from 0293-util-grub-mkimage.c-Document-memdisk-implying-prefix.patch rename to 0294-util-grub-mkimage.c-Document-memdisk-implying-prefix.patch index bee1064..13fd433 100644 --- a/0293-util-grub-mkimage.c-Document-memdisk-implying-prefix.patch +++ b/0294-util-grub-mkimage.c-Document-memdisk-implying-prefix.patch @@ -1,7 +1,7 @@ -From e187799c01b0eea975059eaa28356d0909e43a19 Mon Sep 17 00:00:00 2001 +From 46b79bbd8c9d96174ef793a52aae90cdd58c6f07 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 21:08:53 +0200 -Subject: [PATCH 293/364] * util/grub-mkimage.c: Document memdisk +Subject: [PATCH 294/471] * util/grub-mkimage.c: Document memdisk implying --prefix. --- @@ -39,5 +39,5 @@ index dce2c29..80e7d81 100644 {"config", 'c', N_("FILE"), 0, N_("embed FILE as an early config"), 0}, /* TRANSLATORS: "embed" is a verb (command description). "*/ -- -1.8.1.4 +1.8.2.1 diff --git a/0294-Handle-Japanese-special-keys.patch b/0295-Handle-Japanese-special-keys.patch similarity index 97% rename from 0294-Handle-Japanese-special-keys.patch rename to 0295-Handle-Japanese-special-keys.patch index 3466315..cf7c132 100644 --- a/0294-Handle-Japanese-special-keys.patch +++ b/0295-Handle-Japanese-special-keys.patch @@ -1,7 +1,7 @@ -From f32d4a82999ed508b131f882b7f058fd5467219d Mon Sep 17 00:00:00 2001 +From d7fb10cb74e2b9b34af099381a07d2ce0d7ff913 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 22:26:38 +0200 -Subject: [PATCH 294/364] Handle Japanese special keys. Reported by: +Subject: [PATCH 295/471] Handle Japanese special keys. Reported by: Hiroyuki YAMAMORI. Codes supplied by: Hiroyuki YAMAMORI. --- @@ -147,5 +147,5 @@ index bff4dd6..e53d710 100644 static void -- -1.8.1.4 +1.8.2.1 diff --git a/0295-Replace-stpcpy-with-grub_stpcpy-in-tools.patch b/0296-Replace-stpcpy-with-grub_stpcpy-in-tools.patch similarity index 95% rename from 0295-Replace-stpcpy-with-grub_stpcpy-in-tools.patch rename to 0296-Replace-stpcpy-with-grub_stpcpy-in-tools.patch index 9b715f3..596263b 100644 --- a/0295-Replace-stpcpy-with-grub_stpcpy-in-tools.patch +++ b/0296-Replace-stpcpy-with-grub_stpcpy-in-tools.patch @@ -1,7 +1,7 @@ -From 319cf38364d89bba622424313e0da676c83b9a07 Mon Sep 17 00:00:00 2001 +From 43105af56c8e4304f0cd8ffeafdba81726cfbb3f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 12 Apr 2013 22:37:59 +0200 -Subject: [PATCH 295/364] Replace stpcpy with grub_stpcpy in tools. +Subject: [PATCH 296/471] Replace stpcpy with grub_stpcpy in tools. --- ChangeLog | 4 ++++ @@ -85,5 +85,5 @@ index b66cbea..a46f0b1 100644 print_full_name (tmp, dev); free (tmp); -- -1.8.1.4 +1.8.2.1 diff --git a/0296-Better-support-Apple-Intel-Macs-on-CD.patch b/0297-Better-support-Apple-Intel-Macs-on-CD.patch similarity index 98% rename from 0296-Better-support-Apple-Intel-Macs-on-CD.patch rename to 0297-Better-support-Apple-Intel-Macs-on-CD.patch index a3a27ee..54a6acc 100644 --- a/0296-Better-support-Apple-Intel-Macs-on-CD.patch +++ b/0297-Better-support-Apple-Intel-Macs-on-CD.patch @@ -1,7 +1,7 @@ -From 4c5f9d222491cdfcc015b52a77706a64f305c024 Mon Sep 17 00:00:00 2001 +From 05a8ecea2fd968857f1ec3e8c6111dcc6b9846bb Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 13 Apr 2013 00:38:04 +0200 -Subject: [PATCH 296/364] Better support Apple Intel Macs on CD. +Subject: [PATCH 297/471] Better support Apple Intel Macs on CD. --- ChangeLog | 4 + @@ -381,5 +381,5 @@ index 510d95f..6a38f84 100644 mcopy -s -i "${iso9660_dir}"/efi.img ${efi_dir}/efi ::/ rm -rf ${efi_dir} -- -1.8.1.4 +1.8.2.1 diff --git a/0297-util-grub-mkrescue.in-Fix-wrong-architecture-for-ppc.patch b/0298-util-grub-mkrescue.in-Fix-wrong-architecture-for-ppc.patch similarity index 89% rename from 0297-util-grub-mkrescue.in-Fix-wrong-architecture-for-ppc.patch rename to 0298-util-grub-mkrescue.in-Fix-wrong-architecture-for-ppc.patch index 8ab73de..b88e176 100644 --- a/0297-util-grub-mkrescue.in-Fix-wrong-architecture-for-ppc.patch +++ b/0298-util-grub-mkrescue.in-Fix-wrong-architecture-for-ppc.patch @@ -1,7 +1,7 @@ -From 680fda34242aa0a152bb92d20af9c4bca01a0a12 Mon Sep 17 00:00:00 2001 +From 86c4fc4886bd81f14451cc823787232a546eea2a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 13 Apr 2013 02:02:19 +0200 -Subject: [PATCH 297/364] * util/grub-mkrescue.in: Fix wrong +Subject: [PATCH 298/471] * util/grub-mkrescue.in: Fix wrong architecture for ppc dir. --- @@ -37,5 +37,5 @@ index 6a38f84..a244b2a 100644 else . "${override_dir}"/modinfo.sh -- -1.8.1.4 +1.8.2.1 diff --git a/0298-docs-man-grub-glue-efi.h2m-Add-missing-file.patch b/0299-docs-man-grub-glue-efi.h2m-Add-missing-file.patch similarity index 88% rename from 0298-docs-man-grub-glue-efi.h2m-Add-missing-file.patch rename to 0299-docs-man-grub-glue-efi.h2m-Add-missing-file.patch index a322b1f..ea819f1 100644 --- a/0298-docs-man-grub-glue-efi.h2m-Add-missing-file.patch +++ b/0299-docs-man-grub-glue-efi.h2m-Add-missing-file.patch @@ -1,7 +1,7 @@ -From 8712bca2fcc73ebff8cfe4306af8a2d2db639a81 Mon Sep 17 00:00:00 2001 +From 255ae4e8d60ad22ec0f88b33d29331b08b9b3140 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 13 Apr 2013 02:26:34 +0200 -Subject: [PATCH 298/364] * docs/man/grub-glue-efi.h2m: Add missing +Subject: [PATCH 299/471] * docs/man/grub-glue-efi.h2m: Add missing file. --- @@ -35,5 +35,5 @@ index 0000000..c1c6ded +[DESCRIPTION] +grub-glue-efi processes ia32 and amd64 EFI images and glues them according to Apple format. -- -1.8.1.4 +1.8.2.1 diff --git a/0299-Fix-memory-leaks-in-ofnet.patch b/0300-Fix-memory-leaks-in-ofnet.patch similarity index 91% rename from 0299-Fix-memory-leaks-in-ofnet.patch rename to 0300-Fix-memory-leaks-in-ofnet.patch index 56210a9..9de99a8 100644 --- a/0299-Fix-memory-leaks-in-ofnet.patch +++ b/0300-Fix-memory-leaks-in-ofnet.patch @@ -1,7 +1,7 @@ -From 4c929bc63d926b9726b8e9a494c520432c051bc0 Mon Sep 17 00:00:00 2001 +From 9435e9e0e5371624d0c3044e8ce7383b069717c3 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 13 Apr 2013 20:12:11 +0200 -Subject: [PATCH 299/364] Fix memory leaks in ofnet. Reported by: +Subject: [PATCH 300/471] Fix memory leaks in ofnet. Reported by: Francesco Lavra. --- @@ -49,5 +49,5 @@ index cd9b159..21b6214 100644 return 0; } -- -1.8.1.4 +1.8.2.1 diff --git a/0300-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch b/0301-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch similarity index 94% rename from 0300-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch rename to 0301-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch index 96fb2fc..322a22b 100644 --- a/0300-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch +++ b/0301-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch @@ -1,7 +1,7 @@ -From e93b2affc943ee31304c9652798e88469f25ad53 Mon Sep 17 00:00:00 2001 +From 1e02bf7761a443ce164dfad531c62d069fe4a14d Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 16:52:49 +0200 -Subject: [PATCH 300/364] * grub-core/kern/ieee1275/cmain.c +Subject: [PATCH 301/471] * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Inline name defines used only once. --- @@ -69,5 +69,5 @@ index 789669a..5f6a6da 100644 grub_ieee1275_init (void) { -- -1.8.1.4 +1.8.2.1 diff --git a/0301-grub-core-disk-ieee1275-ofdisk.c-Iterate-over-bootpa.patch b/0302-grub-core-disk-ieee1275-ofdisk.c-Iterate-over-bootpa.patch similarity index 95% rename from 0301-grub-core-disk-ieee1275-ofdisk.c-Iterate-over-bootpa.patch rename to 0302-grub-core-disk-ieee1275-ofdisk.c-Iterate-over-bootpa.patch index 228088d..aa8e678 100644 --- a/0301-grub-core-disk-ieee1275-ofdisk.c-Iterate-over-bootpa.patch +++ b/0302-grub-core-disk-ieee1275-ofdisk.c-Iterate-over-bootpa.patch @@ -1,7 +1,7 @@ -From 595ef9fc233b0cf6b4c07c02acce3f61c9a7b947 Mon Sep 17 00:00:00 2001 +From c6e8465f8455e0f9a327226f32c9ad3e26484b9e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 16:55:20 +0200 -Subject: [PATCH 301/364] * grub-core/disk/ieee1275/ofdisk.c: Iterate +Subject: [PATCH 302/471] * grub-core/disk/ieee1275/ofdisk.c: Iterate over bootpath even if it would be otherwise excluded. --- @@ -114,5 +114,5 @@ index 1d4de90..bebf777 100644 } -- -1.8.1.4 +1.8.2.1 diff --git a/0302-Allow-IEEE1275-ports-on-path-even-if-it-wasn-t-detec.patch b/0303-Allow-IEEE1275-ports-on-path-even-if-it-wasn-t-detec.patch similarity index 97% rename from 0302-Allow-IEEE1275-ports-on-path-even-if-it-wasn-t-detec.patch rename to 0303-Allow-IEEE1275-ports-on-path-even-if-it-wasn-t-detec.patch index cf95120..b7f4835 100644 --- a/0302-Allow-IEEE1275-ports-on-path-even-if-it-wasn-t-detec.patch +++ b/0303-Allow-IEEE1275-ports-on-path-even-if-it-wasn-t-detec.patch @@ -1,7 +1,7 @@ -From 8a592c562319ba4c802fa97605ef18bb8bddd112 Mon Sep 17 00:00:00 2001 +From 260a00f345f2d355b151d6a7c1f2018cfad8c0fc Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 17:01:31 +0200 -Subject: [PATCH 302/364] Allow IEEE1275 ports on path even if it wasn't +Subject: [PATCH 303/471] Allow IEEE1275 ports on path even if it wasn't detected automatically. Needed on OpenBIOS due to incomplete device tree. @@ -182,5 +182,5 @@ index e054f54..bdd98fe 100644 + #endif /* ! GRUB_CONSOLE_MACHINE_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0303-Support-mkrescue-on-sparc64.patch b/0304-Support-mkrescue-on-sparc64.patch similarity index 99% rename from 0303-Support-mkrescue-on-sparc64.patch rename to 0304-Support-mkrescue-on-sparc64.patch index cb53124..41d11a3 100644 --- a/0303-Support-mkrescue-on-sparc64.patch +++ b/0304-Support-mkrescue-on-sparc64.patch @@ -1,7 +1,7 @@ -From 8a02952132bdc58a643b468f28e38594d9caecfa Mon Sep 17 00:00:00 2001 +From 3a7d6132a65d34ee8fe1fc6cf83f0f545a03eebd Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 17:10:55 +0200 -Subject: [PATCH 303/364] Support mkrescue on sparc64. +Subject: [PATCH 304/471] Support mkrescue on sparc64. --- ChangeLog | 4 ++ @@ -399,5 +399,5 @@ index a244b2a..c74c8ca 100644 exit 0 -- -1.8.1.4 +1.8.2.1 diff --git a/0304-Support-grub-shell-on-sparc64.patch b/0305-Support-grub-shell-on-sparc64.patch similarity index 89% rename from 0304-Support-grub-shell-on-sparc64.patch rename to 0305-Support-grub-shell-on-sparc64.patch index 8474808..a9a8622 100644 --- a/0304-Support-grub-shell-on-sparc64.patch +++ b/0305-Support-grub-shell-on-sparc64.patch @@ -1,7 +1,7 @@ -From 33f6759ef6669f4229e21296922bfad0bf9238c5 Mon Sep 17 00:00:00 2001 +From b0d0c377ac0a4d9700dfc5f942667d4d1fde5ac3 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 17:13:58 +0200 -Subject: [PATCH 304/364] Support grub-shell on sparc64. +Subject: [PATCH 305/471] Support grub-shell on sparc64. --- ChangeLog | 4 ++++ @@ -44,5 +44,5 @@ index e467b4a..739c300 100644 boot=mips_qemu qemu=qemu-system-mips -- -1.8.1.4 +1.8.2.1 diff --git a/0305-tests-partmap_test.in-Skip-on-sparc64.patch b/0306-tests-partmap_test.in-Skip-on-sparc64.patch similarity index 89% rename from 0305-tests-partmap_test.in-Skip-on-sparc64.patch rename to 0306-tests-partmap_test.in-Skip-on-sparc64.patch index 291695a..d3479db 100644 --- a/0305-tests-partmap_test.in-Skip-on-sparc64.patch +++ b/0306-tests-partmap_test.in-Skip-on-sparc64.patch @@ -1,7 +1,7 @@ -From 3a36b768d2472c81b0f2b34f6e7fb41230b8a00a Mon Sep 17 00:00:00 2001 +From da31edd1d535ac2bc14ddd46baab9cc59e225fb9 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 17:16:32 +0200 -Subject: [PATCH 305/364] * tests/partmap_test.in: Skip on sparc64. +Subject: [PATCH 306/471] * tests/partmap_test.in: Skip on sparc64. --- ChangeLog | 4 ++++ @@ -40,5 +40,5 @@ index f667f86..bc503f5 100644 disk=ieee1275/d qemudisk=hdb -- -1.8.1.4 +1.8.2.1 diff --git a/0306-tests-grub_cmd_date.in-Add-missing-exit-1.patch b/0307-tests-grub_cmd_date.in-Add-missing-exit-1.patch similarity index 86% rename from 0306-tests-grub_cmd_date.in-Add-missing-exit-1.patch rename to 0307-tests-grub_cmd_date.in-Add-missing-exit-1.patch index 238e03e..b2b2055 100644 --- a/0306-tests-grub_cmd_date.in-Add-missing-exit-1.patch +++ b/0307-tests-grub_cmd_date.in-Add-missing-exit-1.patch @@ -1,7 +1,7 @@ -From 201834f4f66fa98a6de81d9440b0493a40d7f411 Mon Sep 17 00:00:00 2001 +From 41621bfe8ae1dc7845a7a9cc6e0b484ea2288f1c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 17:19:04 +0200 -Subject: [PATCH 306/364] * tests/grub_cmd_date.in: Add missing exit 1. +Subject: [PATCH 307/471] * tests/grub_cmd_date.in: Add missing exit 1. --- ChangeLog | 4 ++++ @@ -32,5 +32,5 @@ index 1c8e7e6..254fb91 100644 echo "Date not in range: $pdt <= $dtg <= $ndt" +exit 1 -- -1.8.1.4 +1.8.2.1 diff --git a/0307-Move-GRUB-out-of-system-area-when-using-xorriso-1.2..patch b/0308-Move-GRUB-out-of-system-area-when-using-xorriso-1.2..patch similarity index 98% rename from 0307-Move-GRUB-out-of-system-area-when-using-xorriso-1.2..patch rename to 0308-Move-GRUB-out-of-system-area-when-using-xorriso-1.2..patch index d3f31d1..bf2696c 100644 --- a/0307-Move-GRUB-out-of-system-area-when-using-xorriso-1.2..patch +++ b/0308-Move-GRUB-out-of-system-area-when-using-xorriso-1.2..patch @@ -1,7 +1,7 @@ -From 46aa8934bbcbc427f7424e77bead7c0c8356a138 Mon Sep 17 00:00:00 2001 +From 1a14b474415a15b4c75400eda67c9ef00895f0d1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 18:53:14 +0200 -Subject: [PATCH 307/364] Move GRUB out of system area when using +Subject: [PATCH 308/471] Move GRUB out of system area when using xorriso 1.2.9 or later. --- @@ -369,5 +369,5 @@ index c74c8ca..b97d674 100644 exit 0 -- -1.8.1.4 +1.8.2.1 diff --git a/0308-grub-core-loader-i386-linux.c-Remove-useless-leftove.patch b/0309-grub-core-loader-i386-linux.c-Remove-useless-leftove.patch similarity index 97% rename from 0308-grub-core-loader-i386-linux.c-Remove-useless-leftove.patch rename to 0309-grub-core-loader-i386-linux.c-Remove-useless-leftove.patch index 04929a8..30daca2 100644 --- a/0308-grub-core-loader-i386-linux.c-Remove-useless-leftove.patch +++ b/0309-grub-core-loader-i386-linux.c-Remove-useless-leftove.patch @@ -1,7 +1,7 @@ -From a68d80bd8b4ab9d3ca311ae33ef5e99c4f0017f0 Mon Sep 17 00:00:00 2001 +From 49d00849ee5577b151e079524152f9219358588a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 19:01:23 +0200 -Subject: [PATCH 308/364] * grub-core/loader/i386/linux.c: Remove +Subject: [PATCH 309/471] * grub-core/loader/i386/linux.c: Remove useless leftover pointer. --- @@ -151,5 +151,5 @@ index bdfe19a..5cd074b 100644 /* Create kernel command line. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0309-docs-grub-dev.texi-Rearrange-menu-to-match-the-secti.patch b/0310-docs-grub-dev.texi-Rearrange-menu-to-match-the-secti.patch similarity index 90% rename from 0309-docs-grub-dev.texi-Rearrange-menu-to-match-the-secti.patch rename to 0310-docs-grub-dev.texi-Rearrange-menu-to-match-the-secti.patch index faa2e72..41d2d04 100644 --- a/0309-docs-grub-dev.texi-Rearrange-menu-to-match-the-secti.patch +++ b/0310-docs-grub-dev.texi-Rearrange-menu-to-match-the-secti.patch @@ -1,7 +1,7 @@ -From 7cdb4be61cce1354a4220741e2de5dac2dcd6f34 Mon Sep 17 00:00:00 2001 +From 3da36a727da7a92c0c1d85213be234abcf8774af Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 19:07:55 +0200 -Subject: [PATCH 309/364] * docs/grub-dev.texi: Rearrange menu to match +Subject: [PATCH 310/471] * docs/grub-dev.texi: Rearrange menu to match the section order. Reported by: Bryan Hundven. --- @@ -49,5 +49,5 @@ index f74c966..53f7010 100644 @node Video API -- -1.8.1.4 +1.8.2.1 diff --git a/0310-Add-option-to-compress-files-on-install-image-creati.patch b/0311-Add-option-to-compress-files-on-install-image-creati.patch similarity index 99% rename from 0310-Add-option-to-compress-files-on-install-image-creati.patch rename to 0311-Add-option-to-compress-files-on-install-image-creati.patch index 2e1e120..a65a273 100644 --- a/0310-Add-option-to-compress-files-on-install-image-creati.patch +++ b/0311-Add-option-to-compress-files-on-install-image-creati.patch @@ -1,7 +1,7 @@ -From 9bdcd657c5b748ff8c0b4057be80add39d2addae Mon Sep 17 00:00:00 2001 +From a0404f547d5b693dd86a2773f1fd64ca207ad2bf Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 19:24:05 +0200 -Subject: [PATCH 310/364] Add option to compress files on install/image +Subject: [PATCH 311/471] Add option to compress files on install/image creation. --- @@ -281,5 +281,5 @@ index a5434c4..927075b 100644 exit 0 -- -1.8.1.4 +1.8.2.1 diff --git a/0311-grub-core-lib-posix_wrap-sys-types.h-Make-WORDS_BIGE.patch b/0312-grub-core-lib-posix_wrap-sys-types.h-Make-WORDS_BIGE.patch similarity index 90% rename from 0311-grub-core-lib-posix_wrap-sys-types.h-Make-WORDS_BIGE.patch rename to 0312-grub-core-lib-posix_wrap-sys-types.h-Make-WORDS_BIGE.patch index 02960b7..4eab216 100644 --- a/0311-grub-core-lib-posix_wrap-sys-types.h-Make-WORDS_BIGE.patch +++ b/0312-grub-core-lib-posix_wrap-sys-types.h-Make-WORDS_BIGE.patch @@ -1,7 +1,7 @@ -From c7cfeef7d608f88328e7ab8dc004a2333d93da40 Mon Sep 17 00:00:00 2001 +From 740c6a92176346d85fa1e32ea9b7f1fc4bb914a8 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 19:57:15 +0200 -Subject: [PATCH 311/364] * grub-core/lib/posix_wrap/sys/types.h: Make +Subject: [PATCH 312/471] * grub-core/lib/posix_wrap/sys/types.h: Make WORDS_BIGENDIAN definition match config-util.h to avoid warnings and increase compatibility. @@ -39,5 +39,5 @@ index c88a96e..6485a9a 100644 #undef WORDS_BIGENDIAN #endif -- -1.8.1.4 +1.8.2.1 diff --git a/0312-grub-core-disk-ieee1275-ofdisk.c-Fix-CD-ROM-and-boot.patch b/0313-grub-core-disk-ieee1275-ofdisk.c-Fix-CD-ROM-and-boot.patch similarity index 94% rename from 0312-grub-core-disk-ieee1275-ofdisk.c-Fix-CD-ROM-and-boot.patch rename to 0313-grub-core-disk-ieee1275-ofdisk.c-Fix-CD-ROM-and-boot.patch index e6ca406..735397d 100644 --- a/0312-grub-core-disk-ieee1275-ofdisk.c-Fix-CD-ROM-and-boot.patch +++ b/0313-grub-core-disk-ieee1275-ofdisk.c-Fix-CD-ROM-and-boot.patch @@ -1,7 +1,7 @@ -From f0efb6d6b3660d99f2dbb55b1b12525ef4255368 Mon Sep 17 00:00:00 2001 +From 0e882e0c48a93f7e187fd403ffb32d3ad861ee77 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 15 Apr 2013 00:38:39 +0200 -Subject: [PATCH 312/364] * grub-core/disk/ieee1275/ofdisk.c: Fix CD-ROM +Subject: [PATCH 313/471] * grub-core/disk/ieee1275/ofdisk.c: Fix CD-ROM and boot device detection. --- @@ -83,5 +83,5 @@ index bebf777..ec92c4d 100644 { -- -1.8.1.4 +1.8.2.1 diff --git a/0313-grub-core-kern-ieee1275-openfw.c-grub_ieee1275_deval.patch b/0314-grub-core-kern-ieee1275-openfw.c-grub_ieee1275_deval.patch similarity index 92% rename from 0313-grub-core-kern-ieee1275-openfw.c-grub_ieee1275_deval.patch rename to 0314-grub-core-kern-ieee1275-openfw.c-grub_ieee1275_deval.patch index d4e0596..0ee4987 100644 --- a/0313-grub-core-kern-ieee1275-openfw.c-grub_ieee1275_deval.patch +++ b/0314-grub-core-kern-ieee1275-openfw.c-grub_ieee1275_deval.patch @@ -1,7 +1,7 @@ -From d3b49c377da018a3a0064e2f53d8f35d2e678041 Mon Sep 17 00:00:00 2001 +From 49c649e13d580a76c2b26987a204ef4a859a1f0f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 15 Apr 2013 00:40:19 +0200 -Subject: [PATCH 313/364] * grub-core/kern/ieee1275/openfw.c +Subject: [PATCH 314/471] * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_devalias_next): Make source and destination differ. --- @@ -53,5 +53,5 @@ index 90c092c..07c90f7 100644 grub_dprintf ("devalias", "devalias name = %s\n", alias->name); -- -1.8.1.4 +1.8.2.1 diff --git a/0314-tests-grub_script_expansion.in-Use-fixed-string-grep.patch b/0315-tests-grub_script_expansion.in-Use-fixed-string-grep.patch similarity index 92% rename from 0314-tests-grub_script_expansion.in-Use-fixed-string-grep.patch rename to 0315-tests-grub_script_expansion.in-Use-fixed-string-grep.patch index 95d4af0..cf7681a 100644 --- a/0314-tests-grub_script_expansion.in-Use-fixed-string-grep.patch +++ b/0315-tests-grub_script_expansion.in-Use-fixed-string-grep.patch @@ -1,7 +1,7 @@ -From 966a29c8d4d95184f51f62698efadba5df80309b Mon Sep 17 00:00:00 2001 +From 6964813fb87e25a58dc629bb7f9256cf149db1da Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 15 Apr 2013 01:53:33 +0200 -Subject: [PATCH 314/364] * tests/grub_script_expansion.in: Use +Subject: [PATCH 315/471] * tests/grub_script_expansion.in: Use fixed-string grep to skip over firmware error messages. --- @@ -53,5 +53,5 @@ index 03dc510..e46401c 100644 exit 1 fi -- -1.8.1.4 +1.8.2.1 diff --git a/0315-tests-grub_cmd_date.in-Skip-on-sparc64.patch b/0316-tests-grub_cmd_date.in-Skip-on-sparc64.patch similarity index 88% rename from 0315-tests-grub_cmd_date.in-Skip-on-sparc64.patch rename to 0316-tests-grub_cmd_date.in-Skip-on-sparc64.patch index 17d1c2e..f37905d 100644 --- a/0315-tests-grub_cmd_date.in-Skip-on-sparc64.patch +++ b/0316-tests-grub_cmd_date.in-Skip-on-sparc64.patch @@ -1,7 +1,7 @@ -From b9e3a21d4c4ce7d70fe6a22283fc9a1dc1d31ce5 Mon Sep 17 00:00:00 2001 +From 076c472649f81a5a57ee52dc2ac775fef6c97a39 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 15 Apr 2013 01:54:23 +0200 -Subject: [PATCH 315/364] * tests/grub_cmd_date.in: Skip on sparc64. +Subject: [PATCH 316/471] * tests/grub_cmd_date.in: Skip on sparc64. --- ChangeLog | 4 ++++ @@ -41,5 +41,5 @@ index 254fb91..76436a0 100644 dt=`echo date | @builddir@/grub-shell` dtg="$(date -u -d "$dt" +%s)" -- -1.8.1.4 +1.8.2.1 diff --git a/0316-Fix-DMRAID-partition-handling.patch b/0317-Fix-DMRAID-partition-handling.patch similarity index 90% rename from 0316-Fix-DMRAID-partition-handling.patch rename to 0317-Fix-DMRAID-partition-handling.patch index 5c5f743..46c661b 100644 --- a/0316-Fix-DMRAID-partition-handling.patch +++ b/0317-Fix-DMRAID-partition-handling.patch @@ -1,7 +1,7 @@ -From 5c5e65464abe032b3838359d35fdbd0c15fe6454 Mon Sep 17 00:00:00 2001 +From 0b3feb00d9d845ab95f2640c0f0336fd5a663d8d Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Mon, 15 Apr 2013 08:37:13 +0200 -Subject: [PATCH 316/364] Fix DMRAID partition handling. +Subject: [PATCH 317/471] Fix DMRAID partition handling. --- ChangeLog | 4 ++++ @@ -45,5 +45,5 @@ index 4ea8e65..ecf7ce1 100644 devmapper_out: if (! mapper_name && node) -- -1.8.1.4 +1.8.2.1 diff --git a/0317-grub-core-disk-efi-efidisk.c-Limit-disk-read-or-writ.patch b/0318-grub-core-disk-efi-efidisk.c-Limit-disk-read-or-writ.patch similarity index 96% rename from 0317-grub-core-disk-efi-efidisk.c-Limit-disk-read-or-writ.patch rename to 0318-grub-core-disk-efi-efidisk.c-Limit-disk-read-or-writ.patch index 7307987..3540cc3 100644 --- a/0317-grub-core-disk-efi-efidisk.c-Limit-disk-read-or-writ.patch +++ b/0318-grub-core-disk-efi-efidisk.c-Limit-disk-read-or-writ.patch @@ -1,7 +1,7 @@ -From fe97d5b99bcfde6f46f57381df0d099de51d1709 Mon Sep 17 00:00:00 2001 +From f63be03880f3667f2fb75acaa02f633e265e01e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 15 Apr 2013 09:12:14 +0200 -Subject: [PATCH 317/364] * grub-core/disk/efi/efidisk.c: Limit disk +Subject: [PATCH 318/471] * grub-core/disk/efi/efidisk.c: Limit disk read or write chunk to 0x500 sectors. Based on patch by Peter Jones. --- @@ -111,5 +111,5 @@ index 28b9fa1..5a6fc63 100644 return grub_error (GRUB_ERR_WRITE_ERROR, N_("failure writing sector 0x%llx to `%s'"), -- -1.8.1.4 +1.8.2.1 diff --git a/0318-autogen.sh-Use-f-in-addition-for-h-when-checking-fil.patch b/0319-autogen.sh-Use-f-in-addition-for-h-when-checking-fil.patch similarity index 86% rename from 0318-autogen.sh-Use-f-in-addition-for-h-when-checking-fil.patch rename to 0319-autogen.sh-Use-f-in-addition-for-h-when-checking-fil.patch index e4167a8..12d7a8c 100644 --- a/0318-autogen.sh-Use-f-in-addition-for-h-when-checking-fil.patch +++ b/0319-autogen.sh-Use-f-in-addition-for-h-when-checking-fil.patch @@ -1,7 +1,7 @@ -From 25e2e87a9e3a65c9ccad0155f3969fb94325a32e Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From 9230f57ece9a9541a3db8246cde3aeab9cd10a04 Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Tue, 16 Apr 2013 16:18:12 +0200 -Subject: [PATCH 318/364] * autogen.sh: Use "-f" in addition for "-h" +Subject: [PATCH 319/471] * autogen.sh: Use "-f" in addition for "-h" when checking file presence. --- @@ -35,5 +35,5 @@ index d47650b..48d7a6e 100755 fi ln -s generic/"$x" grub-core/lib/libgcrypt-grub/mpi/"$x" -- -1.8.1.4 +1.8.2.1 diff --git a/0319-grub-core-disk-efi-efidisk.c-Really-limit-transfer-c.patch b/0320-grub-core-disk-efi-efidisk.c-Really-limit-transfer-c.patch similarity index 87% rename from 0319-grub-core-disk-efi-efidisk.c-Really-limit-transfer-c.patch rename to 0320-grub-core-disk-efi-efidisk.c-Really-limit-transfer-c.patch index 0f93d84..cc7a035 100644 --- a/0319-grub-core-disk-efi-efidisk.c-Really-limit-transfer-c.patch +++ b/0320-grub-core-disk-efi-efidisk.c-Really-limit-transfer-c.patch @@ -1,7 +1,7 @@ -From 8ddb11881a1bf16dce6efc8015d9e03df63eb403 Mon Sep 17 00:00:00 2001 -From: Andrey Borzenkov +From 9b6d4e170e3481e16f9db0311f548cb170217fe2 Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov Date: Tue, 16 Apr 2013 22:10:59 +0200 -Subject: [PATCH 319/364] * grub-core/disk/efi/efidisk.c: Really limit +Subject: [PATCH 320/471] * grub-core/disk/efi/efidisk.c: Really limit transfer chunk size. --- @@ -37,5 +37,5 @@ index 5a6fc63..0e08d3b 100644 size -= len; buf += len << disk->log_sector_size; -- -1.8.1.4 +1.8.2.1 diff --git a/0320-build-aux-snippet-Add-missing-gnulib-files.patch b/0321-build-aux-snippet-Add-missing-gnulib-files.patch similarity index 99% rename from 0320-build-aux-snippet-Add-missing-gnulib-files.patch rename to 0321-build-aux-snippet-Add-missing-gnulib-files.patch index 542dc35..7667436 100644 --- a/0320-build-aux-snippet-Add-missing-gnulib-files.patch +++ b/0321-build-aux-snippet-Add-missing-gnulib-files.patch @@ -1,7 +1,7 @@ -From d02bf953c4fb2eb34998274b304bf1a2ac755c89 Mon Sep 17 00:00:00 2001 +From 45a73dcb6d7a100a14d9d9d54f3ab60278a05ca1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 17 Apr 2013 07:00:37 +0200 -Subject: [PATCH 320/364] * build-aux/snippet: Add missing gnulib files. +Subject: [PATCH 321/471] * build-aux/snippet: Add missing gnulib files. --- ChangeLog | 4 + @@ -468,5 +468,5 @@ index 0000000..1736a1b +# endif +#endif -- -1.8.1.4 +1.8.2.1 diff --git a/0321-grub-core-disk-efi-efidisk.c-Detect-floppies-by-ACPI.patch b/0322-grub-core-disk-efi-efidisk.c-Detect-floppies-by-ACPI.patch similarity index 93% rename from 0321-grub-core-disk-efi-efidisk.c-Detect-floppies-by-ACPI.patch rename to 0322-grub-core-disk-efi-efidisk.c-Detect-floppies-by-ACPI.patch index 9580978..2271042 100644 --- a/0321-grub-core-disk-efi-efidisk.c-Detect-floppies-by-ACPI.patch +++ b/0322-grub-core-disk-efi-efidisk.c-Detect-floppies-by-ACPI.patch @@ -1,7 +1,7 @@ -From 8730a9587670ebd5f7cb14d6bd5e4c7d4003a71d Mon Sep 17 00:00:00 2001 +From aed55cdaacdb3f254f6b568803ab86c5d103e9e4 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 17 Apr 2013 19:05:57 +0200 -Subject: [PATCH 321/364] * grub-core/disk/efi/efidisk.c: Detect +Subject: [PATCH 322/471] * grub-core/disk/efi/efidisk.c: Detect floppies by ACPI ID. It improves performance in qemu. --- @@ -62,5 +62,5 @@ index 0e08d3b..e168d07 100644 #endif add_device (&fd_devices, d); -- -1.8.1.4 +1.8.2.1 diff --git a/0322-util-grub-mkrescue.in-Add-GPT-for-EFI-boot.patch b/0323-util-grub-mkrescue.in-Add-GPT-for-EFI-boot.patch similarity index 93% rename from 0322-util-grub-mkrescue.in-Add-GPT-for-EFI-boot.patch rename to 0323-util-grub-mkrescue.in-Add-GPT-for-EFI-boot.patch index dd2f132..f176568 100644 --- a/0322-util-grub-mkrescue.in-Add-GPT-for-EFI-boot.patch +++ b/0323-util-grub-mkrescue.in-Add-GPT-for-EFI-boot.patch @@ -1,7 +1,7 @@ -From 5217d3b6a8fd78604b0c64a75e2f52308aade398 Mon Sep 17 00:00:00 2001 +From 7b53ff6a484ee7409cf951ccedbb44962b4d69d2 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 17 Apr 2013 19:08:31 +0200 -Subject: [PATCH 322/364] * util/grub-mkrescue.in: Add GPT for EFI boot. +Subject: [PATCH 323/471] * util/grub-mkrescue.in: Add GPT for EFI boot. --- ChangeLog | 4 ++++ @@ -45,5 +45,5 @@ index 7270d7f..c3ed39b 100644 fi -- -1.8.1.4 +1.8.2.1 diff --git a/0323-Add-support-for-pseries-and-other-bootinfo-machines-.patch b/0324-Add-support-for-pseries-and-other-bootinfo-machines-.patch similarity index 99% rename from 0323-Add-support-for-pseries-and-other-bootinfo-machines-.patch rename to 0324-Add-support-for-pseries-and-other-bootinfo-machines-.patch index dfa04b2..1fbd5db 100644 --- a/0323-Add-support-for-pseries-and-other-bootinfo-machines-.patch +++ b/0324-Add-support-for-pseries-and-other-bootinfo-machines-.patch @@ -1,7 +1,7 @@ -From 1f474bdffde1f8693707ee85f9709381d7463439 Mon Sep 17 00:00:00 2001 +From c3bc7c1995df1313f47ef8e7cc9852ac13e958d0 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 19 Apr 2013 00:36:23 +0200 -Subject: [PATCH 323/364] Add support for pseries and other bootinfo +Subject: [PATCH 324/471] Add support for pseries and other bootinfo machines to grub-mkrescue. Tested by: Paulo Flabiano Smorigo. @@ -139,5 +139,5 @@ index c3ed39b..5a5d4e3 100644 # FIXME: add PreP if [ "$system_area" = common ]; then -- -1.8.1.4 +1.8.2.1 diff --git a/0324-util-grub.d-30_os-prober.in-Add-onstr-to-linux-entri.patch b/0325-util-grub.d-30_os-prober.in-Add-onstr-to-linux-entri.patch similarity index 92% rename from 0324-util-grub.d-30_os-prober.in-Add-onstr-to-linux-entri.patch rename to 0325-util-grub.d-30_os-prober.in-Add-onstr-to-linux-entri.patch index 319afe2..dd7e3fe 100644 --- a/0324-util-grub.d-30_os-prober.in-Add-onstr-to-linux-entri.patch +++ b/0325-util-grub.d-30_os-prober.in-Add-onstr-to-linux-entri.patch @@ -1,7 +1,7 @@ -From c41277eb3f80c1ed4cde9c0536abaa31becba0c5 Mon Sep 17 00:00:00 2001 +From b29ffe391d012b3a5b2b4d061f14eaea0f9da0ec Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Fri, 19 Apr 2013 12:08:46 +0400 -Subject: [PATCH 324/364] * util/grub.d/30_os-prober.in: Add onstr to linux +Subject: [PATCH 325/471] * util/grub.d/30_os-prober.in: Add onstr to linux entries in one more place. --- @@ -36,5 +36,5 @@ index 5500a3c..04f32a1 100644 title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;" grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")" -- -1.8.1.4 +1.8.2.1 diff --git a/0325-grub-core-kern-elfXX.c-grub_elfXX_load-Handle.patch b/0326-grub-core-kern-elfXX.c-grub_elfXX_load-Handle.patch similarity index 96% rename from 0325-grub-core-kern-elfXX.c-grub_elfXX_load-Handle.patch rename to 0326-grub-core-kern-elfXX.c-grub_elfXX_load-Handle.patch index 28887e8..497084e 100644 --- a/0325-grub-core-kern-elfXX.c-grub_elfXX_load-Handle.patch +++ b/0326-grub-core-kern-elfXX.c-grub_elfXX_load-Handle.patch @@ -1,7 +1,7 @@ -From 8968eeb2ff92930128a5d9820157de08876ab489 Mon Sep 17 00:00:00 2001 +From bbed773160168ebd75f57a893c7d563673abf36f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 19 Apr 2013 15:05:11 +0200 -Subject: [PATCH 325/364] * grub-core/kern/elfXX.c (grub_elfXX_load): +Subject: [PATCH 326/471] * grub-core/kern/elfXX.c (grub_elfXX_load): Handle GRUB_ELF_LOAD_FLAGS_30BITS and GRUB_ELF_LOAD_FLAGS_62BITS. * grub-core/loader/powerpc/ieee1275/linux.c (grub_linux_load32), (grub_linux_load64): Mask out 2 high bits. @@ -94,5 +94,5 @@ index f854d0b..9a7ae4e 100644 grub_err_t grub_elf32_load (grub_elf_t, const char *filename, void *load_offset, enum grub_elf_load_flags flags, grub_addr_t *, -- -1.8.1.4 +1.8.2.1 diff --git a/0326-grub-core-commands-videotest.c-grub_cmd_videotest-Fi.patch b/0327-grub-core-commands-videotest.c-grub_cmd_videotest-Fi.patch similarity index 95% rename from 0326-grub-core-commands-videotest.c-grub_cmd_videotest-Fi.patch rename to 0327-grub-core-commands-videotest.c-grub_cmd_videotest-Fi.patch index 21a7877..29712ea 100644 --- a/0326-grub-core-commands-videotest.c-grub_cmd_videotest-Fi.patch +++ b/0327-grub-core-commands-videotest.c-grub_cmd_videotest-Fi.patch @@ -1,7 +1,7 @@ -From 6ca7e5c09db09a01fad50538908e5d8da439d15b Mon Sep 17 00:00:00 2001 +From d7f31079c6511e1c3092338095633ae89c744ad0 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 19 Apr 2013 15:09:15 +0200 -Subject: [PATCH 326/364] * grub-core/commands/videotest.c +Subject: [PATCH 327/471] * grub-core/commands/videotest.c (grub_cmd_videotest): Fix error handling when creating text_layer failed. * grub-core/video/video.c (grub_video_create_render_target): Set result to 0 on error. (grub_video_delete_render_target): Do not @@ -72,5 +72,5 @@ index aab9b18..844f36c 100644 return grub_error (GRUB_ERR_BAD_DEVICE, "no video mode activated"); -- -1.8.1.4 +1.8.2.1 diff --git a/0327-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch b/0328-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch similarity index 91% rename from 0327-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch rename to 0328-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch index 0c5db97..60109a5 100644 --- a/0327-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch +++ b/0328-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch @@ -1,7 +1,7 @@ -From 75986a1d11394947d19381a7d8a7ff677caccbbe Mon Sep 17 00:00:00 2001 +From 16489277b4f51c97e8fe631dc4ea67e689e5c70b Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 19 Apr 2013 15:14:28 +0200 -Subject: [PATCH 327/364] * grub-core/kern/ieee1275/cmain.c +Subject: [PATCH 328/471] * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Look for /boot-rom as well as /rom/boot-rom. --- @@ -39,5 +39,5 @@ index 5f6a6da..abd1ca9 100644 rc = grub_ieee1275_get_property (bootrom, "model", tmp, sizeof (tmp), 0); if (rc >= 0 && !grub_strncmp (tmp, "PPC Open Hack'Ware", -- -1.8.1.4 +1.8.2.1 diff --git a/0328-grub-core-kern-ieee1275-init.c-grub_claim_heap-Impro.patch b/0329-grub-core-kern-ieee1275-init.c-grub_claim_heap-Impro.patch similarity index 97% rename from 0328-grub-core-kern-ieee1275-init.c-grub_claim_heap-Impro.patch rename to 0329-grub-core-kern-ieee1275-init.c-grub_claim_heap-Impro.patch index 3340bfe..1100958 100644 --- a/0328-grub-core-kern-ieee1275-init.c-grub_claim_heap-Impro.patch +++ b/0329-grub-core-kern-ieee1275-init.c-grub_claim_heap-Impro.patch @@ -1,7 +1,7 @@ -From 00c99f9ffcadba94105b7871744f2a3760b7dd35 Mon Sep 17 00:00:00 2001 +From 289cc5b04163f9443f5396e3a951f5e940a18925 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 19 Apr 2013 15:27:09 +0200 -Subject: [PATCH 328/364] * grub-core/kern/ieee1275/init.c +Subject: [PATCH 329/471] * grub-core/kern/ieee1275/init.c (grub_claim_heap): Improve handling of GRUB_IEEE1275_FLAG_FORCE_CLAIM. * grub-core/loader/powerpc/ieee1275/linux.c (grub_linux_claimmap_iterate): Handle GRUB_IEEE1275_FLAG_FORCE_CLAIM. @@ -114,5 +114,5 @@ index 1e8ba6f..1b240d3 100644 { /* Old World Macintosh firmware fails seek when "dev:0" is opened. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0329-grub-core-lib-efi-relocator.c-grub_relocator_firmwar.patch b/0330-grub-core-lib-efi-relocator.c-grub_relocator_firmwar.patch similarity index 94% rename from 0329-grub-core-lib-efi-relocator.c-grub_relocator_firmwar.patch rename to 0330-grub-core-lib-efi-relocator.c-grub_relocator_firmwar.patch index 1428e07..339ccf0 100644 --- a/0329-grub-core-lib-efi-relocator.c-grub_relocator_firmwar.patch +++ b/0330-grub-core-lib-efi-relocator.c-grub_relocator_firmwar.patch @@ -1,7 +1,7 @@ -From 341b25a836be3f65230eb4077a202c66e9160b29 Mon Sep 17 00:00:00 2001 +From 8e89166d92a09ac82788747a6b3da734d97dae3f Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 20 Apr 2013 13:39:04 +0200 -Subject: [PATCH 329/364] * grub-core/lib/efi/relocator.c +Subject: [PATCH 330/471] * grub-core/lib/efi/relocator.c (grub_relocator_firmware_alloc_region): Remove dprintf. * grub-core/lib/relocator.c (malloc_in_range): Likewise. @@ -59,5 +59,5 @@ index 350066d..e085514 100644 curschu->start = alloc_start; curschu->size = alloc_end - alloc_start; -- -1.8.1.4 +1.8.2.1 diff --git a/0330-grub-core-Makefile.core.def-legacycfg-Enable-on-EFI.patch b/0331-grub-core-Makefile.core.def-legacycfg-Enable-on-EFI.patch similarity index 89% rename from 0330-grub-core-Makefile.core.def-legacycfg-Enable-on-EFI.patch rename to 0331-grub-core-Makefile.core.def-legacycfg-Enable-on-EFI.patch index ea91df7..8dba5e2 100644 --- a/0330-grub-core-Makefile.core.def-legacycfg-Enable-on-EFI.patch +++ b/0331-grub-core-Makefile.core.def-legacycfg-Enable-on-EFI.patch @@ -1,7 +1,7 @@ -From 786c3d387a87687707eff778ea77a17b7a1b1ab7 Mon Sep 17 00:00:00 2001 +From b5e4f9e9f491d6f55c97455535c0635bbe88f132 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 20 Apr 2013 13:46:58 +0200 -Subject: [PATCH 330/364] * grub-core/Makefile.core.def (legacycfg): +Subject: [PATCH 331/471] * grub-core/Makefile.core.def (legacycfg): Enable on EFI. --- @@ -41,5 +41,5 @@ index 43c4cb6..1f04afb 100644 }; -- -1.8.1.4 +1.8.2.1 diff --git a/0331-grub-core-kern-mm.c-grub_mm_init_region-Fix-conditio.patch b/0332-grub-core-kern-mm.c-grub_mm_init_region-Fix-conditio.patch similarity index 91% rename from 0331-grub-core-kern-mm.c-grub_mm_init_region-Fix-conditio.patch rename to 0332-grub-core-kern-mm.c-grub_mm_init_region-Fix-conditio.patch index ad9e8a2..3cec1e8 100644 --- a/0331-grub-core-kern-mm.c-grub_mm_init_region-Fix-conditio.patch +++ b/0332-grub-core-kern-mm.c-grub_mm_init_region-Fix-conditio.patch @@ -1,7 +1,7 @@ -From 761e63a2a5f38419acd0e54d6b54845e65a152dc Mon Sep 17 00:00:00 2001 +From 0397c8a6d1c65c7e7216324f0c63e386e9b6c5ed Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sat, 20 Apr 2013 17:39:49 +0200 -Subject: [PATCH 331/364] * grub-core/kern/mm.c (grub_mm_init_region): +Subject: [PATCH 332/471] * grub-core/kern/mm.c (grub_mm_init_region): Fix condition for detecting too small regions. --- @@ -45,5 +45,5 @@ index d869091..959c3ba 100644 h->next = h; h->magic = GRUB_MM_FREE_MAGIC; -- -1.8.1.4 +1.8.2.1 diff --git a/0332-Support-coreboot-framebuffer.patch b/0333-Support-coreboot-framebuffer.patch similarity index 98% rename from 0332-Support-coreboot-framebuffer.patch rename to 0333-Support-coreboot-framebuffer.patch index f771926..63e8c72 100644 --- a/0332-Support-coreboot-framebuffer.patch +++ b/0333-Support-coreboot-framebuffer.patch @@ -1,7 +1,7 @@ -From 839b333ad80db4f39a97b7aedc927147794e576b Mon Sep 17 00:00:00 2001 +From f387540a52ff93c10fca1e765adaeb829c44e688 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 21 Apr 2013 13:02:10 +0200 -Subject: [PATCH 332/364] Support coreboot framebuffer. +Subject: [PATCH 333/471] Support coreboot framebuffer. * grub-core/video/i386/coreboot/cbfb.c: New file. --- @@ -317,5 +317,5 @@ index b4150f4..9a93046 100644 { grub_uint64_t addr; -- -1.8.1.4 +1.8.2.1 diff --git a/0333-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate_it.patch b/0334-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate_it.patch similarity index 90% rename from 0333-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate_it.patch rename to 0334-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate_it.patch index 0c71dc2..b6f5225 100644 --- a/0333-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate_it.patch +++ b/0334-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate_it.patch @@ -1,7 +1,7 @@ -From b8ba23b222923c7f1d03c5b3b061938860ca7441 Mon Sep 17 00:00:00 2001 +From d66e978fcd3c5cb4f39294b4055398ee7892b1b5 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 21 Apr 2013 13:06:22 +0200 -Subject: [PATCH 333/364] * grub-core/disk/arc/arcdisk.c +Subject: [PATCH 334/471] * grub-core/disk/arc/arcdisk.c (grub_arcdisk_iterate_iter): Fix a type which prevented CD-ROM and floppy boot. @@ -39,5 +39,5 @@ index 5d12128..780728f 100644 return 0; return ctx->hook (name, ctx->hook_data); -- -1.8.1.4 +1.8.2.1 diff --git a/0334-Move-mips-arc-link-address.-Previous-link-address-wa.patch b/0335-Move-mips-arc-link-address.-Previous-link-address-wa.patch similarity index 97% rename from 0334-Move-mips-arc-link-address.-Previous-link-address-wa.patch rename to 0335-Move-mips-arc-link-address.-Previous-link-address-wa.patch index fb2b36d..b0acaab 100644 --- a/0334-Move-mips-arc-link-address.-Previous-link-address-wa.patch +++ b/0335-Move-mips-arc-link-address.-Previous-link-address-wa.patch @@ -1,7 +1,7 @@ -From 9fb5d59797c2de5670f1c2044a1323fc410eb125 Mon Sep 17 00:00:00 2001 +From 55cfcbed53dc997ad669d3f8cd95fbe25b6e2aab Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 24 Apr 2013 13:54:17 +0200 -Subject: [PATCH 334/364] Move mips-arc link address. Previous link +Subject: [PATCH 335/471] Move mips-arc link address. Previous link address was chosen in belief that RAM on SGI platforms grows down while in fact it grows up from an unusual base. @@ -174,5 +174,5 @@ index 0acc61e..41f795a 100644 ecoff_img = xmalloc (program_size + sizeof (*head) + sizeof (*section)); grub_memset (ecoff_img, 0, program_size + sizeof (*head) + sizeof (*section)); -- -1.8.1.4 +1.8.2.1 diff --git a/0335-grub-core-kern-dl.c-grub_dl_resolve_symbols-Handle-m.patch b/0336-grub-core-kern-dl.c-grub_dl_resolve_symbols-Handle-m.patch similarity index 90% rename from 0335-grub-core-kern-dl.c-grub_dl_resolve_symbols-Handle-m.patch rename to 0336-grub-core-kern-dl.c-grub_dl_resolve_symbols-Handle-m.patch index b246f92..fcf1d36 100644 --- a/0335-grub-core-kern-dl.c-grub_dl_resolve_symbols-Handle-m.patch +++ b/0336-grub-core-kern-dl.c-grub_dl_resolve_symbols-Handle-m.patch @@ -1,7 +1,7 @@ -From 92dc25b822630bc379e52c48c03afddd35ec895d Mon Sep 17 00:00:00 2001 +From b6e147adfbeadc1f9b581e9d0124d72a7c488f60 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 24 Apr 2013 13:58:31 +0200 -Subject: [PATCH 335/364] * grub-core/kern/dl.c +Subject: [PATCH 336/471] * grub-core/kern/dl.c (grub_dl_resolve_symbols): Handle malloc failure. --- @@ -37,5 +37,5 @@ index d06b6ae..c6d9ec9 100644 #else mod->symtab = (Elf_Sym *) ((char *) e + s->sh_offset); -- -1.8.1.4 +1.8.2.1 diff --git a/0336-util-grub-mkrescue.in-Add-mips-arc-support.patch b/0337-util-grub-mkrescue.in-Add-mips-arc-support.patch similarity index 97% rename from 0336-util-grub-mkrescue.in-Add-mips-arc-support.patch rename to 0337-util-grub-mkrescue.in-Add-mips-arc-support.patch index c2c69aa..7ed9d41 100644 --- a/0336-util-grub-mkrescue.in-Add-mips-arc-support.patch +++ b/0337-util-grub-mkrescue.in-Add-mips-arc-support.patch @@ -1,7 +1,7 @@ -From 5aa38752440cb6871b83eb1d36947c514acfc559 Mon Sep 17 00:00:00 2001 +From 4918af06ff0742df83ae70ce57e7fabc99761177 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 24 Apr 2013 14:02:58 +0200 -Subject: [PATCH 336/364] * util/grub-mkrescue.in: Add mips-arc support. +Subject: [PATCH 337/471] * util/grub-mkrescue.in: Add mips-arc support. --- ChangeLog | 4 ++++ @@ -130,5 +130,5 @@ index 5a5d4e3..634318b 100644 if [ -e "${iso9660_dir}/boot/mipsel-qemu_mips.elf" ] && [ -d "${rom_directory}" ]; then cp "${iso9660_dir}/boot/mipsel-qemu_mips.elf" "${rom_directory}/mipsel-qemu_mips.elf" -- -1.8.1.4 +1.8.2.1 diff --git a/0337-Add-missing-video-ids-to-coreboot-and-ieee1275-video.patch b/0338-Add-missing-video-ids-to-coreboot-and-ieee1275-video.patch similarity index 95% rename from 0337-Add-missing-video-ids-to-coreboot-and-ieee1275-video.patch rename to 0338-Add-missing-video-ids-to-coreboot-and-ieee1275-video.patch index 845793d..082e49d 100644 --- a/0337-Add-missing-video-ids-to-coreboot-and-ieee1275-video.patch +++ b/0338-Add-missing-video-ids-to-coreboot-and-ieee1275-video.patch @@ -1,7 +1,7 @@ -From d1523e26a44daeca832ccd51d6a2126c026d54d3 Mon Sep 17 00:00:00 2001 +From 88929d27c333342a5d4099ab4178a1be19e98d43 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 24 Apr 2013 14:44:15 +0200 -Subject: [PATCH 337/364] Add missing video ids to coreboot and ieee1275 +Subject: [PATCH 338/471] Add missing video ids to coreboot and ieee1275 video. --- @@ -77,5 +77,5 @@ index 40a7711..bd5852e 100644 typedef enum grub_video_adapter_prio -- -1.8.1.4 +1.8.2.1 diff --git a/0338-grub-core-disk-ata.c-grub_ata_real_open-Use-grub_err.patch b/0339-grub-core-disk-ata.c-grub_ata_real_open-Use-grub_err.patch similarity index 88% rename from 0338-grub-core-disk-ata.c-grub_ata_real_open-Use-grub_err.patch rename to 0339-grub-core-disk-ata.c-grub_ata_real_open-Use-grub_err.patch index 4b6d2fe..df178d3 100644 --- a/0338-grub-core-disk-ata.c-grub_ata_real_open-Use-grub_err.patch +++ b/0339-grub-core-disk-ata.c-grub_ata_real_open-Use-grub_err.patch @@ -1,7 +1,7 @@ -From 2e6bc59b479c674f58216d153a6bdd92bcb5d1c7 Mon Sep 17 00:00:00 2001 +From c92902fa913a04672e640a0b68353258a3f2d3a1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 24 Apr 2013 14:47:14 +0200 -Subject: [PATCH 338/364] * grub-core/disk/ata.c (grub_ata_real_open): +Subject: [PATCH 339/471] * grub-core/disk/ata.c (grub_ata_real_open): Use grub_error properly. --- @@ -37,5 +37,5 @@ index c84d316..dada56d 100644 return NULL; } -- -1.8.1.4 +1.8.2.1 diff --git a/0339-grub-core-loader-i386-linux.c-grub_linux_boot-Defaul.patch b/0340-grub-core-loader-i386-linux.c-grub_linux_boot-Defaul.patch similarity index 92% rename from 0339-grub-core-loader-i386-linux.c-grub_linux_boot-Defaul.patch rename to 0340-grub-core-loader-i386-linux.c-grub_linux_boot-Defaul.patch index b6d33ec..716e80b 100644 --- a/0339-grub-core-loader-i386-linux.c-grub_linux_boot-Defaul.patch +++ b/0340-grub-core-loader-i386-linux.c-grub_linux_boot-Defaul.patch @@ -1,7 +1,7 @@ -From bee9741e358d7d48c117150ece8cc1879130c39c Mon Sep 17 00:00:00 2001 +From 4863c23cc1d36ba71606159ab282553ad662a07c Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 24 Apr 2013 14:53:00 +0200 -Subject: [PATCH 339/364] * grub-core/loader/i386/linux.c +Subject: [PATCH 340/471] * grub-core/loader/i386/linux.c (grub_linux_boot): Default to gfxpayload=keep if cbfb is active. --- @@ -55,5 +55,5 @@ index db81ca1..106496b 100644 if (err) { -- -1.8.1.4 +1.8.2.1 diff --git a/0340-grub-core-normal-menu_text.c-print_entry-Put-an-aste.patch b/0341-grub-core-normal-menu_text.c-print_entry-Put-an-aste.patch similarity index 92% rename from 0340-grub-core-normal-menu_text.c-print_entry-Put-an-aste.patch rename to 0341-grub-core-normal-menu_text.c-print_entry-Put-an-aste.patch index a27aab8..ec3d1a7 100644 --- a/0340-grub-core-normal-menu_text.c-print_entry-Put-an-aste.patch +++ b/0341-grub-core-normal-menu_text.c-print_entry-Put-an-aste.patch @@ -1,7 +1,7 @@ -From a6d176e62f7b6c03e680287972b95dae59bef125 Mon Sep 17 00:00:00 2001 +From 523621574aff31d7949b241da12884e91e9dac75 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 24 Apr 2013 15:07:24 +0200 -Subject: [PATCH 340/364] * grub-core/normal/menu_text.c (print_entry): +Subject: [PATCH 341/471] * grub-core/normal/menu_text.c (print_entry): Put an asterisk in front of chosen entry to mark it even if highlighting is lost. @@ -48,5 +48,5 @@ index 0031b0c..e1d3c8f 100644 unicode_title + last_printed, 0, 0, term); -- -1.8.1.4 +1.8.2.1 diff --git a/0341-util-grub-install.in-Fix-target-fo-qemu_mips.patch b/0342-util-grub-install.in-Fix-target-fo-qemu_mips.patch similarity index 92% rename from 0341-util-grub-install.in-Fix-target-fo-qemu_mips.patch rename to 0342-util-grub-install.in-Fix-target-fo-qemu_mips.patch index 4b38e13..5a291e0 100644 --- a/0341-util-grub-install.in-Fix-target-fo-qemu_mips.patch +++ b/0342-util-grub-install.in-Fix-target-fo-qemu_mips.patch @@ -1,7 +1,7 @@ -From 8330cd6cfd3c6d2e63644849817379a7da9fc42f Mon Sep 17 00:00:00 2001 +From cfd149ef7abd7dedcfc558c2b3ba905a9ec87c43 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 24 Apr 2013 15:10:29 +0200 -Subject: [PATCH 341/364] * util/grub-install.in: Fix target fo +Subject: [PATCH 342/471] * util/grub-install.in: Fix target fo qemu_mips. Fix extension on EFI. --- @@ -46,5 +46,5 @@ index 32a3be3..271e447 100644 esac -- -1.8.1.4 +1.8.2.1 diff --git a/0343-grub-core-term-arc-console.c-Assume-that-console-is-.patch b/0343-grub-core-term-arc-console.c-Assume-that-console-is-.patch new file mode 100644 index 0000000..d2dc79b --- /dev/null +++ b/0343-grub-core-term-arc-console.c-Assume-that-console-is-.patch @@ -0,0 +1,145 @@ +From 03e23ea91dfeb59bfcdf6545275e6bea68b6f6a8 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Wed, 24 Apr 2013 18:39:00 +0200 +Subject: [PATCH 343/471] * grub-core/term/arc/console.c: Assume that + console is 80x24 vt100 if it's serial. + +--- + ChangeLog | 5 +++ + grub-core/term/arc/console.c | 77 ++++++++++++++++++++++++++++++++++++++++++-- + include/grub/arc/arc.h | 2 +- + 3 files changed, 80 insertions(+), 4 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 2f55104..6c27f76 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-24 Vladimir Serbinenko + ++ * grub-core/term/arc/console.c: Assume that console is 80x24 vt100 if ++ it's serial. ++ ++2013-04-24 Vladimir Serbinenko ++ + * util/grub-install.in: Fix target fo qemu_mips. + Fix extension on EFI. + +diff --git a/grub-core/term/arc/console.c b/grub-core/term/arc/console.c +index 0ccaebe..13478ea 100644 +--- a/grub-core/term/arc/console.c ++++ b/grub-core/term/arc/console.c +@@ -50,10 +50,72 @@ put (struct grub_term_output *term __attribute__ ((unused)), const int c) + + static struct grub_terminfo_output_state grub_console_terminfo_output; + +-static grub_err_t +-grub_console_init_output (struct grub_term_output *term) ++static int ++check_is_serial (void) ++{ ++ static int is_serial = -1; ++ ++ if (is_serial != -1) ++ return is_serial; ++ ++ const char *consout = 0; ++ ++ /* Check for serial. It works unless user manually overrides ConsoleOut ++ variable. If he does there is nothing we can do. Fortunately failure ++ isn't critical. ++ */ ++ if (GRUB_ARC_SYSTEM_PARAMETER_BLOCK->firmware_vector_length ++ >= ((char *) (&GRUB_ARC_FIRMWARE_VECTOR->getenvironmentvariable + 1) ++ - (char *) GRUB_ARC_FIRMWARE_VECTOR) ++ && GRUB_ARC_FIRMWARE_VECTOR->getenvironmentvariable) ++ consout = GRUB_ARC_FIRMWARE_VECTOR->getenvironmentvariable ("ConsoleOut"); ++ if (!consout) ++ return is_serial = 0; ++ if (consout[0] == '\0') ++ return is_serial = 0; ++ ++ const char *ptr = consout + grub_strlen (consout) - 1; ++ int i; ++ /* ++ Recognize: ++ serial(N) ++ serial(N)other(M) ++ */ ++ for (i = 0; i < 2; i++) ++ { ++ if (*ptr != ')') ++ return is_serial = 0; ++ ptr--; ++ for (; ptr >= consout && grub_isdigit (*ptr); ptr--); ++ if (ptr < consout) ++ return is_serial = 0; ++ if (*ptr != '(') ++ return is_serial = 0; ++ if (ptr >= consout + sizeof ("serial") - 1 ++ && grub_memcmp (ptr - (sizeof ("serial") - 1), ++ "serial", sizeof ("serial") - 1) == 0) ++ return is_serial = 1; ++ if (!(ptr >= consout + sizeof ("other") - 1 ++ && grub_memcmp (ptr - (sizeof ("other") - 1), ++ "other", sizeof ("other") - 1) == 0)) ++ return is_serial = 0; ++ ptr -= sizeof ("other"); ++ } ++ return 0; ++} ++ ++static void ++set_console_dimensions (void) + { + struct grub_arc_display_status *info = NULL; ++ ++ if (check_is_serial ()) ++ { ++ grub_console_terminfo_output.width = 80; ++ grub_console_terminfo_output.height = 24; ++ return; ++ } ++ + if (GRUB_ARC_SYSTEM_PARAMETER_BLOCK->firmware_vector_length + >= ((char *) (&GRUB_ARC_FIRMWARE_VECTOR->getdisplaystatus + 1) + - (char *) GRUB_ARC_FIRMWARE_VECTOR) +@@ -64,6 +126,12 @@ grub_console_init_output (struct grub_term_output *term) + grub_console_terminfo_output.width = info->w + 1; + grub_console_terminfo_output.height = info->h + 1; + } ++} ++ ++static grub_err_t ++grub_console_init_output (struct grub_term_output *term) ++{ ++ set_console_dimensions (); + grub_terminfo_output_init (term); + + return 0; +@@ -115,5 +183,8 @@ void + grub_console_init_lately (void) + { + grub_terminfo_init (); +- grub_terminfo_output_register (&grub_console_term_output, "arc"); ++ if (check_is_serial ()) ++ grub_terminfo_output_register (&grub_console_term_output, "vt100"); ++ else ++ grub_terminfo_output_register (&grub_console_term_output, "arc"); + } +diff --git a/include/grub/arc/arc.h b/include/grub/arc/arc.h +index 739926f..8f86500 100644 +--- a/include/grub/arc/arc.h ++++ b/include/grub/arc/arc.h +@@ -210,7 +210,7 @@ struct grub_arc_firmware_vector + grub_arc_err_t (*seek) (grub_arc_fileno_t fileno, + grub_arc_ularge_t *pos, grub_arc_enum_t mode); + void *mount; +- void *getenvironmentvariable; ++ const char * (*getenvironmentvariable) (const char *name); + void *setenvironmentvariable; + + /* 0x80. */ +-- +1.8.2.1 + diff --git a/0344-util-grub-mkrescue.in-Alias-sashARCS-as-sash.patch b/0344-util-grub-mkrescue.in-Alias-sashARCS-as-sash.patch new file mode 100644 index 0000000..8aa86b6 --- /dev/null +++ b/0344-util-grub-mkrescue.in-Alias-sashARCS-as-sash.patch @@ -0,0 +1,45 @@ +From 46692dc0b5469f5e14becefe48f5e329caf33bd3 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Wed, 24 Apr 2013 18:56:47 +0200 +Subject: [PATCH 344/471] * util/grub-mkrescue.in: Alias sashARCS as + sash. + +--- + ChangeLog | 4 ++++ + util/grub-mkrescue.in | 4 ++-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 6c27f76..bdaba2b 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-24 Vladimir Serbinenko + ++ * util/grub-mkrescue.in: Alias sashARCS as sash. ++ ++2013-04-24 Vladimir Serbinenko ++ + * grub-core/term/arc/console.c: Assume that console is 80x24 vt100 if + it's serial. + +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index 634318b..22b9cf0 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -484,10 +484,10 @@ fi + + make_image "${arcs_dir}" mips-arc "${iso9660_dir}/boot/grub/mips-arc/core.img" "" + if [ -e "${iso9660_dir}/boot/grub/mips-arc/core.img" ]; then +- grub_mkisofs_arguments="${grub_mkisofs_arguments} /boot/grub/mips-arc/grub=${iso9660_dir}/boot/grub/mips-arc/core.img /boot/grub/mips-arc/sashARCS=${iso9660_dir}/boot/grub/mips-arc/core.img" ++ grub_mkisofs_arguments="${grub_mkisofs_arguments} /boot/grub/mips-arc/grub=${iso9660_dir}/boot/grub/mips-arc/core.img /boot/grub/mips-arc/sashARCS=${iso9660_dir}/boot/grub/mips-arc/core.img /boot/grub/mips-arc/sash=${iso9660_dir}/boot/grub/mips-arc/core.img" + fi + if [ -e "${iso9660_dir}/boot/grub/mips-arc/core.img" ] && [ "$system_area" = arcs ]; then +- grub_mkisofs_arguments="${grub_mkisofs_arguments} -mips-boot /boot/grub/mips-arc/sashARCS -mips-boot /boot/grub/mips-arc/grub" ++ grub_mkisofs_arguments="${grub_mkisofs_arguments} -mips-boot /boot/grub/mips-arc/sashARCS -mips-boot /boot/grub/mips-arc/sash -mips-boot /boot/grub/mips-arc/grub" + fi + + make_image "${mipsel_qemu_dir}" mipsel-qemu_mips-elf "${iso9660_dir}/boot/mipsel-qemu_mips.elf" "pata" +-- +1.8.2.1 + diff --git a/0345-Make-check-work-on-mips-arc.patch b/0345-Make-check-work-on-mips-arc.patch new file mode 100644 index 0000000..9899fa9 --- /dev/null +++ b/0345-Make-check-work-on-mips-arc.patch @@ -0,0 +1,79 @@ +From 8dd3765f0e6a13637d43e4fb2990eee748bfe961 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Wed, 24 Apr 2013 22:24:28 +0200 +Subject: [PATCH 345/471] Make check work on mips-arc. + +--- + ChangeLog | 4 ++++ + tests/partmap_test.in | 10 +++++++--- + tests/util/grub-shell.in | 7 +++++++ + 3 files changed, 18 insertions(+), 3 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index bdaba2b..9f2eccc 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-24 Vladimir Serbinenko + ++ Make check work on mips-arc. ++ ++2013-04-24 Vladimir Serbinenko ++ + * util/grub-mkrescue.in: Alias sashARCS as sash. + + 2013-04-24 Vladimir Serbinenko +diff --git a/tests/partmap_test.in b/tests/partmap_test.in +index bc503f5..e8aca2e 100644 +--- a/tests/partmap_test.in ++++ b/tests/partmap_test.in +@@ -63,21 +63,25 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + powerpc-ieee1275) + disk=ieee1275//pci@80000000/mac-io@4/ata-3@20000/disk@0 + qemudisk=hda +- # QEMU firmware has bugs which prevent it from accessing hard disk. ++ # QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; + sparc64-ieee1275) + disk=ieee1275//pci@1fe\,0/pci-ata@5/ide0@500/disk@0 + qemudisk=hda +- # QEMU firmware has bugs which prevent it from accessing hard disk. ++ # QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; + i386-ieee1275) + disk=ieee1275/d + qemudisk=hdb +- # QEMU firmware has bugs which prevent it from accessing hard disk. ++ # QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; ++ mips-arc) ++ # ARC firmware has bugs which prevent it from accessing hard disk w/o dvh disklabel. ++ exit 0 ++ + *) + disk=hd0 + qemudisk=hda +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index 739c300..b051669 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -85,6 +85,13 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + qemuopts="$qemuopts -M mips" + console=vga_text + ;; ++ mips-arc) ++ boot=cd ++ qemu=qemu-system-mips64 ++ qemuopts="$qemuopts -M indy" ++ console=console ++ trim=1 ++ ;; + mipsel-qemu_mips) + boot=mipsel_qemu + qemu=qemu-system-mipsel +-- +1.8.2.1 + diff --git a/0346-grub-core-term-ieee1275-console.c-grub_console_dimen.patch b/0346-grub-core-term-ieee1275-console.c-grub_console_dimen.patch new file mode 100644 index 0000000..43b3044 --- /dev/null +++ b/0346-grub-core-term-ieee1275-console.c-grub_console_dimen.patch @@ -0,0 +1,48 @@ +From 42b86368891e0380415148cdc1990604bbf7f807 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 25 Apr 2013 00:45:29 +0200 +Subject: [PATCH 346/471] * grub-core/term/ieee1275/console.c + (grub_console_dimensions): Ignore bogus SLOF values. + +--- + ChangeLog | 5 +++++ + grub-core/term/ieee1275/console.c | 8 ++++++++ + 2 files changed, 13 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 9f2eccc..2670946 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-24 Vladimir Serbinenko + ++ * grub-core/term/ieee1275/console.c (grub_console_dimensions): Ignore ++ bogus SLOF values. ++ ++2013-04-24 Vladimir Serbinenko ++ + Make check work on mips-arc. + + 2013-04-24 Vladimir Serbinenko +diff --git a/grub-core/term/ieee1275/console.c b/grub-core/term/ieee1275/console.c +index 3a80864..6bcee58 100644 +--- a/grub-core/term/ieee1275/console.c ++++ b/grub-core/term/ieee1275/console.c +@@ -123,6 +123,14 @@ grub_console_dimensions (void) + } + } + ++ /* Bogus default value on SLOF in QEMU. */ ++ if (grub_console_terminfo_output.width == 200 ++ && grub_console_terminfo_output.height == 200) ++ { ++ grub_console_terminfo_output.width = 80; ++ grub_console_terminfo_output.height = 24; ++ } ++ + /* Use a small console by default. */ + if (! grub_console_terminfo_output.width) + grub_console_terminfo_output.width = 80; +-- +1.8.2.1 + diff --git a/0347-util-grub-mkrescue.in-Move-all-files-that-don-t-have.patch b/0347-util-grub-mkrescue.in-Move-all-files-that-don-t-have.patch new file mode 100644 index 0000000..761643f --- /dev/null +++ b/0347-util-grub-mkrescue.in-Move-all-files-that-don-t-have.patch @@ -0,0 +1,136 @@ +From 2473d1ec61475362f1395512c50ec66289dd46bc Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 25 Apr 2013 01:36:20 +0200 +Subject: [PATCH 347/471] * util/grub-mkrescue.in: Move all files that + don't have a location set in stone under /boot/grub. Use ISO hard links + rather than copies to save some space. + +--- + ChangeLog | 6 ++++++ + util/grub-mkrescue.in | 55 ++++++++++++++++++++++++++------------------------- + 2 files changed, 34 insertions(+), 27 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 2670946..f77a87a 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2013-04-25 Vladimir Serbinenko ++ ++ * util/grub-mkrescue.in: Move all files that don't have a location ++ set in stone under /boot/grub. Use ISO hard links rather than copies ++ to save some space. ++ + 2013-04-24 Vladimir Serbinenko + + * grub-core/term/ieee1275/console.c (grub_console_dimensions): Ignore +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index 22b9cf0..e944b89 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -226,6 +226,7 @@ fi + + iso9660_dir=`mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 + mkdir -p ${iso9660_dir}/boot/grub ++mkdir -p ${iso9660_dir}/boot/grub/roms + + process_input_dir () + { +@@ -399,9 +400,9 @@ if test -e "${pc_dir}" ; then + fi + + # build multiboot core.img +-make_image "${multiboot_dir}" i386-multiboot "${iso9660_dir}/boot/multiboot.img" "pata ahci at_keyboard" ++make_image "${multiboot_dir}" i386-multiboot "${iso9660_dir}/boot/grub/i386-multiboot/core.elf" "pata ahci at_keyboard" + +-make_image_fwdisk "${i386_ieee1275_dir}" i386-ieee1275 "${iso9660_dir}/boot/ofwx86.elf" "" ++make_image_fwdisk "${i386_ieee1275_dir}" i386-ieee1275 "${iso9660_dir}/boot/grub/i386-ieee1275/core.elf" "" + + if test -e "${efi64_dir}" || test -e "${efi32_dir}" || test -e "${ia64_dir}"; then + efi_dir=`mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 +@@ -436,8 +437,8 @@ if test -e "${efi64_dir}" || test -e "${efi32_dir}" || test -e "${ia64_dir}"; th + grub_mkisofs_arguments="${grub_mkisofs_arguments} --efi-boot efi.img -efi-boot-part --efi-boot-image" + fi + +-make_image_fwdisk "${ppc_dir}" powerpc-ieee1275 "${iso9660_dir}/boot/powerpc.elf" "" +-if [ -e "${iso9660_dir}"/System/Library/CoreServices/boot.efi ] || [ -e "${iso9660_dir}/boot/powerpc.elf" ]; then ++make_image_fwdisk "${ppc_dir}" powerpc-ieee1275 "${iso9660_dir}/boot/grub/powerpc-ieee1275/core.elf" "" ++if [ -e "${iso9660_dir}"/System/Library/CoreServices/boot.efi ] || [ -e "${iso9660_dir}/boot/grub/powerpc-ieee1275/core.elf" ]; then + mkdir -p "${iso9660_dir}"/System/Library/CoreServices + touch "${iso9660_dir}/mach_kernel" + cat > "${iso9660_dir}/System/Library/CoreServices/SystemVersion.plist" < +Date: Thu, 25 Apr 2013 02:14:46 +0200 +Subject: [PATCH 348/471] * util/grub-mkrescue.in: Fix loongson + filename. + +--- + ChangeLog | 4 ++++ + util/grub-mkrescue.in | 6 +++--- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index f77a87a..c0eb5ef 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-25 Vladimir Serbinenko + ++ * util/grub-mkrescue.in: Fix loongson filename. ++ ++2013-04-25 Vladimir Serbinenko ++ + * util/grub-mkrescue.in: Move all files that don't have a location + set in stone under /boot/grub. Use ISO hard links rather than copies + to save some space. +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index e944b89..78d4bec 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -496,9 +496,9 @@ if [ -e "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" ] && [ -d "${rom_di + cp "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" "${rom_directory}/mipsel-qemu_mips.elf" + fi + +-make_image "${loongson_dir}" mipsel-loongson-elf "${iso9660_dir}/boot/mipsel-loongson/core.elf" "pata -C xz" +-if [ -e "${iso9660_dir}/boot/mipsel-loongson/core.elf" ] && [ -d "${rom_directory}" ]; then +- cp "${iso9660_dir}/boot/mipsel-loongson/core.elf" "${rom_directory}/mipsel-loongson.elf" ++make_image "${loongson_dir}" mipsel-loongson-elf "${iso9660_dir}/boot/grub/loongson.elf" "pata -C xz" ++if [ -e "${iso9660_dir}/boot/grub/loongson.elf" ] && [ -d "${rom_directory}" ]; then ++ cp "${iso9660_dir}/boot/grub/loongson.elf" "${rom_directory}/mipsel-loongson.elf" + fi + make_image "${loongson_dir}" mipsel-yeeloong-flash "${iso9660_dir}/boot/grub/roms/mipsel-yeeloong.bin" "pata -C xz" + if [ -e "${iso9660_dir}/boot/grub/roms/mipsel-yeeloong.bin" ] && [ -d "${rom_directory}" ]; then +-- +1.8.2.1 + diff --git a/0349-tests-partmap_test.in-Add-missing-double-semicolon.patch b/0349-tests-partmap_test.in-Add-missing-double-semicolon.patch new file mode 100644 index 0000000..4e8b25e --- /dev/null +++ b/0349-tests-partmap_test.in-Add-missing-double-semicolon.patch @@ -0,0 +1,42 @@ +From 4fd9d372a0ed699b346894e516b46a96e7129c50 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 25 Apr 2013 02:22:20 +0200 +Subject: [PATCH 349/471] * tests/partmap_test.in: Add missing double + semicolon. + +--- + ChangeLog | 4 ++++ + tests/partmap_test.in | 3 +-- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index c0eb5ef..e944801 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-25 Vladimir Serbinenko + ++ * tests/partmap_test.in: Add missing double semicolon. ++ ++2013-04-25 Vladimir Serbinenko ++ + * util/grub-mkrescue.in: Fix loongson filename. + + 2013-04-25 Vladimir Serbinenko +diff --git a/tests/partmap_test.in b/tests/partmap_test.in +index e8aca2e..0dea98a 100644 +--- a/tests/partmap_test.in ++++ b/tests/partmap_test.in +@@ -80,8 +80,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + ;; + mips-arc) + # ARC firmware has bugs which prevent it from accessing hard disk w/o dvh disklabel. +- exit 0 +- ++ exit 0 ;; + *) + disk=hd0 + qemudisk=hda +-- +1.8.2.1 + diff --git a/0350-grub-core-boot-powerpc-bootinfo.txt.in-Missing-updat.patch b/0350-grub-core-boot-powerpc-bootinfo.txt.in-Missing-updat.patch new file mode 100644 index 0000000..71c2d8f --- /dev/null +++ b/0350-grub-core-boot-powerpc-bootinfo.txt.in-Missing-updat.patch @@ -0,0 +1,42 @@ +From c920a72c86f15f36a121ec858df462c700e0c940 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 25 Apr 2013 03:26:41 +0200 +Subject: [PATCH 350/471] * grub-core/boot/powerpc/bootinfo.txt.in: + Missing update from previous commit. + +--- + ChangeLog | 5 +++++ + grub-core/boot/powerpc/bootinfo.txt.in | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index e944801..94dd291 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-25 Vladimir Serbinenko + ++ * grub-core/boot/powerpc/bootinfo.txt.in: Missing update from previous ++ commit. ++ ++2013-04-25 Vladimir Serbinenko ++ + * tests/partmap_test.in: Add missing double semicolon. + + 2013-04-25 Vladimir Serbinenko +diff --git a/grub-core/boot/powerpc/bootinfo.txt.in b/grub-core/boot/powerpc/bootinfo.txt.in +index 8d6b3b0..bc831da 100644 +--- a/grub-core/boot/powerpc/bootinfo.txt.in ++++ b/grub-core/boot/powerpc/bootinfo.txt.in +@@ -1,7 +1,7 @@ + + @PACKAGE@ @VERSION@ + @PACKAGE@ @VERSION@ +-boot &device;:\boot\powerpc.elf ++boot &device;:\boot\grub\powerpc.elf + + + FF FF FF FF FF FF FF FF FF FF 92 6D 6D 6D 6D 6D 6D 6D 6D 6D DB FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF B6 92 6D 92 92 92 DB FF FF FF FF FF FF FF FF FF FF +-- +1.8.2.1 + diff --git a/0351-Add-serial-on-ARC-platform.patch b/0351-Add-serial-on-ARC-platform.patch new file mode 100644 index 0000000..87de5dc --- /dev/null +++ b/0351-Add-serial-on-ARC-platform.patch @@ -0,0 +1,555 @@ +From 856d1d38f73b370b3dd30b7ab0c362f6da7e7dcb Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 25 Apr 2013 22:40:03 +0200 +Subject: [PATCH 351/471] Add serial on ARC platform. + +--- + ChangeLog | 4 ++ + docs/grub.texi | 6 +- + grub-core/Makefile.am | 1 + + grub-core/Makefile.core.def | 2 + + grub-core/disk/arc/arcdisk.c | 34 +--------- + grub-core/kern/mips/arc/init.c | 39 +++++++++++ + grub-core/term/arc/console.c | 81 ++++++++++++++--------- + grub-core/term/arc/serial.c | 147 +++++++++++++++++++++++++++++++++++++++++ + grub-core/term/serial.c | 9 ++- + include/grub/arc/arc.h | 11 +++ + include/grub/serial.h | 16 +++++ + 11 files changed, 279 insertions(+), 71 deletions(-) + create mode 100644 grub-core/term/arc/serial.c + +diff --git a/ChangeLog b/ChangeLog +index 94dd291..7f2c4dd 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-25 Vladimir Serbinenko + ++ Add serial on ARC platform. ++ ++2013-04-25 Vladimir Serbinenko ++ + * grub-core/boot/powerpc/bootinfo.txt.in: Missing update from previous + commit. + +diff --git a/docs/grub.texi b/docs/grub.texi +index 87d19ea..920a558 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -4729,8 +4729,7 @@ ARC platform is unable to change datetime (firmware doesn't seem to provide a + function for it). + EMU has similar limitation. + +-ARC platform no serial port is available. +-EMU has similar limitation. ++On EMU platform no serial port is available. + + Console charset refers only to firmware-assisted console. gfxterm is always + Unicode (see Internationalisation section for its limitations). Serial is +@@ -4747,9 +4746,6 @@ the actual console may be much more limited depending on firmware + On BIOS network is supported only if the image is loaded through network. + On sparc64 GRUB is unable to determine which server it was booted from. + +-On platforms not having direct serial support (as indicated in the line serial) +-you can still redirect firmware console to serial if it allows so. +- + Direct ATA/AHCI support allows to circumvent various firmware limitations but + isn't needed for normal operation except on baremetal ports. + +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 6f156e7..07aad50 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -151,6 +151,7 @@ endif + if COND_mips_arc + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arc/arc.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h + endif + + if COND_mips_qemu_mips +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 8f36ea0..cdef5b4 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1661,10 +1661,12 @@ module = { + common = term/serial.c; + x86 = term/ns8250.c; + ieee1275 = term/ieee1275/serial.c; ++ mips_arc = term/arc/serial.c; + efi = term/efi/serial.c; + + enable = terminfomodule; + enable = ieee1275; ++ enable = mips_arc; + }; + + module = { +diff --git a/grub-core/disk/arc/arcdisk.c b/grub-core/disk/arc/arcdisk.c +index 780728f..9aefb7c 100644 +--- a/grub-core/disk/arc/arcdisk.c ++++ b/grub-core/disk/arc/arcdisk.c +@@ -153,9 +153,7 @@ reopen (const char *name, int writable) + static grub_err_t + grub_arcdisk_open (const char *name, grub_disk_t disk) + { +- char *fullname, *optr; +- const char *iptr; +- int state = 0; ++ char *fullname; + grub_err_t err; + grub_arc_err_t r; + struct grub_arc_fileinfo info; +@@ -163,35 +161,7 @@ grub_arcdisk_open (const char *name, grub_disk_t disk) + + if (grub_memcmp (name, "arc/", 4) != 0) + return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "not arc device"); +- fullname = grub_malloc (2 * grub_strlen (name) + sizeof (RAW_SUFFIX)); +- if (!fullname) +- return grub_errno; +- optr = fullname; +- for (iptr = name + 4; *iptr; iptr++) +- if (state == 0) +- { +- if (!grub_isdigit (*iptr)) +- *optr++ = *iptr; +- else +- { +- *optr++ = '('; +- *optr++ = *iptr; +- state = 1; +- } +- } +- else +- { +- if (grub_isdigit (*iptr)) +- *optr++ = *iptr; +- else +- { +- *optr++ = ')'; +- state = 0; +- } +- } +- if (state) +- *optr++ = ')'; +- grub_memcpy (optr, RAW_SUFFIX, sizeof (RAW_SUFFIX)); ++ fullname = grub_arc_alt_name_to_norm (name, RAW_SUFFIX); + disk->data = fullname; + grub_dprintf ("arcdisk", "opening %s\n", fullname); + +diff --git a/grub-core/kern/mips/arc/init.c b/grub-core/kern/mips/arc/init.c +index 011c63f..92a2877 100644 +--- a/grub-core/kern/mips/arc/init.c ++++ b/grub-core/kern/mips/arc/init.c +@@ -125,6 +125,45 @@ grub_machine_mmap_iterate (grub_memory_hook_t hook, void *hook_data) + } + } + ++char * ++grub_arc_alt_name_to_norm (const char *name, const char *suffix) ++{ ++ char *optr; ++ const char *iptr; ++ char * ret = grub_malloc (2 * grub_strlen (name) + grub_strlen (suffix)); ++ int state = 0; ++ ++ if (!ret) ++ return NULL; ++ optr = ret; ++ for (iptr = name + 4; *iptr; iptr++) ++ if (state == 0) ++ { ++ if (!grub_isdigit (*iptr)) ++ *optr++ = *iptr; ++ else ++ { ++ *optr++ = '('; ++ *optr++ = *iptr; ++ state = 1; ++ } ++ } ++ else ++ { ++ if (grub_isdigit (*iptr)) ++ *optr++ = *iptr; ++ else ++ { ++ *optr++ = ')'; ++ state = 0; ++ } ++ } ++ if (state) ++ *optr++ = ')'; ++ grub_strcpy (optr, suffix); ++ return ret; ++} ++ + extern grub_uint32_t grub_total_modules_size __attribute__ ((section(".text"))); + grub_addr_t grub_modbase; + +diff --git a/grub-core/term/arc/console.c b/grub-core/term/arc/console.c +index 13478ea..ea4737c 100644 +--- a/grub-core/term/arc/console.c ++++ b/grub-core/term/arc/console.c +@@ -50,6 +50,55 @@ put (struct grub_term_output *term __attribute__ ((unused)), const int c) + + static struct grub_terminfo_output_state grub_console_terminfo_output; + ++int ++grub_arc_is_device_serial (const char *name, int alt_names) ++{ ++ if (name[0] == '\0') ++ return 0; ++ ++ const char *ptr = name + grub_strlen (name) - 1; ++ int i; ++ /* ++ Recognize: ++ serial(N) ++ serial(N)other(M) ++ */ ++ for (i = 0; i < 2; i++) ++ { ++ if (!alt_names) ++ { ++ if (*ptr != ')') ++ return 0; ++ ptr--; ++ } ++ for (; ptr >= name && grub_isdigit (*ptr); ptr--); ++ if (ptr < name) ++ return 0; ++ if (!alt_names) ++ { ++ if (*ptr != '(') ++ return 0; ++ ptr--; ++ } ++ if (ptr + 1 >= name + sizeof ("serial") - 1 ++ && grub_memcmp (ptr + 1 - (sizeof ("serial") - 1), ++ "serial", sizeof ("serial") - 1) == 0) ++ return 1; ++ if (!(ptr + 1 >= name + sizeof ("other") - 1 ++ && grub_memcmp (ptr + 1 - (sizeof ("other") - 1), ++ "other", sizeof ("other") - 1) == 0)) ++ return 0; ++ ptr -= sizeof ("other") - 1; ++ if (alt_names) ++ { ++ if (*ptr != '/') ++ return 0; ++ ptr--; ++ } ++ } ++ return 0; ++} ++ + static int + check_is_serial (void) + { +@@ -71,37 +120,7 @@ check_is_serial (void) + consout = GRUB_ARC_FIRMWARE_VECTOR->getenvironmentvariable ("ConsoleOut"); + if (!consout) + return is_serial = 0; +- if (consout[0] == '\0') +- return is_serial = 0; +- +- const char *ptr = consout + grub_strlen (consout) - 1; +- int i; +- /* +- Recognize: +- serial(N) +- serial(N)other(M) +- */ +- for (i = 0; i < 2; i++) +- { +- if (*ptr != ')') +- return is_serial = 0; +- ptr--; +- for (; ptr >= consout && grub_isdigit (*ptr); ptr--); +- if (ptr < consout) +- return is_serial = 0; +- if (*ptr != '(') +- return is_serial = 0; +- if (ptr >= consout + sizeof ("serial") - 1 +- && grub_memcmp (ptr - (sizeof ("serial") - 1), +- "serial", sizeof ("serial") - 1) == 0) +- return is_serial = 1; +- if (!(ptr >= consout + sizeof ("other") - 1 +- && grub_memcmp (ptr - (sizeof ("other") - 1), +- "other", sizeof ("other") - 1) == 0)) +- return is_serial = 0; +- ptr -= sizeof ("other"); +- } +- return 0; ++ return is_serial = grub_arc_is_device_serial (consout, 0); + } + + static void +diff --git a/grub-core/term/arc/serial.c b/grub-core/term/arc/serial.c +new file mode 100644 +index 0000000..87d1ce8 +--- /dev/null ++++ b/grub-core/term/arc/serial.c +@@ -0,0 +1,147 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++static void ++do_real_config (struct grub_serial_port *port) ++{ ++ char *name; ++ if (port->configured) ++ return; ++ ++ name = grub_arc_alt_name_to_norm (port->name, ""); ++ ++ if (GRUB_ARC_FIRMWARE_VECTOR->open (name,GRUB_ARC_FILE_ACCESS_OPEN_RW, ++ &port->handle)) ++ port->handle_valid = 0; ++ else ++ port->handle_valid = 1; ++ ++ port->configured = 1; ++} ++ ++/* Fetch a key. */ ++static int ++serial_hw_fetch (struct grub_serial_port *port) ++{ ++ unsigned long actual; ++ char c; ++ ++ do_real_config (port); ++ ++ if (!port->handle_valid) ++ return -1; ++ if (GRUB_ARC_FIRMWARE_VECTOR->read (port->handle, &c, ++ 1, &actual) || actual <= 0) ++ return -1; ++ return c; ++} ++ ++/* Put a character. */ ++static void ++serial_hw_put (struct grub_serial_port *port, const int c) ++{ ++ unsigned long actual; ++ char c0 = c; ++ ++ do_real_config (port); ++ ++ if (!port->handle_valid) ++ return; ++ ++ GRUB_ARC_FIRMWARE_VECTOR->write (port->handle, &c0, ++ 1, &actual); ++} ++ ++/* Initialize a serial device. PORT is the port number for a serial device. ++ SPEED is a DTE-DTE speed which must be one of these: 2400, 4800, 9600, ++ 19200, 38400, 57600 and 115200. WORD_LEN is the word length to be used ++ for the device. Likewise, PARITY is the type of the parity and ++ STOP_BIT_LEN is the length of the stop bit. The possible values for ++ WORD_LEN, PARITY and STOP_BIT_LEN are defined in the header file as ++ macros. */ ++static grub_err_t ++serial_hw_configure (struct grub_serial_port *port __attribute__ ((unused)), ++ struct grub_serial_config *config __attribute__ ((unused))) ++{ ++ /* FIXME: no ARC serial config available. */ ++ ++ return GRUB_ERR_NONE; ++} ++ ++struct grub_serial_driver grub_arcserial_driver = ++ { ++ .configure = serial_hw_configure, ++ .fetch = serial_hw_fetch, ++ .put = serial_hw_put ++ }; ++ ++const char * ++grub_arcserial_add_port (const char *path) ++{ ++ struct grub_serial_port *port; ++ grub_err_t err; ++ ++ port = grub_zalloc (sizeof (*port)); ++ if (!port) ++ return NULL; ++ port->name = grub_strdup (path); ++ if (!port->name) ++ return NULL; ++ ++ port->driver = &grub_arcserial_driver; ++ err = grub_serial_config_defaults (port); ++ if (err) ++ grub_print_error (); ++ ++ grub_serial_register (port); ++ ++ return port->name; ++} ++ ++static int ++dev_iterate (const char *name, ++ const struct grub_arc_component *comp __attribute__ ((unused)), ++ void *data __attribute__ ((unused))) ++{ ++ /* We should check consolein/consoleout flags as ++ well but some implementations are buggy. */ ++ if ((comp->flags & (GRUB_ARC_COMPONENT_FLAG_IN | GRUB_ARC_COMPONENT_FLAG_OUT)) ++ != (GRUB_ARC_COMPONENT_FLAG_IN | GRUB_ARC_COMPONENT_FLAG_OUT)) ++ return 0; ++ if (!grub_arc_is_device_serial (name, 1)) ++ return 0; ++ grub_arcserial_add_port (name); ++ return 0; ++} ++ ++void ++grub_arcserial_init (void) ++{ ++ grub_arc_iterate_devs (dev_iterate, 0, 1); ++} ++ +diff --git a/grub-core/term/serial.c b/grub-core/term/serial.c +index 96f9d7f..61cd80a 100644 +--- a/grub-core/term/serial.c ++++ b/grub-core/term/serial.c +@@ -137,7 +137,7 @@ grub_serial_find (const char *name) + if (grub_strcmp (port->name, name) == 0) + break; + +-#if (defined(__mips__) || defined (__i386__) || defined (__x86_64__)) && !defined(GRUB_MACHINE_EMU) ++#if (defined(__mips__) || defined (__i386__) || defined (__x86_64__)) && !defined(GRUB_MACHINE_EMU) && !defined(GRUB_MACHINE_ARC) + if (!port && grub_memcmp (name, "port", sizeof ("port") - 1) == 0 + && grub_isxdigit (name [sizeof ("port") - 1])) + { +@@ -242,7 +242,7 @@ grub_cmd_serial (grub_extcmd_context_t ctxt, int argc, char **args) + err = port->driver->configure (port, &config); + if (err) + return err; +-#if !defined (GRUB_MACHINE_EMU) && (defined(__mips__) || defined (__i386__) || defined (__x86_64__)) ++#if !defined (GRUB_MACHINE_EMU) && !defined(GRUB_MACHINE_ARC) && (defined(__mips__) || defined (__i386__) || defined (__x86_64__)) + + /* Compatibility kludge. */ + if (port->driver == &grub_ns8250_driver) +@@ -396,7 +396,7 @@ GRUB_MOD_INIT(serial) + &grub_serial_terminfo_input_template, + sizeof (grub_serial_terminfo_input)); + +-#if !defined (GRUB_MACHINE_EMU) && (defined(__mips__) || defined (__i386__) || defined (__x86_64__)) ++#if !defined (GRUB_MACHINE_EMU) && !defined(GRUB_MACHINE_ARC) && (defined(__mips__) || defined (__i386__) || defined (__x86_64__)) + grub_ns8250_init (); + #endif + #ifdef GRUB_MACHINE_IEEE1275 +@@ -405,6 +405,9 @@ GRUB_MOD_INIT(serial) + #ifdef GRUB_MACHINE_EFI + grub_efiserial_init (); + #endif ++#ifdef GRUB_MACHINE_ARC ++ grub_arcserial_init (); ++#endif + } + + #if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) +diff --git a/include/grub/arc/arc.h b/include/grub/arc/arc.h +index 8f86500..c2578f4 100644 +--- a/include/grub/arc/arc.h ++++ b/include/grub/arc/arc.h +@@ -79,6 +79,12 @@ struct grub_arc_display_status + grub_arc_uchar_t reverse_video; + }; + ++enum ++ { ++ GRUB_ARC_COMPONENT_FLAG_OUT = 0x40, ++ GRUB_ARC_COMPONENT_FLAG_IN = 0x20, ++ }; ++ + struct grub_arc_component + { + grub_arc_enum_t class; +@@ -262,6 +268,11 @@ int EXPORT_FUNC (grub_arc_iterate_devs) (grub_arc_iterate_devs_hook_t hook, + void *hook_data, + int alt_names); + ++char *EXPORT_FUNC (grub_arc_alt_name_to_norm) (const char *name, const char *suffix); ++ ++int EXPORT_FUNC (grub_arc_is_device_serial) (const char *name, int alt_names); ++ ++ + #define FOR_ARC_CHILDREN(comp, parent) for (comp = GRUB_ARC_FIRMWARE_VECTOR->getchild (parent); comp; comp = GRUB_ARC_FIRMWARE_VECTOR->getpeer (comp)) + + extern void grub_arcdisk_init (void); +diff --git a/include/grub/serial.h b/include/grub/serial.h +index 32f507c..20840d0 100644 +--- a/include/grub/serial.h ++++ b/include/grub/serial.h +@@ -30,6 +30,9 @@ + #ifdef GRUB_MACHINE_IEEE1275 + #include + #endif ++#ifdef GRUB_MACHINE_ARC ++#include ++#endif + + struct grub_serial_port; + struct grub_serial_config; +@@ -105,6 +108,13 @@ struct grub_serial_port + #ifdef GRUB_MACHINE_EFI + struct grub_efi_serial_io_interface *interface; + #endif ++#ifdef GRUB_MACHINE_ARC ++ struct ++ { ++ grub_arc_fileno_t handle; ++ int handle_valid; ++ }; ++#endif + }; + grub_term_output_t term_out; + grub_term_input_t term_in; +@@ -170,6 +180,12 @@ void grub_ofserial_init (void); + void + grub_efiserial_init (void); + #endif ++#ifdef GRUB_MACHINE_ARC ++void ++grub_arcserial_init (void); ++const char * ++grub_arcserial_add_port (const char *path); ++#endif + + struct grub_serial_port *grub_serial_find (const char *name); + extern struct grub_serial_driver grub_ns8250_driver; +-- +1.8.2.1 + diff --git a/0352-Enable-mipsel-arc.patch b/0352-Enable-mipsel-arc.patch new file mode 100644 index 0000000..f993a2b --- /dev/null +++ b/0352-Enable-mipsel-arc.patch @@ -0,0 +1,327 @@ +From 4e07feae1975db4c63edc00734287d53d3a5fc72 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 25 Apr 2013 22:42:35 +0200 +Subject: [PATCH 352/471] Enable mipsel-arc. + +--- + ChangeLog | 4 ++++ + configure.ac | 20 +++++++++++++++++++- + grub-core/Makefile.core.def | 10 +++------- + grub-core/disk/arc/arcdisk.c | 4 ++++ + include/grub/mips/arc/memory.h | 4 ++++ + include/grub/offsets.h | 6 +++++- + tests/grub_cmd_date.in | 3 ++- + tests/partmap_test.in | 4 ++++ + tests/util/grub-shell.in | 9 +++++++++ + util/grub-mkimage.c | 30 ++++++++++++++++++++++++++++-- + util/grub-mkrescue.in | 8 ++++++++ + 11 files changed, 90 insertions(+), 12 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 7f2c4dd..0bc5cc4 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-25 Vladimir Serbinenko + ++ Enable mipsel-arc. ++ ++2013-04-25 Vladimir Serbinenko ++ + Add serial on ARC platform. + + 2013-04-25 Vladimir Serbinenko +diff --git a/configure.ac b/configure.ac +index ca180c6..4af1a03 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -145,6 +145,7 @@ case "$target_cpu"-"$platform" in + mips-qemu_mips) ;; + mips-qemu-mips) platform=qemu_mips;; + mips-arc) ;; ++ mipsel-arc) ;; + mipsel-qemu_mips) ;; + mipsel-qemu-mips) platform=qemu_mips;; + mipsel-yeeloong) platform=loongson ;; +@@ -198,6 +199,23 @@ else + machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE=`echo ${target_cpu}_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,` -DGRUB_TARGET_CPU_`echo ${target_cpu} | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`=1" + fi + ++case "${target_cpu}-$platform" in ++ mips-arc) ++ TARGET_LINK_ADDR=0x88200000 ++ TARGET_DECOMPRESSOR_LINK_ADDR=0x88100000 ++ ;; ++ mipsel-arc) ++ TARGET_LINK_ADDR=0x80700000 ++ TARGET_DECOMPRESSOR_LINK_ADDR=0x80600000 ++ ;; ++ mips*-qemu_mips | mips-loongson) ++ TARGET_DECOMPRESSOR_LINK_ADDR=0x80100000 ++ ;; ++esac ++ ++AC_SUBST(TARGET_LINK_ADDR) ++AC_SUBST(TARGET_DECOMPRESSOR_LINK_ADDR) ++ + TARGET_CPPFLAGS="$TARGET_CPPFLAGS $machine_CPPFLAGS" + + AC_SUBST(host_cpu) +@@ -1146,7 +1164,7 @@ AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = + AM_CONDITIONAL([COND_x86_64_efi], [test x$target_cpu = xx86_64 -a x$platform = xefi]) + AM_CONDITIONAL([COND_mips_loongson], [test x$target_cpu = xmipsel -a x$platform = xloongson]) + AM_CONDITIONAL([COND_mips_qemu_mips], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xqemu_mips]) +-AM_CONDITIONAL([COND_mips_arc], [test x$target_cpu = xmips -a x$platform = xarc]) ++AM_CONDITIONAL([COND_mips_arc], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xarc]) + AM_CONDITIONAL([COND_sparc64_ieee1275], [test x$target_cpu = xsparc64 -a x$platform = xieee1275]) + AM_CONDITIONAL([COND_powerpc_ieee1275], [test x$target_cpu = xpowerpc -a x$platform = xieee1275]) + AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel]) +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index cdef5b4..ad912a6 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -73,7 +73,7 @@ kernel = { + mips_loongson_ldflags = '-Wl,-Ttext,0x80200000'; + powerpc_ieee1275_ldflags = '-Wl,-Ttext,0x200000'; + sparc64_ieee1275_ldflags = '-Wl,-Ttext,0x4400'; +- mips_arc_ldflags = '-Wl,-Ttext,0x88200000'; ++ mips_arc_ldflags = '-Wl,-Ttext,$(TARGET_LINK_ADDR)'; + mips_qemu_mips_ldflags = '-Wl,-Ttext,0x80200000'; + + mips_loongson_cppflags = '-DUSE_ASCII_FAILBACK'; +@@ -370,9 +370,7 @@ image = { + cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/xzembed -DGRUB_EMBED_DECOMPRESSOR=1'; + + objcopyflags = '-O binary'; +- mips_loongson_ldflags = '-static-libgcc -Wl,-Ttext,0x80100000'; +- mips_qemu_mips_ldflags = '-static-libgcc -Wl,-Ttext,0x80100000'; +- mips_arc_ldflags = '-static-libgcc -Wl,-Ttext,0x88100000'; ++ mips_ldflags = '-static-libgcc -Wl,-Ttext,$(TARGET_DECOMPRESSOR_LINK_ADDR)'; + ldadd = '-lgcc'; + cflags = '-Wno-unreachable-code -static-libgcc'; + enable = mips; +@@ -386,9 +384,7 @@ image = { + cppflags = '-DGRUB_EMBED_DECOMPRESSOR=1'; + + objcopyflags = '-O binary'; +- mips_loongson_ldflags = '-static-libgcc -Wl,-Ttext,0x80100000'; +- mips_qemu_mips_ldflags = '-static-libgcc -Wl,-Ttext,0x80100000'; +- mips_arc_ldflags = '-static-libgcc -Wl,-Ttext,0x88100000'; ++ mips_ldflags = '-static-libgcc -Wl,-Ttext,$(TARGET_DECOMPRESSOR_LINK_ADDR)'; + ldadd = '-lgcc'; + cflags = '-static-libgcc'; + enable = mips; +diff --git a/grub-core/disk/arc/arcdisk.c b/grub-core/disk/arc/arcdisk.c +index 9aefb7c..0cc1993 100644 +--- a/grub-core/disk/arc/arcdisk.c ++++ b/grub-core/disk/arc/arcdisk.c +@@ -113,7 +113,11 @@ grub_arcdisk_iterate (grub_disk_dev_iterate_hook_t hook, void *hook_data, + return grub_arc_iterate_devs (grub_arcdisk_iterate_iter, &ctx, 1); + } + ++#ifdef GRUB_CPU_MIPSEL ++#define RAW_SUFFIX "partition(0)" ++#else + #define RAW_SUFFIX "partition(10)" ++#endif + + static grub_err_t + reopen (const char *name, int writable) +diff --git a/include/grub/mips/arc/memory.h b/include/grub/mips/arc/memory.h +index 68b425f..77bb03d 100644 +--- a/include/grub/mips/arc/memory.h ++++ b/include/grub/mips/arc/memory.h +@@ -19,7 +19,11 @@ + #ifndef GRUB_MEMORY_MACHINE_HEADER + #define GRUB_MEMORY_MACHINE_HEADER 1 + ++#ifdef GRUB_CPU_MIPSEL ++#define GRUB_MACHINE_MEMORY_STACK_HIGH 0x806ffff0 ++#else + #define GRUB_MACHINE_MEMORY_STACK_HIGH 0x881ffff0 ++#endif + + #ifndef ASM_FILE + +diff --git a/include/grub/offsets.h b/include/grub/offsets.h +index 1e673d5..c5ef79f 100644 +--- a/include/grub/offsets.h ++++ b/include/grub/offsets.h +@@ -81,7 +81,7 @@ + #define GRUB_KERNEL_MIPS_QEMU_MIPS_TOTAL_MODULE_SIZE 0x08 + + #define GRUB_KERNEL_MIPS_ARC_LINK_ADDR 0x88200000 +- ++#define GRUB_KERNEL_MIPSEL_ARC_LINK_ADDR 0x80700000 + #define GRUB_KERNEL_MIPS_ARC_LINK_ALIGN 32 + + #define GRUB_DECOMPRESSOR_MIPS_ARC_COMPRESSED_SIZE 0x8 +@@ -125,7 +125,11 @@ + + #define GRUB_BOOT_MACHINE_KERNEL_SEG GRUB_OFFSETS_CONCAT (GRUB_BOOT_, GRUB_MACHINE, _KERNEL_SEG) + #define GRUB_MEMORY_MACHINE_UPPER GRUB_OFFSETS_CONCAT (GRUB_MEMORY_, GRUB_MACHINE, _UPPER) ++#if defined (GRUB_MACHINE_ARC) && defined (GRUB_CPU_MIPSEL) ++#define GRUB_MACHINE_LINK_ADDR GRUB_KERNEL_MIPSEL_ARC_LINK_ADDR ++#else + #define GRUB_MACHINE_LINK_ADDR GRUB_OFFSETS_CONCAT (GRUB_KERNEL_, GRUB_MACHINE, _LINK_ADDR) ++#endif + + #define GRUB_DECOMPRESSOR_MACHINE_COMPRESSED_SIZE GRUB_OFFSETS_CONCAT (GRUB_DECOMPRESSOR_, GRUB_MACHINE, _COMPRESSED_SIZE) + #define GRUB_DECOMPRESSOR_MACHINE_UNCOMPRESSED_SIZE GRUB_OFFSETS_CONCAT (GRUB_DECOMPRESSOR_, GRUB_MACHINE, _UNCOMPRESSED_SIZE) +diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in +index 76436a0..effc82a 100644 +--- a/tests/grub_cmd_date.in ++++ b/tests/grub_cmd_date.in +@@ -4,7 +4,8 @@ set -e + . "@builddir@/grub-core/modinfo.sh" + + # OpenBIOS on sparc64 doesn't implement RTC +-if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = sparc64-ieee1275 ]; then ++# mipsel-arc QEMU emulated RTC doesn't play well with firmware ++if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = sparc64-ieee1275 ] || [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = mipsel-arc ]; then + exit 0 + fi + +diff --git a/tests/partmap_test.in b/tests/partmap_test.in +index 0dea98a..ee23f7f 100644 +--- a/tests/partmap_test.in ++++ b/tests/partmap_test.in +@@ -81,6 +81,10 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + mips-arc) + # ARC firmware has bugs which prevent it from accessing hard disk w/o dvh disklabel. + exit 0 ;; ++ mipsel-arc) ++ disk=arc/scsi0/disk0/rdisk0 ++ qemudisk=hda ++ ;; + *) + disk=hd0 + qemudisk=hda +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index b051669..ccea332 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -92,6 +92,15 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + console=console + trim=1 + ;; ++ mipsel-arc) ++ boot=cd ++ qemu=qemu-system-mips64el ++ qemuopts="$qemuopts -M magnum -no-reboot" ++ serial_port=arc/multi0/serial0 ++ console=console ++ halt_cmd=reboot ++ trim=1 ++ ;; + mipsel-qemu_mips) + boot=mipsel_qemu + qemu=qemu-system-mipsel +diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c +index 41f795a..7edf77a 100644 +--- a/util/grub-mkimage.c ++++ b/util/grub-mkimage.c +@@ -400,6 +400,24 @@ struct image_target_desc image_targets[] = + .default_compression = COMPRESSION_NONE + }, + { ++ .dirname = "mipsel-arc", ++ .names = {"mipsel-arc", NULL}, ++ .voidp_sizeof = 4, ++ .bigendian = 0, ++ .id = IMAGE_MIPS_ARC, ++ .flags = PLATFORM_FLAGS_DECOMPRESSORS, ++ .total_module_size = GRUB_KERNEL_MIPS_ARC_TOTAL_MODULE_SIZE, ++ .decompressor_compressed_size = GRUB_DECOMPRESSOR_MIPS_LOONGSON_COMPRESSED_SIZE, ++ .decompressor_uncompressed_size = GRUB_DECOMPRESSOR_MIPS_LOONGSON_UNCOMPRESSED_SIZE, ++ .decompressor_uncompressed_addr = GRUB_DECOMPRESSOR_MIPS_LOONGSON_UNCOMPRESSED_ADDR, ++ .section_align = 1, ++ .vaddr_offset = 0, ++ .link_addr = GRUB_KERNEL_MIPSEL_ARC_LINK_ADDR, ++ .elf_target = EM_MIPS, ++ .link_align = GRUB_KERNEL_MIPS_ARC_LINK_ALIGN, ++ .default_compression = COMPRESSION_NONE ++ }, ++ { + .dirname = "mipsel-qemu_mips", + .names = { "mipsel-qemu_mips-elf", NULL }, + .voidp_sizeof = 4, +@@ -1530,11 +1548,14 @@ generate_image (const char *dir, const char *prefix, + grub_memset (ecoff_img, 0, program_size + sizeof (*head) + sizeof (*section)); + head = (void *) ecoff_img; + section = (void *) (head + 1); +- head->magic = grub_host_to_target16 (0x160); ++ head->magic = image_target->bigendian ? grub_host_to_target16 (0x160) ++ : grub_host_to_target16 (0x166); + head->nsec = grub_host_to_target16 (1); + head->time = grub_host_to_target32 (0); + head->opt = grub_host_to_target16 (0x38); +- head->flags = grub_host_to_target16 (0x207); ++ head->flags = image_target->bigendian ++ ? grub_host_to_target16 (0x207) ++ : grub_host_to_target16 (0x103); + head->magic2 = grub_host_to_target16 (0x107); + head->textsize = grub_host_to_target32 (program_size); + head->entry = grub_host_to_target32 (target_addr); +@@ -1544,6 +1565,11 @@ generate_image (const char *dir, const char *prefix, + section->vaddr = grub_host_to_target32 (target_addr); + section->size = grub_host_to_target32 (program_size); + section->file_offset = grub_host_to_target32 (sizeof (*head) + sizeof (*section)); ++ if (!image_target->bigendian) ++ { ++ section->paddr = grub_host_to_target32 (0xaa60); ++ section->flags = grub_host_to_target32 (0x20); ++ } + memcpy (section + 1, core_img, core_size); + free (core_img); + core_img = ecoff_img; +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index 78d4bec..51e75e8 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -46,6 +46,7 @@ efi64_dir="${libdir}/@PACKAGE@/x86_64-efi" + ia64_dir="${libdir}/@PACKAGE@/ia64-efi" + sparc64_dir="${libdir}/@PACKAGE@/sparc64-ieee1275" + arcs_dir="${libdir}/@PACKAGE@/mips-arc" ++arc_dir="${libdir}/@PACKAGE@/mipsel-arc" + ppc_dir="${libdir}/@PACKAGE@/powerpc-ieee1275" + rom_directory= + override_dir= +@@ -325,6 +326,9 @@ if [ "${override_dir}" = "" ] ; then + if test -e "${arcs_dir}" ; then + process_input_dir "${arcs_dir}" mips-arc + fi ++ if test -e "${arc_dir}" ; then ++ process_input_dir "${arc_dir}" mipsel-arc ++ fi + else + . "${override_dir}"/modinfo.sh + process_input_dir "${override_dir}" ${grub_modinfo_target_cpu}-${grub_modinfo_platform} +@@ -342,6 +346,7 @@ else + i386_ieee1275_dir= + sparc64_dir= + arcs_dir= ++ arc_dir= + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + i386-multiboot) multiboot_dir="${override_dir}" ;; + i386-coreboot) coreboot_dir="${override_dir}" ;; +@@ -356,6 +361,7 @@ else + powerpc-ieee1275) ppc_dir="${override_dir}"; system_area=common ;; + sparc64-ieee1275) sparc64_dir="${override_dir}"; system_area=sparc64 ;; + mips-arc) arcs_dir="${override_dir}"; system_area=arcs ;; ++ mipsel-arc) arc_dir="${override_dir}" ;; + i386-ieee1275) i386_ieee1275_dir="${override_dir}" ;; + esac + fi +@@ -491,6 +497,8 @@ if [ -e "${iso9660_dir}/boot/grub/mips-arc/core.img" ] && [ "$system_area" = arc + grub_mkisofs_arguments="${grub_mkisofs_arguments} -mips-boot /boot/grub/mips-arc/sashARCS -mips-boot /boot/grub/mips-arc/sash -mips-boot /boot/grub/mips-arc/grub" + fi + ++make_image "${arc_dir}" mipsel-arc "${iso9660_dir}/boot/grub/arc.exe" "" ++ + make_image "${mipsel_qemu_dir}" mipsel-qemu_mips-elf "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" "pata" + if [ -e "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" ] && [ -d "${rom_directory}" ]; then + cp "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" "${rom_directory}/mipsel-qemu_mips.elf" +-- +1.8.2.1 + diff --git a/0353-configure.ac-Fix-loongson-conditional.patch b/0353-configure.ac-Fix-loongson-conditional.patch new file mode 100644 index 0000000..c4602fc --- /dev/null +++ b/0353-configure.ac-Fix-loongson-conditional.patch @@ -0,0 +1,38 @@ +From 03797e535701ecd07c1cab6c264b9ce403bf1182 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 26 Apr 2013 11:26:08 +0200 +Subject: [PATCH 353/471] * configure.ac: Fix loongson conditional. + +--- + ChangeLog | 4 ++++ + configure.ac | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 0bc5cc4..f3d1352 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-04-26 Vladimir Serbinenko ++ ++ * configure.ac: Fix loongson conditional. ++ + 2013-04-25 Vladimir Serbinenko + + Enable mipsel-arc. +diff --git a/configure.ac b/configure.ac +index 4af1a03..7d3aeac 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -208,7 +208,7 @@ case "${target_cpu}-$platform" in + TARGET_LINK_ADDR=0x80700000 + TARGET_DECOMPRESSOR_LINK_ADDR=0x80600000 + ;; +- mips*-qemu_mips | mips-loongson) ++ mips*-qemu_mips | mips*-loongson) + TARGET_DECOMPRESSOR_LINK_ADDR=0x80100000 + ;; + esac +-- +1.8.2.1 + diff --git a/0354-util-grub-mkrescue.in-Rename-i386-ieee1275-core-imag.patch b/0354-util-grub-mkrescue.in-Rename-i386-ieee1275-core-imag.patch new file mode 100644 index 0000000..43bda4d --- /dev/null +++ b/0354-util-grub-mkrescue.in-Rename-i386-ieee1275-core-imag.patch @@ -0,0 +1,42 @@ +From cbd871dae8b7dac7d7d5ca5c3d3fbeaf1cafb244 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 26 Apr 2013 11:27:24 +0200 +Subject: [PATCH 354/471] * util/grub-mkrescue.in: Rename i386-ieee1275 + core image due to ofw limited ISO support. + +--- + ChangeLog | 5 +++++ + util/grub-mkrescue.in | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index f3d1352..6e007d5 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-26 Vladimir Serbinenko + ++ * util/grub-mkrescue.in: Rename i386-ieee1275 core image due to ++ ofw limited ISO support. ++ ++2013-04-26 Vladimir Serbinenko ++ + * configure.ac: Fix loongson conditional. + + 2013-04-25 Vladimir Serbinenko +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index 51e75e8..cc072c2 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -408,7 +408,7 @@ fi + # build multiboot core.img + make_image "${multiboot_dir}" i386-multiboot "${iso9660_dir}/boot/grub/i386-multiboot/core.elf" "pata ahci at_keyboard" + +-make_image_fwdisk "${i386_ieee1275_dir}" i386-ieee1275 "${iso9660_dir}/boot/grub/i386-ieee1275/core.elf" "" ++make_image_fwdisk "${i386_ieee1275_dir}" i386-ieee1275 "${iso9660_dir}/boot/grub/ofwx86.elf" "" + + if test -e "${efi64_dir}" || test -e "${efi32_dir}" || test -e "${ia64_dir}"; then + efi_dir=`mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 +-- +1.8.2.1 + diff --git a/0355-Add-test-to-check-that-different-boot-mediums-work.patch b/0355-Add-test-to-check-that-different-boot-mediums-work.patch new file mode 100644 index 0000000..4f61f51 --- /dev/null +++ b/0355-Add-test-to-check-that-different-boot-mediums-work.patch @@ -0,0 +1,655 @@ +From b8845d9e7e3df55d36d9a3440a147f293feb7e81 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 26 Apr 2013 14:33:31 +0200 +Subject: [PATCH 355/471] Add test to check that different boot mediums + work. + +--- + ChangeLog | 4 ++++ + Makefile.am | 38 ++++++++++++++++++------------------- + Makefile.util.def | 48 +++++++++++++++++++++++++++++++++++++++++++++++ + tests/cdboot_test.in | 36 +++++++++++++++++++++++++++++++++++ + tests/fddboot_test.in | 48 +++++++++++++++++++++++++++++++++++++++++++++++ + tests/grub_cmd_date.in | 5 ++--- + tests/gzcompress_test.in | 24 ++++++++++++++++++++++++ + tests/hddboot_test.in | 37 ++++++++++++++++++++++++++++++++++++ + tests/lzocompress_test.in | 24 ++++++++++++++++++++++++ + tests/netboot_test.in | 42 +++++++++++++++++++++++++++++++++++++++++ + tests/partmap_test.in | 8 ++++---- + tests/util/grub-shell.in | 48 ++++++++++++++++++++++++++++++++++++++++------- + tests/xzcompress_test.in | 24 ++++++++++++++++++++++++ + 13 files changed, 353 insertions(+), 33 deletions(-) + create mode 100644 tests/cdboot_test.in + create mode 100644 tests/fddboot_test.in + create mode 100644 tests/gzcompress_test.in + create mode 100644 tests/hddboot_test.in + create mode 100644 tests/lzocompress_test.in + create mode 100644 tests/netboot_test.in + create mode 100644 tests/xzcompress_test.in + +diff --git a/ChangeLog b/ChangeLog +index 6e007d5..19a1cf6 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-26 Vladimir Serbinenko + ++ Add test to check that different boot mediums work. ++ ++2013-04-26 Vladimir Serbinenko ++ + * util/grub-mkrescue.in: Rename i386-ieee1275 core image due to + ofw limited ISO support. + +diff --git a/Makefile.am b/Makefile.am +index 9d38405..9889023 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -261,70 +261,70 @@ kfreebsd-mfsroot.i386.gz: kfreebsd-mfsroot.i386.img + gzip < $< > $@ + + bootcheck-kfreebsd-i386: kfreebsd-mfsroot.i386.gz $(GRUB_PAYLOADS_DIR)/kfreebsd.i386 $(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/mfsroot.gz=kfreebsd-mfsroot.i386.gz --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.i386 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/mfsroot.gz=kfreebsd-mfsroot.i386.gz --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.i386 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + kfreebsd-mfsroot.x86_64.gz: kfreebsd-mfsroot.x86_64.img + gzip < $< > $@ + + bootcheck-kfreebsd-x86_64: kfreebsd-mfsroot.x86_64.gz $(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 $(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=qemu-system-x86_64 --files=/mfsroot.gz=kfreebsd-mfsroot.x86_64.gz --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/mfsroot.gz=kfreebsd-mfsroot.x86_64.gz --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + knetbsd.miniroot-image.i386.gz: knetbsd.miniroot-image.i386.img + gzip < $< > $@ + + bootcheck-knetbsd-i386: knetbsd.miniroot-image.i386.gz $(GRUB_PAYLOADS_DIR)/knetbsd.i386 $(srcdir)/grub-core/tests/boot/knetbsd.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/miniroot.gz=knetbsd.miniroot-image.i386.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.i386 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/miniroot.gz=knetbsd.miniroot-image.i386.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.i386 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-kopenbsd-i386: kopenbsd.image.i386 $(GRUB_PAYLOADS_DIR)/kopenbsd.i386 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/ramdisk=kopenbsd.image.i386 --files=/kopenbsd=$(GRUB_PAYLOADS_DIR)/kopenbsd.i386 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/ramdisk=kopenbsd.image.i386 --files=/kopenbsd=$(GRUB_PAYLOADS_DIR)/kopenbsd.i386 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-kopenbsd-x86_64: kopenbsd.image.x86_64 $(GRUB_PAYLOADS_DIR)/kopenbsd.x86_64 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=qemu-system-x86_64 --files=/ramdisk=kopenbsd.image.x86_64 --files=/kopenbsd=$(GRUB_PAYLOADS_DIR)/kopenbsd.x86_64 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/ramdisk=kopenbsd.image.x86_64 --files=/kopenbsd=$(GRUB_PAYLOADS_DIR)/kopenbsd.x86_64 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + knetbsd.miniroot-image.x86_64.gz: knetbsd.miniroot-image.x86_64.img + gzip < $< > $@ + + bootcheck-knetbsd-x86_64: knetbsd.miniroot-image.x86_64.gz $(GRUB_PAYLOADS_DIR)/knetbsd.x86_64 $(srcdir)/grub-core/tests/boot/knetbsd.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=qemu-system-x86_64 --files=/miniroot.gz=knetbsd.miniroot-image.x86_64.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.x86_64 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/miniroot.gz=knetbsd.miniroot-image.x86_64.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.x86_64 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-linux-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-linux-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-linux-mips: linux-initramfs.mips $(GRUB_PAYLOADS_DIR)/linux.mips $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --files=/initrd=linux-initramfs.mips --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.mips $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --files=/initrd=linux-initramfs.mips --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.mips $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-linux-ppc: linux-initramfs.ppc $(GRUB_PAYLOADS_DIR)/linux.ppc $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --files=/initrd=linux-initramfs.ppc --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.ppc $(srcdir)/grub-core/tests/boot/linux-ppc.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --files=/initrd=linux-initramfs.ppc --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.ppc $(srcdir)/grub-core/tests/boot/linux-ppc.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-linux-mipsel: linux-initramfs.mipsel $(GRUB_PAYLOADS_DIR)/linux.mipsel $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --files=/initrd=linux-initramfs.mipsel --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.mipsel $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --files=/initrd=linux-initramfs.mipsel --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.mipsel $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-linux-loongson: linux-initramfs.loongson $(GRUB_PAYLOADS_DIR)/linux.loongson $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --files=/initrd=linux-initramfs.loongson --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.loongson $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --files=/initrd=linux-initramfs.loongson --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.loongson $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-linux16-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-linux16-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-multiboot: multiboot.elf $(srcdir)/grub-core/tests/boot/multiboot.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/multiboot.elf=multiboot.elf $(srcdir)/grub-core/tests/boot/multiboot.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/multiboot.elf=multiboot.elf $(srcdir)/grub-core/tests/boot/multiboot.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-multiboot2: multiboot2.elf $(srcdir)/grub-core/tests/boot/multiboot2.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/multiboot2.elf=multiboot2.elf $(srcdir)/grub-core/tests/boot/multiboot2.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/multiboot2.elf=multiboot2.elf $(srcdir)/grub-core/tests/boot/multiboot2.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-kfreebsd-aout: kfreebsd.aout $(srcdir)/grub-core/tests/boot/kfreebsd-aout.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/kfreebsd.aout=kfreebsd.aout $(srcdir)/grub-core/tests/boot/kfreebsd-aout.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/kfreebsd.aout=kfreebsd.aout $(srcdir)/grub-core/tests/boot/kfreebsd-aout.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-pc-chainloader: pc-chainloader.bin $(srcdir)/grub-core/tests/boot/pc-chainloader.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/pc-chainloader.bin=pc-chainloader.bin $(srcdir)/grub-core/tests/boot/pc-chainloader.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/pc-chainloader.bin=pc-chainloader.bin $(srcdir)/grub-core/tests/boot/pc-chainloader.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + bootcheck-ntldr: ntldr.bin $(srcdir)/grub-core/tests/boot/ntldr.cfg grub-shell +- timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu=$(QEMU32) --files=/ntldr.bin=ntldr.bin $(srcdir)/grub-core/tests/boot/ntldr.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null ++ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/ntldr.bin=ntldr.bin $(srcdir)/grub-core/tests/boot/ntldr.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + + if COND_i386_efi + BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-knetbsd-x86_64 bootcheck-kfreebsd-x86_64 bootcheck-kfreebsd-i386 +diff --git a/Makefile.util.def b/Makefile.util.def +index 4fa37bc..1b71fd0 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -690,6 +690,54 @@ script = { + + script = { + testcase; ++ name = hddboot_test; ++ common = tests/hddboot_test.in; ++}; ++ ++script = { ++ testcase; ++ name = fddboot_test; ++ common = tests/fddboot_test.in; ++}; ++ ++script = { ++ testcase; ++ name = cdboot_test; ++ common = tests/cdboot_test.in; ++}; ++ ++script = { ++ testcase; ++ name = netboot_test; ++ common = tests/netboot_test.in; ++}; ++ ++script = { ++ testcase; ++ name = pseries_test; ++ common = tests/pseries_test.in; ++}; ++ ++script = { ++ testcase; ++ name = xzcompress_test; ++ common = tests/xzcompress_test.in; ++}; ++ ++script = { ++ testcase; ++ name = gzcompress_test; ++ common = tests/gzcompress_test.in; ++}; ++ ++script = { ++ testcase; ++ name = lzocompress_test; ++ common = tests/lzocompress_test.in; ++}; ++ ++script = { ++ testcase; + name = grub_cmd_echo; + common = tests/grub_cmd_echo.in; + }; +diff --git a/tests/cdboot_test.in b/tests/cdboot_test.in +new file mode 100644 +index 0000000..d9a5fb8 +--- /dev/null ++++ b/tests/cdboot_test.in +@@ -0,0 +1,36 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # Flash targets ++ i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) ++ exit 0;; ++ # FIXME: currently grub-shell uses only -kernel for loongson ++ mipsel-loongson) ++ exit 0;; ++ # FIXME: OFW fails to open CD-ROM ++ i386-ieee1275) ++ exit 0;; ++esac ++ ++if [ "$(echo hello | "${grubshell}" --boot=cd)" != "Hello World" ]; then ++ exit 1 ++fi +diff --git a/tests/fddboot_test.in b/tests/fddboot_test.in +new file mode 100644 +index 0000000..7734025 +--- /dev/null ++++ b/tests/fddboot_test.in +@@ -0,0 +1,48 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # Flash targets ++ i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) ++ exit 0;; ++ # FIXME: currently grub-shell uses only -kernel for loongson ++ mipsel-loongson) ++ exit 0;; ++ # FIXME: We don't support EFI floppy boot in grub-mkrescue ++ *-efi) ++ exit 0;; ++ # FIXME: no floppy support ++ i386-multiboot) ++ exit 0;; ++ # FIXME: QEMU firmware crashes when trying to boot from floppy ++ sparc64-ieee1275) ++ exit 0;; ++ # FIXME: QEMU doesn't emulate SCSI floppies ++ mipsel-arc | mips-arc) ++ exit 0;; ++ # powerpc doesn't boot from floppy except OldWorld Macs which we don't support anyway ++ powerpc-ieee1275) ++ exit 0;; ++esac ++ ++if [ "$(echo hello | "${grubshell}" --boot=fd --mkrescue-arg="--compress=xz --fonts= --locales= --themes=")" != "Hello World" ]; then ++ exit 1 ++fi +diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in +index effc82a..0417c67 100644 +--- a/tests/grub_cmd_date.in ++++ b/tests/grub_cmd_date.in +@@ -3,9 +3,8 @@ set -e + + . "@builddir@/grub-core/modinfo.sh" + +-# OpenBIOS on sparc64 doesn't implement RTC +-# mipsel-arc QEMU emulated RTC doesn't play well with firmware +-if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = sparc64-ieee1275 ] || [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = mipsel-arc ]; then ++# FIXME: OpenBIOS on sparc64 doesn't implement RTC ++if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = sparc64-ieee1275 ]; then + exit 0 + fi + +diff --git a/tests/gzcompress_test.in b/tests/gzcompress_test.in +new file mode 100644 +index 0000000..5cc352e +--- /dev/null ++++ b/tests/gzcompress_test.in +@@ -0,0 +1,24 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++if [ "$(echo hello | "${grubshell}" --mkrescue-arg=--compress=gz)" != "Hello World" ]; then ++ exit 1 ++fi +diff --git a/tests/hddboot_test.in b/tests/hddboot_test.in +new file mode 100644 +index 0000000..e76f996 +--- /dev/null ++++ b/tests/hddboot_test.in +@@ -0,0 +1,37 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # Flash targets ++ i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) ++ exit 0;; ++ # FIXME: currently grub-shell uses only -kernel for loongson ++ mipsel-loongson) ++ exit 0;; ++ # FIXME: OVMF skips HDDs for automatic boot and has no USB support ++ *-efi) ++ exit 0;; ++esac ++ ++if [ "$(echo hello | "${grubshell}" --boot=hd)" != "Hello World" ]; then ++ exit 1 ++fi ++ +diff --git a/tests/lzocompress_test.in b/tests/lzocompress_test.in +new file mode 100644 +index 0000000..54428c3 +--- /dev/null ++++ b/tests/lzocompress_test.in +@@ -0,0 +1,24 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++if [ "$(echo hello | "${grubshell}" --mkrescue-arg=--compress=lzo)" != "Hello World" ]; then ++ exit 1 ++fi +diff --git a/tests/netboot_test.in b/tests/netboot_test.in +new file mode 100644 +index 0000000..8e3f8c9 +--- /dev/null ++++ b/tests/netboot_test.in +@@ -0,0 +1,42 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # Flash targets ++ i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) ++ exit 0;; ++ # FIXME: currently grub-shell uses only -kernel for loongson ++ mipsel-loongson) ++ exit 0;; ++ # FIXME: no rtl8139 support ++ i386-multiboot) ++ exit 0;; ++ # FIXME: We don't fully support netboot on ARC ++ *-arc) ++ exit 0;; ++ # FIXME: Many QEMU firmware have no netboot capability ++ *-efi | i386-ieee1275 | powerpc-ieee1275 | sparc64-ieee1275) ++ exit 0;; ++esac ++ ++if [ "$(echo hello | "${grubshell}" --boot=net)" != "Hello World" ]; then ++ exit 1 ++fi +diff --git a/tests/partmap_test.in b/tests/partmap_test.in +index ee23f7f..b222fa1 100644 +--- a/tests/partmap_test.in ++++ b/tests/partmap_test.in +@@ -63,23 +63,23 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + powerpc-ieee1275) + disk=ieee1275//pci@80000000/mac-io@4/ata-3@20000/disk@0 + qemudisk=hda +- # QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. ++ # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; + sparc64-ieee1275) + disk=ieee1275//pci@1fe\,0/pci-ata@5/ide0@500/disk@0 + qemudisk=hda +- # QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. ++ # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; + i386-ieee1275) + disk=ieee1275/d + qemudisk=hdb +- # QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. ++ # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; + mips-arc) +- # ARC firmware has bugs which prevent it from accessing hard disk w/o dvh disklabel. ++ # FIXME: ARC firmware has bugs which prevent it from accessing hard disk w/o dvh disklabel. + exit 0 ;; + mipsel-arc) + disk=arc/scsi0/disk0/rdisk0 +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index ccea332..fc52e7b 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -41,11 +41,13 @@ Run GRUB script in a Qemu instance. + + -h, --help print this message and exit + -v, --version print the version information and exit +- --boot=[fd|hd|cd|net] boot method for Qemu instance ++ --boot=[fd|hd|cd|net] boot method for Qemu instance + --modules=MODULES pre-load specified modules MODULES + --qemu=FILE Name of qemu binary + --qemu-opts=OPTIONS extra options to pass to Qemu instance + --files=FILES add files to the image ++ --mkrescue-arg=ARGS additional arguments to grub-mkrescue ++ --timeout=SECONDS set timeout + --trim trim firmware output + + $0 runs input GRUB script or SOURCE file in a Qemu instance and prints +@@ -60,6 +62,7 @@ qemuopts="${GRUB_QEMU_OPTS}" + serial_port=com0 + serial_null= + halt_cmd=halt ++pseries=n + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + powerpc-ieee1275) + boot=cd +@@ -67,6 +70,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + console=console + serial_port=escc-ch-a + serial_null="-serial null" ++ netbootext=elf + ;; + + sparc64-ieee1275) +@@ -139,7 +143,9 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + i386-pc) + boot=cd + qemu=qemu-system-i386 +- console=console;; ++ console=console ++ netbootext=0 ++ ;; + + i386-efi) + qemu=qemu-system-i386 +@@ -159,6 +165,8 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + console=console;; + esac + ++timeout=60 ++ + # Check the arguments. + for option in "$@"; do + case "$option" in +@@ -177,11 +185,24 @@ for option in "$@"; do + --files=*) + fls=`echo "$option" | sed -e 's/--files=//' -e 's/,/ /g'` + files="$files $fls" ;; ++ --mkrescue-arg=*) ++ mkr=`echo "$option" | sed -e 's/--mkrescue-arg=//' -e 's/,/ /g'` ++ mkrescue_args="$mkrescue_args $mkr" ;; + --qemu=*) + qemu=`echo "$option" | sed -e 's/--qemu=//' -e 's/,/ /g'`;; ++ --pseries) ++ qemu=qemu-system-ppc64 ++ serial_port=ieee1275/hvterm ++ serial_null= ++ qemuopts="$qemuopts -no-reboot" ++ trim=1 ++ ;; + --qemu-opts=*) + qs=`echo "$option" | sed -e 's/--qemu-opts=//'` + qemuopts="$qemuopts $qs" ;; ++ --timeout=*) ++ timeout=`echo "$option" | sed -e 's/--timeout=//'` ++ ;; + --boot=*) + dev=`echo "$option" | sed -e 's/--boot=//'` + if [ "$dev" = "fd" ] ; then boot=fd; +@@ -260,12 +281,16 @@ echo "${halt_cmd}" >>${cfgfile} + isofile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 + if [ x$boot != xnet ]; then + pkgdatadir="@builddir@" sh "@builddir@/grub-mkrescue" "--grub-mkimage=${builddir}/grub-mkimage" "--grub-render-label=${builddir}/grub-render-label" "--output=${isofile}" "--override-directory=${builddir}/grub-core" \ +- --rom-directory="${rom_directory}" \ ++ --rom-directory="${rom_directory}" ${mkrescue_args} \ + "/boot/grub/grub.cfg=${cfgfile}" "/boot/grub/testcase.cfg=${source}" \ + ${files} >/dev/null 2>&1 + fi + if [ x$boot = xhd ]; then +- device=hda ++ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = mips-arc ]; then ++ device=hdb ++ else ++ device=hda ++ fi + bootdev="-boot c" + fi + if [ x$boot = xcd ]; then +@@ -305,6 +330,15 @@ if [ x$boot = xcoreboot ]; then + device=cdrom + fi + ++if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = mipsel-arc ]; then ++ case "$boot" in ++ hd) ++ bootdev="-global ds1225y.filename=$GRUB_QEMU_MAGNUM_NVRAM_DIR/disk" ;; ++ *) ++ bootdev="-global ds1225y.filename=$GRUB_QEMU_MAGNUM_NVRAM_DIR/cdrom";; ++ esac ++fi ++ + do_trim () + { + if [ $trim = 1 ]; then +@@ -316,12 +350,12 @@ do_trim () + + if [ x$boot = xnet ]; then + netdir=`mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 +- pkgdatadir="@builddir@" sh "@builddir@/grub-mknetdir" "--grub-mkimage=${builddir}/grub-mkimage" "--directory=${builddir}/grub-core" "--net-directory=$netdir" ++ pkgdatadir="@builddir@" sh "@builddir@/grub-mknetdir" "--grub-mkimage=${builddir}/grub-mkimage" "--directory=${builddir}/grub-core" "--net-directory=$netdir" ${mkrescue_args} > /dev/null + cp "${cfgfile}" "$netdir/boot/grub/grub.cfg" + cp "${source}" "$netdir/boot/grub/testcase.cfg" +- "${qemu}" ${qemuopts} -nographic ${serial_null} -serial file:/dev/stdout -monitor file:/dev/null -boot n -net "user,tftp=$netdir,bootfile=/boot/grub/${grub_modinfo_target_cpu}-${grub_modinfo_platform}/core.0" -net nic | cat | tr -d "\r" | do_trim ++ timeout -s KILL $timeout "${qemu}" ${qemuopts} -nographic ${serial_null} -serial file:/dev/stdout -monitor file:/dev/null -boot n -net "user,tftp=$netdir,bootfile=/boot/grub/${grub_modinfo_target_cpu}-${grub_modinfo_platform}/core.$netbootext" -net nic | cat | tr -d "\r" | do_trim + else +- "${qemu}" ${qemuopts} -nographic ${serial_null} -serial file:/dev/stdout -monitor file:/dev/null -${device} ${isofile} ${bootdev} | cat | tr -d "\r" | do_trim ++ timeout -s KILL $timeout "${qemu}" ${qemuopts} -nographic ${serial_null} -serial file:/dev/stdout -monitor file:/dev/null -${device} ${isofile} ${bootdev} | cat | tr -d "\r" | do_trim + fi + rm -f "${isofile}" "${imgfile}" + rm -rf "${rom_directory}" +diff --git a/tests/xzcompress_test.in b/tests/xzcompress_test.in +new file mode 100644 +index 0000000..63f5fd1 +--- /dev/null ++++ b/tests/xzcompress_test.in +@@ -0,0 +1,24 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++if [ "$(echo hello | "${grubshell}" --mkrescue-arg=--compress=xz)" != "Hello World" ]; then ++ exit 1 ++fi +-- +1.8.2.1 + diff --git a/0355-for-ppc-include-all-modules-in-the-core-image.patch b/0355-for-ppc-include-all-modules-in-the-core-image.patch deleted file mode 100644 index f08695d..0000000 --- a/0355-for-ppc-include-all-modules-in-the-core-image.patch +++ /dev/null @@ -1,332 +0,0 @@ -From 3c4e4115b161354823e6b6a6f6c9da2fa3f3962c Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Mon, 15 Oct 2012 17:21:01 -0300 -Subject: [PATCH 355/364] for ppc, include all modules in the core image - -This patch implements the solution suggested by Gustavo Luiz Duarte -: - -Adding more modules to be built-in to the grub core ELF is easy. It is a -parameter passed by grub2-install to grub2-mkimage. However, there is a downside -on adding many modules to the core ELF: they are fully initialized in the grub's -first stage. It means you could hit a bug on a module you don't need and end up -with a non-bootable system. - -Another downside is that you wouldn't get updates for these built-in modules, as -updating the grub2 package only updates the modules residing in /boot and not -the grub core ELF in the PReP partition. - -A proper solution would be to add to grub the ability of having built-in -*inactive* modules which would be loaded and initialized only on demand (i.e. -explicitly calling the insmod command). - -This patch fix this bugzilla: -https://bugzilla.redhat.com/show_bug.cgi?id=866559 ---- - grub-core/kern/corecmd.c | 3 ++ - grub-core/kern/dl.c | 67 ++++++++++++++++++++++++++++++++++++++++++--- - include/grub/dl.h | 1 + - include/grub/kernel.h | 1 + - include/grub/util/resolve.h | 5 ++++ - util/grub-mkimage.c | 37 ++++++++++++++++++++++++- - util/resolve.c | 57 ++++++++++++++++++++++++++++++++++++++ - 7 files changed, 166 insertions(+), 5 deletions(-) - -diff --git a/grub-core/kern/corecmd.c b/grub-core/kern/corecmd.c -index cfab676..a4465eb 100644 ---- a/grub-core/kern/corecmd.c -+++ b/grub-core/kern/corecmd.c -@@ -83,6 +83,9 @@ grub_core_cmd_insmod (struct grub_command *cmd __attribute__ ((unused)), - else - mod = grub_dl_load (argv[0]); - -+ if (!mod) -+ grub_dl_load_core_by_name (argv[0]); -+ - if (mod) - grub_dl_ref (mod); - -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 570be12..fe46aa4 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - /* Platforms where modules are in a readonly area of memory. */ - #if defined(GRUB_MACHINE_QEMU) -@@ -51,6 +52,7 @@ - #pragma GCC diagnostic ignored "-Wcast-align" - - grub_dl_t grub_dl_head = 0; -+char grub_use_stale_modules = 0; - - grub_err_t - grub_dl_add (grub_dl_t mod); -@@ -668,6 +670,57 @@ grub_dl_load_core (void *addr, grub_size_t size) - return mod; - } - -+/* Load a module from core using a symbolic name. */ -+grub_dl_t -+grub_dl_load_core_by_name (const char *name) -+{ -+ struct grub_module_header *header; -+ grub_dl_t mod; -+ char *module_addr; -+ -+ mod = (grub_dl_t) grub_zalloc (sizeof (*mod)); -+ if (! mod) -+ return 0; -+ -+ grub_use_stale_modules = 1; -+ -+ FOR_MODULES (header) -+ { -+ /* Not an ELF module, skip. */ -+ if ((header->type != OBJ_TYPE_ELF) && -+ (header->type != OBJ_TYPE_ELF_STALE)) -+ continue; -+ -+ module_addr = (char *) header + sizeof (struct grub_module_header); -+ grub_dl_resolve_name (mod, (Elf_Ehdr *) module_addr); -+ -+ if (grub_strcmp(name, mod->name) == 0) -+ { -+ grub_printf ("WARNING: You are using the built-in '%s' module!\n", name); -+ -+ mod = grub_dl_load_core ((char *) header + sizeof (struct grub_module_header), -+ (header->size - sizeof (struct grub_module_header))); -+ -+ break; -+ } -+ else -+ mod = 0; -+ } -+ -+ if (! mod) -+ return 0; -+ else -+ { -+ if (grub_errno == GRUB_ERR_IO) -+ grub_errno = GRUB_ERR_NONE; -+ } -+ -+ if (grub_strcmp (mod->name, name) != 0) -+ grub_error (GRUB_ERR_BAD_MODULE, "mismatched names"); -+ -+ return mod; -+} -+ - /* Load a module from the file FILENAME. */ - grub_dl_t - grub_dl_load_file (const char *filename) -@@ -740,13 +793,19 @@ grub_dl_load (const char *name) - return 0; - } - -+ /* First, try to load module from the grub directory */ - filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM "/%s.mod", - grub_dl_dir, name); -- if (! filename) -- return 0; -+ if (filename) -+ { -+ mod = grub_dl_load_file (filename); -+ grub_free (filename); -+ } - -- mod = grub_dl_load_file (filename); -- grub_free (filename); -+ /* If the module isn't loaded, check if there is a stale module available and -+ * use it*/ -+ if (! mod && grub_use_stale_modules) -+ mod = grub_dl_load_core_by_name (name); - - if (! mod) - return 0; -diff --git a/include/grub/dl.h b/include/grub/dl.h -index 3119978..30f12f9 100644 ---- a/include/grub/dl.h -+++ b/include/grub/dl.h -@@ -181,6 +181,7 @@ typedef struct grub_dl *grub_dl_t; - grub_dl_t grub_dl_load_file (const char *filename); - grub_dl_t EXPORT_FUNC(grub_dl_load) (const char *name); - grub_dl_t grub_dl_load_core (void *addr, grub_size_t size); -+grub_dl_t grub_dl_load_core_by_name (const char *name); - int EXPORT_FUNC(grub_dl_unload) (grub_dl_t mod); - void grub_dl_unload_unneeded (void); - int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod); -diff --git a/include/grub/kernel.h b/include/grub/kernel.h -index 73ea416..e837b1f 100644 ---- a/include/grub/kernel.h -+++ b/include/grub/kernel.h -@@ -25,6 +25,7 @@ - enum - { - OBJ_TYPE_ELF, -+ OBJ_TYPE_ELF_STALE, - OBJ_TYPE_MEMDISK, - OBJ_TYPE_CONFIG, - OBJ_TYPE_PREFIX, -diff --git a/include/grub/util/resolve.h b/include/grub/util/resolve.h -index f42df32..1d0252c 100644 ---- a/include/grub/util/resolve.h -+++ b/include/grub/util/resolve.h -@@ -32,4 +32,9 @@ grub_util_resolve_dependencies (const char *prefix, - const char *dep_list_file, - char *modules[]); - -+struct grub_util_path_list * -+grub_util_create_complementary_module_list (const char *prefix, -+ const char *dep_list_file, -+ struct grub_util_path_list *path_list); -+ - #endif /* ! GRUB_UTIL_RESOLVE_HEADER */ -diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c -index 41f795a..fa601ec 100644 ---- a/util/grub-mkimage.c -+++ b/util/grub-mkimage.c -@@ -729,7 +729,7 @@ generate_image (const char *dir, const char *prefix, - size_t prefix_size = 0; - char *kernel_path; - size_t offset; -- struct grub_util_path_list *path_list, *p, *next; -+ struct grub_util_path_list *path_list, *path_list_comp = 0, *p, *next; - grub_size_t bss_size; - grub_uint64_t start_address; - void *rel_section = 0; -@@ -745,6 +745,10 @@ generate_image (const char *dir, const char *prefix, - - path_list = grub_util_resolve_dependencies (dir, "moddep.lst", mods); - -+ if (image_target->id == IMAGE_PPC) -+ path_list_comp = grub_util_create_complementary_module_list (dir, -+ "moddep.lst", path_list); -+ - kernel_path = grub_util_get_path (dir, "kernel.img"); - - if (image_target->voidp_sizeof == 8) -@@ -791,6 +795,10 @@ generate_image (const char *dir, const char *prefix, - total_module_size += (ALIGN_ADDR (grub_util_get_image_size (p->name)) - + sizeof (struct grub_module_header)); - -+ for (p = path_list_comp; p; p = p->next) -+ total_module_size += (ALIGN_ADDR (grub_util_get_image_size (p->name)) -+ + sizeof (struct grub_module_header)); -+ - grub_util_info ("the total module size is 0x%llx", - (unsigned long long) total_module_size); - -@@ -865,6 +873,25 @@ generate_image (const char *dir, const char *prefix, - offset += mod_size; - } - -+ for (p = path_list_comp; p; p = p->next) -+ { -+ struct grub_module_header *header; -+ size_t mod_size, orig_size; -+ -+ orig_size = grub_util_get_image_size (p->name); -+ mod_size = ALIGN_ADDR (orig_size); -+ -+ header = (struct grub_module_header *) (kernel_img + offset); -+ memset (header, 0, sizeof (struct grub_module_header)); -+ header->type = grub_host_to_target32 (OBJ_TYPE_ELF_STALE); -+ header->size = grub_host_to_target32 (mod_size + sizeof (*header)); -+ offset += sizeof (*header); -+ memset (kernel_img + offset + orig_size, 0, mod_size - orig_size); -+ -+ grub_util_load_image (p->name, kernel_img + offset); -+ offset += mod_size; -+ } -+ - { - size_t i; - for (i = 0; i < npubkeys; i++) -@@ -1714,6 +1741,14 @@ generate_image (const char *dir, const char *prefix, - free (path_list); - path_list = next; - } -+ -+ while (path_list_comp) -+ { -+ next = path_list_comp->next; -+ free ((void *) path_list_comp->name); -+ free (path_list_comp); -+ path_list_comp = next; -+ } - } - - -diff --git a/util/resolve.c b/util/resolve.c -index 1af24e6..997db99 100644 ---- a/util/resolve.c -+++ b/util/resolve.c -@@ -271,3 +271,60 @@ grub_util_resolve_dependencies (const char *prefix, - return prev; - } - } -+ -+struct grub_util_path_list * -+grub_util_create_complementary_module_list (const char *prefix, -+ const char *dep_list_file, -+ struct grub_util_path_list *path_list) -+{ -+ char *path; -+ FILE *fp; -+ struct grub_util_path_list *path_list_comp = 0; -+ struct grub_util_path_list *new_path; -+ char skip; -+ -+ path = grub_util_get_path (prefix, dep_list_file); -+ fp = fopen (path, "r"); -+ if (! fp) -+ grub_util_error (_("cannot open `%s': %s"), path, strerror (errno)); -+ -+ while (fgets (buf, sizeof (buf), fp)) -+ { -+ char *p; -+ struct grub_util_path_list *pl; -+ -+ skip = 0; -+ -+ /* Get the target name. */ -+ p = strchr (buf, ':'); -+ if (! p) -+ grub_util_error (_("invalid line format: %s"), buf); -+ -+ *p++ = '\0'; -+ -+ /* kernel is not a module */ -+ if (strcmp(buf, "kernel") == 0) -+ continue; -+ -+ /* Check if the module is already in the core. */ -+ for (pl = path_list; pl; pl = pl->next) -+ { -+ if (strcmp(buf, get_module_name(pl->name)) == 0) -+ { -+ skip = 1; -+ break; -+ } -+ } -+ -+ if (skip) -+ continue; -+ -+ /* Add the new path. */ -+ new_path = (struct grub_util_path_list *) xmalloc (sizeof (*new_path)); -+ new_path->name = get_module_path (prefix, buf); -+ new_path->next = path_list_comp; -+ path_list_comp = new_path; -+ } -+ -+ return path_list_comp; -+} --- -1.8.1.4 - diff --git a/0356-tests-pseries_test.in-New-test.patch b/0356-tests-pseries_test.in-New-test.patch new file mode 100644 index 0000000..342777e --- /dev/null +++ b/0356-tests-pseries_test.in-New-test.patch @@ -0,0 +1,71 @@ +From 94e54563a91a631e83b4e504adec11c8841d8860 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 26 Apr 2013 19:09:55 +0200 +Subject: [PATCH 356/471] * tests/pseries_test.in: New test. + +--- + ChangeLog | 4 ++++ + tests/pseries_test.in | 37 +++++++++++++++++++++++++++++++++++++ + 2 files changed, 41 insertions(+) + create mode 100644 tests/pseries_test.in + +diff --git a/ChangeLog b/ChangeLog +index 19a1cf6..5ddb7a8 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-26 Vladimir Serbinenko + ++ * tests/pseries_test.in: New test. ++ ++2013-04-26 Vladimir Serbinenko ++ + Add test to check that different boot mediums work. + + 2013-04-26 Vladimir Serbinenko +diff --git a/tests/pseries_test.in b/tests/pseries_test.in +new file mode 100644 +index 0000000..86a396a +--- /dev/null ++++ b/tests/pseries_test.in +@@ -0,0 +1,37 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" != powerpc-ieee1275 ]; then ++ exit 0 ++fi ++ ++if [ "$(echo hello | "${grubshell}" --pseries --timeout 180 --boot=cd)" != "Hello World" ]; then ++ exit 1 ++fi ++ ++if [ "$(echo hello | "${grubshell}" --pseries --timeout 180 --boot=hd)" != "Hello World" ]; then ++ exit 1 ++fi ++ ++# FIXME: workaround SLOF bugs ++#if [ "$(echo hello | "${grubshell}" --pseries --timeout 180 --boot=net)" != "Hello World" ]; then ++# exit 1 ++#fi +-- +1.8.2.1 + diff --git a/0357-util-getroot.c-exec_pipe-Put-proper-if-s-so-that-its.patch b/0357-util-getroot.c-exec_pipe-Put-proper-if-s-so-that-its.patch new file mode 100644 index 0000000..e519978 --- /dev/null +++ b/0357-util-getroot.c-exec_pipe-Put-proper-if-s-so-that-its.patch @@ -0,0 +1,80 @@ +From 189c134b407a9addc5f8cc4b7c95042820103c0e Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 26 Apr 2013 23:41:13 +0200 +Subject: [PATCH 357/471] * util/getroot.c (exec_pipe): Put proper #if's + so that its users don't compile when not needed. + +--- + ChangeLog | 5 +++++ + util/getroot.c | 11 ++++++----- + 2 files changed, 11 insertions(+), 5 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 5ddb7a8..4975a2c 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-26 Vladimir Serbinenko + ++ * util/getroot.c (exec_pipe): Put proper #if's so that its users don't ++ compile when not needed. ++ ++2013-04-26 Vladimir Serbinenko ++ + * tests/pseries_test.in: New test. + + 2013-04-26 Vladimir Serbinenko +diff --git a/util/getroot.c b/util/getroot.c +index ecf7ce1..2ad8a55 100644 +--- a/util/getroot.c ++++ b/util/getroot.c +@@ -220,9 +220,6 @@ xgetcwd (void) + + #if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__GNU__) + +-#if (defined (__linux__) || \ +- !defined (HAVE_LIBZFS) || !defined (HAVE_LIBNVPAIR)) +- + static pid_t + exec_pipe (char **argv, int *fd) + { +@@ -268,8 +265,6 @@ exec_pipe (char **argv, int *fd) + } + } + +-#endif +- + static char ** + find_root_devices_from_poolname (char *poolname) + { +@@ -1322,6 +1317,8 @@ grub_util_get_dev_abstraction (const char *os_dev) + return GRUB_DEV_ABSTRACTION_NONE; + } + ++#if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__GNU__) ++ + static void + pull_lvm_by_command (const char *os_dev) + { +@@ -1392,6 +1389,8 @@ out: + free (buf); + } + ++#endif ++ + #ifdef __linux__ + static char * + get_mdadm_uuid (const char *os_dev) +@@ -1615,7 +1614,9 @@ grub_util_pull_device (const char *os_dev) + break; + + case GRUB_DEV_ABSTRACTION_LVM: ++#if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__GNU__) + pull_lvm_by_command (os_dev); ++#endif + /* Fallthrough in case that lvm-tools are unavailable. */ + case GRUB_DEV_ABSTRACTION_LUKS: + #ifdef HAVE_DEVICE_MAPPER +-- +1.8.2.1 + diff --git a/0358-grub-core-Makefile.core.def-Fix-grub-emu-and-grub-em.patch b/0358-grub-core-Makefile.core.def-Fix-grub-emu-and-grub-em.patch new file mode 100644 index 0000000..300c5d2 --- /dev/null +++ b/0358-grub-core-Makefile.core.def-Fix-grub-emu-and-grub-em.patch @@ -0,0 +1,55 @@ +From ea051678fa221e5c4e527bd97c408605ecaca3a0 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 26 Apr 2013 23:47:46 +0200 +Subject: [PATCH 358/471] * grub-core/Makefile.core.def: Fix grub-emu + and grub-emu-lite sources. + +--- + ChangeLog | 4 ++++ + grub-core/Makefile.core.def | 8 ++++---- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 4975a2c..f554ba8 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-26 Vladimir Serbinenko + ++ * grub-core/Makefile.core.def: Fix grub-emu and grub-emu-lite sources. ++ ++2013-04-26 Vladimir Serbinenko ++ + * util/getroot.c (exec_pipe): Put proper #if's so that its users don't + compile when not needed. + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index ad912a6..e2ecff1 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -248,9 +248,9 @@ program = { + emu = kern/emu/full.c; + emu_nodist = grub_emu_init.c; + +- ldadd = 'kernel.img$(EXEEXT)'; ++ ldadd = 'kernel.exec$(EXEEXT)'; + ldadd = '$(MODULE_FILES)'; +- ldadd = '$(LIBUTIL) $(LIBCURSES) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; ++ ldadd = 'gnulib/libgnu.a $(LIBCURSES) $(LIBINTL) $(LIBUTIL) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; + + enable = emu; + }; +@@ -261,8 +261,8 @@ program = { + emu = kern/emu/lite.c; + emu_nodist = symlist.c; + +- ldadd = 'kernel.img$(EXEEXT)'; +- ldadd = '$(LIBUTIL) $(LIBCURSES) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; ++ ldadd = 'kernel.exec$(EXEEXT)'; ++ ldadd = 'gnulib/libgnu.a $(LIBCURSES) $(LIBINTL) $(LIBUTIL) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; + + enable = emu; + }; +-- +1.8.2.1 + diff --git a/0359-Replace-libcurses-with-our-own-vt100-handling-for-th.patch b/0359-Replace-libcurses-with-our-own-vt100-handling-for-th.patch new file mode 100644 index 0000000..1075231 --- /dev/null +++ b/0359-Replace-libcurses-with-our-own-vt100-handling-for-th.patch @@ -0,0 +1,603 @@ +From 1314381c929134bfe80ecf100571875dcc35adff Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 00:02:23 +0200 +Subject: [PATCH 359/471] Replace libcurses with our own vt100 handling + for the ease of testing and decreasing prerequisites. + +--- + ChangeLog | 5 + + INSTALL | 6 +- + configure.ac | 16 --- + docs/grub.texi | 45 +++--- + gentpl.py | 2 +- + grub-core/Makefile.am | 1 + + grub-core/Makefile.core.def | 4 +- + grub-core/term/emu/console.c | 329 ++++++++++++++----------------------------- + include/grub/terminfo.h | 2 - + 9 files changed, 146 insertions(+), 264 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index f554ba8..237ca05 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-26 Vladimir Serbinenko + ++ Replace libcurses with our own vt100 handling for the ease of testing ++ and decreasing prerequisites. ++ ++2013-04-26 Vladimir Serbinenko ++ + * grub-core/Makefile.core.def: Fix grub-emu and grub-emu-lite sources. + + 2013-04-26 Vladimir Serbinenko +diff --git a/INSTALL b/INSTALL +index 3333686..a626395 100644 +--- a/INSTALL ++++ b/INSTALL +@@ -23,11 +23,11 @@ On GNU/Linux, you also need: + + * libdevmapper 1.02.34 or later (recommended) + +-To build grub-emu, you need: ++For optional grub-emu features, you need: + +-* ncurses +-* libusb (recommended) + * SDL (recommended) ++* libpciaccess (optional) ++* libusb (optional) + + To build GRUB's graphical terminal (gfxterm), you need: + +diff --git a/configure.ac b/configure.ac +index 7d3aeac..5ff7f25 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -842,22 +842,6 @@ AC_ARG_ENABLE([grub-emu-pci], + [build and install the `grub-emu' debugging utility with PCI support (potentially dangerous) (default=no)])]) + + if test "$platform" = emu; then +- missing_ncurses= +-[# Check for curses libraries.] +- AC_CHECK_LIB([ncurses], [wgetch], [LIBCURSES="-lncurses"], +- [AC_CHECK_LIB([curses], [wgetch], [LIBCURSES="-lcurses"], +- [missing_ncurses=[true]])]) +- AC_SUBST([LIBCURSES]) +-[if [ x"$missing_ncurses" = x ]; then ] +- [# Check for headers.] +- AC_CHECK_HEADERS([ncurses/curses.h], [], +- [AC_CHECK_HEADERS([ncurses.h], [], +- [AC_CHECK_HEADERS([curses.h], [], +- [missing_ncurses=[true]])])]) +-[fi] +-if test x"$missing_ncurses" = xtrue ; then +- AC_MSG_ERROR([grub-emu can't be compiled without ncurses]) +-fi + + if test x"$enable_grub_emu_usb" != xyes ; then + grub_emu_usb_excuse="not enabled" +diff --git a/docs/grub.texi b/docs/grub.texi +index 920a558..754e191 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -4586,26 +4586,35 @@ On normalized ZFS subvolumes filenames out of normalisation are inaccessible. + + @chapter Output terminal + Firmware output console ``console'' on ARC and IEEE1275 are limited to ASCII. ++ + BIOS firmware console and VGA text are limited to ASCII and some pseudographics. ++ + None of above mentioned is appropriate for displaying international and any + unsupported character is replaced with question mark except pseudographics +-which we attempt to approximate with ASCII. EFI console on the other hand +-nominally supports UTF-16 but actual language coverage depends on firmware and +-may be very limited. The encoding used on serial can be chosen with +-@command{terminfo} as either ASCII, UTF-8 or ``visual UTF-8''. Last one is +-against the specification but results in correct rendering of right-to-left +-on some readers which don't have own bidi implementation. When using gfxterm +-or gfxmenu GRUB itself is responsible for rendering the text. In this case +-GRUB is limited by loaded fonts. If fonts contain all required characters +-then bidirectional text, cursive variants and combining marks other than +-enclosing, half (e.g. left half tilde or combining overline) and double ones. +-Ligatures aren't supported though. This should cover European, Middle Eastern +-(if you don't mind lack of lam-alif ligature in Arabic) and East Asian scripts. +-Notable unsupported scripts are Brahmic family and derived as well as +-Mongolian, Tifinagh, Korean Jamo (precomposed characters have no problem) +-and tonal writing (2e5-2e9). GRUB also ignores deprecated (as specified +-in Unicode) characters (e.g. tags). GRUB also doesn't handle so called +-``annotation characters'' If you can complete either of ++which we attempt to approximate with ASCII. ++ ++EFI console on the other hand nominally supports UTF-16 but actual language ++coverage depends on firmware and may be very limited. ++ ++The encoding used on serial can be chosen with @command{terminfo} as ++either ASCII, UTF-8 or ``visual UTF-8''. Last one is against the specification ++but results in correct rendering of right-to-left on some readers which don't ++have own bidi implementation. ++ ++On emu GRUB checks if charset is UTF-8 and uses it if so and uses ASCII ++otherwise. ++ ++When using gfxterm or gfxmenu GRUB itself is responsible for rendering the ++text. In this case GRUB is limited by loaded fonts. If fonts contain all ++required characters then bidirectional text, cursive variants and combining ++marks other than enclosing, half (e.g. left half tilde or combining overline) ++and double ones. Ligatures aren't supported though. This should cover European, ++Middle Eastern (if you don't mind lack of lam-alif ligature in Arabic) and ++East Asian scripts. Notable unsupported scripts are Brahmic family and ++derived as well as Mongolian, Tifinagh, Korean Jamo (precomposed characters ++have no problem) and tonal writing (2e5-2e9). GRUB also ignores deprecated ++(as specified in Unicode) characters (e.g. tags). GRUB also doesn't handle so ++called ``annotation characters'' If you can complete either of + two lists or, better, propose a patch to improve rendering, please contact + developer team. + +@@ -4826,7 +4835,7 @@ and mips-qemu_mips can use only memory up to first hole. + @multitable @columnfractions .20 .20 .20 .20 .20 + @item @tab MIPS qemu @tab emu + @item video @tab no @tab yes +-@item console charset @tab CP437 @tab ASCII ++@item console charset @tab CP437 @tab Unicode (*) + @item network @tab no @tab yes + @item ATA/AHCI @tab yes @tab no + @item AT keyboard @tab yes @tab no +diff --git a/gentpl.py b/gentpl.py +index b159795..8674622 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -57,7 +57,7 @@ GROUPS["videomodules"] = GRUB_PLATFORMS[:]; + for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i) + + # Similar for terminfo +-GROUPS["terminfoinkernel"] = ["mips_loongson", "mips_arc", "mips_qemu_mips" ] + GROUPS["ieee1275"]; ++GROUPS["terminfoinkernel"] = [ "emu", "mips_loongson", "mips_arc", "mips_qemu_mips" ] + GROUPS["ieee1275"]; + GROUPS["terminfomodule"] = GRUB_PLATFORMS[:]; + for i in GROUPS["terminfoinkernel"]: GROUPS["terminfomodule"].remove(i) + +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 07aad50..fa6afcf 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -216,6 +216,7 @@ if COND_emu + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/datetime.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/misc.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/export.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h + if COND_GRUB_EMU_SDL + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h + endif +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index e2ecff1..2a8ac6f 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -250,7 +250,7 @@ program = { + + ldadd = 'kernel.exec$(EXEEXT)'; + ldadd = '$(MODULE_FILES)'; +- ldadd = 'gnulib/libgnu.a $(LIBCURSES) $(LIBINTL) $(LIBUTIL) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; ++ ldadd = 'gnulib/libgnu.a $(LIBINTL) $(LIBUTIL) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; + + enable = emu; + }; +@@ -262,7 +262,7 @@ program = { + emu_nodist = symlist.c; + + ldadd = 'kernel.exec$(EXEEXT)'; +- ldadd = 'gnulib/libgnu.a $(LIBCURSES) $(LIBINTL) $(LIBUTIL) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; ++ ldadd = 'gnulib/libgnu.a $(LIBINTL) $(LIBUTIL) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; + + enable = emu; + }; +diff --git a/grub-core/term/emu/console.c b/grub-core/term/emu/console.c +index 5bd5db1..d61ade1 100644 +--- a/grub-core/term/emu/console.c ++++ b/grub-core/term/emu/console.c +@@ -1,7 +1,7 @@ +-/* console.c -- Ncurses console for GRUB. */ ++/* console.c -- console for GRUB. */ + /* + * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2003,2005,2007,2008 Free Software Foundation, Inc. ++ * Copyright (C) 2013 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -20,274 +20,159 @@ + #include + #include + +-/* For compatibility. */ +-#ifndef A_NORMAL +-# define A_NORMAL 0 +-#endif /* ! A_NORMAL */ +-#ifndef A_STANDOUT +-# define A_STANDOUT 0 +-#endif /* ! A_STANDOUT */ +- +-#include + #include + #include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + +-#if defined(HAVE_NCURSES_CURSES_H) +-# include +-#elif defined(HAVE_NCURSES_H) +-# include +-#elif defined(HAVE_CURSES_H) +-# include +-#else +-#error What the hell? +-#endif +- +-static int grub_console_attr = A_NORMAL; +- +-grub_uint8_t grub_console_cur_color = 7; +- +-static const grub_uint8_t grub_console_standard_color = 0x7; +- +-#define NUM_COLORS 8 +- +-static grub_uint8_t color_map[NUM_COLORS] = +-{ +- COLOR_BLACK, +- COLOR_BLUE, +- COLOR_GREEN, +- COLOR_CYAN, +- COLOR_RED, +- COLOR_MAGENTA, +- COLOR_YELLOW, +- COLOR_WHITE +-}; ++#include + +-static int use_color; ++extern struct grub_terminfo_output_state grub_console_terminfo_output; ++static int original_fl; ++static int saved_orig; ++static struct termios orig_tty; ++static struct termios new_tty; + + static void +-grub_ncurses_putchar (struct grub_term_output *term __attribute__ ((unused)), +- const struct grub_unicode_glyph *c) ++put (struct grub_term_output *term __attribute__ ((unused)), const int c) + { +- addch (c->base | grub_console_attr); +-} ++ char chr = c; + +-static void +-grub_ncurses_setcolorstate (struct grub_term_output *term, +- grub_term_color_state state) +-{ +- switch (state) +- { +- case GRUB_TERM_COLOR_STANDARD: +- grub_console_cur_color = grub_console_standard_color; +- grub_console_attr = A_NORMAL; +- break; +- case GRUB_TERM_COLOR_NORMAL: +- grub_console_cur_color = grub_term_normal_color; +- grub_console_attr = A_NORMAL; +- break; +- case GRUB_TERM_COLOR_HIGHLIGHT: +- grub_console_cur_color = grub_term_highlight_color; +- grub_console_attr = A_STANDOUT; +- break; +- default: +- break; +- } +- +- if (use_color) +- { +- grub_uint8_t fg, bg; +- +- fg = (grub_console_cur_color & 7); +- bg = (grub_console_cur_color >> 4) & 7; +- +- grub_console_attr = (grub_console_cur_color & 8) ? A_BOLD : A_NORMAL; +- color_set ((bg << 3) + fg, 0); +- } ++ write (STDOUT_FILENO, &chr, 1); + } + + static int +-grub_ncurses_getkey (struct grub_term_input *term __attribute__ ((unused))) +-{ +- int c; +- +- wtimeout (stdscr, 100); +- c = getch (); +- +- switch (c) +- { +- case ERR: +- return GRUB_TERM_NO_KEY; +- case KEY_LEFT: +- c = GRUB_TERM_KEY_LEFT; +- break; +- +- case KEY_RIGHT: +- c = GRUB_TERM_KEY_RIGHT; +- break; +- +- case KEY_UP: +- c = GRUB_TERM_KEY_UP; +- break; +- +- case KEY_DOWN: +- c = GRUB_TERM_KEY_DOWN; +- break; +- +- case KEY_IC: +- c = 24; +- break; +- +- case KEY_DC: +- c = GRUB_TERM_KEY_DC; +- break; +- +- case KEY_BACKSPACE: +- /* XXX: For some reason ncurses on xterm does not return +- KEY_BACKSPACE. */ +- case 127: +- c = '\b'; +- break; +- +- case KEY_HOME: +- c = GRUB_TERM_KEY_HOME; +- break; +- +- case KEY_END: +- c = GRUB_TERM_KEY_END; +- break; +- +- case KEY_NPAGE: +- c = GRUB_TERM_KEY_NPAGE; +- break; +- +- case KEY_PPAGE: +- c = GRUB_TERM_KEY_PPAGE; +- break; +- } +- +- return c; +-} +- +-static grub_uint16_t +-grub_ncurses_getxy (struct grub_term_output *term __attribute__ ((unused))) ++readkey (struct grub_term_input *term __attribute__ ((unused))) + { +- int x; +- int y; ++ grub_uint8_t c; ++ ssize_t actual; + +- getyx (stdscr, y, x); +- +- return (x << 8) | y; ++ actual = read (STDIN_FILENO, &c, 1); ++ if (actual > 0) ++ return c; ++ return -1; + } + +-static grub_uint16_t +-grub_ncurses_getwh (struct grub_term_output *term __attribute__ ((unused))) ++static grub_err_t ++grub_console_init_input (struct grub_term_input *term) + { +- int x; +- int y; ++ if (!saved_orig) ++ { ++ original_fl = fcntl (STDIN_FILENO, F_GETFL); ++ fcntl (STDIN_FILENO, F_SETFL, original_fl | O_NONBLOCK); ++ } + +- getmaxyx (stdscr, y, x); ++ saved_orig = 1; + +- return (x << 8) | y; +-} ++ tcgetattr(STDIN_FILENO, &orig_tty); ++ new_tty = orig_tty; ++ new_tty.c_lflag &= ~(ICANON | ECHO); ++ new_tty.c_cc[VMIN] = 1; ++ tcsetattr(STDIN_FILENO, TCSANOW, &new_tty); + +-static void +-grub_ncurses_gotoxy (struct grub_term_output *term __attribute__ ((unused)), +- grub_uint8_t x, grub_uint8_t y) +-{ +- move (y, x); ++ return grub_terminfo_input_init (term); + } + +-static void +-grub_ncurses_cls (struct grub_term_output *term __attribute__ ((unused))) +-{ +- clear (); +- refresh (); +-} +- +-static void +-grub_ncurses_setcursor (struct grub_term_output *term __attribute__ ((unused)), +- int on) +-{ +- curs_set (on ? 1 : 0); +-} +- +-static void +-grub_ncurses_refresh (struct grub_term_output *term __attribute__ ((unused))) ++static grub_err_t ++grub_console_fini_input (struct grub_term_input *term ++ __attribute__ ((unused))) + { +- refresh (); ++ fcntl (STDIN_FILENO, F_SETFL, original_fl); ++ tcsetattr(STDIN_FILENO, TCSANOW, &orig_tty); ++ saved_orig = 0; ++ return GRUB_ERR_NONE; + } + + static grub_err_t +-grub_ncurses_init (struct grub_term_output *term __attribute__ ((unused))) ++grub_console_init_output (struct grub_term_output *term) + { +- initscr (); +- raw (); +- noecho (); +- scrollok (stdscr, TRUE); +- +- nonl (); +- intrflush (stdscr, FALSE); +- keypad (stdscr, TRUE); +- +- if (has_colors ()) ++ struct winsize size; ++ if (ioctl (STDOUT_FILENO, TIOCGWINSZ, &size) >= 0) + { +- start_color (); +- +- if ((COLORS >= NUM_COLORS) && (COLOR_PAIRS >= NUM_COLORS * NUM_COLORS)) +- { +- int i, j, n; +- +- n = 0; +- for (i = 0; i < NUM_COLORS; i++) +- for (j = 0; j < NUM_COLORS; j++) +- init_pair(n++, color_map[j], color_map[i]); +- +- use_color = 1; +- } ++ grub_console_terminfo_output.width = size.ws_col; ++ grub_console_terminfo_output.height = size.ws_row; ++ } ++ else ++ { ++ grub_console_terminfo_output.width = 80; ++ grub_console_terminfo_output.height = 24; + } + +- return 0; +-} ++ grub_terminfo_output_init (term); + +-static grub_err_t +-grub_ncurses_fini (struct grub_term_output *term __attribute__ ((unused))) +-{ +- endwin (); + return 0; + } + + +-static struct grub_term_input grub_ncurses_term_input = ++ ++struct grub_terminfo_input_state grub_console_terminfo_input = ++ { ++ .readkey = readkey ++ }; ++ ++struct grub_terminfo_output_state grub_console_terminfo_output = ++ { ++ .put = put, ++ .width = 80, ++ .height = 24 ++ }; ++ ++static struct grub_term_input grub_console_term_input = + { + .name = "console", +- .getkey = grub_ncurses_getkey, ++ .init = grub_console_init_input, ++ .fini = grub_console_fini_input, ++ .getkey = grub_terminfo_getkey, ++ .data = &grub_console_terminfo_input + }; + +-static struct grub_term_output grub_ncurses_term_output = ++static struct grub_term_output grub_console_term_output = + { + .name = "console", +- .init = grub_ncurses_init, +- .fini = grub_ncurses_fini, +- .putchar = grub_ncurses_putchar, +- .getxy = grub_ncurses_getxy, +- .getwh = grub_ncurses_getwh, +- .gotoxy = grub_ncurses_gotoxy, +- .cls = grub_ncurses_cls, +- .setcolorstate = grub_ncurses_setcolorstate, +- .setcursor = grub_ncurses_setcursor, +- .refresh = grub_ncurses_refresh, +- .flags = GRUB_TERM_CODE_TYPE_ASCII ++ .init = grub_console_init_output, ++ .putchar = grub_terminfo_putchar, ++ .getxy = grub_terminfo_getxy, ++ .getwh = grub_terminfo_getwh, ++ .gotoxy = grub_terminfo_gotoxy, ++ .cls = grub_terminfo_cls, ++ .setcolorstate = grub_terminfo_setcolorstate, ++ .setcursor = grub_terminfo_setcursor, ++ .data = &grub_console_terminfo_output, + }; + + void + grub_console_init (void) + { +- grub_term_register_output ("console", &grub_ncurses_term_output); +- grub_term_register_input ("console", &grub_ncurses_term_input); ++ const char *cs = nl_langinfo (CODESET); ++ if (cs && grub_strcasecmp (cs, "UTF-8")) ++ grub_console_term_output.flags = GRUB_TERM_CODE_TYPE_UTF8_LOGICAL; ++ else ++ grub_console_term_output.flags = GRUB_TERM_CODE_TYPE_ASCII; ++ grub_term_register_input ("console", &grub_console_term_input); ++ grub_term_register_output ("console", &grub_console_term_output); ++ grub_terminfo_init (); ++ grub_terminfo_output_register (&grub_console_term_output, "vt100-color"); + } + + void + grub_console_fini (void) + { +- grub_ncurses_fini (&grub_ncurses_term_output); ++ if (saved_orig) ++ { ++ fcntl (STDIN_FILENO, F_SETFL, original_fl); ++ tcsetattr(STDIN_FILENO, TCSANOW, &orig_tty); ++ } ++ saved_orig = 0; + } +diff --git a/include/grub/terminfo.h b/include/grub/terminfo.h +index 20541a9..2bbae1f 100644 +--- a/include/grub/terminfo.h ++++ b/include/grub/terminfo.h +@@ -82,9 +82,7 @@ grub_err_t EXPORT_FUNC (grub_terminfo_output_register) (struct grub_term_output + const char *type); + grub_err_t EXPORT_FUNC (grub_terminfo_output_unregister) (struct grub_term_output *term); + +-#ifndef GRUB_MACHINE_EMU + void grub_terminfo_init (void); + void grub_terminfo_fini (void); +-#endif + + #endif /* ! GRUB_TERMINFO_HEADER */ +-- +1.8.2.1 + diff --git a/0360-Make-make-check-work-on-emu.patch b/0360-Make-make-check-work-on-emu.patch new file mode 100644 index 0000000..d8c0492 --- /dev/null +++ b/0360-Make-make-check-work-on-emu.patch @@ -0,0 +1,457 @@ +From 02cf7c5e6af716ee3442d387780024c43cf84c5e Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 02:00:16 +0200 +Subject: [PATCH 360/471] Make 'make check' work on emu. + +--- + ChangeLog | 4 +++ + grub-core/commands/parttool.c | 2 +- + grub-core/gensymlist.sh | 2 +- + grub-core/kern/dl.c | 3 +++ + grub-core/kern/emu/full.c | 12 ++------- + grub-core/kern/emu/lite.c | 13 ++------- + grub-core/kern/emu/main.c | 6 ----- + grub-core/normal/main.c | 2 +- + include/grub/emu/misc.h | 2 -- + include/grub/misc.h | 6 ++--- + tests/cdboot_test.in | 2 ++ + tests/fddboot_test.in | 2 ++ + tests/hddboot_test.in | 2 ++ + tests/netboot_test.in | 2 ++ + tests/partmap_test.in | 8 +----- + tests/util/grub-shell.in | 63 ++++++++++++++++++++++++++++++++++++++----- + 16 files changed, 82 insertions(+), 49 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 237ca05..f4306c4 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-26 Vladimir Serbinenko + ++ Make 'make check' work on emu. ++ ++2013-04-26 Vladimir Serbinenko ++ + Replace libcurses with our own vt100 handling for the ease of testing + and decreasing prerequisites. + +diff --git a/grub-core/commands/parttool.c b/grub-core/commands/parttool.c +index 0f9b651..f144c51 100644 +--- a/grub-core/commands/parttool.c ++++ b/grub-core/commands/parttool.c +@@ -179,7 +179,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), + } + + /* Load modules. */ +- if (! grub_no_autoload) ++ if (! grub_no_modules) + { + const char *prefix; + prefix = grub_env_get ("prefix"); +diff --git a/grub-core/gensymlist.sh b/grub-core/gensymlist.sh +index a13d7cc..5beaabd 100644 +--- a/grub-core/gensymlist.sh ++++ b/grub-core/gensymlist.sh +@@ -59,7 +59,7 @@ EOF + | grep -v '^#' \ + | sed -n \ + -e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/ {"\1", \1, 1},/;p;}' \ +- -e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/ {"\1", \&\1, 0},/;p;}' \ ++ -e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/ {"\1", (void *) \&\1, 0},/;p;}' \ + | sort -u + + cat < + #include + ++const int grub_no_modules = 1; ++ + void + grub_register_exported_symbols (void) + { +@@ -44,12 +46,6 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr) + return GRUB_ERR_BAD_MODULE; + } + +-void +-grub_emu_init (void) +-{ +- grub_no_autoload = 1; +-} +- + #if defined (__ia64__) || defined (__powerpc__) + void grub_arch_dl_get_tramp_got_size (const void *ehdr __attribute__ ((unused)), + grub_size_t *tramp, grub_size_t *got) +@@ -66,7 +62,3 @@ grub_arch_dl_init_linker (void) + } + #endif + +-void +-grub_emu_post_init (void) +-{ +-} +diff --git a/grub-core/kern/emu/lite.c b/grub-core/kern/emu/lite.c +index 947c669..00b811b 100644 +--- a/grub-core/kern/emu/lite.c ++++ b/grub-core/kern/emu/lite.c +@@ -21,6 +21,8 @@ + #error "No target cpu type is defined" + #endif + ++const int grub_no_modules = 0; ++ + /* grub-emu-lite supports dynamic module loading, so it won't have any + embedded modules. */ + void +@@ -34,14 +36,3 @@ grub_fini_all (void) + { + return; + } +- +-void +-grub_emu_init (void) +-{ +- return; +-} +- +-void +-grub_emu_post_init (void) +-{ +-} +diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c +index 4a88905..99ef90c 100644 +--- a/grub-core/kern/emu/main.c ++++ b/grub-core/kern/emu/main.c +@@ -55,8 +55,6 @@ static jmp_buf main_env; + /* Store the prefix specified by an argument. */ + static char *root_dev = NULL, *dir = NULL; + +-int grub_no_autoload; +- + grub_addr_t grub_modbase = 0; + + void +@@ -171,7 +169,6 @@ void grub_hostfs_init (void); + void grub_hostfs_fini (void); + void grub_host_init (void); + void grub_host_fini (void); +-void grub_emu_init (void); + + int + main (int argc, char *argv[]) +@@ -208,7 +205,6 @@ main (int argc, char *argv[]) + } + + signal (SIGINT, SIG_IGN); +- grub_emu_init (); + grub_console_init (); + grub_host_init (); + +@@ -219,8 +215,6 @@ main (int argc, char *argv[]) + + grub_hostfs_init (); + +- grub_emu_post_init (); +- + /* Make sure that there is a root device. */ + if (! root_dev) + root_dev = grub_strdup ("host"); +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 9aaa3b2..2f203dd 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -263,7 +263,7 @@ grub_normal_init_page (struct grub_term_output *term) + static void + read_lists (const char *val) + { +- if (! grub_no_autoload) ++ if (! grub_no_modules) + { + read_command_list (val); + read_fs_list (val); +diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h +index 6423eb9..3c9f07e 100644 +--- a/include/grub/emu/misc.h ++++ b/include/grub/emu/misc.h +@@ -44,10 +44,8 @@ + extern int verbosity; + extern const char *program_name; + +-void grub_emu_init (void); + void grub_init_all (void); + void grub_fini_all (void); +-void grub_emu_post_init (void); + + void grub_find_zpool_from_dir (const char *dir, + char **poolname, char **poolfs); +diff --git a/include/grub/misc.h b/include/grub/misc.h +index c953a00..c191c1f 100644 +--- a/include/grub/misc.h ++++ b/include/grub/misc.h +@@ -437,10 +437,10 @@ void grub_halt (void) __attribute__ ((noreturn)); + #endif + + #ifdef GRUB_MACHINE_EMU +-/* Flag to control module autoloading in normal mode. */ +-extern int EXPORT_VAR(grub_no_autoload); ++/* Flag to check if module loading is available. */ ++extern const int EXPORT_VAR(grub_no_modules); + #else +-#define grub_no_autoload 0 ++#define grub_no_modules 0 + #endif + + static inline void +diff --git a/tests/cdboot_test.in b/tests/cdboot_test.in +index d9a5fb8..097964f 100644 +--- a/tests/cdboot_test.in ++++ b/tests/cdboot_test.in +@@ -20,6 +20,8 @@ grubshell=@builddir@/grub-shell + . "@builddir@/grub-core/modinfo.sh" + + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; + # Flash targets + i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) + exit 0;; +diff --git a/tests/fddboot_test.in b/tests/fddboot_test.in +index 7734025..0866fdc 100644 +--- a/tests/fddboot_test.in ++++ b/tests/fddboot_test.in +@@ -20,6 +20,8 @@ grubshell=@builddir@/grub-shell + . "@builddir@/grub-core/modinfo.sh" + + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; + # Flash targets + i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) + exit 0;; +diff --git a/tests/hddboot_test.in b/tests/hddboot_test.in +index e76f996..34257a3 100644 +--- a/tests/hddboot_test.in ++++ b/tests/hddboot_test.in +@@ -20,6 +20,8 @@ grubshell=@builddir@/grub-shell + . "@builddir@/grub-core/modinfo.sh" + + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; + # Flash targets + i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) + exit 0;; +diff --git a/tests/netboot_test.in b/tests/netboot_test.in +index 8e3f8c9..aeb1db0 100644 +--- a/tests/netboot_test.in ++++ b/tests/netboot_test.in +@@ -20,6 +20,8 @@ grubshell=@builddir@/grub-shell + . "@builddir@/grub-core/modinfo.sh" + + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; + # Flash targets + i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) + exit 0;; +diff --git a/tests/partmap_test.in b/tests/partmap_test.in +index b222fa1..2d4b54e 100644 +--- a/tests/partmap_test.in ++++ b/tests/partmap_test.in +@@ -49,7 +49,7 @@ list_parts () { + outfile="$1" + shift + +- echo ls | "${grubshell}" --qemu-opts="-$qemudisk ${imgfile}" \ ++ echo ls | "${grubshell}" --disk="${imgfile}" \ + --modules=$mod | tr -d "\n\r" > "${outfile}" + cat "${outfile}" + echo +@@ -58,23 +58,19 @@ list_parts () { + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + mips-qemu_mips | mipsel-qemu_mips | i386-qemu | i386-multiboot | i386-coreboot | mipsel-loongson) + disk=ata0 +- qemudisk=hda + ;; + powerpc-ieee1275) + disk=ieee1275//pci@80000000/mac-io@4/ata-3@20000/disk@0 +- qemudisk=hda + # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; + sparc64-ieee1275) + disk=ieee1275//pci@1fe\,0/pci-ata@5/ide0@500/disk@0 +- qemudisk=hda + # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; + i386-ieee1275) + disk=ieee1275/d +- qemudisk=hdb + # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. + exit 0 + ;; +@@ -83,11 +79,9 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + exit 0 ;; + mipsel-arc) + disk=arc/scsi0/disk0/rdisk0 +- qemudisk=hda + ;; + *) + disk=hd0 +- qemudisk=hda + ;; + esac + imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index fc52e7b..7c88018 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -44,6 +44,7 @@ Run GRUB script in a Qemu instance. + --boot=[fd|hd|cd|net] boot method for Qemu instance + --modules=MODULES pre-load specified modules MODULES + --qemu=FILE Name of qemu binary ++ --disk=FILE Attach FILE as a disk + --qemu-opts=OPTIONS extra options to pass to Qemu instance + --files=FILES add files to the image + --mkrescue-arg=ARGS additional arguments to grub-mkrescue +@@ -63,7 +64,16 @@ serial_port=com0 + serial_null= + halt_cmd=halt + pseries=n ++disk=hda + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ device_map=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 ++ boot=emu ++ console=console ++ disk=0 ++ # To skip "Welcome to GRUB" and color setttings ++ trim=1 ++ ;; + powerpc-ieee1275) + boot=cd + qemu=qemu-system-ppc +@@ -134,6 +144,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + qemu=qemu-system-i386 + console=console + trim=1 ++ disk=hdb + ;; + i386-qemu) + boot=qemu +@@ -200,6 +211,28 @@ for option in "$@"; do + --qemu-opts=*) + qs=`echo "$option" | sed -e 's/--qemu-opts=//'` + qemuopts="$qemuopts $qs" ;; ++ --disk=*) ++ dsk=`echo "$option" | sed -e 's/--disk=//'` ++ if [ ${grub_modinfo_platform} = emu ]; then ++ echo "(hd$disk) $dsk" >> "$device_map" ++ disk="$((disk+1))" ++ else ++ if [ $disk = error ]; then ++ echo "Too many disks" 1>&2 ++ exit 1; ++ fi ++ qemuopts="$qemuopts -$disk $dsk" ++ if [ "$disk" = hda ]; then ++ disk=hdb; ++ elif [ "$disk" = hdb ]; then ++ # CDROM is hdc ++ disk=hdd ++ elif [ "$disk" = hdd ]; then ++ # CDROM is hdc ++ disk=error ++ fi ++ fi ++ ;; + --timeout=*) + timeout=`echo "$option" | sed -e 's/--timeout=//'` + ;; +@@ -244,16 +277,27 @@ fi + cfgfile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 + cat <${cfgfile} + grubshell=yes +-insmod serial + EOF ++ ++ ++if [ "${grub_modinfo_platform}" != emu ]; then ++ echo insmod serial >>${cfgfile} ++fi ++ + if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = powerpc-ieee1275 ]; then + echo insmod escc >>${cfgfile} + fi ++if [ "${grub_modinfo_platform}" != emu ]; then ++ echo "serial ${serial_port}" >>${cfgfile} ++ term="serial_${serial_port}" ++else ++ term=console ++fi ++ + cat <>${cfgfile} +-serial ${serial_port} +-terminfo -g 255x255 serial_${serial_port} dumb +-terminal_input serial_${serial_port} +-terminal_output serial_${serial_port} ++terminfo -g 255x255 ${term} dumb ++terminal_input ${term} ++terminal_output ${term} + EOF + + trim_head=664cbea8-132f-4770-8aa4-1696d59ac35c +@@ -270,7 +314,7 @@ do + done + + cat <>${cfgfile} +-source /boot/grub/testcase.cfg ++source \$prefix/testcase.cfg + # Stop serial output to suppress "ACPI shutdown failed" error. + EOF + if [ x$console != x ]; then +@@ -279,7 +323,7 @@ fi + echo "${halt_cmd}" >>${cfgfile} + + isofile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 +-if [ x$boot != xnet ]; then ++if [ x$boot != xnet ] && [ x$boot != xemu ]; then + pkgdatadir="@builddir@" sh "@builddir@/grub-mkrescue" "--grub-mkimage=${builddir}/grub-mkimage" "--grub-render-label=${builddir}/grub-render-label" "--output=${isofile}" "--override-directory=${builddir}/grub-core" \ + --rom-directory="${rom_directory}" ${mkrescue_args} \ + "/boot/grub/grub.cfg=${cfgfile}" "/boot/grub/testcase.cfg=${source}" \ +@@ -354,6 +398,11 @@ if [ x$boot = xnet ]; then + cp "${cfgfile}" "$netdir/boot/grub/grub.cfg" + cp "${source}" "$netdir/boot/grub/testcase.cfg" + timeout -s KILL $timeout "${qemu}" ${qemuopts} -nographic ${serial_null} -serial file:/dev/stdout -monitor file:/dev/null -boot n -net "user,tftp=$netdir,bootfile=/boot/grub/${grub_modinfo_target_cpu}-${grub_modinfo_platform}/core.$netbootext" -net nic | cat | tr -d "\r" | do_trim ++elif [ x$boot = xemu ]; then ++ grubdir="$(mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX")" ++ cp "${cfgfile}" "$grubdir/grub.cfg" ++ cp "${source}" "$grubdir/testcase.cfg" ++ @builddir@/grub-core/grub-emu -m "$device_map" -d "$grubdir" | tr -d "\r" | do_trim + else + timeout -s KILL $timeout "${qemu}" ${qemuopts} -nographic ${serial_null} -serial file:/dev/stdout -monitor file:/dev/null -${device} ${isofile} ${bootdev} | cat | tr -d "\r" | do_trim + fi +-- +1.8.2.1 + diff --git a/0361-Fix-pseries-test.patch b/0361-Fix-pseries-test.patch new file mode 100644 index 0000000..d6bd706 --- /dev/null +++ b/0361-Fix-pseries-test.patch @@ -0,0 +1,79 @@ +From 942ce2482508609d311410d6bc79316435512d16 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 14:11:12 +0200 +Subject: [PATCH 361/471] Fix pseries test. + +--- + ChangeLog | 4 ++++ + grub-core/lib/ieee1275/halt.c | 2 +- + tests/pseries_test.in | 6 +++--- + tests/util/grub-shell.in | 2 +- + 4 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index f4306c4..8c34cc0 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-26 Vladimir Serbinenko + ++ Fix pseries test. ++ ++2013-04-26 Vladimir Serbinenko ++ + Make 'make check' work on emu. + + 2013-04-26 Vladimir Serbinenko +diff --git a/grub-core/lib/ieee1275/halt.c b/grub-core/lib/ieee1275/halt.c +index 7ede29d..8fc16d2 100644 +--- a/grub-core/lib/ieee1275/halt.c ++++ b/grub-core/lib/ieee1275/halt.c +@@ -25,8 +25,8 @@ grub_halt (void) + { + /* Not standardized. We try three known commands. */ + +- grub_ieee1275_interpret ("shut-down", 0); + grub_ieee1275_interpret ("power-off", 0); ++ grub_ieee1275_interpret ("shut-down", 0); + grub_ieee1275_interpret ("poweroff", 0); + + while (1); +diff --git a/tests/pseries_test.in b/tests/pseries_test.in +index 86a396a..2264945 100644 +--- a/tests/pseries_test.in ++++ b/tests/pseries_test.in +@@ -23,15 +23,15 @@ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" != powerpc-ieee1275 ] + exit 0 + fi + +-if [ "$(echo hello | "${grubshell}" --pseries --timeout 180 --boot=cd)" != "Hello World" ]; then ++if [ "$(echo hello | "${grubshell}" --pseries --timeout=180 --boot=cd)" != "Hello World" ]; then + exit 1 + fi + +-if [ "$(echo hello | "${grubshell}" --pseries --timeout 180 --boot=hd)" != "Hello World" ]; then ++if [ "$(echo hello | "${grubshell}" --pseries --timeout=180 --boot=hd)" != "Hello World" ]; then + exit 1 + fi + + # FIXME: workaround SLOF bugs +-#if [ "$(echo hello | "${grubshell}" --pseries --timeout 180 --boot=net)" != "Hello World" ]; then ++#if [ "$(echo hello | "${grubshell}" --pseries --timeout=180 --boot=net)" != "Hello World" ]; then + # exit 1 + #fi +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index 7c88018..e00998a 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -205,7 +205,7 @@ for option in "$@"; do + qemu=qemu-system-ppc64 + serial_port=ieee1275/hvterm + serial_null= +- qemuopts="$qemuopts -no-reboot" ++ qemuopts="$qemuopts -M pseries -no-reboot" + trim=1 + ;; + --qemu-opts=*) +-- +1.8.2.1 + diff --git a/0362-Improve-AHCI-detection-and-command-issuing.patch b/0362-Improve-AHCI-detection-and-command-issuing.patch new file mode 100644 index 0000000..dfd1ae2 --- /dev/null +++ b/0362-Improve-AHCI-detection-and-command-issuing.patch @@ -0,0 +1,905 @@ +From 021e35ff098ea0f022ebd56f3373fa17b0877dfe Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 17:18:02 +0200 +Subject: [PATCH 362/471] Improve AHCI detection and command issuing. + +--- + ChangeLog | 4 + + grub-core/disk/ahci.c | 701 +++++++++++++++++++++++++++++++++++++++----------- + 2 files changed, 549 insertions(+), 156 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 8c34cc0..0d4329c 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-04-27 Vladimir Serbinenko ++ ++ Improve AHCI detection and command issuing. ++ + 2013-04-26 Vladimir Serbinenko + + Fix pseries test. +diff --git a/grub-core/disk/ahci.c b/grub-core/disk/ahci.c +index 143ab97..29fe246 100644 +--- a/grub-core/disk/ahci.c ++++ b/grub-core/disk/ahci.c +@@ -75,6 +75,8 @@ struct grub_ahci_hba_port + enum grub_ahci_hba_port_command + { + GRUB_AHCI_HBA_PORT_CMD_ST = 0x01, ++ GRUB_AHCI_HBA_PORT_CMD_SPIN_UP = 0x02, ++ GRUB_AHCI_HBA_PORT_CMD_POWER_ON = 0x04, + GRUB_AHCI_HBA_PORT_CMD_FRE = 0x10, + GRUB_AHCI_HBA_PORT_CMD_CR = 0x8000, + GRUB_AHCI_HBA_PORT_CMD_FR = 0x4000, +@@ -136,7 +138,7 @@ struct grub_ahci_device + static grub_err_t + grub_ahci_readwrite_real (struct grub_ahci_device *dev, + struct grub_disk_ata_pass_through_parms *parms, +- int spinup); ++ int spinup, int reset); + + + enum +@@ -162,98 +164,6 @@ enum + static struct grub_ahci_device *grub_ahci_devices; + static int numdevs; + +-static int +-init_port (struct grub_ahci_device *dev) +-{ +- struct grub_pci_dma_chunk *command_list; +- struct grub_pci_dma_chunk *command_table; +- grub_uint64_t endtime; +- +- command_list = grub_memalign_dma32 (1024, sizeof (struct grub_ahci_cmd_head)); +- if (!command_list) +- return 1; +- +- command_table = grub_memalign_dma32 (1024, +- sizeof (struct grub_ahci_cmd_table)); +- if (!command_table) +- { +- grub_dma_free (command_list); +- return 1; +- } +- +- grub_dprintf ("ahci", "found device ahci%d (port %d)\n", dev->num, dev->port); +- +- dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; +- endtime = grub_get_time_ms () + 1000; +- while ((dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) +- if (grub_get_time_ms () > endtime) +- { +- grub_dprintf ("ahci", "couldn't stop FR\n"); +- goto out; +- } +- +- dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_ST; +- endtime = grub_get_time_ms () + 1000; +- while ((dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) +- if (grub_get_time_ms () > endtime) +- { +- grub_dprintf ("ahci", "couldn't stop CR\n"); +- goto out; +- } +- +- dev->hba->ports[dev->port].fbs = 2; +- +- dev->rfis = grub_memalign_dma32 (4096, +- sizeof (struct grub_ahci_received_fis)); +- grub_memset ((char *) grub_dma_get_virt (dev->rfis), 0, +- sizeof (struct grub_ahci_received_fis)); +- dev->hba->ports[dev->port].fis_base = grub_dma_get_phys (dev->rfis); +- dev->hba->ports[dev->port].command_list_base +- = grub_dma_get_phys (command_list); +- dev->hba->ports[dev->port].command |= GRUB_AHCI_HBA_PORT_CMD_FRE; +- while (!(dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) +- if (grub_get_time_ms () > endtime) +- { +- grub_dprintf ("ahci", "couldn't start FR\n"); +- dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; +- goto out; +- } +- dev->hba->ports[dev->port].command |= GRUB_AHCI_HBA_PORT_CMD_ST; +- while (!(dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) +- if (grub_get_time_ms () > endtime) +- { +- grub_dprintf ("ahci", "couldn't start CR\n"); +- dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_CR; +- goto out_stop_fr; +- } +- +- dev->hba->ports[dev->port].command +- = (dev->hba->ports[dev->port].command & 0x0fffffff) | (1 << 28) | 2 | 4; +- +- dev->command_list_chunk = command_list; +- dev->command_list = grub_dma_get_virt (command_list); +- dev->command_table_chunk = command_table; +- dev->command_table = grub_dma_get_virt (command_table); +- dev->command_list->command_table_base +- = grub_dma_get_phys (command_table); +- +- return 0; +- out_stop_fr: +- dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; +- endtime = grub_get_time_ms () + 1000; +- while ((dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) +- if (grub_get_time_ms () > endtime) +- { +- grub_dprintf ("ahci", "couldn't stop FR\n"); +- break; +- } +- out: +- grub_dma_free (command_list); +- grub_dma_free (command_table); +- grub_dma_free (dev->rfis); +- return 1; +-} +- + static int + grub_ahci_pciinit (grub_pci_device_t dev, + grub_pci_id_t pciid __attribute__ ((unused)), +@@ -273,7 +183,16 @@ grub_ahci_pciinit (grub_pci_device_t dev, + if (class >> 8 != 0x010601) + return 0; + ++#ifdef GRUB_MACHINE_QEMU ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); ++ grub_pci_write_word (addr, 0x107); ++#endif ++ + addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG5); ++ ++#ifdef GRUB_MACHINE_QEMU ++ grub_pci_write (addr, 0xf4000000); ++#endif + bar = grub_pci_read (addr); + + if ((bar & (GRUB_PCI_ADDR_SPACE_MASK | GRUB_PCI_ADDR_MEM_TYPE_MASK +@@ -281,8 +200,40 @@ grub_ahci_pciinit (grub_pci_device_t dev, + != (GRUB_PCI_ADDR_SPACE_MEMORY | GRUB_PCI_ADDR_MEM_TYPE_32)) + return 0; + ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); ++ grub_pci_write_word (addr, grub_pci_read_word (addr) | ++ GRUB_PCI_COMMAND_IO_ENABLED ++ | GRUB_PCI_COMMAND_MEM_ENABLED ++ | GRUB_PCI_COMMAND_BUS_MASTER); ++ + hba = grub_pci_device_map_range (dev, bar & GRUB_PCI_ADDR_MEM_MASK, + sizeof (hba)); ++ grub_dprintf ("ahci", "dev: %x:%x.%x\n", dev.bus, dev.device, dev.function); ++ ++ grub_dprintf ("ahci", "tfd[0]: %x\n", ++ hba->ports[0].task_file_data); ++ grub_dprintf ("ahci", "cmd[0]: %x\n", ++ hba->ports[0].command); ++ grub_dprintf ("ahci", "st[0]: %x\n", ++ hba->ports[0].status); ++ grub_dprintf ("ahci", "err[0]: %x\n", ++ hba->ports[0].sata_error); ++ ++ grub_dprintf ("ahci", "tfd[1]: %x\n", ++ hba->ports[1].task_file_data); ++ grub_dprintf ("ahci", "cmd[1]: %x\n", ++ hba->ports[1].command); ++ grub_dprintf ("ahci", "st[1]: %x\n", ++ hba->ports[1].status); ++ grub_dprintf ("ahci", "err[1]: %x\n", ++ hba->ports[1].sata_error); ++ ++ hba->ports[1].sata_error = hba->ports[1].sata_error; ++ ++ grub_dprintf ("ahci", "err[1]: %x\n", ++ hba->ports[1].sata_error); ++ ++ grub_dprintf ("ahci", "BH:%x\n", hba->bios_handoff); + + if (! (hba->bios_handoff & GRUB_AHCI_BIOS_HANDOFF_OS_OWNED)) + { +@@ -307,11 +258,38 @@ grub_ahci_pciinit (grub_pci_device_t dev, + else + grub_dprintf ("ahci", "AHCI is already in OS mode\n"); + ++ grub_dprintf ("ahci", "GLC:%x\n", hba->global_control); ++ ++ grub_dprintf ("ahci", "err[1]: %x\n", ++ hba->ports[1].sata_error); ++ + if (!(hba->global_control & GRUB_AHCI_HBA_GLOBAL_CONTROL_AHCI_EN)) + grub_dprintf ("ahci", "AHCI is in compat mode. Switching\n"); + else + grub_dprintf ("ahci", "AHCI is in AHCI mode.\n"); + ++ grub_dprintf ("ahci", "err[1]: %x\n", ++ hba->ports[1].sata_error); ++ ++ grub_dprintf ("ahci", "GLC:%x\n", hba->global_control); ++ ++ /* { ++ grub_uint64_t endtime; ++ hba->global_control |= 1; ++ endtime = grub_get_time_ms () + 1000; ++ while (hba->global_control & 1) ++ if (grub_get_time_ms () > endtime) ++ { ++ grub_dprintf ("ahci", "couldn't reset AHCI\n"); ++ return 0; ++ } ++ }*/ ++ ++ grub_dprintf ("ahci", "GLC:%x\n", hba->global_control); ++ ++ grub_dprintf ("ahci", "err[1]: %x\n", ++ hba->ports[1].sata_error); ++ + for (i = 0; i < 5; i++) + { + hba->global_control |= GRUB_AHCI_HBA_GLOBAL_CONTROL_AHCI_EN; +@@ -325,18 +303,15 @@ grub_ahci_pciinit (grub_pci_device_t dev, + return 0; + } + +- /* +- { +- grub_uint64_t endtime; +- hba->global_control |= 1; +- endtime = grub_get_time_ms () + 1000; +- while (hba->global_control & 1) +- if (grub_get_time_ms () > endtime) +- { +- grub_dprintf ("ahci", "couldn't reset AHCI\n"); +- return 0; +- } +- } ++ grub_dprintf ("ahci", "GLC:%x\n", hba->global_control); ++ ++ grub_dprintf ("ahci", "err[1]: %x\n", ++ hba->ports[1].sata_error); ++ ++ grub_dprintf ("ahci", "err[1]: %x\n", ++ hba->ports[1].sata_error); ++ ++ grub_dprintf ("ahci", "GLC:%x\n", hba->global_control); + + for (i = 0; i < 5; i++) + { +@@ -350,45 +325,312 @@ grub_ahci_pciinit (grub_pci_device_t dev, + grub_dprintf ("ahci", "Couldn't put AHCI in AHCI mode\n"); + return 0; + } +- */ ++ ++ grub_dprintf ("ahci", "err[1]: %x\n", ++ hba->ports[1].sata_error); ++ ++ grub_dprintf ("ahci", "GLC:%x\n", hba->global_control); + + nports = (hba->cap & GRUB_AHCI_HBA_CAP_NPORTS_MASK) + 1; + +- grub_dprintf ("ahci", "%d AHCI ports\n", nports); ++ grub_dprintf ("ahci", "%d AHCI ports, PI = 0x%x\n", nports, ++ hba->ports_implemented); ++ ++ struct grub_ahci_device *adevs[GRUB_AHCI_HBA_CAP_NPORTS_MASK + 1]; ++ struct grub_ahci_device *failed_adevs[GRUB_AHCI_HBA_CAP_NPORTS_MASK + 1]; ++ grub_uint32_t fr_running = 0; + + for (i = 0; i < nports; i++) ++ failed_adevs[i] = 0; ++ for (i = 0; i < nports; i++) + { +- struct grub_ahci_device *adev; +- grub_uint32_t st; +- + if (!(hba->ports_implemented & (1 << i))) +- continue; +- +- grub_dprintf ("ahci", "status %d:%x\n", i, hba->ports[i].status); +- /* FIXME: support hotplugging. */ +- st = hba->ports[i].status; +- if ((st & 0xf) != 0x3 && (st & 0xf) != 0x1) +- continue; ++ { ++ adevs[i] = 0; ++ continue; ++ } + +- adev = grub_malloc (sizeof (*adev)); +- if (!adev) ++ adevs[i] = grub_malloc (sizeof (*adevs[i])); ++ if (!adevs[i]) + return 1; + +- adev->hba = hba; +- adev->port = i; +- adev->present = 1; +- adev->num = numdevs++; ++ adevs[i]->hba = hba; ++ adevs[i]->port = i; ++ adevs[i]->present = 1; ++ adevs[i]->num = numdevs++; ++ } + +- if (init_port (adev)) +- { +- grub_free (adev); +- return 1; +- } ++ for (i = 0; i < nports; i++) ++ if (adevs[i]) ++ { ++ adevs[i]->hba->ports[adevs[i]->port].sata_error = adevs[i]->hba->ports[adevs[i]->port].sata_error; ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ ++ adevs[i]->command_list_chunk = grub_memalign_dma32 (1024, sizeof (struct grub_ahci_cmd_head)); ++ if (!adevs[i]->command_list_chunk) ++ { ++ adevs[i] = 0; ++ continue; ++ } + +- grub_list_push (GRUB_AS_LIST_P (&grub_ahci_devices), +- GRUB_AS_LIST (adev)); ++ adevs[i]->command_table_chunk = grub_memalign_dma32 (1024, ++ sizeof (struct grub_ahci_cmd_table)); ++ if (!adevs[i]->command_table_chunk) ++ { ++ grub_dma_free (adevs[i]->command_list_chunk); ++ adevs[i] = 0; ++ continue; ++ } ++ ++ adevs[i]->command_list = grub_dma_get_virt (adevs[i]->command_list_chunk); ++ adevs[i]->command_table = grub_dma_get_virt (adevs[i]->command_table_chunk); ++ adevs[i]->command_list->command_table_base ++ = grub_dma_get_phys (adevs[i]->command_table_chunk); ++ ++ grub_dprintf ("ahci", "found device ahci%d (port %d), command_table = %p, command_list = %p\n", ++ adevs[i]->num, adevs[i]->port, grub_dma_get_virt (adevs[i]->command_table_chunk), ++ grub_dma_get_virt (adevs[i]->command_list_chunk)); ++ ++ adevs[i]->hba->ports[adevs[i]->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; ++ } ++ ++ grub_uint64_t endtime; ++ endtime = grub_get_time_ms () + 1000; ++ ++ while (grub_get_time_ms () < endtime) ++ { ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && (adevs[i]->hba->ports[adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) ++ break; ++ if (i == nports) ++ break; + } + ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && (adevs[i]->hba->ports[adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) ++ { ++ grub_dprintf ("ahci", "couldn't stop FR on port %d\n", i); ++ failed_adevs[i] = adevs[i]; ++ adevs[i] = 0; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i]) ++ adevs[i]->hba->ports[adevs[i]->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_ST; ++ endtime = grub_get_time_ms () + 1000; ++ ++ while (grub_get_time_ms () < endtime) ++ { ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && (adevs[i]->hba->ports[adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) ++ break; ++ if (i == nports) ++ break; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && (adevs[i]->hba->ports[adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) ++ { ++ grub_dprintf ("ahci", "couldn't stop CR on port %d\n", i); ++ failed_adevs[i] = adevs[i]; ++ adevs[i] = 0; ++ } ++ for (i = 0; i < nports; i++) ++ if (adevs[i]) ++ { ++ adevs[i]->hba->ports[adevs[i]->port].inten = 0; ++ adevs[i]->hba->ports[adevs[i]->port].intstatus = ~0; ++ // adevs[i]->hba->ports[adevs[i]->port].fbs = 0; ++ ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ ++ adevs[i]->rfis = grub_memalign_dma32 (4096, ++ sizeof (struct grub_ahci_received_fis)); ++ grub_memset ((char *) grub_dma_get_virt (adevs[i]->rfis), 0, ++ sizeof (struct grub_ahci_received_fis)); ++ grub_memset ((char *) grub_dma_get_virt (adevs[i]->command_list_chunk), 0, ++ sizeof (struct grub_ahci_cmd_head)); ++ grub_memset ((char *) grub_dma_get_virt (adevs[i]->command_table_chunk), 0, ++ sizeof (struct grub_ahci_cmd_table)); ++ adevs[i]->hba->ports[adevs[i]->port].fis_base = grub_dma_get_phys (adevs[i]->rfis); ++ adevs[i]->hba->ports[adevs[i]->port].command_list_base ++ = grub_dma_get_phys (adevs[i]->command_list_chunk); ++ adevs[i]->hba->ports[adevs[i]->port].command |= GRUB_AHCI_HBA_PORT_CMD_FRE; ++ } ++ ++ endtime = grub_get_time_ms () + 1000; ++ ++ while (grub_get_time_ms () < endtime) ++ { ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && !(adevs[i]->hba->ports[adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) ++ break; ++ if (i == nports) ++ break; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && !(adevs[i]->hba->ports[adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) ++ { ++ grub_dprintf ("ahci", "couldn't start FR on port %d\n", i); ++ failed_adevs[i] = adevs[i]; ++ adevs[i] = 0; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i]) ++ { ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ fr_running |= (1 << i); ++ ++ adevs[i]->hba->ports[adevs[i]->port].command |= GRUB_AHCI_HBA_PORT_CMD_SPIN_UP; ++ adevs[i]->hba->ports[adevs[i]->port].command |= GRUB_AHCI_HBA_PORT_CMD_POWER_ON; ++ adevs[i]->hba->ports[adevs[i]->port].command |= 1 << 28; ++ ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ } ++ ++ /* 10ms should actually be enough. */ ++ endtime = grub_get_time_ms () + 100; ++ ++ while (grub_get_time_ms () < endtime) ++ { ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && (adevs[i]->hba->ports[adevs[i]->port].status & 7) != 3) ++ break; ++ if (i == nports) ++ break; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && (adevs[i]->hba->ports[adevs[i]->port].status & 7) != 3) ++ { ++ grub_dprintf ("ahci", "couldn't detect device on port %d\n", i); ++ failed_adevs[i] = adevs[i]; ++ adevs[i] = 0; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i]) ++ { ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ ++ adevs[i]->hba->ports[adevs[i]->port].command |= GRUB_AHCI_HBA_PORT_CMD_POWER_ON; ++ adevs[i]->hba->ports[adevs[i]->port].command |= GRUB_AHCI_HBA_PORT_CMD_SPIN_UP; ++ ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ ++ adevs[i]->hba->ports[adevs[i]->port].sata_error = ~0; ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ ++ grub_dprintf ("ahci", "offset: %x, tfd:%x, CMD: %x\n", ++ (char *) &adevs[i]->hba->ports[adevs[i]->port].task_file_data - ++ (char *) adevs[i]->hba, ++ adevs[i]->hba->ports[adevs[i]->port].task_file_data, ++ adevs[i]->hba->ports[adevs[i]->port].command); ++ ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ } ++ ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i]) ++ { ++ grub_dprintf ("ahci", "offset: %x, tfd:%x, CMD: %x\n", ++ (char *) &adevs[i]->hba->ports[adevs[i]->port].task_file_data - ++ (char *) adevs[i]->hba, ++ adevs[i]->hba->ports[adevs[i]->port].task_file_data, ++ adevs[i]->hba->ports[adevs[i]->port].command); ++ ++ grub_dprintf ("ahci", "err: %x\n", ++ adevs[i]->hba->ports[adevs[i]->port].sata_error); ++ ++ adevs[i]->hba->ports[adevs[i]->port].command ++ = (adevs[i]->hba->ports[adevs[i]->port].command & 0x0fffffff) | (1 << 28) | 2 | 4; ++ ++ /* struct grub_disk_ata_pass_through_parms parms2; ++ grub_memset (&parms2, 0, sizeof (parms2)); ++ parms2.taskfile.cmd = 8; ++ grub_ahci_readwrite_real (dev, &parms2, 1, 1);*/ ++ } ++ ++ endtime = grub_get_time_ms () + 10000; ++ ++ while (grub_get_time_ms () < endtime) ++ { ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && (adevs[i]->hba->ports[adevs[i]->port].task_file_data & 0x88)) ++ break; ++ if (i == nports) ++ break; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && (adevs[i]->hba->ports[adevs[i]->port].task_file_data & 0x88)) ++ { ++ grub_dprintf ("ahci", "port %d is busy\n", i); ++ failed_adevs[i] = adevs[i]; ++ adevs[i] = 0; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i]) ++ adevs[i]->hba->ports[adevs[i]->port].command |= GRUB_AHCI_HBA_PORT_CMD_ST; ++ ++ endtime = grub_get_time_ms () + 1000; ++ ++ while (grub_get_time_ms () < endtime) ++ { ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && !(adevs[i]->hba->ports[adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) ++ break; ++ if (i == nports) ++ break; ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i] && !(adevs[i]->hba->ports[adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) ++ { ++ grub_dprintf ("ahci", "couldn't start CR on port %d\n", i); ++ failed_adevs[i] = adevs[i]; ++ adevs[i] = 0; ++ } ++ for (i = 0; i < nports; i++) ++ if (failed_adevs[i] && (fr_running & (1 << i))) ++ failed_adevs[i]->hba->ports[failed_adevs[i]->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; ++ ++ endtime = grub_get_time_ms () + 1000; ++ while (grub_get_time_ms () < endtime) ++ { ++ for (i = 0; i < nports; i++) ++ if (failed_adevs[i] && (fr_running & (1 << i)) && (failed_adevs[i]->hba->ports[failed_adevs[i]->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) ++ break; ++ if (i == nports) ++ break; ++ } ++ for (i = 0; i < nports; i++) ++ if (failed_adevs[i]) ++ { ++ grub_dma_free (adevs[i]->command_list_chunk); ++ grub_dma_free (adevs[i]->command_table_chunk); ++ grub_dma_free (adevs[i]->rfis); ++ } ++ ++ for (i = 0; i < nports; i++) ++ if (adevs[i]) ++ { ++ grub_list_push (GRUB_AS_LIST_P (&grub_ahci_devices), ++ GRUB_AS_LIST (adevs[i])); ++ } ++ + return 0; + } + +@@ -435,13 +677,105 @@ grub_ahci_fini_hw (int noreturn __attribute__ ((unused))) + return GRUB_ERR_NONE; + } + ++static int ++reinit_port (struct grub_ahci_device *dev) ++{ ++ struct grub_pci_dma_chunk *command_list; ++ struct grub_pci_dma_chunk *command_table; ++ grub_uint64_t endtime; ++ ++ command_list = grub_memalign_dma32 (1024, sizeof (struct grub_ahci_cmd_head)); ++ if (!command_list) ++ return 1; ++ ++ command_table = grub_memalign_dma32 (1024, ++ sizeof (struct grub_ahci_cmd_table)); ++ if (!command_table) ++ { ++ grub_dma_free (command_list); ++ return 1; ++ } ++ ++ grub_dprintf ("ahci", "found device ahci%d (port %d)\n", dev->num, dev->port); ++ ++ dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; ++ endtime = grub_get_time_ms () + 1000; ++ while ((dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) ++ if (grub_get_time_ms () > endtime) ++ { ++ grub_dprintf ("ahci", "couldn't stop FR\n"); ++ goto out; ++ } ++ ++ dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_ST; ++ endtime = grub_get_time_ms () + 1000; ++ while ((dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) ++ if (grub_get_time_ms () > endtime) ++ { ++ grub_dprintf ("ahci", "couldn't stop CR\n"); ++ goto out; ++ } ++ ++ dev->hba->ports[dev->port].fbs = 2; ++ ++ dev->rfis = grub_memalign_dma32 (4096, ++ sizeof (struct grub_ahci_received_fis)); ++ grub_memset ((char *) grub_dma_get_virt (dev->rfis), 0, ++ sizeof (struct grub_ahci_received_fis)); ++ dev->hba->ports[dev->port].fis_base = grub_dma_get_phys (dev->rfis); ++ dev->hba->ports[dev->port].command_list_base ++ = grub_dma_get_phys (command_list); ++ dev->hba->ports[dev->port].command |= GRUB_AHCI_HBA_PORT_CMD_FRE; ++ while (!(dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) ++ if (grub_get_time_ms () > endtime) ++ { ++ grub_dprintf ("ahci", "couldn't start FR\n"); ++ dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; ++ goto out; ++ } ++ dev->hba->ports[dev->port].command |= GRUB_AHCI_HBA_PORT_CMD_ST; ++ while (!(dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) ++ if (grub_get_time_ms () > endtime) ++ { ++ grub_dprintf ("ahci", "couldn't start CR\n"); ++ dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_CR; ++ goto out_stop_fr; ++ } ++ ++ dev->hba->ports[dev->port].command ++ = (dev->hba->ports[dev->port].command & 0x0fffffff) | (1 << 28) | 2 | 4; ++ ++ dev->command_list_chunk = command_list; ++ dev->command_list = grub_dma_get_virt (command_list); ++ dev->command_table_chunk = command_table; ++ dev->command_table = grub_dma_get_virt (command_table); ++ dev->command_list->command_table_base ++ = grub_dma_get_phys (command_table); ++ ++ return 0; ++ out_stop_fr: ++ dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; ++ endtime = grub_get_time_ms () + 1000; ++ while ((dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_FR)) ++ if (grub_get_time_ms () > endtime) ++ { ++ grub_dprintf ("ahci", "couldn't stop FR\n"); ++ break; ++ } ++ out: ++ grub_dma_free (command_list); ++ grub_dma_free (command_table); ++ grub_dma_free (dev->rfis); ++ return 1; ++} ++ + static grub_err_t + grub_ahci_restore_hw (void) + { + struct grub_ahci_device **pdev; + + for (pdev = &grub_ahci_devices; *pdev; pdev = &((*pdev)->next)) +- if (init_port (*pdev)) ++ if (reinit_port (*pdev)) + { + struct grub_ahci_device *odev; + odev = *pdev; +@@ -504,38 +838,72 @@ static const int register_map[11] = { 3 /* Features */, + 9 /* LBA48 mid */, + 10 /* LBA48 high */ }; + +-static grub_err_t +-grub_ahci_readwrite_real (struct grub_ahci_device *dev, +- struct grub_disk_ata_pass_through_parms *parms, +- int spinup) ++static grub_err_t ++grub_ahci_reset_port (struct grub_ahci_device *dev, int force) + { +- struct grub_pci_dma_chunk *bufc; + grub_uint64_t endtime; +- unsigned i; +- grub_err_t err = GRUB_ERR_NONE; +- +- grub_dprintf ("ahci", "AHCI tfd = %x\n", +- dev->hba->ports[dev->port].task_file_data); ++ ++ dev->hba->ports[dev->port].sata_error = dev->hba->ports[dev->port].sata_error; + +- if ((dev->hba->ports[dev->port].task_file_data & 0x80)) ++ if (force || (dev->hba->ports[dev->port].command_issue & 1) ++ || (dev->hba->ports[dev->port].task_file_data & 0x80)) + { ++ struct grub_disk_ata_pass_through_parms parms2; + dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_ST; + endtime = grub_get_time_ms () + 1000; + while ((dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) + if (grub_get_time_ms () > endtime) + { +- grub_dprintf ("ahci", "couldn't stop CR\n"); +- break; ++ grub_dprintf ("ahci", "couldn't stop CR"); ++ return grub_error (GRUB_ERR_IO, "couldn't stop CR"); ++ } ++ dev->hba->ports[dev->port].command |= 8; ++ while (dev->hba->ports[dev->port].command & 8) ++ if (grub_get_time_ms () > endtime) ++ { ++ grub_dprintf ("ahci", "couldn't set CLO\n"); ++ dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_FRE; ++ return grub_error (GRUB_ERR_IO, "couldn't set CLO"); + } ++ + dev->hba->ports[dev->port].command |= GRUB_AHCI_HBA_PORT_CMD_ST; +- endtime = grub_get_time_ms () + (spinup ? 10000 : 1000); + while (!(dev->hba->ports[dev->port].command & GRUB_AHCI_HBA_PORT_CMD_CR)) + if (grub_get_time_ms () > endtime) + { +- grub_dprintf ("ahci", "couldn't start CR\n"); +- break; ++ grub_dprintf ("ahci", "couldn't stop CR"); ++ dev->hba->ports[dev->port].command &= ~GRUB_AHCI_HBA_PORT_CMD_ST; ++ return grub_error (GRUB_ERR_IO, "couldn't stop CR"); + } ++ dev->hba->ports[dev->port].sata_error = dev->hba->ports[dev->port].sata_error; ++ grub_memset (&parms2, 0, sizeof (parms2)); ++ parms2.taskfile.cmd = 8; ++ return grub_ahci_readwrite_real (dev, &parms2, 1, 1); + } ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_ahci_readwrite_real (struct grub_ahci_device *dev, ++ struct grub_disk_ata_pass_through_parms *parms, ++ int spinup, int reset) ++{ ++ struct grub_pci_dma_chunk *bufc; ++ grub_uint64_t endtime; ++ unsigned i; ++ grub_err_t err = GRUB_ERR_NONE; ++ ++ grub_dprintf ("ahci", "AHCI tfd = %x\n", ++ dev->hba->ports[dev->port].task_file_data); ++ ++ if (!reset) ++ grub_ahci_reset_port (dev, 0); ++ ++ grub_dprintf ("ahci", "AHCI tfd = %x\n", ++ dev->hba->ports[dev->port].task_file_data); ++ dev->hba->ports[dev->port].task_file_data = 0; ++ dev->hba->ports[dev->port].command_issue = 0; ++ grub_dprintf ("ahci", "AHCI tfd = %x\n", ++ dev->hba->ports[dev->port].task_file_data); + + dev->hba->ports[dev->port].sata_error = dev->hba->ports[dev->port].sata_error; + +@@ -551,10 +919,9 @@ grub_ahci_readwrite_real (struct grub_ahci_device *dev, + + bufc = grub_memalign_dma32 (1024, parms->size + (parms->size & 1)); + +- dev->hba->ports[dev->port].command |= 8; +- +- grub_dprintf ("ahci", "AHCI tfd = %x\n", +- dev->hba->ports[dev->port].task_file_data); ++ grub_dprintf ("ahci", "AHCI tfd = %x, CL=%p\n", ++ dev->hba->ports[dev->port].task_file_data, ++ dev->command_list); + /* FIXME: support port multipliers. */ + dev->command_list[0].config + = (5 << GRUB_AHCI_CONFIG_CFIS_LENGTH_SHIFT) +@@ -564,17 +931,28 @@ grub_ahci_readwrite_real (struct grub_ahci_device *dev, + | (parms->cmdsize ? GRUB_AHCI_CONFIG_ATAPI : 0) + | (parms->write ? GRUB_AHCI_CONFIG_WRITE : GRUB_AHCI_CONFIG_READ) + | (parms->taskfile.cmd == 8 ? (1 << 8) : 0); ++ grub_dprintf ("ahci", "AHCI tfd = %x\n", ++ dev->hba->ports[dev->port].task_file_data); ++ + dev->command_list[0].transfered = 0; + dev->command_list[0].command_table_base + = grub_dma_get_phys (dev->command_table_chunk); ++ + grub_memset ((char *) dev->command_list[0].unused, 0, + sizeof (dev->command_list[0].unused)); ++ + grub_memset ((char *) &dev->command_table[0], 0, + sizeof (dev->command_table[0])); ++ grub_dprintf ("ahci", "AHCI tfd = %x\n", ++ dev->hba->ports[dev->port].task_file_data); ++ + if (parms->cmdsize) + grub_memcpy ((char *) dev->command_table[0].command, parms->cmd, + parms->cmdsize); + ++ grub_dprintf ("ahci", "AHCI tfd = %x\n", ++ dev->hba->ports[dev->port].task_file_data); ++ + dev->command_table[0].cfis[0] = GRUB_AHCI_FIS_REG_H2D; + dev->command_table[0].cfis[1] = 0x80; + for (i = 0; i < sizeof (parms->taskfile.raw); i++) +@@ -593,8 +971,7 @@ grub_ahci_readwrite_real (struct grub_ahci_device *dev, + + dev->command_table[0].prdt[0].data_base = grub_dma_get_phys (bufc); + dev->command_table[0].prdt[0].unused = 0; +- dev->command_table[0].prdt[0].size = (parms->size + (parms->size & 1) - 1) +- | GRUB_AHCI_INTERRUPT_ON_COMPLETE; ++ dev->command_table[0].prdt[0].size = (parms->size - 1); + + grub_dprintf ("ahci", "PRDT = %" PRIxGRUB_UINT64_T ", %x, %x (%" + PRIuGRUB_SIZE ")\n", +@@ -610,11 +987,19 @@ grub_ahci_readwrite_real (struct grub_ahci_device *dev, + grub_dprintf ("ahci", "AHCI command schedulded\n"); + grub_dprintf ("ahci", "AHCI tfd = %x\n", + dev->hba->ports[dev->port].task_file_data); ++ grub_dprintf ("ahci", "AHCI inten = %x\n", ++ dev->hba->ports[dev->port].inten); ++ grub_dprintf ("ahci", "AHCI intstatus = %x\n", ++ dev->hba->ports[dev->port].intstatus); ++ + dev->hba->ports[dev->port].inten = 0xffffffff;//(1 << 2) | (1 << 5); + dev->hba->ports[dev->port].intstatus = 0xffffffff;//(1 << 2) | (1 << 5); ++ grub_dprintf ("ahci", "AHCI inten = %x\n", ++ dev->hba->ports[dev->port].inten); + grub_dprintf ("ahci", "AHCI tfd = %x\n", + dev->hba->ports[dev->port].task_file_data); +- dev->hba->ports[dev->port].command_issue |= 1; ++ dev->hba->ports[dev->port].sata_active = 1; ++ dev->hba->ports[dev->port].command_issue = 1; + grub_dprintf ("ahci", "AHCI sig = %x\n", dev->hba->ports[dev->port].sig); + grub_dprintf ("ahci", "AHCI tfd = %x\n", + dev->hba->ports[dev->port].task_file_data); +@@ -623,11 +1008,15 @@ grub_ahci_readwrite_real (struct grub_ahci_device *dev, + while ((dev->hba->ports[dev->port].command_issue & 1)) + if (grub_get_time_ms () > endtime) + { +- grub_dprintf ("ahci", "AHCI status <%x %x %x>\n", ++ grub_dprintf ("ahci", "AHCI status <%x %x %x %x>\n", + dev->hba->ports[dev->port].command_issue, ++ dev->hba->ports[dev->port].sata_active, + dev->hba->ports[dev->port].intstatus, + dev->hba->ports[dev->port].task_file_data); ++ dev->hba->ports[dev->port].command_issue = 0; + err = grub_error (GRUB_ERR_IO, "AHCI transfer timed out"); ++ if (!reset) ++ grub_ahci_reset_port (dev, 1); + break; + } + +@@ -672,7 +1061,7 @@ grub_ahci_readwrite (grub_ata_t disk, + struct grub_disk_ata_pass_through_parms *parms, + int spinup) + { +- return grub_ahci_readwrite_real (disk->data, parms, spinup); ++ return grub_ahci_readwrite_real (disk->data, parms, spinup, 0); + } + + static grub_err_t +-- +1.8.2.1 + diff --git a/0363-Implement-grub_machine_get_bootlocation-for-ARC.patch b/0363-Implement-grub_machine_get_bootlocation-for-ARC.patch new file mode 100644 index 0000000..7f84ddd --- /dev/null +++ b/0363-Implement-grub_machine_get_bootlocation-for-ARC.patch @@ -0,0 +1,359 @@ +From 081e3821a7800ef03e67788efd60fc86f18e645d Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 19:12:11 +0200 +Subject: [PATCH 363/471] Implement grub_machine_get_bootlocation for + ARC. + +--- + ChangeLog | 4 + + grub-core/Makefile.core.def | 1 + + grub-core/boot/mips/startup_raw.S | 22 ++++- + grub-core/kern/mips/arc/init.c | 167 +++++++++++++++++++++++++++++++++++ + grub-core/kern/mips/init.c | 6 -- + grub-core/kern/mips/loongson/init.c | 6 ++ + grub-core/kern/mips/qemu_mips/init.c | 6 ++ + util/grub-mkrescue.in | 4 +- + 8 files changed, 207 insertions(+), 9 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 0d4329c..09a6c70 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-27 Vladimir Serbinenko + ++ Implement grub_machine_get_bootlocation for ARC. ++ ++2013-04-27 Vladimir Serbinenko ++ + Improve AHCI detection and command issuing. + + 2013-04-26 Vladimir Serbinenko +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 2a8ac6f..7f93723 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -76,6 +76,7 @@ kernel = { + mips_arc_ldflags = '-Wl,-Ttext,$(TARGET_LINK_ADDR)'; + mips_qemu_mips_ldflags = '-Wl,-Ttext,0x80200000'; + ++ mips_arc_cppflags = '-DGRUB_DECOMPRESSOR_LINK_ADDR=$(TARGET_DECOMPRESSOR_LINK_ADDR)'; + mips_loongson_cppflags = '-DUSE_ASCII_FAILBACK'; + i386_qemu_cppflags = '-DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR)'; + emu_cflags = '$(CFLAGS_GNULIB)'; +diff --git a/grub-core/boot/mips/startup_raw.S b/grub-core/boot/mips/startup_raw.S +index bbbc1db..6061976 100644 +--- a/grub-core/boot/mips/startup_raw.S ++++ b/grub-core/boot/mips/startup_raw.S +@@ -197,6 +197,21 @@ argfw: + not $s7, $a2 + cmdlinedone: + #endif ++#ifdef GRUB_MACHINE_ARC ++ lui $t0, %hi(_start - 256) ++ addiu $t0, $t0, %lo(_start - 256) ++ addiu $t3, $t0, 255 ++ lw $t1, 0($a1) ++1: ++ bne $t0, $t3, 2f ++ lb $t2, 0($t1) ++ move $t2, $zero ++2: ++ sb $t2, 0($t0) ++ addiu $t0, $t0, 1 ++ bnez $t2, 1b ++ addiu $t1, $t1, 1 ++#endif + /* Copy the decompressor. */ + lui $t1, %hi(base) + addiu $t1, $t1, %lo(base) +@@ -253,10 +268,15 @@ cmdlinedone: + lui $t0, %hi(EXT_C(grub_decompress_core)) + addiu $t0, $t0, %lo(EXT_C(grub_decompress_core)) + ++#ifdef GRUB_MACHINE_ARC ++ lui $sp, %hi(_start - 512) ++ jalr $t0 ++ addiu $sp, $sp, %lo(_start - 512) ++#else + lui $sp, %hi(_start - 256) + jalr $t0 + addiu $sp, $sp, %lo(_start - 256) +- ++#endif + move $a0, $s1 + move $a1, $s6 + +diff --git a/grub-core/kern/mips/arc/init.c b/grub-core/kern/mips/arc/init.c +index 92a2877..d279ada 100644 +--- a/grub-core/kern/mips/arc/init.c ++++ b/grub-core/kern/mips/arc/init.c +@@ -34,6 +34,8 @@ + #include + #include + #include ++#include ++#include + + const char *type_names[] = { + #ifdef GRUB_CPU_WORDS_BIGENDIAN +@@ -164,10 +166,42 @@ grub_arc_alt_name_to_norm (const char *name, const char *suffix) + return ret; + } + ++static char * ++norm_name_to_alt (const char *name) ++{ ++ char *optr; ++ const char *iptr; ++ int state = 0; ++ char * ret = grub_malloc (grub_strlen (name) + sizeof ("arc/")); ++ ++ if (!ret) ++ return NULL; ++ optr = grub_stpcpy (ret, "arc/"); ++ for (iptr = name; *iptr; iptr++) ++ { ++ if (state == 1) ++ { ++ *optr++ = '/'; ++ state = 0; ++ } ++ if (*iptr == '(') ++ continue; ++ if (*iptr == ')') ++ { ++ state = 1; ++ continue; ++ } ++ *optr++ = *iptr; ++ } ++ *optr = '\0'; ++ return ret; ++} ++ + extern grub_uint32_t grub_total_modules_size __attribute__ ((section(".text"))); + grub_addr_t grub_modbase; + + extern char _end[]; ++static char boot_location[256]; + + void + grub_machine_init (void) +@@ -175,6 +209,9 @@ grub_machine_init (void) + struct grub_arc_memory_descriptor *cur = NULL; + grub_addr_t modend; + ++ grub_memcpy (boot_location, ++ (char *) (GRUB_DECOMPRESSOR_LINK_ADDR - 256), 256); ++ + grub_modbase = ALIGN_UP ((grub_addr_t) _end, GRUB_KERNEL_MACHINE_MOD_ALIGN); + modend = grub_modbase + grub_total_modules_size; + grub_console_init_early (); +@@ -239,3 +276,133 @@ grub_exit (void) + while (1); + } + ++static char * ++get_part (char *dev) ++{ ++ char *ptr; ++ if (!*dev) ++ return 0; ++ ptr = dev + grub_strlen (dev) - 1; ++ if (ptr == dev || *ptr != ')') ++ return 0; ++ ptr--; ++ while (grub_isdigit (*ptr) && ptr > dev) ++ ptr--; ++ if (*ptr != '(' || ptr == dev) ++ return 0; ++ ptr--; ++ if (ptr - dev < (int) sizeof ("partition") - 2) ++ return 0; ++ ptr -= sizeof ("partition") - 2; ++ if (grub_memcmp (ptr, "partition", sizeof ("partition") - 1) != 0) ++ return 0; ++ return ptr; ++} ++ ++static grub_disk_addr_t ++get_partition_offset (char *part, grub_disk_addr_t *en) ++{ ++ grub_arc_fileno_t handle; ++ grub_disk_addr_t ret = -1; ++ struct grub_arc_fileinfo info; ++ grub_arc_err_t r; ++ ++ if (GRUB_ARC_FIRMWARE_VECTOR->open (part, GRUB_ARC_FILE_ACCESS_OPEN_RO, ++ &handle)) ++ return -1; ++ ++ r = GRUB_ARC_FIRMWARE_VECTOR->getfileinformation (handle, &info); ++ if (!r) ++ { ++ ret = (info.start >> 9); ++ *en = (info.end >> 9); ++ } ++ GRUB_ARC_FIRMWARE_VECTOR->close (handle); ++ return ret; ++} ++ ++struct get_device_name_ctx ++{ ++ char *partition_name; ++ grub_disk_addr_t poff, pend; ++}; ++ ++static int ++get_device_name_iter (grub_disk_t disk __attribute__ ((unused)), ++ const grub_partition_t part, void *data) ++{ ++ struct get_device_name_ctx *ctx = data; ++ ++ if (grub_partition_get_start (part) == ctx->poff ++ && grub_partition_get_len (part) == ctx->pend) ++ { ++ ctx->partition_name = grub_partition_get_name (part); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++void ++grub_machine_get_bootlocation (char **device __attribute__ ((unused)), ++ char **path __attribute__ ((unused))) ++{ ++ char *loaddev = boot_location; ++ char *pptr, *partptr; ++ char *dname; ++ grub_disk_addr_t poff = -1, pend; ++ struct get_device_name_ctx ctx; ++ grub_disk_t parent = 0; ++ ++ pptr = grub_strchr (loaddev, '/'); ++ if (pptr) ++ { ++ *path = grub_strdup (pptr); ++ *pptr = '\0'; ++ } ++ partptr = get_part (loaddev); ++ if (partptr) ++ { ++ poff = get_partition_offset (loaddev, &pend); ++ *partptr = '\0'; ++ } ++ dname = norm_name_to_alt (loaddev); ++ if (poff == (grub_addr_t) -1) ++ { ++ *device = dname; ++ return; ++ } ++ ++ parent = grub_disk_open (dname); ++ if (!parent) ++ { ++ *device = dname; ++ return; ++ } ++ ++ if (poff == 0 ++ && pend == grub_disk_get_size (parent)) ++ { ++ grub_disk_close (parent); ++ *device = dname; ++ return; ++ } ++ ++ ctx.partition_name = NULL; ++ ctx.poff = poff; ++ ctx.pend = pend; ++ ++ grub_partition_iterate (parent, get_device_name_iter, &ctx); ++ grub_disk_close (parent); ++ ++ if (! ctx.partition_name) ++ { ++ *device = dname; ++ return; ++ } ++ ++ *device = grub_xasprintf ("%s,%s", dname, ++ ctx.partition_name); ++ grub_free (ctx.partition_name); ++ grub_free (dname); ++} +diff --git a/grub-core/kern/mips/init.c b/grub-core/kern/mips/init.c +index 353f679..14b8752 100644 +--- a/grub-core/kern/mips/init.c ++++ b/grub-core/kern/mips/init.c +@@ -36,9 +36,3 @@ grub_get_rtc (void) + + return (((grub_uint64_t) high) << 32) | low; + } +- +-void +-grub_machine_get_bootlocation (char **device __attribute__ ((unused)), +- char **path __attribute__ ((unused))) +-{ +-} +diff --git a/grub-core/kern/mips/loongson/init.c b/grub-core/kern/mips/loongson/init.c +index 756439b..1abcf1a 100644 +--- a/grub-core/kern/mips/loongson/init.c ++++ b/grub-core/kern/mips/loongson/init.c +@@ -259,6 +259,12 @@ grub_exit (void) + grub_halt (); + } + ++void ++grub_machine_get_bootlocation (char **device __attribute__ ((unused)), ++ char **path __attribute__ ((unused))) ++{ ++} ++ + extern char _end[]; + grub_addr_t grub_modbase = (grub_addr_t) _end; + +diff --git a/grub-core/kern/mips/qemu_mips/init.c b/grub-core/kern/mips/qemu_mips/init.c +index aa414eb..050f19f 100644 +--- a/grub-core/kern/mips/qemu_mips/init.c ++++ b/grub-core/kern/mips/qemu_mips/init.c +@@ -98,6 +98,12 @@ grub_machine_mmap_iterate (grub_memory_hook_t hook, void *hook_data) + return GRUB_ERR_NONE; + } + ++void ++grub_machine_get_bootlocation (char **device __attribute__ ((unused)), ++ char **path __attribute__ ((unused))) ++{ ++} ++ + extern char _end[]; + grub_addr_t grub_modbase = (grub_addr_t) _end; + +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index cc072c2..f2b24b4 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -489,7 +489,7 @@ if [ -e "${iso9660_dir}"/boot/grub/sparc64-ieee1275/core.img ] && [ "$system_are + grub_mkisofs_arguments="${grub_mkisofs_arguments} -G $sysarea_img -B , --grub2-sparc-core /boot/grub/sparc64-ieee1275/core.img" + fi + +-make_image "${arcs_dir}" mips-arc "${iso9660_dir}/boot/grub/mips-arc/core.img" "" ++make_image_fwdisk "${arcs_dir}" mips-arc "${iso9660_dir}/boot/grub/mips-arc/core.img" "" + if [ -e "${iso9660_dir}/boot/grub/mips-arc/core.img" ]; then + grub_mkisofs_arguments="${grub_mkisofs_arguments} /boot/grub/mips-arc/grub=${iso9660_dir}/boot/grub/mips-arc/core.img /boot/grub/mips-arc/sashARCS=${iso9660_dir}/boot/grub/mips-arc/core.img /boot/grub/mips-arc/sash=${iso9660_dir}/boot/grub/mips-arc/core.img" + fi +@@ -497,7 +497,7 @@ if [ -e "${iso9660_dir}/boot/grub/mips-arc/core.img" ] && [ "$system_area" = arc + grub_mkisofs_arguments="${grub_mkisofs_arguments} -mips-boot /boot/grub/mips-arc/sashARCS -mips-boot /boot/grub/mips-arc/sash -mips-boot /boot/grub/mips-arc/grub" + fi + +-make_image "${arc_dir}" mipsel-arc "${iso9660_dir}/boot/grub/arc.exe" "" ++make_image_fwdisk "${arc_dir}" mipsel-arc "${iso9660_dir}/boot/grub/arc.exe" "" + + make_image "${mipsel_qemu_dir}" mipsel-qemu_mips-elf "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" "pata" + if [ -e "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" ] && [ -d "${rom_directory}" ]; then +-- +1.8.2.1 + diff --git a/0364-Core-compression-test.patch b/0364-Core-compression-test.patch new file mode 100644 index 0000000..16e717a --- /dev/null +++ b/0364-Core-compression-test.patch @@ -0,0 +1,106 @@ +From 795dd1f8388ba8472781a001ab1c832091dffc54 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 19:44:00 +0200 +Subject: [PATCH 364/471] Core compression test. + +--- + ChangeLog | 4 ++++ + Makefile.util.def | 6 ++++++ + tests/util/grub-shell.in | 10 +++++++++- + util/grub-mkrescue.in | 7 +++++++ + 4 files changed, 26 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 09a6c70..6709939 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-27 Vladimir Serbinenko + ++ Core compression test. ++ ++2013-04-27 Vladimir Serbinenko ++ + Implement grub_machine_get_bootlocation for ARC. + + 2013-04-27 Vladimir Serbinenko +diff --git a/Makefile.util.def b/Makefile.util.def +index 1b71fd0..caa6c05 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -720,6 +720,12 @@ script = { + + script = { + testcase; ++ name = core_compress_test; ++ common = tests/core_compress_test.in; ++}; ++ ++script = { ++ testcase; + name = xzcompress_test; + common = tests/xzcompress_test.in; + }; +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index e00998a..b034e96 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -177,6 +177,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + esac + + timeout=60 ++mkimage_extra_arg= + + # Check the arguments. + for option in "$@"; do +@@ -236,6 +237,13 @@ for option in "$@"; do + --timeout=*) + timeout=`echo "$option" | sed -e 's/--timeout=//'` + ;; ++ ++ # Intentionally undocumented ++ --grub-mkimage-extra) ++ mkimage_extra_arg="$mkimage_extra_arg `argument $option "$@"`"; shift ;; ++ --grub-mkimage-extra=*) ++ mkimage_extra_arg="$mkimage_extra_arg `echo "$option" | sed 's/--grub-mkimage-extra=//'`" ;; ++ + --boot=*) + dev=`echo "$option" | sed -e 's/--boot=//'` + if [ "$dev" = "fd" ] ; then boot=fd; +@@ -325,7 +333,7 @@ echo "${halt_cmd}" >>${cfgfile} + isofile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 + if [ x$boot != xnet ] && [ x$boot != xemu ]; then + pkgdatadir="@builddir@" sh "@builddir@/grub-mkrescue" "--grub-mkimage=${builddir}/grub-mkimage" "--grub-render-label=${builddir}/grub-render-label" "--output=${isofile}" "--override-directory=${builddir}/grub-core" \ +- --rom-directory="${rom_directory}" ${mkrescue_args} \ ++ --rom-directory="${rom_directory}" "--grub-mkimage-extra=$mkimage_extra_arg" ${mkrescue_args} \ + "/boot/grub/grub.cfg=${cfgfile}" "/boot/grub/testcase.cfg=${source}" \ + ${files} >/dev/null 2>&1 + fi +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index f2b24b4..eab621e 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -105,6 +105,7 @@ usage () { + } + + system_area=auto ++mkimage_extra_arg= + + # Check the arguments. + while test $# -gt 0 +@@ -154,6 +155,12 @@ do + export PATH + ;; + ++ # Intentionally undocumented ++ --grub-mkimage-extra) ++ mkimage_extra_arg="$mkimage_extra_arg `argument $option "$@"`"; shift ;; ++ --grub-mkimage-extra=*) ++ mkimage_extra_arg="$mkimage_extra_arg `echo "$option" | sed 's/--grub-mkimage-extra=//'`" ;; ++ + --sparc-boot) + system_area=sparc64 ;; + +-- +1.8.2.1 + diff --git a/0365-grub-core-loader-multiboot_mbi2.c-grub_multiboot_loa.patch b/0365-grub-core-loader-multiboot_mbi2.c-grub_multiboot_loa.patch new file mode 100644 index 0000000..aacfc4c --- /dev/null +++ b/0365-grub-core-loader-multiboot_mbi2.c-grub_multiboot_loa.patch @@ -0,0 +1,40 @@ +From 87dd8f877802d0e60f03369e563e833a14bc9f0f Mon Sep 17 00:00:00 2001 +From: Leon Drugi +Date: Sat, 27 Apr 2013 21:16:55 +0200 +Subject: [PATCH 365/471] * grub-core/loader/multiboot_mbi2.c + (grub_multiboot_load): Fix cast in BSS clearing. + +--- + ChangeLog | 5 +++++ + grub-core/loader/multiboot_mbi2.c | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 6709939..0f3eaf6 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-04-27 Leon Drugi ++ ++ * grub-core/loader/multiboot_mbi2.c (grub_multiboot_load): Fix cast in ++ BSS clearing. ++ + 2013-04-27 Vladimir Serbinenko + + Core compression test. +diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c +index 900793a..ccd32a7 100644 +--- a/grub-core/loader/multiboot_mbi2.c ++++ b/grub-core/loader/multiboot_mbi2.c +@@ -251,7 +251,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + } + + if (addr_tag->bss_end_addr) +- grub_memset ((grub_uint32_t *) source + load_size, 0, ++ grub_memset ((grub_uint8_t *) source + load_size, 0, + addr_tag->bss_end_addr - addr_tag->load_addr - load_size); + } + else +-- +1.8.2.1 + diff --git a/0366-grub-core-disk-ahci.c-grub_ahci_pciinit-Fix-handling.patch b/0366-grub-core-disk-ahci.c-grub_ahci_pciinit-Fix-handling.patch new file mode 100644 index 0000000..9925d7c --- /dev/null +++ b/0366-grub-core-disk-ahci.c-grub_ahci_pciinit-Fix-handling.patch @@ -0,0 +1,53 @@ +From cc5de4333e4d45063ef5c62e424fa9c3ca01caae Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 21:49:14 +0200 +Subject: [PATCH 366/471] * grub-core/disk/ahci.c (grub_ahci_pciinit): + Fix handling of empty ports. + +--- + ChangeLog | 5 +++++ + grub-core/disk/ahci.c | 8 ++++---- + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 0f3eaf6..317a367 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-04-27 Vladimir Serbinenko ++ ++ * grub-core/disk/ahci.c (grub_ahci_pciinit): Fix handling of empty ++ ports. ++ + 2013-04-27 Leon Drugi + + * grub-core/loader/multiboot_mbi2.c (grub_multiboot_load): Fix cast in +diff --git a/grub-core/disk/ahci.c b/grub-core/disk/ahci.c +index 29fe246..47fd423 100644 +--- a/grub-core/disk/ahci.c ++++ b/grub-core/disk/ahci.c +@@ -350,7 +350,7 @@ grub_ahci_pciinit (grub_pci_device_t dev, + continue; + } + +- adevs[i] = grub_malloc (sizeof (*adevs[i])); ++ adevs[i] = grub_zalloc (sizeof (*adevs[i])); + if (!adevs[i]) + return 1; + +@@ -619,9 +619,9 @@ grub_ahci_pciinit (grub_pci_device_t dev, + for (i = 0; i < nports; i++) + if (failed_adevs[i]) + { +- grub_dma_free (adevs[i]->command_list_chunk); +- grub_dma_free (adevs[i]->command_table_chunk); +- grub_dma_free (adevs[i]->rfis); ++ grub_dma_free (failed_adevs[i]->command_list_chunk); ++ grub_dma_free (failed_adevs[i]->command_table_chunk); ++ grub_dma_free (failed_adevs[i]->rfis); + } + + for (i = 0; i < nports; i++) +-- +1.8.2.1 + diff --git a/0367-util-ieee1275-ofpath.c-of_path_of_scsi-Fix-path-outp.patch b/0367-util-ieee1275-ofpath.c-of_path_of_scsi-Fix-path-outp.patch new file mode 100644 index 0000000..7c66a24 --- /dev/null +++ b/0367-util-ieee1275-ofpath.c-of_path_of_scsi-Fix-path-outp.patch @@ -0,0 +1,154 @@ +From a1de3862b9c2acd1afdcbd42f79b8b7694a0a794 Mon Sep 17 00:00:00 2001 +From: Paulo Flabiano Smorigo +Date: Sat, 27 Apr 2013 22:03:13 +0200 +Subject: [PATCH 367/471] * util/ieee1275/ofpath.c (of_path_of_scsi): + Fix path output for sas disks. (check_sas): Get sas_adress info. + +--- + ChangeLog | 6 ++++ + util/ieee1275/ofpath.c | 76 +++++++++++++++++++++++++++++++++++++++----------- + 2 files changed, 66 insertions(+), 16 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 317a367..83cdafc 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2013-04-27 Paulo Flabiano Smorigo ++ ++ * util/ieee1275/ofpath.c (of_path_of_scsi): Fix path output for sas ++ disks. ++ (check_sas): Get sas_adress info. ++ + 2013-04-27 Vladimir Serbinenko + + * grub-core/disk/ahci.c (grub_ahci_pciinit): Fix handling of empty +diff --git a/util/ieee1275/ofpath.c b/util/ieee1275/ofpath.c +index f0a34b5..5fde979 100644 +--- a/util/ieee1275/ofpath.c ++++ b/util/ieee1275/ofpath.c +@@ -324,11 +324,11 @@ vendor_is_ATA(const char *path) + } + + static void +-check_sas (char *sysfs_path, int *tgt) ++check_sas (char *sysfs_path, int *tgt, unsigned long int *sas_address) + { + char *ed = strstr (sysfs_path, "end_device"); + char *p, *q, *path; +- char phy[16]; ++ char phy[21]; + int fd; + size_t path_size; + +@@ -348,16 +348,25 @@ check_sas (char *sysfs_path, int *tgt) + + sizeof ("%s/sas_device/%s/phy_identifier")); + path = xmalloc (path_size); + snprintf (path, path_size, "%s/sas_device/%s/phy_identifier", p, ed); +- + fd = open (path, O_RDONLY); + if (fd < 0) + grub_util_error (_("cannot open `%s': %s"), path, strerror (errno)); + + memset (phy, 0, sizeof (phy)); +- read (fd, phy, sizeof (phy)); ++ read (fd, phy, sizeof (phy) - 1); ++ close (fd); + + sscanf (phy, "%d", tgt); + ++ snprintf (path, path_size, "%s/sas_device/%s/sas_address", p, ed); ++ fd = open (path, O_RDONLY); ++ if (fd < 0) ++ grub_util_error (_("cannot open `%s': %s"), path, strerror (errno)); ++ ++ memset (phy, 0, sizeof (phy)); ++ read (fd, phy, sizeof (phy) - 1); ++ sscanf (phy, "%lx", sas_address); ++ + free (path); + free (p); + close (fd); +@@ -370,13 +379,14 @@ of_path_of_scsi(const char *sys_devname __attribute__((unused)), const char *dev + { + const char *p, *digit_string, *disk_name; + int host, bus, tgt, lun; ++ unsigned long int sas_address; + char *sysfs_path, disk[MAX_DISK_CAT - sizeof ("/fp@0,0")]; + char *of_path; + + sysfs_path = block_device_get_sysfs_path_and_link(devicenode); + p = get_basename (sysfs_path); + sscanf(p, "%d:%d:%d:%d", &host, &bus, &tgt, &lun); +- check_sas (sysfs_path, &tgt); ++ check_sas (sysfs_path, &tgt, &sas_address); + + if (vendor_is_ATA(sysfs_path)) + { +@@ -417,18 +427,52 @@ of_path_of_scsi(const char *sys_devname __attribute__((unused)), const char *dev + } + else + { +- if (*digit_string == '\0') +- { +- snprintf(disk, sizeof (disk), "/%s@%x,%d", disk_name, tgt, lun); +- } ++ if (lun == 0) ++ { ++ int sas_id = 0; ++ sas_id = bus << 16 | tgt << 8 | lun; ++ ++ if (*digit_string == '\0') ++ { ++ snprintf(disk, sizeof (disk), "/sas/%s@%x", disk_name, sas_id); ++ } ++ else ++ { ++ int part; ++ ++ sscanf(digit_string, "%d", &part); ++ snprintf(disk, sizeof (disk), ++ "/sas/%s@%x:%c", disk_name, sas_id, 'a' + (part - 1)); ++ } ++ } + else +- { +- int part; +- +- sscanf(digit_string, "%d", &part); +- snprintf(disk, sizeof (disk), +- "/%s@%x,%d:%c", disk_name, tgt, lun, 'a' + (part - 1)); +- } ++ { ++ char *lunstr; ++ int lunpart[4]; ++ ++ lunstr = xmalloc (20); ++ ++ lunpart[0] = (lun >> 8) & 0xff; ++ lunpart[1] = lun & 0xff; ++ lunpart[2] = (lun >> 24) & 0xff; ++ lunpart[3] = (lun >> 16) & 0xff; ++ ++ sprintf(lunstr, "%02x%02x%02x%02x00000000", lunpart[0], lunpart[1], lunpart[2], lunpart[3]); ++ long int longlun = atol(lunstr); ++ ++ if (*digit_string == '\0') ++ { ++ snprintf(disk, sizeof (disk), "/sas/%s@%lx,%lu", disk_name, sas_address, longlun); ++ } ++ else ++ { ++ int part; ++ ++ sscanf(digit_string, "%d", &part); ++ snprintf(disk, sizeof (disk), ++ "/sas/%s@%lx,%lu:%c", disk_name, sas_address, longlun, 'a' + (part - 1)); ++ } ++ } + } + strcat(of_path, disk); + return of_path; +-- +1.8.2.1 + diff --git a/0368-grub-core-term-ns8250.c-Systematically-probe-ports-b.patch b/0368-grub-core-term-ns8250.c-Systematically-probe-ports-b.patch new file mode 100644 index 0000000..5392c95 --- /dev/null +++ b/0368-grub-core-term-ns8250.c-Systematically-probe-ports-b.patch @@ -0,0 +1,120 @@ +From 38f3f1c0902e344a92a7a8994cd25c13b544b7e9 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 22:47:57 +0200 +Subject: [PATCH 368/471] * grub-core/term/ns8250.c: Systematically + probe ports by writing to SR before using them. + +--- + ChangeLog | 5 +++++ + grub-core/term/ns8250.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- + 2 files changed, 48 insertions(+), 3 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 83cdafc..43b2906 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-04-27 Vladimir Serbinenko ++ ++ * grub-core/term/ns8250.c: Systematically probe ports by writing ++ to SR before using them. ++ + 2013-04-27 Paulo Flabiano Smorigo + + * util/ieee1275/ofpath.c (of_path_of_scsi): Fix path output for sas +diff --git a/grub-core/term/ns8250.c b/grub-core/term/ns8250.c +index e6947f5..2064e0d 100644 +--- a/grub-core/term/ns8250.c ++++ b/grub-core/term/ns8250.c +@@ -36,6 +36,8 @@ static const grub_port_t serial_hw_io_addr[] = GRUB_MACHINE_SERIAL_PORTS; + #define GRUB_SERIAL_PORT_NUM (ARRAY_SIZE(serial_hw_io_addr)) + #endif + ++static int dead_ports = 0; ++ + /* Convert speed to divisor. */ + static unsigned short + serial_get_divisor (const struct grub_serial_port *port __attribute__ ((unused)), +@@ -83,6 +85,8 @@ do_real_config (struct grub_serial_port *port) + { + int divisor; + unsigned char status = 0; ++ grub_uint64_t endtime; ++ + const unsigned char parities[] = { + [GRUB_SERIAL_PARITY_NONE] = UART_NO_PARITY, + [GRUB_SERIAL_PARITY_ODD] = UART_ODD_PARITY, +@@ -132,8 +136,16 @@ do_real_config (struct grub_serial_port *port) + #endif + + /* Drain the input buffer. */ ++ endtime = grub_get_time_ms () + 1000; + while (grub_inb (port->port + UART_LSR) & UART_DATA_READY) +- grub_inb (port->port + UART_RX); ++ { ++ grub_inb (port->port + UART_RX); ++ if (grub_get_time_ms () > endtime) ++ { ++ port->broken = 1; ++ break; ++ } ++ } + + port->configured = 1; + } +@@ -239,6 +251,20 @@ grub_ns8250_init (void) + if (serial_hw_io_addr[i]) + { + grub_err_t err; ++ ++ grub_outb (0x5a, serial_hw_io_addr[i] + UART_SR); ++ if (grub_inb (serial_hw_io_addr[i] + UART_SR) != 0x5a) ++ { ++ dead_ports |= (1 << i); ++ continue; ++ } ++ grub_outb (0xa5, serial_hw_io_addr[i] + UART_SR); ++ if (grub_inb (serial_hw_io_addr[i] + UART_SR) != 0xa5) ++ { ++ dead_ports |= (1 << i); ++ continue; ++ } ++ + grub_snprintf (com_names[i], sizeof (com_names[i]), "com%d", i); + com_ports[i].name = com_names[i]; + com_ports[i].driver = &grub_ns8250_driver; +@@ -255,7 +281,8 @@ grub_ns8250_init (void) + grub_port_t + grub_ns8250_hw_get_port (const unsigned int unit) + { +- if (unit < GRUB_SERIAL_PORT_NUM) ++ if (unit < GRUB_SERIAL_PORT_NUM ++ && !(dead_ports & (1 << unit))) + return serial_hw_io_addr[unit]; + else + return 0; +@@ -268,7 +295,20 @@ grub_serial_ns8250_add_port (grub_port_t port) + unsigned i; + for (i = 0; i < GRUB_SERIAL_PORT_NUM; i++) + if (com_ports[i].port == port) +- return com_names[i]; ++ { ++ if (dead_ports & (1 << i)) ++ return NULL; ++ return com_names[i]; ++ } ++ ++ grub_outb (0x5a, port + UART_SR); ++ if (grub_inb (port + UART_SR) != 0x5a) ++ return NULL; ++ ++ grub_outb (0xa5, port + UART_SR); ++ if (grub_inb (port + UART_SR) != 0xa5) ++ return NULL; ++ + p = grub_malloc (sizeof (*p)); + if (!p) + return NULL; +-- +1.8.2.1 + diff --git a/0369-missing-file.patch b/0369-missing-file.patch new file mode 100644 index 0000000..b4055a2 --- /dev/null +++ b/0369-missing-file.patch @@ -0,0 +1,55 @@ +From 8095fabb0e89dad72cfcb337df3637b8ec92b6c3 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 27 Apr 2013 22:55:02 +0200 +Subject: [PATCH 369/471] missing file + +--- + tests/core_compress_test.in | 36 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 36 insertions(+) + create mode 100644 tests/core_compress_test.in + +diff --git a/tests/core_compress_test.in b/tests/core_compress_test.in +new file mode 100644 +index 0000000..bd57f6f +--- /dev/null ++++ b/tests/core_compress_test.in +@@ -0,0 +1,36 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++# FIXME: Only mips currently supports configurable core compression ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu | i386-* | x86_64-* | sparc64-* | ia64-*) ++ exit 0 ++ ;; ++esac ++ ++ ++if [ "$(echo hello | "${grubshell}" --grub-mkimage-extra=-C --grub-mkimage-extra=xz)" != "Hello World" ]; then ++ exit 1 ++fi ++ ++if [ "$(echo hello | "${grubshell}" --grub-mkimage-extra=-C --grub-mkimage-extra=none)" != "Hello World" ]; then ++ exit 1 ++fi +-- +1.8.2.1 + diff --git a/0370-include-grub-macho.h-Set-GRUB_MACHO_FAT_EFI_MAGIC-as.patch b/0370-include-grub-macho.h-Set-GRUB_MACHO_FAT_EFI_MAGIC-as.patch new file mode 100644 index 0000000..be266cf --- /dev/null +++ b/0370-include-grub-macho.h-Set-GRUB_MACHO_FAT_EFI_MAGIC-as.patch @@ -0,0 +1,39 @@ +From 5f0d4ed36e19f1bc60f38da40a14ce85b6b2ae9c Mon Sep 17 00:00:00 2001 +From: Paulo Flabiano Smorigo +Date: Sat, 27 Apr 2013 23:06:52 +0200 +Subject: [PATCH 370/471] * include/grub/macho.h: Set + GRUB_MACHO_FAT_EFI_MAGIC as unsigned. + +--- + ChangeLog | 4 ++++ + include/grub/macho.h | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 43b2906..3144dd0 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-04-27 Paulo Flabiano Smorigo ++ ++ * include/grub/macho.h: Set GRUB_MACHO_FAT_EFI_MAGIC as unsigned. ++ + 2013-04-27 Vladimir Serbinenko + + * grub-core/term/ns8250.c: Systematically probe ports by writing +diff --git a/include/grub/macho.h b/include/grub/macho.h +index 18434ff..2bfc30f 100644 +--- a/include/grub/macho.h ++++ b/include/grub/macho.h +@@ -34,7 +34,7 @@ enum + }; + + #define GRUB_MACHO_FAT_MAGIC 0xcafebabe +-#define GRUB_MACHO_FAT_EFI_MAGIC 0x0ef1fab9 ++#define GRUB_MACHO_FAT_EFI_MAGIC 0x0ef1fab9U + + typedef grub_uint32_t grub_macho_cpu_type_t; + typedef grub_uint32_t grub_macho_cpu_subtype_t; +-- +1.8.2.1 + diff --git a/0371-grub-core-term-morse.c-Macroify-dih-and-dah.patch b/0371-grub-core-term-morse.c-Macroify-dih-and-dah.patch new file mode 100644 index 0000000..a4e48d2 --- /dev/null +++ b/0371-grub-core-term-morse.c-Macroify-dih-and-dah.patch @@ -0,0 +1,115 @@ +From 78daaf6e506ac36dca5d6ff92618e83723d8ed23 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 13:27:51 +0200 +Subject: [PATCH 371/471] * grub-core/term/morse.c: Macroify dih and + dah. + +--- + ChangeLog | 4 +++ + grub-core/term/morse.c | 75 ++++++++++++++++++++++++++------------------------ + 2 files changed, 43 insertions(+), 36 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 3144dd0..287770e 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-04-28 Vladimir Serbinenko ++ ++ * grub-core/term/morse.c: Macroify dih and dah. ++ + 2013-04-27 Paulo Flabiano Smorigo + + * include/grub/macho.h: Set GRUB_MACHO_FAT_EFI_MAGIC as unsigned. +diff --git a/grub-core/term/morse.c b/grub-core/term/morse.c +index 0fdc3b4..ba84dfe 100644 +--- a/grub-core/term/morse.c ++++ b/grub-core/term/morse.c +@@ -27,45 +27,48 @@ + GRUB_MOD_LICENSE ("GPLv3+"); + + #define BASE_TIME 250 ++#define DIH 1 ++#define DAH 3 ++#define END 0 + + static const char codes[0x80][6] = + { +- ['0'] = { 3, 3, 3, 3, 3, 0 }, +- ['1'] = { 1, 3, 3, 3, 3, 0 }, +- ['2'] = { 1, 1, 3, 3, 3, 0 }, +- ['3'] = { 1, 1, 1, 3, 3, 0 }, +- ['4'] = { 1, 1, 1, 1, 3, 0 }, +- ['5'] = { 1, 1, 1, 1, 1, 0 }, +- ['6'] = { 3, 1, 1, 1, 1, 0 }, +- ['7'] = { 3, 3, 1, 1, 1, 0 }, +- ['8'] = { 3, 3, 3, 1, 1, 0 }, +- ['9'] = { 3, 3, 3, 3, 1, 0 }, +- ['a'] = { 1, 3, 0 }, +- ['b'] = { 3, 1, 1, 1, 0 }, +- ['c'] = { 3, 1, 3, 1, 0 }, +- ['d'] = { 3, 1, 1, 0 }, +- ['e'] = { 1, 0 }, +- ['f'] = { 1, 1, 3, 1, 0 }, +- ['g'] = { 3, 3, 1, 0 }, +- ['h'] = { 1, 1, 1, 1, 0 }, +- ['i'] = { 1, 1, 0 }, +- ['j'] = { 1, 3, 3, 3, 0 }, +- ['k'] = { 3, 1, 3, 0 }, +- ['l'] = { 1, 3, 1, 1, 0 }, +- ['m'] = { 3, 3, 0 }, +- ['n'] = { 3, 1, 0 }, +- ['o'] = { 3, 3, 3, 0 }, +- ['p'] = { 1, 3, 3, 1, 0 }, +- ['q'] = { 3, 3, 1, 3, 0 }, +- ['r'] = { 1, 3, 1, 0 }, +- ['s'] = { 1, 1, 1, 0 }, +- ['t'] = { 3, 0 }, +- ['u'] = { 1, 1, 3, 0 }, +- ['v'] = { 1, 1, 1, 3, 0 }, +- ['w'] = { 1, 3, 3, 0 }, +- ['x'] = { 3, 1, 1, 3, 0 }, +- ['y'] = { 3, 1, 3, 3, 0 }, +- ['z'] = { 3, 3, 1, 1, 0 } ++ ['0'] = { DAH, DAH, DAH, DAH, DAH, END }, ++ ['1'] = { DIH, DAH, DAH, DAH, DAH, END }, ++ ['2'] = { DIH, DIH, DAH, DAH, DAH, END }, ++ ['3'] = { DIH, DIH, DIH, DAH, DAH, END }, ++ ['4'] = { DIH, DIH, DIH, DIH, DAH, END }, ++ ['5'] = { DIH, DIH, DIH, DIH, DIH, END }, ++ ['6'] = { DAH, DIH, DIH, DIH, DIH, END }, ++ ['7'] = { DAH, DAH, DIH, DIH, DIH, END }, ++ ['8'] = { DAH, DAH, DAH, DIH, DIH, END }, ++ ['9'] = { DAH, DAH, DAH, DAH, DIH, END }, ++ ['a'] = { DIH, DAH, END }, ++ ['b'] = { DAH, DIH, DIH, DIH, END }, ++ ['c'] = { DAH, DIH, DAH, DIH, END }, ++ ['d'] = { DAH, DIH, DIH, END }, ++ ['e'] = { DIH, END }, ++ ['f'] = { DIH, DIH, DAH, DIH, END }, ++ ['g'] = { DAH, DAH, DIH, END }, ++ ['h'] = { DIH, DIH, DIH, DIH, END }, ++ ['i'] = { DIH, DIH, END }, ++ ['j'] = { DIH, DAH, DAH, DAH, END }, ++ ['k'] = { DAH, DIH, DAH, END }, ++ ['l'] = { DIH, DAH, DIH, DIH, END }, ++ ['m'] = { DAH, DAH, END }, ++ ['n'] = { DAH, DIH, END }, ++ ['o'] = { DAH, DAH, DAH, END }, ++ ['p'] = { DIH, DAH, DAH, DIH, END }, ++ ['q'] = { DAH, DAH, DIH, DAH, END }, ++ ['r'] = { DIH, DAH, DIH, END }, ++ ['s'] = { DIH, DIH, DIH, END }, ++ ['t'] = { DAH, END }, ++ ['u'] = { DIH, DIH, DAH, END }, ++ ['v'] = { DIH, DIH, DIH, DAH, END }, ++ ['w'] = { DIH, DAH, DAH, END }, ++ ['x'] = { DAH, DIH, DIH, DAH, END }, ++ ['y'] = { DAH, DIH, DAH, DAH, END }, ++ ['z'] = { DAH, DAH, DIH, DIH, END } + }; + + static void +-- +1.8.2.1 + diff --git a/0372-Move-directory-override-directorry-to-grub-install_h.patch b/0372-Move-directory-override-directorry-to-grub-install_h.patch new file mode 100644 index 0000000..3e39244 --- /dev/null +++ b/0372-Move-directory-override-directorry-to-grub-install_h.patch @@ -0,0 +1,323 @@ +From f954b11e777766356885f2958a556ebd3fcf2f25 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 13:35:51 +0200 +Subject: [PATCH 372/471] Move --directory/--override-directorry to + grub-install_header and unify. + +--- + ChangeLog | 4 ++++ + util/grub-install.in | 29 ++++++++++----------------- + util/grub-install_header | 14 +++++++++++++ + util/grub-mknetdir.in | 8 -------- + util/grub-mkrescue.in | 51 ++++++++++++++++++----------------------------- + util/grub-mkstandalone.in | 9 --------- + 6 files changed, 48 insertions(+), 67 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 287770e..f058b20 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-28 Vladimir Serbinenko + ++ Move --directory/--override-directorry to grub-install_header and unify. ++ ++2013-04-28 Vladimir Serbinenko ++ + * grub-core/term/morse.c: Macroify dih and dah. + + 2013-04-27 Paulo Flabiano Smorigo +diff --git a/util/grub-install.in b/util/grub-install.in +index 271e447..d69ef3a 100644 +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -32,7 +32,6 @@ export TEXTDOMAIN=@PACKAGE@ + export TEXTDOMAINDIR="@localedir@" + + host_os=@host_os@ +-source_dir= + target= + datadir="@datadir@" + if [ "x$pkgdatadir" = x ]; then +@@ -96,7 +95,6 @@ usage () { + target_trans="$(gettext "TARGET")" + # TRANSLATORS: "current" refers to the platform user's currently running on + print_option_help "--target=$target_trans" "$(gettext "install GRUB for TARGET platform [default=current]")" +- print_option_help "--directory=$(gettext "DIR")" "$(gettext "use GRUB images from DIR. Takes precedence over target")" + print_option_help "--grub-setup=$(gettext "FILE")" "$(gettext "use FILE as grub-setup")" + print_option_help "--grub-mkimage=$(gettext "FILE")" "$(gettext "use FILE as grub-mkimage")" + print_option_help "--grub-mkrelpath=$(gettext "FILE")" "$(gettext "use FILE as grub-mkrelpath")" +@@ -176,11 +174,6 @@ do + --efi-directory=*) + efidir="`echo "$option" | sed 's/--efi-directory=//'`" ;; + +- --directory | -d) +- source_dir="`argument $option "$@"`"; shift;; +- --directory=*) +- source_dir="`echo "$option" | sed 's/--directory=//'`" ;; +- + --target) + target="`argument $option "$@"`"; shift;; + --target=*) +@@ -264,7 +257,7 @@ do + esac + done + +-if [ x$source_dir = x ]; then ++if [ x$source_directory = x ]; then + if [ x$target = x ]; then + case x"`uname -m`" in + x"powerpc"* | x"ppc"*) +@@ -321,15 +314,15 @@ if [ x$source_dir = x ]; then + echo ;; + esac + fi +- source_dir="${libdir}/@PACKAGE@/$target" ++ source_directory="${libdir}/@PACKAGE@/$target" + fi + +-if ! [ -d "$source_dir" ]; then +- gettext_printf "%s doesn't exist. Please specify --target or --directory\\n" "$source_dir" ++if ! [ -d "$source_directory" ]; then ++ gettext_printf "%s doesn't exist. Please specify --target or --directory\\n" "$source_directory" + exit 1 + fi + +-. "${source_dir}"/modinfo.sh ++. "${source_directory}"/modinfo.sh + + if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-pc" ] ; then + if [ x$disk_module = xunspecified ]; then +@@ -516,10 +509,10 @@ else + fi + + # Copy the GRUB images to the GRUB directory. +-grub_install_files "${source_dir}" "${grubdir}" "${grub_modinfo_target_cpu}-$grub_modinfo_platform" all ++grub_install_files "${source_directory}" "${grubdir}" "${grub_modinfo_target_cpu}-$grub_modinfo_platform" all + + if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-pc" ] || [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "sparc64-ieee1275" ] ; then +- for file in "${source_dir}"/*.img "${source_dir}"/efiemu??.o; do ++ for file in "${source_directory}"/*.img "${source_directory}"/efiemu??.o; do + if test -f "$file"; then + cp -f "$file" "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform" || exit 1 + fi +@@ -685,9 +678,9 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + esac + + if [ x"$config_opt_file" = x ]; then +- "$grub_mkimage" -d "${source_dir}" -O "${mkimage_target}" --output="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" --prefix="${prefix_drive}${relative_grubdir}" $grub_decompression_module $modules || exit 1 ++ "$grub_mkimage" -d "${source_directory}" -O "${mkimage_target}" --output="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" --prefix="${prefix_drive}${relative_grubdir}" $grub_decompression_module $modules || exit 1 + else +- "$grub_mkimage" -c "${config_opt_file}" -d "${source_dir}" -O "${mkimage_target}" --output="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" --prefix="${prefix_drive}${relative_grubdir}" $grub_decompression_module $modules || exit 1 ++ "$grub_mkimage" -c "${config_opt_file}" -d "${source_directory}" -O "${mkimage_target}" --output="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" --prefix="${prefix_drive}${relative_grubdir}" $grub_decompression_module $modules || exit 1 + fi + + # Backward-compatibility kludges +@@ -698,9 +691,9 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ] + elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-efi" ] || [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "x86_64-efi" ]; then + + if [ x"$config_opt_file" = x ]; then +- "$grub_mkimage" -d "${source_dir}" -O "${mkimage_target}" --output="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/grub.efi" --prefix="" $grub_decompression_module $modules || exit 1 ++ "$grub_mkimage" -d "${source_directory}" -O "${mkimage_target}" --output="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/grub.efi" --prefix="" $grub_decompression_module $modules || exit 1 + else +- "$grub_mkimage" -c "${config_opt_file}" -d "${source_dir}" -O "${mkimage_target}" --output="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/grub.efi" --prefix="" $grub_decompression_module $modules || exit 1 ++ "$grub_mkimage" -c "${config_opt_file}" -d "${source_directory}" -O "${mkimage_target}" --output="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/grub.efi" --prefix="" $grub_decompression_module $modules || exit 1 + fi + fi + +diff --git a/util/grub-install_header b/util/grub-install_header +index 805fc4f..72d91e9 100644 +--- a/util/grub-install_header ++++ b/util/grub-install_header +@@ -126,6 +126,9 @@ grub_print_install_files_help () { + print_option_help "--fonts=FONTS" "$(gettext_printf "install FONTS [default=%s]" "unicode")" + print_option_help "--locales=LOCALES" "$(gettext_printf "install only LOCALES [default=all]")" + print_option_help "--compress[=no,xz,gz,lzo]" "$(gettext "compress GRUB files [optional]")" ++ # TRANSLATORS: platform here isn't identifier. It can be translated. ++ dir_msg="$(gettext_printf "use images and modules under DIR [default=%s/]" "${libdir}/@PACKAGE@")" ++ print_option_help "-d, --directory=$(gettext "DIR")" "$dir_msg" + } + + install_modules=all +@@ -136,6 +139,7 @@ compress=no + grub_decompression_module="" + compressor="" + compressor_opts="" ++source_directory="" + + argument () { + opt=$1 +@@ -198,6 +202,16 @@ grub_process_install_options () { + grub_parse_compress `argument $option "$@"`; grub_process_install_options_consumed=2; return ;; + --compress=*) + grub_parse_compress `echo "${option}" | sed 's/--compress=//'`; grub_process_install_options_consumed=1; return ;; ++ --directory | -d) ++ source_directory=`argument $option "$@"`; grub_process_install_options_consumed=2 ;; ++ --directory=*) ++ source_directory=`echo "$option" | sed 's/--directory=//'` grub_process_install_options_consumed=1;; ++ ++ # For backwards compatibility ++ --override-directory) ++ source_directory=`argument $option "$@"`; grub_process_install_options_consumed=2 ;; ++ --override-directory=*) ++ source_directory=`echo "$option" | sed 's/--override-directory=//'` grub_process_install_options_consumed=1;; + esac + } + +diff --git a/util/grub-mknetdir.in b/util/grub-mknetdir.in +index d32de46..051b985 100644 +--- a/util/grub-mknetdir.in ++++ b/util/grub-mknetdir.in +@@ -66,9 +66,6 @@ usage () { + print_option_help "--net-directory=$(gettext "DIR")" "$(gettext "root directory of TFTP server")" + print_option_help "--subdir=$(gettext "DIR")" "$(gettext "relative subdirectory on network server")" + print_option_help "--grub-mkimage=$(gettext "FILE")" "$(gettext "use FILE as grub-mkimage")" +- # TRANSLATORS: platform here isn't identifier. It can be translated. +- dir_msg="$(gettext_printf "use images and modules under DIR [default=%s/]" "${libdir}/@PACKAGE@")" +- print_option_help "-d, --directory=$(gettext "DIR")" "$dir_msg" + echo + gettext_printf "%s copies GRUB images into net_directory/subdir/target_cpu-platform\n" "$self" + echo +@@ -123,11 +120,6 @@ do + --debug-image=*) + debug_image=`echo "$option" | sed 's/--debug-image=//'` ;; + +- --directory | -d) +- source_directory=`argument $option "$@"`; shift ;; +- --directory=*) +- source_directory=`echo "$option" | sed 's/--directory=//'` ;; +- + -*) + gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 + usage +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index eab621e..a8d492e 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -1,3 +1,4 @@ ++#!/bin/sh + + # Make GRUB rescue image + # Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc. +@@ -49,7 +50,6 @@ arcs_dir="${libdir}/@PACKAGE@/mips-arc" + arc_dir="${libdir}/@PACKAGE@/mipsel-arc" + ppc_dir="${libdir}/@PACKAGE@/powerpc-ieee1275" + rom_directory= +-override_dir= + grub_mkimage="${bindir}/@grub_mkimage@" + grub_render_label="${bindir}/@grub_render_label@" + grub_glue_efi="${bindir}/@grub_glue_efi@" +@@ -143,19 +143,6 @@ do + rom_directory=`echo "$option" | sed 's/--rom-directory=//'` ;; + + # Intentionally undocumented +- --override-directory) +- override_dir=`argument $option "$@"` +- shift +- PATH=${override_dir}:$PATH +- export PATH +- ;; +- --override-directory=*) +- override_dir=`echo "${option}/" | sed 's/--override-directory=//'` +- PATH=${override_dir}:$PATH +- export PATH +- ;; +- +- # Intentionally undocumented + --grub-mkimage-extra) + mkimage_extra_arg="$mkimage_extra_arg `argument $option "$@"`"; shift ;; + --grub-mkimage-extra=*) +@@ -280,7 +267,7 @@ make_image_fwdisk () + $grub_decompression_module iso9660 $4 + } + +-if [ "${override_dir}" = "" ] ; then ++if [ "${source_directory}" = "" ] ; then + if [ "$system_area" = auto ]; then + if test -e "${pc_dir}" || test -e "${ppc_dir}" \ + || test -e "${efi32_dir}" || test -e "${efi64_dir}"; then +@@ -337,8 +324,8 @@ if [ "${override_dir}" = "" ] ; then + process_input_dir "${arc_dir}" mipsel-arc + fi + else +- . "${override_dir}"/modinfo.sh +- process_input_dir "${override_dir}" ${grub_modinfo_target_cpu}-${grub_modinfo_platform} ++ . "${source_directory}"/modinfo.sh ++ process_input_dir "${source_directory}" ${grub_modinfo_target_cpu}-${grub_modinfo_platform} + multiboot_dir= + pc_dir= + efi32_dir= +@@ -355,21 +342,21 @@ else + arcs_dir= + arc_dir= + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in +- i386-multiboot) multiboot_dir="${override_dir}" ;; +- i386-coreboot) coreboot_dir="${override_dir}" ;; +- i386-qemu) qemu_dir="${override_dir}" ;; +- i386-pc) pc_dir="${override_dir}"; system_area=common;; +- i386-efi) efi32_dir="${override_dir}"; system_area=common ;; +- x86_64-efi) efi64_dir="${override_dir}"; system_area=common ;; +- ia64-efi) ia64_dir="${override_dir}" ;; +- mipsel-qemu_mips) mipsel_qemu_dir="${override_dir}" ;; +- mipsel-loongson) loongson_dir="${override_dir}" ;; +- mips-qemu_mips) mips_qemu_dir="${override_dir}" ;; +- powerpc-ieee1275) ppc_dir="${override_dir}"; system_area=common ;; +- sparc64-ieee1275) sparc64_dir="${override_dir}"; system_area=sparc64 ;; +- mips-arc) arcs_dir="${override_dir}"; system_area=arcs ;; +- mipsel-arc) arc_dir="${override_dir}" ;; +- i386-ieee1275) i386_ieee1275_dir="${override_dir}" ;; ++ i386-multiboot) multiboot_dir="${source_directory}" ;; ++ i386-coreboot) coreboot_dir="${source_directory}" ;; ++ i386-qemu) qemu_dir="${source_directory}" ;; ++ i386-pc) pc_dir="${source_directory}"; system_area=common;; ++ i386-efi) efi32_dir="${source_directory}"; system_area=common ;; ++ x86_64-efi) efi64_dir="${source_directory}"; system_area=common ;; ++ ia64-efi) ia64_dir="${source_directory}" ;; ++ mipsel-qemu_mips) mipsel_qemu_dir="${source_directory}" ;; ++ mipsel-loongson) loongson_dir="${source_directory}" ;; ++ mips-qemu_mips) mips_qemu_dir="${source_directory}" ;; ++ powerpc-ieee1275) ppc_dir="${source_directory}"; system_area=common ;; ++ sparc64-ieee1275) sparc64_dir="${source_directory}"; system_area=sparc64 ;; ++ mips-arc) arcs_dir="${source_directory}"; system_area=arcs ;; ++ mipsel-arc) arc_dir="${source_directory}" ;; ++ i386-ieee1275) i386_ieee1275_dir="${source_directory}" ;; + esac + fi + +diff --git a/util/grub-mkstandalone.in b/util/grub-mkstandalone.in +index 927075b..30dd90f 100644 +--- a/util/grub-mkstandalone.in ++++ b/util/grub-mkstandalone.in +@@ -33,7 +33,6 @@ fi + + self=`basename $0` + +-source_directory= + compression=auto + format= + grub_mkimage="${bindir}/@grub_mkimage@" +@@ -54,9 +53,6 @@ usage () { + print_option_help "-h, --help" "$(gettext "print this message and exit")" + print_option_help "-v, --version" "$(gettext "print the version information and exit")" + print_option_help "-o, --output=$(gettext FILE)" "$(gettext "save output in FILE [required]")" +- # TRANSLATORS: platform here isn't identifier. It can be translated. +- dir_msg="$(gettext_printf "use images and modules under DIR [default=%s/]" "${libdir}/@PACKAGE@")" +- print_option_help "-d, --directory=$(gettext "DIR")" "$dir_msg" + print_option_help "-O, --format=$(gettext "FORMAT")" "$(gettext "generate an image in FORMAT")"; echo + print_option_help "" "$(gettext "available formats:") $formats" + echo +@@ -98,11 +94,6 @@ do + --output=*) + output_image=`echo "$option" | sed 's/--output=//'` ;; + +- --directory | -d) +- source_directory=`argument $option "$@"`; shift ;; +- --directory=*) +- source_directory=`echo "$option" | sed 's/--directory=//'` ;; +- + --grub-mkimage) + grub_mkimage=`argument $option "$@"`; shift ;; + --grub-mkimage=*) +-- +1.8.2.1 + diff --git a/0373-Remove-POTFILES.in-and-regenerate-it-in-autogen.sh.patch b/0373-Remove-POTFILES.in-and-regenerate-it-in-autogen.sh.patch new file mode 100644 index 0000000..cf4124d --- /dev/null +++ b/0373-Remove-POTFILES.in-and-regenerate-it-in-autogen.sh.patch @@ -0,0 +1,1102 @@ +From 69e943a4f7f0f9a0c573950f709d46d1ab0b4485 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 13:49:21 +0200 +Subject: [PATCH 373/471] Remove POTFILES.in and regenerate it in + autogen.sh. + +--- + .bzrignore | 1 + + ChangeLog | 4 + + autogen.sh | 2 + + po/POTFILES.in | 1043 -------------------------------------------------------- + 4 files changed, 7 insertions(+), 1043 deletions(-) + delete mode 100644 po/POTFILES.in + +diff --git a/.bzrignore b/.bzrignore +index c6797ad..1e8924b 100644 +--- a/.bzrignore ++++ b/.bzrignore +@@ -174,3 +174,4 @@ po/*.gmo + po/LINGUAS + include/grub/gcrypt/gcrypt.h + include/grub/gcrypt/g10lib.h ++po/POTFILES.in +diff --git a/ChangeLog b/ChangeLog +index f058b20..0dcf7b0 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-28 Vladimir Serbinenko + ++ Remove POTFILES.in and regenerate it in autogen.sh. ++ ++2013-04-28 Vladimir Serbinenko ++ + Move --directory/--override-directorry to grub-install_header and unify. + + 2013-04-28 Vladimir Serbinenko +diff --git a/autogen.sh b/autogen.sh +index 48d7a6e..00fdafc 100755 +--- a/autogen.sh ++++ b/autogen.sh +@@ -6,6 +6,8 @@ export LC_CTYPE=C + export LC_COLLATE=C + unset LC_ALL + ++find . -iname '*.[ch]' -not -ipath './grub-core/lib/libgcrypt-grub/*' -not -ipath './build-aux/*' |sort > po/POTFILES.in ++ + autogen --version >/dev/null || exit 1 + + echo "Importing unicode..." +diff --git a/po/POTFILES.in b/po/POTFILES.in +deleted file mode 100644 +index ac39418..0000000 +--- a/po/POTFILES.in ++++ /dev/null +@@ -1,1043 +0,0 @@ +-./grub-core/boot/decompressor/minilib.c +-./grub-core/boot/decompressor/none.c +-./grub-core/boot/decompressor/xz.c +-./grub-core/bus/bonito.c +-./grub-core/bus/cs5536.c +-./grub-core/bus/emu/pci.c +-./grub-core/bus/pci.c +-./grub-core/bus/usb/ehci.c +-./grub-core/bus/usb/emu/usb.c +-./grub-core/bus/usb/ohci.c +-./grub-core/bus/usb/serial/common.c +-./grub-core/bus/usb/serial/ftdi.c +-./grub-core/bus/usb/serial/pl2303.c +-./grub-core/bus/usb/serial/usbdebug_late.c +-./grub-core/bus/usb/uhci.c +-./grub-core/bus/usb/usb.c +-./grub-core/bus/usb/usbhub.c +-./grub-core/bus/usb/usbtrans.c +-./grub-core/commands/acpi.c +-./grub-core/commands/acpihalt.c +-./grub-core/commands/arc/lsdev.c +-./grub-core/commands/blocklist.c +-./grub-core/commands/boot.c +-./grub-core/commands/boottime.c +-./grub-core/commands/cacheinfo.c +-./grub-core/commands/cat.c +-./grub-core/commands/cmp.c +-./grub-core/commands/configfile.c +-./grub-core/commands/date.c +-./grub-core/commands/echo.c +-./grub-core/commands/efi/acpi.c +-./grub-core/commands/efi/efifwsetup.c +-./grub-core/commands/efi/fixvideo.c +-./grub-core/commands/efi/loadbios.c +-./grub-core/commands/efi/lsefi.c +-./grub-core/commands/efi/lsefimmap.c +-./grub-core/commands/efi/lsefisystab.c +-./grub-core/commands/efi/lssal.c +-./grub-core/commands/extcmd.c +-./grub-core/commands/gptsync.c +-./grub-core/commands/halt.c +-./grub-core/commands/hashsum.c +-./grub-core/commands/hdparm.c +-./grub-core/commands/help.c +-./grub-core/commands/hexdump.c +-./grub-core/commands/i386/cmosdump.c +-./grub-core/commands/i386/cmostest.c +-./grub-core/commands/i386/coreboot/cbls.c +-./grub-core/commands/i386/coreboot/cb_timestamps.c +-./grub-core/commands/i386/cpuid.c +-./grub-core/commands/i386/pc/acpi.c +-./grub-core/commands/i386/pc/drivemap.c +-./grub-core/commands/i386/pc/halt.c +-./grub-core/commands/i386/pc/lsapm.c +-./grub-core/commands/i386/pc/play.c +-./grub-core/commands/i386/pc/sendkey.c +-./grub-core/commands/ieee1275/suspend.c +-./grub-core/commands/iorw.c +-./grub-core/commands/keylayouts.c +-./grub-core/commands/keystatus.c +-./grub-core/commands/legacycfg.c +-./grub-core/commands/loadenv.c +-./grub-core/commands/lsacpi.c +-./grub-core/commands/ls.c +-./grub-core/commands/lsmmap.c +-./grub-core/commands/lspci.c +-./grub-core/commands/memrw.c +-./grub-core/commands/menuentry.c +-./grub-core/commands/minicmd.c +-./grub-core/commands/mips/loongson/lsspd.c +-./grub-core/commands/parttool.c +-./grub-core/commands/password.c +-./grub-core/commands/password_pbkdf2.c +-./grub-core/commands/pcidump.c +-./grub-core/commands/probe.c +-./grub-core/commands/read.c +-./grub-core/commands/reboot.c +-./grub-core/commands/regexp.c +-./grub-core/commands/search.c +-./grub-core/commands/search_file.c +-./grub-core/commands/search_label.c +-./grub-core/commands/search_uuid.c +-./grub-core/commands/search_wrap.c +-./grub-core/commands/setpci.c +-./grub-core/commands/sleep.c +-./grub-core/commands/terminal.c +-./grub-core/commands/test.c +-./grub-core/commands/testload.c +-./grub-core/commands/time.c +-./grub-core/commands/true.c +-./grub-core/commands/usbtest.c +-./grub-core/commands/verify.c +-./grub-core/commands/videoinfo.c +-./grub-core/commands/videotest.c +-./grub-core/commands/wildcard.c +-./grub-core/commands/xnu_uuid.c +-./grub-core/disk/AFSplitter.c +-./grub-core/disk/ahci.c +-./grub-core/disk/arc/arcdisk.c +-./grub-core/disk/ata.c +-./grub-core/disk/cryptodisk.c +-./grub-core/disk/diskfilter.c +-./grub-core/disk/dmraid_nvidia.c +-./grub-core/disk/efi/efidisk.c +-./grub-core/disk/geli.c +-./grub-core/disk/host.c +-./grub-core/disk/i386/pc/biosdisk.c +-./grub-core/disk/ieee1275/nand.c +-./grub-core/disk/ieee1275/ofdisk.c +-./grub-core/disk/ldm.c +-./grub-core/disk/loopback.c +-./grub-core/disk/luks.c +-./grub-core/disk/lvm.c +-./grub-core/disk/mdraid1x_linux.c +-./grub-core/disk/mdraid_linux_be.c +-./grub-core/disk/mdraid_linux.c +-./grub-core/disk/memdisk.c +-./grub-core/disk/pata.c +-./grub-core/disk/raid5_recover.c +-./grub-core/disk/raid6_recover.c +-./grub-core/disk/scsi.c +-./grub-core/disk/usbms.c +-./grub-core/efiemu/i386/coredetect.c +-./grub-core/efiemu/i386/loadcore32.c +-./grub-core/efiemu/i386/loadcore64.c +-./grub-core/efiemu/i386/nocfgtables.c +-./grub-core/efiemu/i386/pc/cfgtables.c +-./grub-core/efiemu/loadcore32.c +-./grub-core/efiemu/loadcore64.c +-./grub-core/efiemu/loadcore.c +-./grub-core/efiemu/loadcore_common.c +-./grub-core/efiemu/main.c +-./grub-core/efiemu/mm.c +-./grub-core/efiemu/pnvram.c +-./grub-core/efiemu/prepare32.c +-./grub-core/efiemu/prepare64.c +-./grub-core/efiemu/prepare.c +-./grub-core/efiemu/runtime/config.h +-./grub-core/efiemu/runtime/efiemu.c +-./grub-core/efiemu/symbols.c +-./grub-core/font/font.c +-./grub-core/font/font_cmd.c +-./grub-core/fs/affs.c +-./grub-core/fs/afs.c +-./grub-core/fs/bfs.c +-./grub-core/fs/btrfs.c +-./grub-core/fs/cpio_be.c +-./grub-core/fs/cpio.c +-./grub-core/fs/exfat.c +-./grub-core/fs/ext2.c +-./grub-core/fs/fat.c +-./grub-core/fs/fshelp.c +-./grub-core/fs/hfs.c +-./grub-core/fs/hfsplus.c +-./grub-core/fs/iso9660.c +-./grub-core/fs/jfs.c +-./grub-core/fs/minix2_be.c +-./grub-core/fs/minix2.c +-./grub-core/fs/minix3_be.c +-./grub-core/fs/minix3.c +-./grub-core/fs/minix_be.c +-./grub-core/fs/minix.c +-./grub-core/fs/newc.c +-./grub-core/fs/nilfs2.c +-./grub-core/fs/ntfs.c +-./grub-core/fs/ntfscomp.c +-./grub-core/fs/odc.c +-./grub-core/fs/proc.c +-./grub-core/fs/reiserfs.c +-./grub-core/fs/romfs.c +-./grub-core/fs/sfs.c +-./grub-core/fs/squash4.c +-./grub-core/fs/tar.c +-./grub-core/fs/udf.c +-./grub-core/fs/ufs2.c +-./grub-core/fs/ufs_be.c +-./grub-core/fs/ufs.c +-./grub-core/fs/xfs.c +-./grub-core/fs/zfs/zfs.c +-./grub-core/fs/zfs/zfscrypt.c +-./grub-core/fs/zfs/zfs_fletcher.c +-./grub-core/fs/zfs/zfsinfo.c +-./grub-core/fs/zfs/zfs_lzjb.c +-./grub-core/fs/zfs/zfs_sha256.c +-./grub-core/gdb/cstub.c +-./grub-core/gdb/gdb.c +-./grub-core/gdb/i386/idt.c +-./grub-core/gdb/i386/signal.c +-./grub-core/gentrigtables.c +-./grub-core/gettext/gettext.c +-./grub-core/gfxmenu/font.c +-./grub-core/gfxmenu/gfxmenu.c +-./grub-core/gfxmenu/gui_box.c +-./grub-core/gfxmenu/gui_canvas.c +-./grub-core/gfxmenu/gui_circular_progress.c +-./grub-core/gfxmenu/gui_image.c +-./grub-core/gfxmenu/gui_label.c +-./grub-core/gfxmenu/gui_list.c +-./grub-core/gfxmenu/gui_progress_bar.c +-./grub-core/gfxmenu/gui_string_util.c +-./grub-core/gfxmenu/gui_util.c +-./grub-core/gfxmenu/icon_manager.c +-./grub-core/gfxmenu/model.c +-./grub-core/gfxmenu/theme_loader.c +-./grub-core/gfxmenu/view.c +-./grub-core/gfxmenu/widget-box.c +-./grub-core/gnulib/alloca.c +-./grub-core/gnulib/alloca.in.h +-./grub-core/gnulib/argp-ba.c +-./grub-core/gnulib/argp-eexst.c +-./grub-core/gnulib/argp-fmtstream.c +-./grub-core/gnulib/argp-fmtstream.h +-./grub-core/gnulib/argp-fs-xinl.c +-./grub-core/gnulib/argp.h +-./grub-core/gnulib/argp-help.c +-./grub-core/gnulib/argp-namefrob.h +-./grub-core/gnulib/argp-parse.c +-./grub-core/gnulib/argp-pin.c +-./grub-core/gnulib/argp-pv.c +-./grub-core/gnulib/argp-pvh.c +-./grub-core/gnulib/argp-xinl.c +-./grub-core/gnulib/asnprintf.c +-./grub-core/gnulib/basename-lgpl.c +-./grub-core/gnulib/btowc.c +-./grub-core/gnulib/dirname.h +-./grub-core/gnulib/dirname-lgpl.c +-./grub-core/gnulib/dosname.h +-./grub-core/gnulib/errno.in.h +-./grub-core/gnulib/error.c +-./grub-core/gnulib/error.h +-./grub-core/gnulib/float.c +-./grub-core/gnulib/float+.h +-./grub-core/gnulib/float.in.h +-./grub-core/gnulib/fnmatch.c +-./grub-core/gnulib/fnmatch.in.h +-./grub-core/gnulib/fnmatch_loop.c +-./grub-core/gnulib/getdelim.c +-./grub-core/gnulib/getline.c +-./grub-core/gnulib/getopt1.c +-./grub-core/gnulib/getopt.c +-./grub-core/gnulib/getopt.in.h +-./grub-core/gnulib/getopt_int.h +-./grub-core/gnulib/gettext.h +-./grub-core/gnulib/intprops.h +-./grub-core/gnulib/itold.c +-./grub-core/gnulib/langinfo.in.h +-./grub-core/gnulib/localcharset.c +-./grub-core/gnulib/localcharset.h +-./grub-core/gnulib/localeconv.c +-./grub-core/gnulib/locale.in.h +-./grub-core/gnulib/malloc.c +-./grub-core/gnulib/mbrtowc.c +-./grub-core/gnulib/mbsinit.c +-./grub-core/gnulib/mbsrtowcs.c +-./grub-core/gnulib/mbsrtowcs-impl.h +-./grub-core/gnulib/mbsrtowcs-state.c +-./grub-core/gnulib/mbswidth.c +-./grub-core/gnulib/mbswidth.h +-./grub-core/gnulib/mbtowc.c +-./grub-core/gnulib/mbtowc-impl.h +-./grub-core/gnulib/memchr.c +-./grub-core/gnulib/mempcpy.c +-./grub-core/gnulib/msvc-inval.c +-./grub-core/gnulib/msvc-inval.h +-./grub-core/gnulib/msvc-nothrow.c +-./grub-core/gnulib/msvc-nothrow.h +-./grub-core/gnulib/nl_langinfo.c +-./grub-core/gnulib/printf-args.c +-./grub-core/gnulib/printf-args.h +-./grub-core/gnulib/printf-parse.c +-./grub-core/gnulib/printf-parse.h +-./grub-core/gnulib/progname.c +-./grub-core/gnulib/progname.h +-./grub-core/gnulib/rawmemchr.c +-./grub-core/gnulib/realloc.c +-./grub-core/gnulib/regcomp.c +-./grub-core/gnulib/regex.c +-./grub-core/gnulib/regexec.c +-./grub-core/gnulib/regex.h +-./grub-core/gnulib/regex_internal.c +-./grub-core/gnulib/regex_internal.h +-./grub-core/gnulib/size_max.h +-./grub-core/gnulib/sleep.c +-./grub-core/gnulib/stdalign.in.h +-./grub-core/gnulib/stdbool.in.h +-./grub-core/gnulib/stddef.in.h +-./grub-core/gnulib/stdint.in.h +-./grub-core/gnulib/stdio.in.h +-./grub-core/gnulib/stdlib.in.h +-./grub-core/gnulib/strcasecmp.c +-./grub-core/gnulib/strchrnul.c +-./grub-core/gnulib/streq.h +-./grub-core/gnulib/strerror.c +-./grub-core/gnulib/strerror-override.c +-./grub-core/gnulib/strerror-override.h +-./grub-core/gnulib/string.in.h +-./grub-core/gnulib/strings.in.h +-./grub-core/gnulib/stripslash.c +-./grub-core/gnulib/strncasecmp.c +-./grub-core/gnulib/strndup.c +-./grub-core/gnulib/strnlen1.c +-./grub-core/gnulib/strnlen1.h +-./grub-core/gnulib/strnlen.c +-./grub-core/gnulib/sysexits.in.h +-./grub-core/gnulib/sys_types.in.h +-./grub-core/gnulib/unistd.c +-./grub-core/gnulib/unistd.in.h +-./grub-core/gnulib/unitypes.in.h +-./grub-core/gnulib/uniwidth/cjk.h +-./grub-core/gnulib/uniwidth.in.h +-./grub-core/gnulib/uniwidth/width.c +-./grub-core/gnulib/vasnprintf.c +-./grub-core/gnulib/vasnprintf.h +-./grub-core/gnulib/verify.h +-./grub-core/gnulib/vsnprintf.c +-./grub-core/gnulib/wchar.in.h +-./grub-core/gnulib/wcrtomb.c +-./grub-core/gnulib/wctype-h.c +-./grub-core/gnulib/wctype.in.h +-./grub-core/gnulib/wcwidth.c +-./grub-core/gnulib/xsize.c +-./grub-core/gnulib/xsize.h +-./grub-core/hello/hello.c +-./grub-core/hook/datehook.c +-./grub-core/io/bufio.c +-./grub-core/io/gzio.c +-./grub-core/io/lzopio.c +-./grub-core/io/xzio.c +-./grub-core/kern/command.c +-./grub-core/kern/corecmd.c +-./grub-core/kern/device.c +-./grub-core/kern/disk.c +-./grub-core/kern/dl.c +-./grub-core/kern/efi/efi.c +-./grub-core/kern/efi/init.c +-./grub-core/kern/efi/mm.c +-./grub-core/kern/elf.c +-./grub-core/kern/elfXX.c +-./grub-core/kern/emu/argp_common.c +-./grub-core/kern/emu/cache.c +-./grub-core/kern/emu/full.c +-./grub-core/kern/emu/hostdisk.c +-./grub-core/kern/emu/hostfs.c +-./grub-core/kern/emu/lite.c +-./grub-core/kern/emu/main.c +-./grub-core/kern/emu/misc.c +-./grub-core/kern/emu/mm.c +-./grub-core/kern/emu/time.c +-./grub-core/kern/env.c +-./grub-core/kern/err.c +-./grub-core/kern/file.c +-./grub-core/kern/fs.c +-./grub-core/kern/generic/millisleep.c +-./grub-core/kern/generic/rtc_get_time_ms.c +-./grub-core/kern/i386/coreboot/init.c +-./grub-core/kern/i386/coreboot/mmap.c +-./grub-core/kern/i386/dl.c +-./grub-core/kern/i386/efi/init.c +-./grub-core/kern/i386/multiboot_mmap.c +-./grub-core/kern/i386/pc/init.c +-./grub-core/kern/i386/pc/mmap.c +-./grub-core/kern/i386/qemu/mmap.c +-./grub-core/kern/i386/tsc.c +-./grub-core/kern/ia64/dl.c +-./grub-core/kern/ia64/dl_helper.c +-./grub-core/kern/ia64/efi/init.c +-./grub-core/kern/ieee1275/cmain.c +-./grub-core/kern/ieee1275/ieee1275.c +-./grub-core/kern/ieee1275/init.c +-./grub-core/kern/ieee1275/mmap.c +-./grub-core/kern/ieee1275/openfw.c +-./grub-core/kern/list.c +-./grub-core/kern/main.c +-./grub-core/kern/mips/arc/init.c +-./grub-core/kern/mips/dl.c +-./grub-core/kern/mips/init.c +-./grub-core/kern/mips/loongson/init.c +-./grub-core/kern/mips/qemu_mips/init.c +-./grub-core/kern/misc.c +-./grub-core/kern/mm.c +-./grub-core/kern/parser.c +-./grub-core/kern/partition.c +-./grub-core/kern/powerpc/dl.c +-./grub-core/kern/rescue_parser.c +-./grub-core/kern/rescue_reader.c +-./grub-core/kern/sparc64/dl.c +-./grub-core/kern/sparc64/ieee1275/ieee1275.c +-./grub-core/kern/term.c +-./grub-core/kern/time.c +-./grub-core/kern/vga_init.c +-./grub-core/kern/x86_64/dl.c +-./grub-core/lib/adler32.c +-./grub-core/lib/arc/datetime.c +-./grub-core/lib/arg.c +-./grub-core/lib/backtrace.c +-./grub-core/lib/cmdline.c +-./grub-core/lib/cmos_datetime.c +-./grub-core/lib/crc64.c +-./grub-core/lib/crc.c +-./grub-core/lib/crypto.c +-./grub-core/lib/efi/datetime.c +-./grub-core/lib/efi/halt.c +-./grub-core/lib/efi/reboot.c +-./grub-core/lib/efi/relocator.c +-./grub-core/lib/emu/halt.c +-./grub-core/lib/envblk.c +-./grub-core/lib/fake_module.c +-./grub-core/lib/hexdump.c +-./grub-core/lib/i386/backtrace.c +-./grub-core/lib/i386/halt.c +-./grub-core/lib/i386/pc/biosnum.c +-./grub-core/lib/i386/pc/vesa_modes_table.c +-./grub-core/lib/i386/reboot.c +-./grub-core/lib/i386/relocator.c +-./grub-core/lib/ieee1275/cmos.c +-./grub-core/lib/ieee1275/datetime.c +-./grub-core/lib/ieee1275/halt.c +-./grub-core/lib/ieee1275/reboot.c +-./grub-core/lib/ieee1275/relocator.c +-./grub-core/lib/legacy_parse.c +-./grub-core/lib/libgcrypt/cipher/ac.c +-./grub-core/lib/libgcrypt/cipher/arcfour.c +-./grub-core/lib/libgcrypt/cipher/bithelp.h +-./grub-core/lib/libgcrypt/cipher/blowfish.c +-./grub-core/lib/libgcrypt/cipher/camellia.c +-./grub-core/lib/libgcrypt/cipher/camellia-glue.c +-./grub-core/lib/libgcrypt/cipher/camellia.h +-./grub-core/lib/libgcrypt/cipher/cast5.c +-./grub-core/lib/libgcrypt/cipher/cipher.c +-./grub-core/lib/libgcrypt/cipher/crc.c +-./grub-core/lib/libgcrypt/cipher/des.c +-./grub-core/lib/libgcrypt/cipher/dsa.c +-./grub-core/lib/libgcrypt/cipher/ecc.c +-./grub-core/lib/libgcrypt/cipher/elgamal.c +-./grub-core/lib/libgcrypt/cipher/hash-common.c +-./grub-core/lib/libgcrypt/cipher/hash-common.h +-./grub-core/lib/libgcrypt/cipher/hmac-tests.c +-./grub-core/lib/libgcrypt/cipher/md4.c +-./grub-core/lib/libgcrypt/cipher/md5.c +-./grub-core/lib/libgcrypt/cipher/md.c +-./grub-core/lib/libgcrypt/cipher/primegen.c +-./grub-core/lib/libgcrypt/cipher/pubkey.c +-./grub-core/lib/libgcrypt/cipher/rfc2268.c +-./grub-core/lib/libgcrypt/cipher/rijndael.c +-./grub-core/lib/libgcrypt/cipher/rijndael-tables.h +-./grub-core/lib/libgcrypt/cipher/rmd160.c +-./grub-core/lib/libgcrypt/cipher/rmd.h +-./grub-core/lib/libgcrypt/cipher/rsa.c +-./grub-core/lib/libgcrypt/cipher/seed.c +-./grub-core/lib/libgcrypt/cipher/serpent.c +-./grub-core/lib/libgcrypt/cipher/sha1.c +-./grub-core/lib/libgcrypt/cipher/sha256.c +-./grub-core/lib/libgcrypt/cipher/sha512.c +-./grub-core/lib/libgcrypt/cipher/test-getrusage.c +-./grub-core/lib/libgcrypt/cipher/tiger.c +-./grub-core/lib/libgcrypt/cipher/twofish.c +-./grub-core/lib/libgcrypt/cipher/whirlpool.c +-./grub-core/lib/libgcrypt/mpi/ec.c +-./grub-core/lib/libgcrypt/mpi/generic/mpi-asm-defs.h +-./grub-core/lib/libgcrypt/mpi/generic/mpih-add1.c +-./grub-core/lib/libgcrypt/mpi/generic/mpih-lshift.c +-./grub-core/lib/libgcrypt/mpi/generic/mpih-mul1.c +-./grub-core/lib/libgcrypt/mpi/generic/mpih-mul2.c +-./grub-core/lib/libgcrypt/mpi/generic/mpih-mul3.c +-./grub-core/lib/libgcrypt/mpi/generic/mpih-rshift.c +-./grub-core/lib/libgcrypt/mpi/generic/mpih-sub1.c +-./grub-core/lib/libgcrypt/mpi/generic/udiv-w-sdiv.c +-./grub-core/lib/libgcrypt/mpi/i386/syntax.h +-./grub-core/lib/libgcrypt/mpi/longlong.h +-./grub-core/lib/libgcrypt/mpi/m68k/syntax.h +-./grub-core/lib/libgcrypt/mpi/mips3/mpi-asm-defs.h +-./grub-core/lib/libgcrypt/mpi/mpi-add.c +-./grub-core/lib/libgcrypt/mpi/mpi-bit.c +-./grub-core/lib/libgcrypt/mpi/mpi-cmp.c +-./grub-core/lib/libgcrypt/mpi/mpicoder.c +-./grub-core/lib/libgcrypt/mpi/mpi-div.c +-./grub-core/lib/libgcrypt/mpi/mpi-gcd.c +-./grub-core/lib/libgcrypt/mpi/mpih-div.c +-./grub-core/lib/libgcrypt/mpi/mpih-mul.c +-./grub-core/lib/libgcrypt/mpi/mpi-inline.c +-./grub-core/lib/libgcrypt/mpi/mpi-inline.h +-./grub-core/lib/libgcrypt/mpi/mpi-internal.h +-./grub-core/lib/libgcrypt/mpi/mpi-inv.c +-./grub-core/lib/libgcrypt/mpi/mpi-mod.c +-./grub-core/lib/libgcrypt/mpi/mpi-mpow.c +-./grub-core/lib/libgcrypt/mpi/mpi-mul.c +-./grub-core/lib/libgcrypt/mpi/mpi-pow.c +-./grub-core/lib/libgcrypt/mpi/mpi-scan.c +-./grub-core/lib/libgcrypt/mpi/mpiutil.c +-./grub-core/lib/libgcrypt/mpi/powerpc32/syntax.h +-./grub-core/lib/libgcrypt/src/ath.c +-./grub-core/lib/libgcrypt/src/ath.h +-./grub-core/lib/libgcrypt/src/cipher.h +-./grub-core/lib/libgcrypt/src/cipher-proto.h +-./grub-core/lib/libgcrypt/src/dumpsexp.c +-./grub-core/lib/libgcrypt/src/fips.c +-./grub-core/lib/libgcrypt/src/g10lib.h +-./grub-core/lib/libgcrypt/src/gcrypt-module.h +-./grub-core/lib/libgcrypt/src/gcryptrnd.c +-./grub-core/lib/libgcrypt/src/getrandom.c +-./grub-core/lib/libgcrypt/src/global.c +-./grub-core/lib/libgcrypt/src/hmac256.c +-./grub-core/lib/libgcrypt/src/hmac256.h +-./grub-core/lib/libgcrypt/src/hwfeatures.c +-./grub-core/lib/libgcrypt/src/misc.c +-./grub-core/lib/libgcrypt/src/missing-string.c +-./grub-core/lib/libgcrypt/src/module.c +-./grub-core/lib/libgcrypt/src/mpi.h +-./grub-core/lib/libgcrypt/src/secmem.c +-./grub-core/lib/libgcrypt/src/secmem.h +-./grub-core/lib/libgcrypt/src/sexp.c +-./grub-core/lib/libgcrypt/src/stdmem.c +-./grub-core/lib/libgcrypt/src/stdmem.h +-./grub-core/lib/libgcrypt/src/types.h +-./grub-core/lib/libgcrypt/src/visibility.c +-./grub-core/lib/libgcrypt/src/visibility.h +-./grub-core/lib/libgcrypt_wrap/cipher_wrap.h +-./grub-core/lib/libgcrypt_wrap/mem.c +-./grub-core/lib/LzFind.c +-./grub-core/lib/LzmaDec.c +-./grub-core/lib/LzmaEnc.c +-./grub-core/lib/minilzo/lzoconf.h +-./grub-core/lib/minilzo/lzodefs.h +-./grub-core/lib/minilzo/minilzo.c +-./grub-core/lib/minilzo/minilzo.h +-./grub-core/lib/mips/arc/reboot.c +-./grub-core/lib/mips/loongson/reboot.c +-./grub-core/lib/mips/qemu_mips/reboot.c +-./grub-core/lib/mips/relocator.c +-./grub-core/lib/pbkdf2.c +-./grub-core/lib/posix_wrap/assert.h +-./grub-core/lib/posix_wrap/ctype.h +-./grub-core/lib/posix_wrap/errno.h +-./grub-core/lib/posix_wrap/inttypes.h +-./grub-core/lib/posix_wrap/langinfo.h +-./grub-core/lib/posix_wrap/limits.h +-./grub-core/lib/posix_wrap/localcharset.h +-./grub-core/lib/posix_wrap/locale.h +-./grub-core/lib/posix_wrap/stdint.h +-./grub-core/lib/posix_wrap/stdio.h +-./grub-core/lib/posix_wrap/stdlib.h +-./grub-core/lib/posix_wrap/string.h +-./grub-core/lib/posix_wrap/sys/types.h +-./grub-core/lib/posix_wrap/unistd.h +-./grub-core/lib/posix_wrap/wchar.h +-./grub-core/lib/posix_wrap/wctype.h +-./grub-core/lib/powerpc/relocator.c +-./grub-core/lib/priority_queue.c +-./grub-core/lib/reed_solomon.c +-./grub-core/lib/relocator.c +-./grub-core/lib/xzembed/xz_config.h +-./grub-core/lib/xzembed/xz_dec_bcj.c +-./grub-core/lib/xzembed/xz_dec_lzma2.c +-./grub-core/lib/xzembed/xz_dec_stream.c +-./grub-core/lib/xzembed/xz.h +-./grub-core/lib/xzembed/xz_lzma2.h +-./grub-core/lib/xzembed/xz_private.h +-./grub-core/lib/xzembed/xz_stream.h +-./grub-core/loader/aout.c +-./grub-core/loader/efi/appleloader.c +-./grub-core/loader/efi/chainloader.c +-./grub-core/loader/i386/bsd32.c +-./grub-core/loader/i386/bsd64.c +-./grub-core/loader/i386/bsd.c +-./grub-core/loader/i386/bsd_pagetable.c +-./grub-core/loader/i386/bsdXX.c +-./grub-core/loader/i386/coreboot/chainloader.c +-./grub-core/loader/i386/linux.c +-./grub-core/loader/i386/multiboot_mbi.c +-./grub-core/loader/i386/pc/chainloader.c +-./grub-core/loader/i386/pc/freedos.c +-./grub-core/loader/i386/pc/linux.c +-./grub-core/loader/i386/pc/ntldr.c +-./grub-core/loader/i386/pc/plan9.c +-./grub-core/loader/i386/pc/pxechainloader.c +-./grub-core/loader/i386/xnu.c +-./grub-core/loader/ia64/efi/linux.c +-./grub-core/loader/linux.c +-./grub-core/loader/lzss.c +-./grub-core/loader/macho32.c +-./grub-core/loader/macho64.c +-./grub-core/loader/macho.c +-./grub-core/loader/machoXX.c +-./grub-core/loader/mips/linux.c +-./grub-core/loader/multiboot.c +-./grub-core/loader/multiboot_elfxx.c +-./grub-core/loader/multiboot_mbi2.c +-./grub-core/loader/powerpc/ieee1275/linux.c +-./grub-core/loader/sparc64/ieee1275/linux.c +-./grub-core/loader/xnu.c +-./grub-core/loader/xnu_resume.c +-./grub-core/mmap/efi/mmap.c +-./grub-core/mmap/i386/mmap.c +-./grub-core/mmap/i386/pc/mmap.c +-./grub-core/mmap/i386/uppermem.c +-./grub-core/mmap/mips/uppermem.c +-./grub-core/mmap/mmap.c +-./grub-core/net/arp.c +-./grub-core/net/bootp.c +-./grub-core/net/dns.c +-./grub-core/net/drivers/efi/efinet.c +-./grub-core/net/drivers/emu/emunet.c +-./grub-core/net/drivers/i386/pc/pxe.c +-./grub-core/net/drivers/ieee1275/ofnet.c +-./grub-core/net/ethernet.c +-./grub-core/net/http.c +-./grub-core/net/icmp6.c +-./grub-core/net/icmp.c +-./grub-core/net/ip.c +-./grub-core/net/netbuff.c +-./grub-core/net/net.c +-./grub-core/net/tcp.c +-./grub-core/net/tftp.c +-./grub-core/net/udp.c +-./grub-core/normal/auth.c +-./grub-core/normal/autofs.c +-./grub-core/normal/charset.c +-./grub-core/normal/cmdline.c +-./grub-core/normal/color.c +-./grub-core/normal/completion.c +-./grub-core/normal/context.c +-./grub-core/normal/crypto.c +-./grub-core/normal/datetime.c +-./grub-core/normal/dyncmd.c +-./grub-core/normal/main.c +-./grub-core/normal/menu.c +-./grub-core/normal/menu_entry.c +-./grub-core/normal/menu_text.c +-./grub-core/normal/misc.c +-./grub-core/normal/term.c +-./grub-core/partmap/acorn.c +-./grub-core/partmap/amiga.c +-./grub-core/partmap/apple.c +-./grub-core/partmap/bsdlabel.c +-./grub-core/partmap/dvh.c +-./grub-core/partmap/gpt.c +-./grub-core/partmap/msdos.c +-./grub-core/partmap/plan.c +-./grub-core/partmap/sun.c +-./grub-core/partmap/sunpc.c +-./grub-core/parttool/msdospart.c +-./grub-core/script/argv.c +-./grub-core/script/execute.c +-./grub-core/script/function.c +-./grub-core/script/lexer.c +-./grub-core/script/main.c +-./grub-core/script/script.c +-./grub-core/term/arc/console.c +-./grub-core/term/at_keyboard.c +-./grub-core/term/efi/console.c +-./grub-core/term/efi/serial.c +-./grub-core/term/emu/console.c +-./grub-core/term/gfxterm.c +-./grub-core/term/i386/coreboot/cbmemc.c +-./grub-core/term/i386/pc/console.c +-./grub-core/term/i386/pc/mda_text.c +-./grub-core/term/i386/pc/vga_text.c +-./grub-core/term/ieee1275/console.c +-./grub-core/term/ieee1275/escc.c +-./grub-core/term/ieee1275/serial.c +-./grub-core/term/morse.c +-./grub-core/term/ns8250.c +-./grub-core/term/serial.c +-./grub-core/term/spkmodem.c +-./grub-core/term/terminfo.c +-./grub-core/term/tparm.c +-./grub-core/term/usb_keyboard.c +-./grub-core/tests/example_functional_test.c +-./grub-core/tests/lib/functional_test.c +-./grub-core/tests/lib/test.c +-./grub-core/tests/test_blockarg.c +-./grub-core/unidata.c +-./grub-core/video/bitmap.c +-./grub-core/video/bitmap_scale.c +-./grub-core/video/bochs.c +-./grub-core/video/cirrus.c +-./grub-core/video/colors.c +-./grub-core/video/efi_gop.c +-./grub-core/video/efi_uga.c +-./grub-core/video/emu/sdl.c +-./grub-core/video/fb/fbblit.c +-./grub-core/video/fb/fbfill.c +-./grub-core/video/fb/fbutil.c +-./grub-core/video/fb/video_fb.c +-./grub-core/video/i386/pc/vbe.c +-./grub-core/video/i386/pc/vga.c +-./grub-core/video/ieee1275.c +-./grub-core/video/radeon_fuloong2e.c +-./grub-core/video/readers/jpeg.c +-./grub-core/video/readers/png.c +-./grub-core/video/readers/tga.c +-./grub-core/video/sis315_init.c +-./grub-core/video/sis315pro.c +-./grub-core/video/sm712.c +-./grub-core/video/sm712_init.c +-./grub-core/video/video.c +-./include/grub/acorn_filecore.h +-./include/grub/acpi.h +-./include/grub/aout.h +-./include/grub/arc/arc.h +-./include/grub/arc/console.h +-./include/grub/ata.h +-./include/grub/at_keyboard.h +-./include/grub/auth.h +-./include/grub/autoefi.h +-./include/grub/backtrace.h +-./include/grub/bitmap.h +-./include/grub/bitmap_scale.h +-./include/grub/boottime.h +-./include/grub/bsdlabel.h +-./include/grub/bufio.h +-./include/grub/cache.h +-./include/grub/charset.h +-./include/grub/cmos.h +-./include/grub/command.h +-./include/grub/cryptodisk.h +-./include/grub/crypto.h +-./include/grub/cs5536.h +-./include/grub/datetime.h +-./include/grub/decompressor.h +-./include/grub/deflate.h +-./include/grub/device.h +-./include/grub/diskfilter.h +-./include/grub/disk.h +-./include/grub/dl.h +-./include/grub/efi/api.h +-./include/grub/efi/console_control.h +-./include/grub/efi/console.h +-./include/grub/efi/disk.h +-./include/grub/efi/edid.h +-./include/grub/efi/efi.h +-./include/grub/efiemu/efiemu.h +-./include/grub/efiemu/runtime.h +-./include/grub/efi/graphics_output.h +-./include/grub/efi/memory.h +-./include/grub/efi/pci.h +-./include/grub/efi/pe32.h +-./include/grub/efi/uga_draw.h +-./include/grub/elf.h +-./include/grub/elfload.h +-./include/grub/emu/console.h +-./include/grub/emu/export.h +-./include/grub/emu/getroot.h +-./include/grub/emu/hostdisk.h +-./include/grub/emu/misc.h +-./include/grub/env.h +-./include/grub/env_private.h +-./include/grub/err.h +-./include/grub/extcmd.h +-./include/grub/fat.h +-./include/grub/fbblit.h +-./include/grub/fbfill.h +-./include/grub/fbutil.h +-./include/grub/file.h +-./include/grub/fontformat.h +-./include/grub/font.h +-./include/grub/fs.h +-./include/grub/fshelp.h +-./include/grub/gcrypt/g10lib.h +-./include/grub/gcrypt/gcrypt.h +-./include/grub/gcrypt/gpg-error.h +-./include/grub/gcry/types.h +-./include/grub/gdb.h +-./include/grub/gfxmenu_model.h +-./include/grub/gfxmenu_view.h +-./include/grub/gfxterm.h +-./include/grub/gfxwidgets.h +-./include/grub/gpt_partition.h +-./include/grub/gui.h +-./include/grub/gui_string_util.h +-./include/grub/hfs.h +-./include/grub/i18n.h +-./include/grub/i386/at_keyboard.h +-./include/grub/i386/bsd.h +-./include/grub/i386/cmos.h +-./include/grub/i386/coreboot/boot.h +-./include/grub/i386/coreboot/console.h +-./include/grub/i386/coreboot/lbio.h +-./include/grub/i386/coreboot/memory.h +-./include/grub/i386/coreboot/serial.h +-./include/grub/i386/coreboot/time.h +-./include/grub/i386/cpuid.h +-./include/grub/i386/efiemu.h +-./include/grub/i386/efi/memory.h +-./include/grub/i386/efi/serial.h +-./include/grub/i386/floppy.h +-./include/grub/i386/freebsd_linker.h +-./include/grub/i386/freebsd_reboot.h +-./include/grub/i386/gdb.h +-./include/grub/i386/ieee1275/ieee1275.h +-./include/grub/i386/ieee1275/memory.h +-./include/grub/i386/ieee1275/serial.h +-./include/grub/i386/io.h +-./include/grub/i386/linux.h +-./include/grub/i386/macho.h +-./include/grub/i386/memory.h +-./include/grub/i386/multiboot/boot.h +-./include/grub/i386/multiboot/console.h +-./include/grub/i386/multiboot.h +-./include/grub/i386/multiboot/kernel.h +-./include/grub/i386/multiboot/memory.h +-./include/grub/i386/multiboot/serial.h +-./include/grub/i386/multiboot/time.h +-./include/grub/i386/netbsd_bootinfo.h +-./include/grub/i386/netbsd_reboot.h +-./include/grub/i386/openbsd_bootarg.h +-./include/grub/i386/openbsd_reboot.h +-./include/grub/i386/pc/apm.h +-./include/grub/i386/pc/biosdisk.h +-./include/grub/i386/pc/biosnum.h +-./include/grub/i386/pc/boot.h +-./include/grub/i386/pc/chainloader.h +-./include/grub/i386/pc/console.h +-./include/grub/i386/pci.h +-./include/grub/i386/pc/int.h +-./include/grub/i386/pc/kernel.h +-./include/grub/i386/pc/memory.h +-./include/grub/i386/pc/pxe.h +-./include/grub/i386/pc/time.h +-./include/grub/i386/pc/vbe.h +-./include/grub/i386/pc/vesa_modes_table.h +-./include/grub/i386/pit.h +-./include/grub/i386/qemu/boot.h +-./include/grub/i386/qemu/console.h +-./include/grub/i386/qemu/kernel.h +-./include/grub/i386/qemu/memory.h +-./include/grub/i386/qemu/serial.h +-./include/grub/i386/qemu/time.h +-./include/grub/i386/reboot.h +-./include/grub/i386/relocator.h +-./include/grub/i386/relocator_private.h +-./include/grub/i386/setjmp.h +-./include/grub/i386/time.h +-./include/grub/i386/tsc.h +-./include/grub/i386/types.h +-./include/grub/i386/xnu.h +-./include/grub/ia64/efi/memory.h +-./include/grub/ia64/efi/time.h +-./include/grub/ia64/kernel.h +-./include/grub/ia64/reloc.h +-./include/grub/ia64/setjmp.h +-./include/grub/ia64/time.h +-./include/grub/ia64/types.h +-./include/grub/icon_manager.h +-./include/grub/ieee1275/console.h +-./include/grub/ieee1275/ieee1275.h +-./include/grub/ieee1275/ofdisk.h +-./include/grub/kernel.h +-./include/grub/keyboard_layouts.h +-./include/grub/legacy_parse.h +-./include/grub/lib/arg.h +-./include/grub/lib/cmdline.h +-./include/grub/lib/crc.h +-./include/grub/lib/envblk.h +-./include/grub/libgcc.h +-./include/grub/lib/hexdump.h +-./include/grub/lib/LzFind.h +-./include/grub/lib/LzHash.h +-./include/grub/lib/LzmaDec.h +-./include/grub/lib/LzmaEnc.h +-./include/grub/lib/LzmaTypes.h +-./include/grub/libpciaccess.h +-./include/grub/libusb.h +-./include/grub/linux.h +-./include/grub/list.h +-./include/grub/loader.h +-./include/grub/lvm.h +-./include/grub/macho.h +-./include/grub/machoload.h +-./include/grub/memory.h +-./include/grub/menu.h +-./include/grub/menu_viewer.h +-./include/grub/mips/arc/kernel.h +-./include/grub/mips/arc/memory.h +-./include/grub/mips/arc/time.h +-./include/grub/mips/at_keyboard.h +-./include/grub/mips/cache.h +-./include/grub/mips/cmos.h +-./include/grub/mips/io.h +-./include/grub/mips/kernel.h +-./include/grub/mips/loongson/at_keyboard.h +-./include/grub/mips/loongson/cmos.h +-./include/grub/mips/loongson/ec.h +-./include/grub/mips/loongson.h +-./include/grub/mips/loongson/kernel.h +-./include/grub/mips/loongson/memory.h +-./include/grub/mips/loongson/pci.h +-./include/grub/mips/loongson/serial.h +-./include/grub/mips/loongson/time.h +-./include/grub/mips/memory.h +-./include/grub/mips/mips.h +-./include/grub/mips/multiboot.h +-./include/grub/mips/pci.h +-./include/grub/mips/qemu_mips/at_keyboard.h +-./include/grub/mips/qemu_mips/cmos.h +-./include/grub/mips/qemu_mips/console.h +-./include/grub/mips/qemu_mips/kernel.h +-./include/grub/mips/qemu_mips/loader.h +-./include/grub/mips/qemu_mips/memory.h +-./include/grub/mips/qemu_mips/serial.h +-./include/grub/mips/qemu_mips/time.h +-./include/grub/mips/relocator.h +-./include/grub/mips/setjmp.h +-./include/grub/mips/time.h +-./include/grub/mips/types.h +-./include/grub/misc.h +-./include/grub/mm.h +-./include/grub/mm_private.h +-./include/grub/msdos_partition.h +-./include/grub/multiboot.h +-./include/grub/multiboot_loader.h +-./include/grub/net/arp.h +-./include/grub/net/ethernet.h +-./include/grub/net.h +-./include/grub/net/ip.h +-./include/grub/net/netbuff.h +-./include/grub/net/tcp.h +-./include/grub/net/udp.h +-./include/grub/normal.h +-./include/grub/ns8250.h +-./include/grub/ntfs.h +-./include/grub/offsets.h +-./include/grub/parser.h +-./include/grub/partition.h +-./include/grub/parttool.h +-./include/grub/pci.h +-./include/grub/pciutils.h +-./include/grub/powerpc/ieee1275/ieee1275.h +-./include/grub/powerpc/kernel.h +-./include/grub/powerpc/memory.h +-./include/grub/powerpc/relocator.h +-./include/grub/powerpc/setjmp.h +-./include/grub/powerpc/time.h +-./include/grub/powerpc/types.h +-./include/grub/priority_queue.h +-./include/grub/procfs.h +-./include/grub/pubkey.h +-./include/grub/reader.h +-./include/grub/reed_solomon.h +-./include/grub/relocator.h +-./include/grub/relocator_private.h +-./include/grub/script_sh.h +-./include/grub/scsicmd.h +-./include/grub/scsi.h +-./include/grub/sdl.h +-./include/grub/search.h +-./include/grub/serial.h +-./include/grub/setjmp.h +-./include/grub/smbus.h +-./include/grub/sparc64/ieee1275/boot.h +-./include/grub/sparc64/ieee1275/ieee1275.h +-./include/grub/sparc64/ieee1275/kernel.h +-./include/grub/sparc64/setjmp.h +-./include/grub/sparc64/time.h +-./include/grub/sparc64/types.h +-./include/grub/speaker.h +-./include/grub/symbol.h +-./include/grub/term.h +-./include/grub/terminfo.h +-./include/grub/test.h +-./include/grub/time.h +-./include/grub/tparm.h +-./include/grub/trig.h +-./include/grub/types.h +-./include/grub/unicode.h +-./include/grub/usbdesc.h +-./include/grub/usb.h +-./include/grub/usbserial.h +-./include/grub/usbtrans.h +-./include/grub/util/libnvpair.h +-./include/grub/util/libzfs.h +-./include/grub/util/lvm.h +-./include/grub/util/misc.h +-./include/grub/util/ofpath.h +-./include/grub/util/resolve.h +-./include/grub/vga.h +-./include/grub/vgaregs.h +-./include/grub/video_fb.h +-./include/grub/video.h +-./include/grub/x86_64/at_keyboard.h +-./include/grub/x86_64/efi/boot.h +-./include/grub/x86_64/efi/loader.h +-./include/grub/x86_64/efi/memory.h +-./include/grub/x86_64/efi/serial.h +-./include/grub/x86_64/io.h +-./include/grub/x86_64/linux.h +-./include/grub/x86_64/macho.h +-./include/grub/x86_64/memory.h +-./include/grub/x86_64/multiboot.h +-./include/grub/x86_64/pci.h +-./include/grub/x86_64/relocator.h +-./include/grub/x86_64/setjmp.h +-./include/grub/x86_64/time.h +-./include/grub/x86_64/types.h +-./include/grub/x86_64/xnu.h +-./include/grub/xnu.h +-./include/grub/zfs/dmu.h +-./include/grub/zfs/dmu_objset.h +-./include/grub/zfs/dnode.h +-./include/grub/zfs/dsl_dataset.h +-./include/grub/zfs/dsl_dir.h +-./include/grub/zfs/sa_impl.h +-./include/grub/zfs/spa.h +-./include/grub/zfs/uberblock_impl.h +-./include/grub/zfs/vdev_impl.h +-./include/grub/zfs/zap_impl.h +-./include/grub/zfs/zap_leaf.h +-./include/grub/zfs/zfs_acl.h +-./include/grub/zfs/zfs.h +-./include/grub/zfs/zfs_znode.h +-./include/grub/zfs/zil.h +-./include/grub/zfs/zio_checksum.h +-./include/grub/zfs/zio.h +-./include/multiboot2.h +-./include/multiboot.h +-./tests/cmp_unit_test.c +-./tests/example_unit_test.c +-./tests/lib/unit_test.c +-./tests/printf_unit_test.c +-./util/bin2h.c +-./util/getroot.c +-./util/grub-editenv.c +-./util/grub-fstest.c +-./util/grub-macho2img.c +-./util/grub-menulst2cfg.c +-./util/grub-mkfont.c +-./util/grub-mkimage.c +-./util/grub-mkimagexx.c +-./util/grub-mklayout.c +-./util/grub-mkpasswd-pbkdf2.c +-./util/grub-mkrelpath.c +-./util/grub-mount.c +-./util/grub-pe2elf.c +-./util/grub-probe.c +-./util/grub-script-check.c +-./util/grub-setup.c +-./util/ieee1275/grub-ofpathname.c +-./util/ieee1275/ofpath.c +-./util/lvm.c +-./util/misc.c +-./util/raid.c +-./util/resolve.c +-./util/spkmodem-recv.c +-- +1.8.2.1 + diff --git a/0374-INSTALL-Document-linguas.sh.patch b/0374-INSTALL-Document-linguas.sh.patch new file mode 100644 index 0000000..bf58d10 --- /dev/null +++ b/0374-INSTALL-Document-linguas.sh.patch @@ -0,0 +1,69 @@ +From 1f677cec8cae46c415ab432009d5fb5915305a8a Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 13:50:18 +0200 +Subject: [PATCH 374/471] * INSTALL: Document linguas.sh. + +--- + ChangeLog | 4 ++++ + INSTALL | 19 ++++++++++++------- + 2 files changed, 16 insertions(+), 7 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 0dcf7b0..21260c0 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-28 Vladimir Serbinenko + ++ * INSTALL: Document linguas.sh. ++ ++2013-04-28 Vladimir Serbinenko ++ + Remove POTFILES.in and regenerate it in autogen.sh. + + 2013-04-28 Vladimir Serbinenko +diff --git a/INSTALL b/INSTALL +index a626395..7fe2450 100644 +--- a/INSTALL ++++ b/INSTALL +@@ -76,9 +76,14 @@ Building the GRUB + + The simplest way to compile this package is: + +- 1. `cd' to the directory containing the package's source code. If +- you don't use a release tarball you have to type `./autogen.sh'. +- Type `./configure' to configure the package for your system. ++ 1. `cd' to the directory containing the package's source code. ++ ++ 2. Skip this and following step if you use release tarball and proceed to ++ step 4. If you want translations type `./linguas.sh'. ++ ++ 3. Type `./autogen.sh'. ++ ++ 4. Type `./configure' to configure the package for your system. + If you're using `csh' on an old version of System V, you might + need to type `sh ./configure' instead to prevent `csh' from trying + to execute `configure' itself. +@@ -86,15 +91,15 @@ The simplest way to compile this package is: + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + +- 2. Type `make' to compile the package. ++ 6. Type `make' to compile the package. + +- 3. Optionally, type `make check' to run any self-tests that come with ++ 7. Optionally, type `make check' to run any self-tests that come with + the package. + +- 4. Type `make install' to install the programs and any data files and ++ 8. Type `make install' to install the programs and any data files and + documentation. + +- 5. You can remove the program binaries and object files from the ++ 9. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is +-- +1.8.2.1 + diff --git a/0375-grub-core-commands-probe.c-Add-missing-grub_device_c.patch b/0375-grub-core-commands-probe.c-Add-missing-grub_device_c.patch new file mode 100644 index 0000000..8043cbe --- /dev/null +++ b/0375-grub-core-commands-probe.c-Add-missing-grub_device_c.patch @@ -0,0 +1,75 @@ +From e5947ad0f47058715a588ff2fdfa5487f65f459b Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 13:54:32 +0200 +Subject: [PATCH 375/471] * grub-core/commands/probe.c: Add missing + grub_device_close. + +--- + ChangeLog | 4 ++++ + grub-core/commands/probe.c | 6 ++++++ + 2 files changed, 10 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 21260c0..5c50b56 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-28 Vladimir Serbinenko + ++ * grub-core/commands/probe.c: Add missing grub_device_close. ++ ++2013-04-28 Vladimir Serbinenko ++ + * INSTALL: Document linguas.sh. + + 2013-04-28 Vladimir Serbinenko +diff --git a/grub-core/commands/probe.c b/grub-core/commands/probe.c +index eeece87..cf2793e 100644 +--- a/grub-core/commands/probe.c ++++ b/grub-core/commands/probe.c +@@ -83,6 +83,7 @@ grub_cmd_probe (grub_extcmd_context_t ctxt, int argc, char **args) + grub_env_set (state[0].arg, val); + else + grub_printf ("%s", val); ++ grub_device_close (dev); + return GRUB_ERR_NONE; + } + if (state[2].set) +@@ -94,6 +95,7 @@ grub_cmd_probe (grub_extcmd_context_t ctxt, int argc, char **args) + grub_env_set (state[0].arg, val); + else + grub_printf ("%s", val); ++ grub_device_close (dev); + return GRUB_ERR_NONE; + } + fs = grub_fs_probe (dev); +@@ -105,6 +107,7 @@ grub_cmd_probe (grub_extcmd_context_t ctxt, int argc, char **args) + grub_env_set (state[0].arg, fs->name); + else + grub_printf ("%s", fs->name); ++ grub_device_close (dev); + return GRUB_ERR_NONE; + } + if (state[4].set) +@@ -125,6 +128,7 @@ grub_cmd_probe (grub_extcmd_context_t ctxt, int argc, char **args) + else + grub_printf ("%s", uuid); + grub_free (uuid); ++ grub_device_close (dev); + return GRUB_ERR_NONE; + } + if (state[5].set) +@@ -147,8 +151,10 @@ grub_cmd_probe (grub_extcmd_context_t ctxt, int argc, char **args) + else + grub_printf ("%s", label); + grub_free (label); ++ grub_device_close (dev); + return GRUB_ERR_NONE; + } ++ grub_device_close (dev); + return grub_error (GRUB_ERR_BAD_ARGUMENT, "unrecognised target"); + } + +-- +1.8.2.1 + diff --git a/0376-grub-core-kern-file.c-Use-const-char-rather-than-cas.patch b/0376-grub-core-kern-file.c-Use-const-char-rather-than-cas.patch new file mode 100644 index 0000000..408ce45 --- /dev/null +++ b/0376-grub-core-kern-file.c-Use-const-char-rather-than-cas.patch @@ -0,0 +1,51 @@ +From f1a2bb1f76fd670d90b3c6b44d8b071a6c8330ba Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 14:06:57 +0200 +Subject: [PATCH 376/471] * grub-core/kern/file.c: Use const char * + rather than casting to non-const. + +--- + ChangeLog | 5 +++++ + grub-core/kern/file.c | 4 ++-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 5c50b56..da92415 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-28 Vladimir Serbinenko + ++ * grub-core/kern/file.c: Use const char * rather than casting to ++ non-const. ++ ++2013-04-28 Vladimir Serbinenko ++ + * grub-core/commands/probe.c: Add missing grub_device_close. + + 2013-04-28 Vladimir Serbinenko +diff --git a/grub-core/kern/file.c b/grub-core/kern/file.c +index d2a6317..6426668 100644 +--- a/grub-core/kern/file.c ++++ b/grub-core/kern/file.c +@@ -64,7 +64,7 @@ grub_file_open (const char *name) + grub_device_t device = 0; + grub_file_t file = 0, last_file = 0; + char *device_name; +- char *file_name; ++ const char *file_name; + grub_file_filter_id_t filter; + + device_name = grub_file_get_device_name (name); +@@ -76,7 +76,7 @@ grub_file_open (const char *name) + if (file_name) + file_name++; + else +- file_name = (char *) name; ++ file_name = name; + + device = grub_device_open (device_name); + grub_free (device_name); +-- +1.8.2.1 + diff --git a/0377-include-grub-efi-api.h-GRUB_EFI_DEVICE_PATH_LENGTH-U.patch b/0377-include-grub-efi-api.h-GRUB_EFI_DEVICE_PATH_LENGTH-U.patch new file mode 100644 index 0000000..6e87be0 --- /dev/null +++ b/0377-include-grub-efi-api.h-GRUB_EFI_DEVICE_PATH_LENGTH-U.patch @@ -0,0 +1,44 @@ +From 9609731b185923ba8ce177b0c8a0679b876c8f1a Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 15:15:57 +0200 +Subject: [PATCH 377/471] * include/grub/efi/api.h + (GRUB_EFI_DEVICE_PATH_LENGTH): Use grub_get_unaligned16 rather than + shifts. + +--- + ChangeLog | 5 +++++ + include/grub/efi/api.h | 3 +-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index da92415..727a8c8 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-28 Vladimir Serbinenko + ++ * include/grub/efi/api.h (GRUB_EFI_DEVICE_PATH_LENGTH): Use ++ grub_get_unaligned16 rather than shifts. ++ ++2013-04-28 Vladimir Serbinenko ++ + * grub-core/kern/file.c: Use const char * rather than casting to + non-const. + +diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h +index 2917d14..69bcd0c 100644 +--- a/include/grub/efi/api.h ++++ b/include/grub/efi/api.h +@@ -553,8 +553,7 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; + + #define GRUB_EFI_DEVICE_PATH_TYPE(dp) ((dp)->type & 0x7f) + #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) +-#define GRUB_EFI_DEVICE_PATH_LENGTH(dp) \ +- ((dp)->length[0] | ((grub_efi_uint16_t) ((dp)->length[1]) << 8)) ++#define GRUB_EFI_DEVICE_PATH_LENGTH(dp) (grub_get_unaligned16 ((dp)->length)) + + /* The End of Device Path nodes. */ + #define GRUB_EFI_END_DEVICE_PATH_TYPE (0xff & 0x7f) +-- +1.8.2.1 + diff --git a/0378-grub-core-disk-ahci.c-Fix-compilation-for-amd64-form.patch b/0378-grub-core-disk-ahci.c-Fix-compilation-for-amd64-form.patch new file mode 100644 index 0000000..a0eabe3 --- /dev/null +++ b/0378-grub-core-disk-ahci.c-Fix-compilation-for-amd64-form.patch @@ -0,0 +1,54 @@ +From 5868a0441dd295918687d7751aec3d0435ad3a28 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 15:17:43 +0200 +Subject: [PATCH 378/471] * grub-core/disk/ahci.c: Fix compilation for + amd64 (format warnings). + +--- + ChangeLog | 4 ++++ + grub-core/disk/ahci.c | 8 ++++---- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 727a8c8..8b4206e 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-28 Vladimir Serbinenko + ++ * grub-core/disk/ahci.c: Fix compilation for amd64 (format warnings). ++ ++2013-04-28 Vladimir Serbinenko ++ + * include/grub/efi/api.h (GRUB_EFI_DEVICE_PATH_LENGTH): Use + grub_get_unaligned16 rather than shifts. + +diff --git a/grub-core/disk/ahci.c b/grub-core/disk/ahci.c +index 47fd423..e617042 100644 +--- a/grub-core/disk/ahci.c ++++ b/grub-core/disk/ahci.c +@@ -531,8 +531,8 @@ grub_ahci_pciinit (grub_pci_device_t dev, + adevs[i]->hba->ports[adevs[i]->port].sata_error); + + grub_dprintf ("ahci", "offset: %x, tfd:%x, CMD: %x\n", +- (char *) &adevs[i]->hba->ports[adevs[i]->port].task_file_data - +- (char *) adevs[i]->hba, ++ (int) ((char *) &adevs[i]->hba->ports[adevs[i]->port].task_file_data - ++ (char *) adevs[i]->hba), + adevs[i]->hba->ports[adevs[i]->port].task_file_data, + adevs[i]->hba->ports[adevs[i]->port].command); + +@@ -545,8 +545,8 @@ grub_ahci_pciinit (grub_pci_device_t dev, + if (adevs[i]) + { + grub_dprintf ("ahci", "offset: %x, tfd:%x, CMD: %x\n", +- (char *) &adevs[i]->hba->ports[adevs[i]->port].task_file_data - +- (char *) adevs[i]->hba, ++ (int) ((char *) &adevs[i]->hba->ports[adevs[i]->port].task_file_data - ++ (char *) adevs[i]->hba), + adevs[i]->hba->ports[adevs[i]->port].task_file_data, + adevs[i]->hba->ports[adevs[i]->port].command); + +-- +1.8.2.1 + diff --git a/0379-grub-core-io-lzopio.c-Use-GRUB_PROPERLY_ALIGNED_ARRA.patch b/0379-grub-core-io-lzopio.c-Use-GRUB_PROPERLY_ALIGNED_ARRA.patch new file mode 100644 index 0000000..1beeb0f --- /dev/null +++ b/0379-grub-core-io-lzopio.c-Use-GRUB_PROPERLY_ALIGNED_ARRA.patch @@ -0,0 +1,65 @@ +From 0ea461de225231105cbc561d3088b208e90377fa Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 15:18:50 +0200 +Subject: [PATCH 379/471] * grub-core/io/lzopio.c: Use + GRUB_PROPERLY_ALIGNED_ARRAY. * grub-core/loader/i386/bsd.c: Likewise. + +--- + ChangeLog | 5 +++++ + grub-core/io/lzopio.c | 4 ++-- + grub-core/loader/i386/bsd.c | 2 +- + 3 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 8b4206e..835895b 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-28 Vladimir Serbinenko + ++ * grub-core/io/lzopio.c: Use GRUB_PROPERLY_ALIGNED_ARRAY. ++ * grub-core/loader/i386/bsd.c: Likewise. ++ ++2013-04-28 Vladimir Serbinenko ++ + * grub-core/disk/ahci.c: Fix compilation for amd64 (format warnings). + + 2013-04-28 Vladimir Serbinenko +diff --git a/grub-core/io/lzopio.c b/grub-core/io/lzopio.c +index 63bfbad..451d237 100644 +--- a/grub-core/io/lzopio.c ++++ b/grub-core/io/lzopio.c +@@ -166,7 +166,7 @@ read_block_data (struct grub_lzopio *lzopio) + + if (lzopio->ccheck_fun) + { +- grub_uint64_t context[(lzopio->ccheck_fun->contextsize + 7) / 8]; ++ GRUB_PROPERLY_ALIGNED_ARRAY (context, lzopio->ccheck_fun->contextsize); + + lzopio->ccheck_fun->init (context); + lzopio->ccheck_fun->write (context, lzopio->block.cdata, +@@ -212,7 +212,7 @@ uncompress_block (struct grub_lzopio *lzopio) + + if (lzopio->ucheck_fun) + { +- grub_uint64_t context[(lzopio->ucheck_fun->contextsize + 7) / 8]; ++ GRUB_PROPERLY_ALIGNED_ARRAY (context, lzopio->ucheck_fun->contextsize); + + lzopio->ucheck_fun->init (context); + lzopio->ucheck_fun->write (context, lzopio->block.udata, +diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c +index 5fe586f..014b51c 100644 +--- a/grub-core/loader/i386/bsd.c ++++ b/grub-core/loader/i386/bsd.c +@@ -1045,7 +1045,7 @@ grub_netbsd_add_boot_disk_and_wedge (void) + struct grub_partition_bsd_disk_label label; + } buf; + grub_uint8_t *hash; +- grub_uint64_t ctx[(GRUB_MD_MD5->contextsize + 7) / 8]; ++ GRUB_PROPERLY_ALIGNED_ARRAY (ctx, GRUB_MD_MD5->contextsize); + + dev = grub_device_open (0); + if (! (dev && dev->disk && dev->disk->partition)) +-- +1.8.2.1 + diff --git a/0380-New-command-nativedisk.patch b/0380-New-command-nativedisk.patch new file mode 100644 index 0000000..38498b6 --- /dev/null +++ b/0380-New-command-nativedisk.patch @@ -0,0 +1,499 @@ +From 97f30af3b3b4bbfe51efa1f8bb0cd344280a028e Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 15:31:33 +0200 +Subject: [PATCH 380/471] New command `nativedisk'. + +--- + ChangeLog | 4 + + docs/grub.texi | 8 ++ + grub-core/Makefile.core.def | 5 + + grub-core/commands/nativedisk.c | 250 ++++++++++++++++++++++++++++++++++++++++ + grub-core/kern/dl.c | 46 +++----- + grub-core/normal/main.c | 3 +- + include/grub/dl.h | 29 ++++- + 7 files changed, 316 insertions(+), 29 deletions(-) + create mode 100644 grub-core/commands/nativedisk.c + +diff --git a/ChangeLog b/ChangeLog +index 835895b..69c7839 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-28 Vladimir Serbinenko + ++ New command `nativedisk'. ++ ++2013-04-28 Vladimir Serbinenko ++ + * grub-core/io/lzopio.c: Use GRUB_PROPERLY_ALIGNED_ARRAY. + * grub-core/loader/i386/bsd.c: Likewise. + +diff --git a/docs/grub.texi b/docs/grub.texi +index 754e191..587c64e 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -3411,6 +3411,7 @@ you forget a command, you can run the command @command{help} + * lsfonts:: List loaded fonts + * lsmod:: Show loaded modules + * md5sum:: Compute or check MD5 hash ++* nativedisk:: Switch to native disk drivers + * normal:: Enter normal mode + * normal_exit:: Exit from normal mode + * parttool:: Modify partition table entries +@@ -4035,6 +4036,13 @@ Alias for @code{hashsum --hash md5 arg @dots{}}. See command @command{hashsum} + @end deffn + + ++@node nativedisk ++@subsection nativedisk ++ ++@deffn Command nativedisk ++Switch from firmware disk drivers to native ones. ++@end deffn ++ + @node normal + @subsection normal + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 7f93723..2e73d89 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -508,6 +508,11 @@ module = { + }; + + module = { ++ name = nativedisk; ++ common = commands/nativedisk.c; ++}; ++ ++module = { + name = emupci; + common = bus/emu/pci.c; + common = commands/lspci.c; +diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c +new file mode 100644 +index 0000000..adb4043 +--- /dev/null ++++ b/grub-core/commands/nativedisk.c +@@ -0,0 +1,250 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static const char *modnames_def[] = { "pata", "ahci", "usbms", "ohci", "uhci", "ehci" }; ++ ++static grub_err_t ++get_uuid (const char *name, char **uuid) ++{ ++ grub_device_t dev; ++ grub_fs_t fs = 0; ++ ++ dev = grub_device_open (name); ++ if (!dev) ++ return grub_errno; ++ if (dev) ++ fs = grub_fs_probe (dev); ++ if (!fs) ++ { ++ grub_device_close (dev); ++ return grub_errno; ++ } ++ if (!fs->uuid || fs->uuid (dev, uuid)) ++ { ++ grub_device_close (dev); ++ ++ if (!grub_errno) ++ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, ++ N_("%s does not support UUIDs"), fs->name); ++ ++ return grub_errno; ++ } ++ grub_device_close (dev); ++ return GRUB_ERR_NONE; ++} ++ ++struct search_ctx ++{ ++ char *root_uuid; ++ char *prefix_uuid; ++ const char *prefix_path; ++ int prefix_found, root_found; ++}; ++ ++static int ++iterate_device (const char *name, void *data) ++{ ++ struct search_ctx *ctx = data; ++ char *cur_uuid; ++ ++ if (get_uuid (name, &cur_uuid)) ++ { ++ grub_print_error (); ++ return 0; ++ } ++ if (grub_strcasecmp (cur_uuid, ctx->prefix_uuid) == 0) ++ { ++ char *prefix; ++ prefix = grub_xasprintf ("(%s)/%s", name, ctx->prefix_path); ++ grub_env_set ("prefix", prefix); ++ grub_free (prefix); ++ ctx->prefix_found = 1; ++ } ++ if (grub_strcasecmp (cur_uuid, ctx->root_uuid) == 0) ++ { ++ grub_env_set ("root", name); ++ ctx->root_found = 1; ++ } ++ return ctx->prefix_found && ctx->root_found; ++} ++ ++static grub_err_t ++grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), ++ int argc, char **args_in) ++{ ++ char *uuid_root = 0, *uuid_prefix, *prefdev = 0; ++ const char *prefix = 0; ++ const char *path_prefix = 0; ++ int mods_loaded = 0; ++ grub_dl_t *mods; ++ struct search_ctx ctx; ++ const char **args; ++ grub_fs_autoload_hook_t saved_autoload; ++ int i; ++ ++ if (argc == 0) ++ { ++ argc = ARRAY_SIZE (modnames_def); ++ args = modnames_def; ++ } ++ else ++ args = (const char **) args_in; ++ ++ prefix = grub_env_get ("prefix"); ++ ++ if (! prefix) ++ return grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("variable `%s' isn't set"), "prefix"); ++ ++ if (prefix) ++ path_prefix = (prefix[0] == '(') ? grub_strchr (prefix, ')') : NULL; ++ if (path_prefix) ++ path_prefix++; ++ else ++ path_prefix = prefix; ++ ++ mods = grub_malloc (argc * sizeof (mods[0])); ++ if (!mods) ++ return grub_errno; ++ ++ if (get_uuid (NULL, &uuid_root)) ++ return grub_errno; ++ ++ prefdev = grub_file_get_device_name (prefix); ++ if (grub_errno) ++ { ++ grub_print_error (); ++ prefdev = 0; ++ } ++ ++ if (get_uuid (prefdev, &uuid_prefix)) ++ { ++ grub_free (uuid_root); ++ return grub_errno; ++ } ++ ++ for (mods_loaded = 0; mods_loaded < argc; mods_loaded++) ++ { ++ char *filename; ++ grub_dl_t mod; ++ grub_file_t file = NULL; ++ grub_ssize_t size; ++ void *core = 0; ++ ++ mod = grub_dl_get (args[mods_loaded]); ++ if (mod) ++ { ++ mods[mods_loaded] = 0; ++ continue; ++ } ++ ++ filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM "/%s.mod", ++ prefix, args[mods_loaded]); ++ if (! filename) ++ goto fail; ++ ++ file = grub_file_open (filename); ++ grub_free (filename); ++ if (! file) ++ goto fail; ++ ++ size = grub_file_size (file); ++ core = grub_malloc (size); ++ if (! core) ++ { ++ grub_file_close (file); ++ goto fail; ++ } ++ ++ if (grub_file_read (file, core, size) != (grub_ssize_t) size) ++ { ++ grub_file_close (file); ++ grub_free (core); ++ goto fail; ++ } ++ ++ grub_file_close (file); ++ ++ mods[mods_loaded] = grub_dl_load_core_noinit (core, size); ++ if (! mods[mods_loaded]) ++ goto fail; ++ } ++ ++ for (i = 0; i < argc; i++) ++ if (mods[i]) ++ grub_dl_init (mods[i]); ++ ++ /* No need to autoload FS since obviously we already have the necessary fs modules. */ ++ saved_autoload = grub_fs_autoload_hook; ++ grub_fs_autoload_hook = 0; ++ ++ ctx.root_uuid = uuid_root; ++ ctx.prefix_uuid = uuid_prefix; ++ ctx.prefix_path = path_prefix; ++ ctx.prefix_found = 0; ++ ctx.root_found = 0; ++ ++ /* FIXME: try to guess the correct values. */ ++ grub_device_iterate (iterate_device, &ctx); ++ ++ grub_fs_autoload_hook = saved_autoload; ++ ++ grub_free (uuid_root); ++ grub_free (uuid_prefix); ++ ++ return GRUB_ERR_NONE; ++ ++ fail: ++ grub_free (uuid_root); ++ grub_free (uuid_prefix); ++ ++ for (i = 0; i < mods_loaded; i++) ++ if (mods[i]) ++ { ++ mods[i]->fini = 0; ++ grub_dl_unload (mods[i]); ++ } ++ return grub_errno; ++} ++ ++static grub_command_t cmd; ++ ++GRUB_MOD_INIT(nativedisk) ++{ ++ cmd = grub_register_command ("nativedisk", grub_cmd_nativedisk, "[MODULE1 MODULE2 ...]", ++ N_("Switch to native disk drivers. If no modules are specified default set (pata,ahci,usbms,ohci,uhci,ehci) is used")); ++} ++ ++GRUB_MOD_FINI(nativedisk) ++{ ++ grub_unregister_command (cmd); ++} +diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c +index 641146d..6c086ad 100644 +--- a/grub-core/kern/dl.c ++++ b/grub-core/kern/dl.c +@@ -51,6 +51,7 @@ grub_dl_t grub_dl_head = 0; + grub_err_t + grub_dl_add (grub_dl_t mod); + ++/* Keep global so that GDB scripts work. */ + grub_err_t + grub_dl_add (grub_dl_t mod) + { +@@ -58,9 +59,6 @@ grub_dl_add (grub_dl_t mod) + return grub_error (GRUB_ERR_BAD_MODULE, + "`%s' is already loaded", mod->name); + +- mod->next = grub_dl_head; +- grub_dl_head = mod; +- + return GRUB_ERR_NONE; + } + +@@ -77,18 +75,6 @@ grub_dl_remove (grub_dl_t mod) + } + } + +-grub_dl_t +-grub_dl_get (const char *name) +-{ +- grub_dl_t l; +- +- for (l = grub_dl_head; l; l = l->next) +- if (grub_strcmp (name, l->name) == 0) +- return l; +- +- return 0; +-} +- + + + struct grub_symbol +@@ -447,13 +433,6 @@ grub_dl_resolve_symbols (grub_dl_t mod, Elf_Ehdr *e) + return GRUB_ERR_NONE; + } + +-static void +-grub_dl_call_init (grub_dl_t mod) +-{ +- if (mod->init) +- (mod->init) (mod); +-} +- + /* Me, Vladimir Serbinenko, hereby I add this module check as per new + GNU module policy. Note that this license check is informative only. + Modules have to be licensed under GPLv3 or GPLv3+ (optionally +@@ -595,7 +574,7 @@ grub_dl_flush_cache (grub_dl_t mod) + + /* Load a module from core memory. */ + grub_dl_t +-grub_dl_load_core (void *addr, grub_size_t size) ++grub_dl_load_core_noinit (void *addr, grub_size_t size) + { + Elf_Ehdr *e; + grub_dl_t mod; +@@ -651,10 +630,6 @@ grub_dl_load_core (void *addr, grub_size_t size) + grub_dprintf ("modules", "module name: %s\n", mod->name); + grub_dprintf ("modules", "init function: %p\n", mod->init); + +- grub_boot_time ("Initing module %s", mod->name); +- grub_dl_call_init (mod); +- grub_boot_time ("Module %s inited", mod->name); +- + if (grub_dl_add (mod)) + { + grub_dl_unload (mod); +@@ -664,6 +639,23 @@ grub_dl_load_core (void *addr, grub_size_t size) + return mod; + } + ++grub_dl_t ++grub_dl_load_core (void *addr, grub_size_t size) ++{ ++ grub_dl_t mod; ++ ++ mod = grub_dl_load_core_noinit (addr, size); ++ ++ if (!mod) ++ return NULL; ++ ++ grub_boot_time ("Initing module %s", mod->name); ++ grub_dl_init (mod); ++ grub_boot_time ("Module %s inited", mod->name); ++ ++ return mod; ++} ++ + /* Load a module from the file FILENAME. */ + grub_dl_t + grub_dl_load_file (const char *filename) +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 2f203dd..759e0a4 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -506,7 +506,8 @@ static void (*grub_xputs_saved) (const char *str); + static const char *features[] = { + "feature_chainloader_bpb", "feature_ntldr", "feature_platform_search_hint", + "feature_default_font_path", "feature_all_video_module", +- "feature_menuentry_id", "feature_menuentry_options", "feature_200_final" ++ "feature_menuentry_id", "feature_menuentry_options", "feature_200_final", ++ "feature_nativedisk_cmd" + }; + + GRUB_MOD_INIT(normal) +diff --git a/include/grub/dl.h b/include/grub/dl.h +index 3119978..f34b5a1 100644 +--- a/include/grub/dl.h ++++ b/include/grub/dl.h +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #endif + + /* +@@ -181,15 +182,41 @@ typedef struct grub_dl *grub_dl_t; + grub_dl_t grub_dl_load_file (const char *filename); + grub_dl_t EXPORT_FUNC(grub_dl_load) (const char *name); + grub_dl_t grub_dl_load_core (void *addr, grub_size_t size); ++grub_dl_t EXPORT_FUNC(grub_dl_load_core_noinit) (void *addr, grub_size_t size); + int EXPORT_FUNC(grub_dl_unload) (grub_dl_t mod); + void grub_dl_unload_unneeded (void); + int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod); + int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod); + extern grub_dl_t EXPORT_VAR(grub_dl_head); + ++#ifndef GRUB_UTIL ++ + #define FOR_DL_MODULES(var) FOR_LIST_ELEMENTS ((var), (grub_dl_head)) + +-grub_dl_t EXPORT_FUNC(grub_dl_get) (const char *name); ++static inline void ++grub_dl_init (grub_dl_t mod) ++{ ++ if (mod->init) ++ (mod->init) (mod); ++ ++ mod->next = grub_dl_head; ++ grub_dl_head = mod; ++} ++ ++static inline grub_dl_t ++grub_dl_get (const char *name) ++{ ++ grub_dl_t l; ++ ++ FOR_DL_MODULES(l) ++ if (grub_strcmp (name, l->name) == 0) ++ return l; ++ ++ return 0; ++} ++ ++#endif ++ + grub_err_t grub_dl_register_symbol (const char *name, void *addr, + int isfunc, grub_dl_t mod); + +-- +1.8.2.1 + diff --git a/0381-grub-core-commands-nativedisk.c-Ignore-unknown-files.patch b/0381-grub-core-commands-nativedisk.c-Ignore-unknown-files.patch new file mode 100644 index 0000000..7cc1d19 --- /dev/null +++ b/0381-grub-core-commands-nativedisk.c-Ignore-unknown-files.patch @@ -0,0 +1,41 @@ +From 08f12738be24a89a9724e65c7244008d192ea297 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 18:52:53 +0200 +Subject: [PATCH 381/471] * grub-core/commands/nativedisk.c: Ignore + unknown filesystem error. + +--- + ChangeLog | 4 ++++ + grub-core/commands/nativedisk.c | 2 ++ + 2 files changed, 6 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 69c7839..4833670 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-28 Vladimir Serbinenko + ++ * grub-core/commands/nativedisk.c: Ignore unknown filesystem error. ++ ++2013-04-28 Vladimir Serbinenko ++ + New command `nativedisk'. + + 2013-04-28 Vladimir Serbinenko +diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c +index adb4043..333fc82 100644 +--- a/grub-core/commands/nativedisk.c ++++ b/grub-core/commands/nativedisk.c +@@ -79,6 +79,8 @@ iterate_device (const char *name, void *data) + + if (get_uuid (name, &cur_uuid)) + { ++ if (grub_errno == GRUB_ERR_UNKNOWN_FS) ++ grub_errno = 0; + grub_print_error (); + return 0; + } +-- +1.8.2.1 + diff --git a/0382-docs-grub.texi-Add-a-comment-about-usefullness-of-na.patch b/0382-docs-grub.texi-Add-a-comment-about-usefullness-of-na.patch new file mode 100644 index 0000000..9fe0dc6 --- /dev/null +++ b/0382-docs-grub.texi-Add-a-comment-about-usefullness-of-na.patch @@ -0,0 +1,43 @@ +From 5fe555f22c36e6e03ee1e44bb2cd1d013489f8e9 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 28 Apr 2013 18:53:59 +0200 +Subject: [PATCH 382/471] * docs/grub.texi: Add a comment about + usefullness of nativedisk. + +--- + ChangeLog | 4 ++++ + docs/grub.texi | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 4833670..32a2a8e 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-28 Vladimir Serbinenko + ++ * docs/grub.texi: Add a comment about usefullness of nativedisk. ++ ++2013-04-28 Vladimir Serbinenko ++ + * grub-core/commands/nativedisk.c: Ignore unknown filesystem error. + + 2013-04-28 Vladimir Serbinenko +diff --git a/docs/grub.texi b/docs/grub.texi +index 587c64e..bfd42ee 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -4041,6 +4041,10 @@ Alias for @code{hashsum --hash md5 arg @dots{}}. See command @command{hashsum} + + @deffn Command nativedisk + Switch from firmware disk drivers to native ones. ++Really useful only on platforms where both ++firmware and native disk drives are available. ++Currently i386-pc, i386-efi, i386-ieee1275 and ++x86_64-efi. + @end deffn + + @node normal +-- +1.8.2.1 + diff --git a/0383-grub-core-lib-arg.c-grub_arg_show_help-Fix-a-NULL-po.patch b/0383-grub-core-lib-arg.c-grub_arg_show_help-Fix-a-NULL-po.patch new file mode 100644 index 0000000..346392b --- /dev/null +++ b/0383-grub-core-lib-arg.c-grub_arg_show_help-Fix-a-NULL-po.patch @@ -0,0 +1,41 @@ +From 6313937e7275a3117ceee46a3030a7e9c08720e9 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 11:57:51 +0200 +Subject: [PATCH 383/471] * grub-core/lib/arg.c (grub_arg_show_help): + Fix a NULL pointer dereference. Reported by: qwertial. + +--- + ChangeLog | 6 ++++++ + grub-core/lib/arg.c | 2 +- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 32a2a8e..41a941c 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2013-04-29 Vladimir Serbinenko ++ ++ * grub-core/lib/arg.c (grub_arg_show_help): Fix a NULL pointer ++ dereference. ++ Reported by: qwertial. ++ + 2013-04-28 Vladimir Serbinenko + + * docs/grub.texi: Add a comment about usefullness of nativedisk. +diff --git a/grub-core/lib/arg.c b/grub-core/lib/arg.c +index 7492ac6..9cc18dc 100644 +--- a/grub-core/lib/arg.c ++++ b/grub-core/lib/arg.c +@@ -158,7 +158,7 @@ grub_arg_show_help (grub_extcmd_t cmd) + show_usage (cmd); + grub_printf ("%s\n\n", _(cmd->cmd->description)); + +- for (opt = cmd->options; opt->doc; opt++) ++ for (opt = cmd->options; opt && opt->doc; opt++) + switch (opt->shortarg) + { + case 'h': +-- +1.8.2.1 + diff --git a/0384-grub-core-kern-mips-arc-init.c-Fix-prefix-detection.patch b/0384-grub-core-kern-mips-arc-init.c-Fix-prefix-detection.patch new file mode 100644 index 0000000..cf0d786 --- /dev/null +++ b/0384-grub-core-kern-mips-arc-init.c-Fix-prefix-detection.patch @@ -0,0 +1,157 @@ +From 5605655af5a8fbb1d26ad567082c00606b425ae4 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 11:59:18 +0200 +Subject: [PATCH 384/471] * grub-core/kern/mips/arc/init.c: Fix prefix + detection. + +--- + ChangeLog | 4 +++ + grub-core/kern/mips/arc/init.c | 64 ++++++++++++++++++++++++++++++++++++++---- + 2 files changed, 62 insertions(+), 6 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 41a941c..f444ea9 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-29 Vladimir Serbinenko + ++ * grub-core/kern/mips/arc/init.c: Fix prefix detection. ++ ++2013-04-29 Vladimir Serbinenko ++ + * grub-core/lib/arg.c (grub_arg_show_help): Fix a NULL pointer + dereference. + Reported by: qwertial. +diff --git a/grub-core/kern/mips/arc/init.c b/grub-core/kern/mips/arc/init.c +index d279ada..fdcc2bd 100644 +--- a/grub-core/kern/mips/arc/init.c ++++ b/grub-core/kern/mips/arc/init.c +@@ -179,19 +179,26 @@ norm_name_to_alt (const char *name) + optr = grub_stpcpy (ret, "arc/"); + for (iptr = name; *iptr; iptr++) + { +- if (state == 1) ++ if (state == 3) + { + *optr++ = '/'; + state = 0; + } + if (*iptr == '(') +- continue; +- if (*iptr == ')') + { + state = 1; + continue; + } ++ if (*iptr == ')') ++ { ++ if (state == 1) ++ *optr++ = '0'; ++ state = 3; ++ continue; ++ } + *optr++ = *iptr; ++ if (state == 1) ++ state = 2; + } + *optr = '\0'; + return ret; +@@ -353,13 +360,48 @@ grub_machine_get_bootlocation (char **device __attribute__ ((unused)), + grub_disk_addr_t poff = -1, pend; + struct get_device_name_ctx ctx; + grub_disk_t parent = 0; +- +- pptr = grub_strchr (loaddev, '/'); +- if (pptr) ++ unsigned i; ++ ++ for (i = 0; i < ARRAY_SIZE (type_names); i++) ++ if (type_names[i] ++ && grub_memcmp (loaddev, type_names[i], grub_strlen (type_names[i])) == 0 ++ && loaddev[grub_strlen (type_names[i])] == '(') ++ break; ++ if (i == ARRAY_SIZE (type_names)) ++ pptr = loaddev; ++ else ++ for (pptr = loaddev; *pptr && *pptr != '/' && *pptr != '\\'; pptr++); ++ if (*pptr) + { ++ char *iptr, *optr; ++ char sep = *pptr; ++ *path = grub_malloc (grub_strlen (pptr) + 1); ++ if (!*path) ++ return; ++ for (iptr = pptr, optr = *path; *iptr; iptr++, optr++) ++ if (*iptr == sep) ++ *optr = '/'; ++ else ++ *optr = *iptr; ++ *optr = '\0'; + *path = grub_strdup (pptr); + *pptr = '\0'; + } ++ ++ if (*loaddev == '\0') ++ { ++ const char *syspart = 0; ++ ++ if (GRUB_ARC_SYSTEM_PARAMETER_BLOCK->firmware_vector_length ++ >= ((char *) (&GRUB_ARC_FIRMWARE_VECTOR->getenvironmentvariable + 1) ++ - (char *) GRUB_ARC_FIRMWARE_VECTOR) ++ && GRUB_ARC_FIRMWARE_VECTOR->getenvironmentvariable) ++ syspart = GRUB_ARC_FIRMWARE_VECTOR->getenvironmentvariable ("SystemPartition"); ++ if (!syspart) ++ return; ++ loaddev = grub_strdup (syspart); ++ } ++ + partptr = get_part (loaddev); + if (partptr) + { +@@ -370,6 +412,8 @@ grub_machine_get_bootlocation (char **device __attribute__ ((unused)), + if (poff == (grub_addr_t) -1) + { + *device = dname; ++ if (loaddev != boot_location) ++ grub_free (loaddev); + return; + } + +@@ -377,6 +421,8 @@ grub_machine_get_bootlocation (char **device __attribute__ ((unused)), + if (!parent) + { + *device = dname; ++ if (loaddev != boot_location) ++ grub_free (loaddev); + return; + } + +@@ -385,6 +431,8 @@ grub_machine_get_bootlocation (char **device __attribute__ ((unused)), + { + grub_disk_close (parent); + *device = dname; ++ if (loaddev != boot_location) ++ grub_free (loaddev); + return; + } + +@@ -398,6 +446,8 @@ grub_machine_get_bootlocation (char **device __attribute__ ((unused)), + if (! ctx.partition_name) + { + *device = dname; ++ if (loaddev != boot_location) ++ grub_free (loaddev); + return; + } + +@@ -405,4 +455,6 @@ grub_machine_get_bootlocation (char **device __attribute__ ((unused)), + ctx.partition_name); + grub_free (ctx.partition_name); + grub_free (dname); ++ if (loaddev != boot_location) ++ grub_free (loaddev); + } +-- +1.8.2.1 + diff --git a/0385-include-grub-list.h-FOR_LIST_ELEMENTS_SAFE-Fix-a-NUL.patch b/0385-include-grub-list.h-FOR_LIST_ELEMENTS_SAFE-Fix-a-NUL.patch new file mode 100644 index 0000000..535f1bc --- /dev/null +++ b/0385-include-grub-list.h-FOR_LIST_ELEMENTS_SAFE-Fix-a-NUL.patch @@ -0,0 +1,44 @@ +From 36c2c2e18dd471bdfd886021afb0d5e8365b2c8e Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 12:00:31 +0200 +Subject: [PATCH 385/471] * include/grub/list.h + (FOR_LIST_ELEMENTS_SAFE):Fix a NULL pointer dereference. Reported by: + qwertial. + +--- + ChangeLog | 6 ++++++ + include/grub/list.h | 2 +- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index f444ea9..bf413de 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,11 @@ + 2013-04-29 Vladimir Serbinenko + ++ * include/grub/list.h (FOR_LIST_ELEMENTS_SAFE):Fix a NULL pointer ++ dereference. ++ Reported by: qwertial. ++ ++2013-04-29 Vladimir Serbinenko ++ + * grub-core/kern/mips/arc/init.c: Fix prefix detection. + + 2013-04-29 Vladimir Serbinenko +diff --git a/include/grub/list.h b/include/grub/list.h +index 6f6dec0..edd20ad 100644 +--- a/include/grub/list.h ++++ b/include/grub/list.h +@@ -35,7 +35,7 @@ void EXPORT_FUNC(grub_list_push) (grub_list_t *head, grub_list_t item); + void EXPORT_FUNC(grub_list_remove) (grub_list_t item); + + #define FOR_LIST_ELEMENTS(var, list) for ((var) = (list); (var); (var) = (var)->next) +-#define FOR_LIST_ELEMENTS_SAFE(var, nxt, list) for ((var) = (list), (nxt) = ((var) ? (var)->next : 0); (var); (var) = (nxt), (nxt) = (var)->next) ++#define FOR_LIST_ELEMENTS_SAFE(var, nxt, list) for ((var) = (list), (nxt) = ((var) ? (var)->next : 0); (var); (var) = (nxt), ((nxt) = (var) ? (var)->next : 0)) + + static inline void * + grub_bad_type_cast_real (int line, const char *file) +-- +1.8.2.1 + diff --git a/0386-grub-core-script-execute.c-grub_script_arglist_to_ar.patch b/0386-grub-core-script-execute.c-grub_script_arglist_to_ar.patch new file mode 100644 index 0000000..06a2b16 --- /dev/null +++ b/0386-grub-core-script-execute.c-grub_script_arglist_to_ar.patch @@ -0,0 +1,75 @@ +From 899fcf9761f2da87c95e42d614a21c808f2da894 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 12:02:26 +0200 +Subject: [PATCH 386/471] * grub-core/script/execute.c + (grub_script_arglist_to_argv): Fix handling of variables containing + backslash. + +--- + ChangeLog | 5 +++++ + grub-core/script/execute.c | 33 +++++++++++++++++++++++++++++++-- + 2 files changed, 36 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index bf413de..9dacb19 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-29 Vladimir Serbinenko + ++ * grub-core/script/execute.c (grub_script_arglist_to_argv): Fix ++ handling of variables containing backslash. ++ ++2013-04-29 Vladimir Serbinenko ++ + * include/grub/list.h (FOR_LIST_ELEMENTS_SAFE):Fix a NULL pointer + dereference. + Reported by: qwertial. +diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c +index a1dcc34..9babbee 100644 +--- a/grub-core/script/execute.c ++++ b/grub-core/script/execute.c +@@ -643,9 +643,38 @@ grub_script_arglist_to_argv (struct grub_script_arglist *arglist, + + if (arg->type == GRUB_SCRIPT_ARG_TYPE_VAR) + { +- if (grub_script_argv_append (&result, values[i], +- grub_strlen (values[i]))) ++ int len; ++ char ch; ++ char *p; ++ char *op; ++ const char *s = values[i]; ++ ++ len = grub_strlen (values[i]); ++ /* \? -> \\\? */ ++ /* \* -> \\\* */ ++ /* \ -> \\ */ ++ p = grub_malloc (len * 2 + 1); ++ if (! p) + goto fail; ++ ++ op = p; ++ while ((ch = *s++)) ++ { ++ if (ch == '\\') ++ { ++ *op++ = '\\'; ++ if (*s == '?' || *s == '*') ++ *op++ = '\\'; ++ } ++ *op++ = ch; ++ } ++ *op = '\0'; ++ ++ if (grub_script_argv_append (&result, p, op - p)) ++ { ++ grub_free (p); ++ goto fail; ++ } + } + else + { +-- +1.8.2.1 + diff --git a/0387-grub-core-bus-usb-uhci.c-Fix-DMA-handling-and-enable.patch b/0387-grub-core-bus-usb-uhci.c-Fix-DMA-handling-and-enable.patch new file mode 100644 index 0000000..27ef083 --- /dev/null +++ b/0387-grub-core-bus-usb-uhci.c-Fix-DMA-handling-and-enable.patch @@ -0,0 +1,195 @@ +From f94f8f792c37fe2abd7db8d6eaf70929580bf62f Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 12:05:19 +0200 +Subject: [PATCH 387/471] * grub-core/bus/usb/uhci.c: Fix DMA handling + and enable on all PCI platforms. + +--- + ChangeLog | 5 ++++ + grub-core/Makefile.core.def | 2 +- + grub-core/bus/usb/uhci.c | 70 ++++++++++++++++++++++++++++++++++----------- + 3 files changed, 59 insertions(+), 18 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 9dacb19..99a049a 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-29 Vladimir Serbinenko + ++ * grub-core/bus/usb/uhci.c: Fix DMA handling and enable on all PCI ++ platforms. ++ ++2013-04-29 Vladimir Serbinenko ++ + * grub-core/script/execute.c (grub_script_arglist_to_argv): Fix + handling of variables containing backslash. + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 2e73d89..dcb92ef 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -482,7 +482,7 @@ module = { + module = { + name = uhci; + common = bus/usb/uhci.c; +- enable = x86; ++ enable = pci; + }; + + module = { +diff --git a/grub-core/bus/usb/uhci.c b/grub-core/bus/usb/uhci.c +index 3639c42..a314637 100644 +--- a/grub-core/bus/usb/uhci.c ++++ b/grub-core/bus/usb/uhci.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -44,12 +45,22 @@ typedef enum + GRUB_UHCI_REG_USBLEGSUP = 0xc0 + } grub_uhci_reg_t; + ++enum ++ { ++ GRUB_UHCI_DETECT_CHANGED = (1 << 1), ++ GRUB_UHCI_DETECT_HAVE_DEVICE = 1, ++ GRUB_UHCI_DETECT_LOW_SPEED = (1 << 8) ++ }; ++ + /* R/WC legacy support bits */ +-#define GRUB_UHCI_LEGSUP_END_A20GATE (1 << 15) +-#define GRUB_UHCI_TRAP_BY_64H_WSTAT (1 << 11) +-#define GRUB_UHCI_TRAP_BY_64H_RSTAT (1 << 10) +-#define GRUB_UHCI_TRAP_BY_60H_WSTAT (1 << 9) +-#define GRUB_UHCI_TRAP_BY_60H_RSTAT (1 << 8) ++enum ++ { ++ GRUB_UHCI_LEGSUP_END_A20GATE = (1 << 15), ++ GRUB_UHCI_TRAP_BY_64H_WSTAT = (1 << 11), ++ GRUB_UHCI_TRAP_BY_64H_RSTAT = (1 << 10), ++ GRUB_UHCI_TRAP_BY_60H_WSTAT = (1 << 9), ++ GRUB_UHCI_TRAP_BY_60H_RSTAT = (1 << 8) ++ }; + + /* Reset all legacy support - clear all R/WC bits and all R/W bits */ + #define GRUB_UHCI_RESET_LEGSUP_SMI ( GRUB_UHCI_LEGSUP_END_A20GATE \ +@@ -125,7 +136,7 @@ typedef volatile struct grub_uhci_qh *grub_uhci_qh_t; + + struct grub_uhci + { +- int iobase; ++ grub_port_t iobase; + volatile grub_uint32_t *framelist_virt; + grub_uint32_t framelist_phys; + struct grub_pci_dma_chunk *framelist_chunk; +@@ -213,22 +224,36 @@ grub_uhci_pci_iter (grub_pci_device_t dev, + + /* Set bus master - needed for coreboot or broken BIOSes */ + addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); +- grub_pci_write_word(addr, +- GRUB_PCI_COMMAND_BUS_MASTER | grub_pci_read_word(addr)); ++ grub_pci_write_word(addr, GRUB_PCI_COMMAND_IO_ENABLED ++ | GRUB_PCI_COMMAND_BUS_MASTER ++ | grub_pci_read_word (addr)); + + /* Determine IO base address. */ + addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG4); + base = grub_pci_read (addr); + /* Stop if there is no IO space base address defined. */ +- if (! (base & 1)) ++ if ((base & GRUB_PCI_ADDR_SPACE_MASK) != GRUB_PCI_ADDR_SPACE_IO) + return 0; + ++ if ((base & GRUB_UHCI_IOMASK) == 0) ++ { ++#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) ++ static int ndevs = 0; ++ base = 0x1800 + ndevs++ * 0x100; ++ grub_pci_write (addr, base | GRUB_PCI_ADDR_SPACE_IO); ++#else ++ return 0; ++#endif ++ } ++ ++ grub_dprintf ("uhci", "base = %x\n", base); ++ + /* Allocate memory for the controller and register it. */ + u = grub_zalloc (sizeof (*u)); + if (! u) + return 1; + +- u->iobase = base & GRUB_UHCI_IOMASK; ++ u->iobase = (base & GRUB_UHCI_IOMASK) + GRUB_MACHINE_PCI_IO_BASE; + + /* Reset PIRQ and SMI */ + addr = grub_pci_make_address (dev, GRUB_UHCI_REG_USBLEGSUP); +@@ -392,6 +417,7 @@ grub_free_queue (struct grub_uhci *u, grub_uhci_qh_t qh, grub_uhci_td_t td, + { + grub_uhci_td_t tdprev; + ++ grub_dprintf ("uhci", "Freeing %p\n", td); + /* Check state of TD and possibly set last_trans */ + if (transfer && (td->linkptr & 1)) + transfer->last_trans = i; +@@ -400,7 +426,10 @@ grub_free_queue (struct grub_uhci *u, grub_uhci_qh_t qh, grub_uhci_td_t td, + + /* Unlink the queue. */ + tdprev = td; +- td = grub_dma_phys2virt (td->linkptr2, u->td_chunk); ++ if (!td->linkptr2) ++ td = 0; ++ else ++ td = grub_dma_phys2virt (td->linkptr2, u->td_chunk); + + /* Free the TD. */ + grub_free_td (u, tdprev); +@@ -583,10 +612,17 @@ grub_uhci_check_transfer (grub_usb_controller_t dev, + + *actual = 0; + +- errtd = grub_dma_phys2virt (cdata->qh->elinkptr & ~0x0f, u->qh_chunk); ++ if (cdata->qh->elinkptr & ~0x0f) ++ errtd = grub_dma_phys2virt (cdata->qh->elinkptr & ~0x0f, u->qh_chunk); ++ else ++ errtd = 0; + +- grub_dprintf ("uhci", ">t status=0x%02x data=0x%02x td=%p\n", +- errtd->ctrl_status, errtd->buffer & (~15), errtd); ++ if (errtd) ++ { ++ grub_dprintf ("uhci", ">t status=0x%02x data=0x%02x td=%p, %x\n", ++ errtd->ctrl_status, errtd->buffer & (~15), errtd, ++ cdata->qh->elinkptr); ++ } + + /* Check if the transaction completed. */ + if (cdata->qh->elinkptr & 1) +@@ -788,7 +824,7 @@ grub_uhci_detect_dev (grub_usb_controller_t dev, int port, int *changed) + grub_dprintf ("uhci", "detect=0x%02x port=%d\n", status, port); + + /* Connect Status Change bit - it detects change of connection */ +- if (status & (1 << 1)) ++ if (status & GRUB_UHCI_DETECT_CHANGED) + { + *changed = 1; + /* Reset bit Connect Status Change */ +@@ -798,9 +834,9 @@ grub_uhci_detect_dev (grub_usb_controller_t dev, int port, int *changed) + else + *changed = 0; + +- if (! (status & 1)) ++ if (! (status & GRUB_UHCI_DETECT_HAVE_DEVICE)) + return GRUB_USB_SPEED_NONE; +- else if (status & (1 << 8)) ++ else if (status & GRUB_UHCI_DETECT_LOW_SPEED) + return GRUB_USB_SPEED_LOW; + else + return GRUB_USB_SPEED_FULL; +-- +1.8.2.1 + diff --git a/0388-grub-core-commands-nativedisk.c-Customize-the-list-o.patch b/0388-grub-core-commands-nativedisk.c-Customize-the-list-o.patch new file mode 100644 index 0000000..f5326fe --- /dev/null +++ b/0388-grub-core-commands-nativedisk.c-Customize-the-list-o.patch @@ -0,0 +1,232 @@ +From 25ec194a39ae32af2000600ee2e6e1d28230fa98 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 12:14:57 +0200 +Subject: [PATCH 388/471] * grub-core/commands/nativedisk.c: Customize + the list of modules on platform. Don't try to search for disks + already using native drivers. + +--- + ChangeLog | 5 ++ + grub-core/Makefile.core.def | 4 ++ + grub-core/commands/nativedisk.c | 101 +++++++++++++++++++++++++++++++--------- + 3 files changed, 89 insertions(+), 21 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 99a049a..1ba588d 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-29 Vladimir Serbinenko + ++ * grub-core/commands/nativedisk.c: Customize the list of modules on ++ platform. Don't try to search for disks already using native drivers. ++ ++2013-04-29 Vladimir Serbinenko ++ + * grub-core/bus/usb/uhci.c: Fix DMA handling and enable on all PCI + platforms. + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index dcb92ef..ebcd01d 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -510,6 +510,10 @@ module = { + module = { + name = nativedisk; + common = commands/nativedisk.c; ++ ++ enable = x86; ++ enable = mips_loongson; ++ enable = mips_qemu_mips; + }; + + module = { +diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c +index 333fc82..453faad 100644 +--- a/grub-core/commands/nativedisk.c ++++ b/grub-core/commands/nativedisk.c +@@ -31,17 +31,67 @@ + + GRUB_MOD_LICENSE ("GPLv3+"); + +-static const char *modnames_def[] = { "pata", "ahci", "usbms", "ohci", "uhci", "ehci" }; ++static const char *modnames_def[] = { ++ /* FIXME: autogenerate this. */ ++#if defined (__i386__) || defined (__x86_64__) || defined (GRUB_MACHINE_MIPS_LOONGSON) ++ "pata", "ahci", "usbms", "ohci", "uhci", "ehci" ++#elif defined (GRUB_MACHINE_MIPS_QEMU_MIPS) ++ "pata" ++#else ++#error "Fill this" ++#endif ++ }; + + static grub_err_t +-get_uuid (const char *name, char **uuid) ++get_uuid (const char *name, char **uuid, int getnative) + { + grub_device_t dev; + grub_fs_t fs = 0; + ++ *uuid = 0; ++ + dev = grub_device_open (name); + if (!dev) + return grub_errno; ++ ++ if (!dev->disk) ++ { ++ grub_dprintf ("nativedisk", "Skipping non-disk\n"); ++ return 0; ++ } ++ ++ switch (dev->disk->dev->id) ++ { ++ /* Firmware disks. */ ++ case GRUB_DISK_DEVICE_BIOSDISK_ID: ++ case GRUB_DISK_DEVICE_OFDISK_ID: ++ case GRUB_DISK_DEVICE_EFIDISK_ID: ++ case GRUB_DISK_DEVICE_NAND_ID: ++ case GRUB_DISK_DEVICE_ARCDISK_ID: ++ case GRUB_DISK_DEVICE_HOSTDISK_ID: ++ break; ++ ++ /* Native disks. */ ++ case GRUB_DISK_DEVICE_ATA_ID: ++ case GRUB_DISK_DEVICE_SCSI_ID: ++ if (getnative) ++ break; ++ ++ /* Virtual disks. */ ++ case GRUB_DISK_DEVICE_PROCFS_ID: ++ case GRUB_DISK_DEVICE_HOST_ID: ++ /* GRUB-only memdisk. Can't match any of firmware devices. */ ++ case GRUB_DISK_DEVICE_MEMDISK_ID: ++ grub_dprintf ("nativedisk", "Skipping native disk %s\n", ++ dev->disk->name); ++ return 0; ++ ++ /* FIXME: those probably need special handling. */ ++ case GRUB_DISK_DEVICE_LOOPBACK_ID: ++ case GRUB_DISK_DEVICE_DISKFILTER_ID: ++ case GRUB_DISK_DEVICE_CRYPTODISK_ID: ++ break; ++ } + if (dev) + fs = grub_fs_probe (dev); + if (!fs) +@@ -49,7 +99,7 @@ get_uuid (const char *name, char **uuid) + grub_device_close (dev); + return grub_errno; + } +- if (!fs->uuid || fs->uuid (dev, uuid)) ++ if (!fs->uuid || fs->uuid (dev, uuid) || !*uuid) + { + grub_device_close (dev); + +@@ -77,14 +127,17 @@ iterate_device (const char *name, void *data) + struct search_ctx *ctx = data; + char *cur_uuid; + +- if (get_uuid (name, &cur_uuid)) ++ if (get_uuid (name, &cur_uuid, 1)) + { + if (grub_errno == GRUB_ERR_UNKNOWN_FS) + grub_errno = 0; + grub_print_error (); + return 0; + } +- if (grub_strcasecmp (cur_uuid, ctx->prefix_uuid) == 0) ++ ++ grub_dprintf ("nativedisk", "checking %s: %s\n", name, ++ cur_uuid); ++ if (ctx->prefix_uuid && grub_strcasecmp (cur_uuid, ctx->prefix_uuid) == 0) + { + char *prefix; + prefix = grub_xasprintf ("(%s)/%s", name, ctx->prefix_path); +@@ -92,7 +145,7 @@ iterate_device (const char *name, void *data) + grub_free (prefix); + ctx->prefix_found = 1; + } +- if (grub_strcasecmp (cur_uuid, ctx->root_uuid) == 0) ++ if (ctx->root_uuid && grub_strcasecmp (cur_uuid, ctx->root_uuid) == 0) + { + grub_env_set ("root", name); + ctx->root_found = 1; +@@ -109,9 +162,7 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), + const char *path_prefix = 0; + int mods_loaded = 0; + grub_dl_t *mods; +- struct search_ctx ctx; + const char **args; +- grub_fs_autoload_hook_t saved_autoload; + int i; + + if (argc == 0) +@@ -138,7 +189,7 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), + if (!mods) + return grub_errno; + +- if (get_uuid (NULL, &uuid_root)) ++ if (get_uuid (NULL, &uuid_root, 0)) + return grub_errno; + + prefdev = grub_file_get_device_name (prefix); +@@ -148,12 +199,15 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), + prefdev = 0; + } + +- if (get_uuid (prefdev, &uuid_prefix)) ++ if (get_uuid (prefdev, &uuid_prefix, 0)) + { + grub_free (uuid_root); + return grub_errno; + } + ++ grub_dprintf ("nativedisk", "uuid_prefix = %s, uuid_root = %s\n", ++ uuid_prefix, uuid_root); ++ + for (mods_loaded = 0; mods_loaded < argc; mods_loaded++) + { + char *filename; +@@ -205,21 +259,26 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), + if (mods[i]) + grub_dl_init (mods[i]); + +- /* No need to autoload FS since obviously we already have the necessary fs modules. */ +- saved_autoload = grub_fs_autoload_hook; +- grub_fs_autoload_hook = 0; ++ if (uuid_prefix || uuid_root) ++ { ++ struct search_ctx ctx; ++ grub_fs_autoload_hook_t saved_autoload; + +- ctx.root_uuid = uuid_root; +- ctx.prefix_uuid = uuid_prefix; +- ctx.prefix_path = path_prefix; +- ctx.prefix_found = 0; +- ctx.root_found = 0; ++ /* No need to autoload FS since obviously we already have the necessary fs modules. */ ++ saved_autoload = grub_fs_autoload_hook; ++ grub_fs_autoload_hook = 0; + +- /* FIXME: try to guess the correct values. */ +- grub_device_iterate (iterate_device, &ctx); ++ ctx.root_uuid = uuid_root; ++ ctx.prefix_uuid = uuid_prefix; ++ ctx.prefix_path = path_prefix; ++ ctx.prefix_found = !uuid_prefix; ++ ctx.root_found = !uuid_root; + +- grub_fs_autoload_hook = saved_autoload; ++ /* FIXME: try to guess the correct values. */ ++ grub_device_iterate (iterate_device, &ctx); + ++ grub_fs_autoload_hook = saved_autoload; ++ } + grub_free (uuid_root); + grub_free (uuid_prefix); + +-- +1.8.2.1 + diff --git a/0389-Enforce-disabling-of-firmware-disk-drivers-when-nati.patch b/0389-Enforce-disabling-of-firmware-disk-drivers-when-nati.patch new file mode 100644 index 0000000..765b644 --- /dev/null +++ b/0389-Enforce-disabling-of-firmware-disk-drivers-when-nati.patch @@ -0,0 +1,248 @@ +From 14cbdee1aa0b21b73611823a7d9a9eb8466a7dc2 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 12:16:46 +0200 +Subject: [PATCH 389/471] Enforce disabling of firmware disk drivers + when native drivers kick in. + +--- + ChangeLog | 4 ++++ + grub-core/bus/usb/ehci.c | 4 ++++ + grub-core/bus/usb/ohci.c | 4 ++++ + grub-core/bus/usb/uhci.c | 2 ++ + grub-core/disk/ahci.c | 13 +------------ + grub-core/disk/efi/efidisk.c | 19 ++++++++++++------- + grub-core/disk/ieee1275/ofdisk.c | 18 ++++++++++-------- + grub-core/disk/pata.c | 8 +------- + include/grub/disk.h | 14 ++++++++++++++ + 9 files changed, 52 insertions(+), 34 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 1ba588d..1dea1aa 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-29 Vladimir Serbinenko + ++ Enforce disabling of firmware disk drivers when native drivers kick in. ++ ++2013-04-29 Vladimir Serbinenko ++ + * grub-core/commands/nativedisk.c: Customize the list of modules on + platform. Don't try to search for disks already using native drivers. + +diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c +index d18a87f..9294445 100644 +--- a/grub-core/bus/usb/ehci.c ++++ b/grub-core/bus/usb/ehci.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -1909,6 +1910,9 @@ GRUB_MOD_INIT (ehci) + { + COMPILE_TIME_ASSERT (sizeof (struct grub_ehci_td) == 64); + COMPILE_TIME_ASSERT (sizeof (struct grub_ehci_qh) == 96); ++ ++ grub_stop_disk_firmware (); ++ + grub_boot_time ("Initing EHCI hardware"); + grub_ehci_inithw (); + grub_boot_time ("Registering EHCI driver"); +diff --git a/grub-core/bus/usb/ohci.c b/grub-core/bus/usb/ohci.c +index 2f3fd91..3be5c8d 100644 +--- a/grub-core/bus/usb/ohci.c ++++ b/grub-core/bus/usb/ohci.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -1442,6 +1443,9 @@ GRUB_MOD_INIT(ohci) + { + COMPILE_TIME_ASSERT (sizeof (struct grub_ohci_td) == 32); + COMPILE_TIME_ASSERT (sizeof (struct grub_ohci_ed) == 16); ++ ++ grub_stop_disk_firmware (); ++ + grub_ohci_inithw (); + grub_usb_controller_dev_register (&usb_controller); + fini_hnd = grub_loader_register_preboot_hook (grub_ohci_fini_hw, +diff --git a/grub-core/bus/usb/uhci.c b/grub-core/bus/usb/uhci.c +index a314637..c2e2e7e 100644 +--- a/grub-core/bus/usb/uhci.c ++++ b/grub-core/bus/usb/uhci.c +@@ -866,6 +866,8 @@ static struct grub_usb_controller_dev usb_controller = + + GRUB_MOD_INIT(uhci) + { ++ grub_stop_disk_firmware (); ++ + grub_uhci_inithw (); + grub_usb_controller_dev_register (&usb_controller); + grub_dprintf ("uhci", "registered\n"); +diff --git a/grub-core/disk/ahci.c b/grub-core/disk/ahci.c +index e617042..554fcc5 100644 +--- a/grub-core/disk/ahci.c ++++ b/grub-core/disk/ahci.c +@@ -183,11 +183,6 @@ grub_ahci_pciinit (grub_pci_device_t dev, + if (class >> 8 != 0x010601) + return 0; + +-#ifdef GRUB_MACHINE_QEMU +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); +- grub_pci_write_word (addr, 0x107); +-#endif +- + addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG5); + + #ifdef GRUB_MACHINE_QEMU +@@ -1102,13 +1097,7 @@ static struct grub_preboot *fini_hnd; + + GRUB_MOD_INIT(ahci) + { +- /* To prevent two drivers operating on the same disks. */ +- grub_disk_firmware_is_tainted = 1; +- if (grub_disk_firmware_fini) +- { +- grub_disk_firmware_fini (); +- grub_disk_firmware_fini = NULL; +- } ++ grub_stop_disk_firmware (); + + /* AHCI initialization. */ + grub_ahci_initialize (); +diff --git a/grub-core/disk/efi/efidisk.c b/grub-core/disk/efi/efidisk.c +index e168d07..ebd906e 100644 +--- a/grub-core/disk/efi/efidisk.c ++++ b/grub-core/disk/efi/efidisk.c +@@ -624,21 +624,26 @@ static struct grub_disk_dev grub_efidisk_dev = + }; + + void +-grub_efidisk_init (void) +-{ +- enumerate_disks (); +- grub_disk_dev_register (&grub_efidisk_dev); +-} +- +-void + grub_efidisk_fini (void) + { + free_devices (fd_devices); + free_devices (hd_devices); + free_devices (cd_devices); ++ fd_devices = 0; ++ hd_devices = 0; ++ cd_devices = 0; + grub_disk_dev_unregister (&grub_efidisk_dev); + } + ++void ++grub_efidisk_init (void) ++{ ++ grub_disk_firmware_fini = grub_efidisk_fini; ++ ++ enumerate_disks (); ++ grub_disk_dev_register (&grub_efidisk_dev); ++} ++ + /* Some utility functions to map GRUB devices with EFI devices. */ + grub_efi_handle_t + grub_efidisk_get_device_handle (grub_disk_t disk) +diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c +index ec92c4d..2a31ecd 100644 +--- a/grub-core/disk/ieee1275/ofdisk.c ++++ b/grub-core/disk/ieee1275/ofdisk.c +@@ -550,14 +550,6 @@ insert_bootpath (void) + } + + void +-grub_ofdisk_init (void) +-{ +- insert_bootpath (); +- +- grub_disk_dev_register (&grub_ofdisk_dev); +-} +- +-void + grub_ofdisk_fini (void) + { + if (last_ihandle) +@@ -568,6 +560,16 @@ grub_ofdisk_fini (void) + grub_disk_dev_unregister (&grub_ofdisk_dev); + } + ++void ++grub_ofdisk_init (void) ++{ ++ grub_disk_firmware_fini = grub_ofdisk_fini; ++ ++ insert_bootpath (); ++ ++ grub_disk_dev_register (&grub_ofdisk_dev); ++} ++ + grub_err_t + grub_ofdisk_get_block_size (const char *device, grub_uint32_t *block_size) + { +diff --git a/grub-core/disk/pata.c b/grub-core/disk/pata.c +index 75e5deb..8c4b27b 100644 +--- a/grub-core/disk/pata.c ++++ b/grub-core/disk/pata.c +@@ -530,13 +530,7 @@ static struct grub_ata_dev grub_pata_dev = + + GRUB_MOD_INIT(ata_pthru) + { +- /* To prevent two drivers operating on the same disks. */ +- grub_disk_firmware_is_tainted = 1; +- if (grub_disk_firmware_fini) +- { +- grub_disk_firmware_fini (); +- grub_disk_firmware_fini = NULL; +- } ++ grub_stop_disk_firmware (); + + /* ATA initialization. */ + grub_pata_initialize (); +diff --git a/include/grub/disk.h b/include/grub/disk.h +index d19b1ac..8fa09a6 100644 +--- a/include/grub/disk.h ++++ b/include/grub/disk.h +@@ -25,6 +25,8 @@ + #include + #include + #include ++/* For NULL. */ ++#include + + /* These are used to set a device id. When you add a new disk device, + you must define a new id for it here. */ +@@ -205,6 +207,18 @@ EXPORT_FUNC(grub_disk_cache_get_performance) (unsigned long *hits, unsigned long + extern void (* EXPORT_VAR(grub_disk_firmware_fini)) (void); + extern int EXPORT_VAR(grub_disk_firmware_is_tainted); + ++static inline void ++grub_stop_disk_firmware (void) ++{ ++ /* To prevent two drivers operating on the same disks. */ ++ grub_disk_firmware_is_tainted = 1; ++ if (grub_disk_firmware_fini) ++ { ++ grub_disk_firmware_fini (); ++ grub_disk_firmware_fini = NULL; ++ } ++} ++ + #if defined (GRUB_UTIL) + void grub_lvm_init (void); + void grub_ldm_init (void); +-- +1.8.2.1 + diff --git a/0390-Add-few-new-tests.patch b/0390-Add-few-new-tests.patch new file mode 100644 index 0000000..b413a14 --- /dev/null +++ b/0390-Add-few-new-tests.patch @@ -0,0 +1,453 @@ +From a34197c479d81185ada7a64ee680ae4e5157215d Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 12:25:57 +0200 +Subject: [PATCH 390/471] Add few new tests. + +--- + ChangeLog | 4 +++ + Makefile.util.def | 42 ++++++++++++++++++++++++++++++ + tests/ahci_test.in | 52 +++++++++++++++++++++++++++++++++++++ + tests/ehci_test.in | 50 ++++++++++++++++++++++++++++++++++++ + tests/grub_script_escape_comma.in | 18 +++++++++++++ + tests/help_test.in | 16 ++++++++++++ + tests/ohci_test.in | 50 ++++++++++++++++++++++++++++++++++++ + tests/pata_test.in | 54 +++++++++++++++++++++++++++++++++++++++ + tests/uhci_test.in | 50 ++++++++++++++++++++++++++++++++++++ + tests/util/grub-shell.in | 2 +- + 10 files changed, 337 insertions(+), 1 deletion(-) + create mode 100644 tests/ahci_test.in + create mode 100644 tests/ehci_test.in + create mode 100644 tests/grub_script_escape_comma.in + create mode 100644 tests/help_test.in + create mode 100644 tests/ohci_test.in + create mode 100644 tests/pata_test.in + create mode 100644 tests/uhci_test.in + +diff --git a/ChangeLog b/ChangeLog +index 1dea1aa..e4a7307 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-29 Vladimir Serbinenko + ++ Add few new tests. ++ ++2013-04-29 Vladimir Serbinenko ++ + Enforce disabling of firmware disk drivers when native drivers kick in. + + 2013-04-29 Vladimir Serbinenko +diff --git a/Makefile.util.def b/Makefile.util.def +index caa6c05..3cfc592 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -546,6 +546,36 @@ script = { + + script = { + testcase; ++ name = pata_test; ++ common = tests/pata_test.in; ++}; ++ ++script = { ++ testcase; ++ name = ahci_test; ++ common = tests/ahci_test.in; ++}; ++ ++script = { ++ testcase; ++ name = uhci_test; ++ common = tests/uhci_test.in; ++}; ++ ++script = { ++ testcase; ++ name = ohci_test; ++ common = tests/ohci_test.in; ++}; ++ ++script = { ++ testcase; ++ name = ehci_test; ++ common = tests/ehci_test.in; ++}; ++ ++script = { ++ testcase; + name = example_grub_script_test; + common = tests/example_grub_script_test.in; + }; +@@ -750,12 +780,24 @@ script = { + + script = { + testcase; ++ name = help_test; ++ common = tests/help_test.in; ++}; ++ ++script = { ++ testcase; + name = grub_script_gettext; + common = tests/grub_script_gettext.in; + }; + + script = { + testcase; ++ name = grub_script_escape_comma; ++ common = tests/grub_script_escape_comma.in; ++}; ++ ++script = { ++ testcase; + name = grub_script_strcmp; + common = tests/grub_script_strcmp.in; + }; +diff --git a/tests/ahci_test.in b/tests/ahci_test.in +new file mode 100644 +index 0000000..fa5314c +--- /dev/null ++++ b/tests/ahci_test.in +@@ -0,0 +1,52 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; ++ # FIXME: qemu gets bonito DMA wrong ++ mipsel-loongson) ++ exit 0;; ++ # no AHCI on ARC and qemu-mips platforms ++ mips*-arc | mips*-qemu_mips) ++ exit 0;; ++ # FIXME: No native drivers are available for those ++ powerpc-ieee1275 | sparc64-ieee1275) ++ exit 0;; ++esac ++ ++imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++ ++echo "hello" > "$outfile" ++ ++tar cf "$imgfile" "$outfile" ++ ++if [ "$(echo "nativedisk; source '(ahci0)/$outfile';" | "${grubshell}" --qemu-opts="-drive id=disk,file=$imgfile,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 " | tail -n 1)" != "Hello World" ]; then ++ rm "$imgfile" ++ rm "$outfile" ++ exit 1 ++fi ++ ++rm "$imgfile" ++rm "$outfile" ++ ++ +diff --git a/tests/ehci_test.in b/tests/ehci_test.in +new file mode 100644 +index 0000000..d9999f8 +--- /dev/null ++++ b/tests/ehci_test.in +@@ -0,0 +1,50 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; ++ # FIXME: qemu gets bonito DMA wrong ++ mipsel-loongson) ++ exit 0;; ++ # no USB on ARC and qemu-mips platforms ++ mips*-arc | mips*-qemu_mips) ++ exit 0;; ++ # FIXME: No native drivers are available for those ++ powerpc-ieee1275 | sparc64-ieee1275) ++ exit 0;; ++esac ++ ++imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++ ++echo "hello" > "$outfile" ++ ++tar cf "$imgfile" "$outfile" ++ ++if [ "$(echo "nativedisk; source '(usb0)/$outfile';" | "${grubshell}" --qemu-opts="-device ich9-usb-ehci1 -drive id=my_usb_disk,file=$imgfile,if=none -device usb-storage,drive=my_usb_disk" | tail -n 1)" != "Hello World" ]; then ++ rm "$imgfile" ++ rm "$outfile" ++ exit 1 ++fi ++ ++rm "$imgfile" ++rm "$outfile" +diff --git a/tests/grub_script_escape_comma.in b/tests/grub_script_escape_comma.in +new file mode 100644 +index 0000000..eff3179 +--- /dev/null ++++ b/tests/grub_script_escape_comma.in +@@ -0,0 +1,18 @@ ++#! @builddir@/grub-shell-tester ++ ++x=1\\,1 ++echo $x ++y='$' ++echo $y ++z='\' ++echo $z ++t='\*' ++echo $t ++u='$' ++echo $u ++v='\?' ++echo $v ++ ++ ++echo \\ ++ +diff --git a/tests/help_test.in b/tests/help_test.in +new file mode 100644 +index 0000000..e780924 +--- /dev/null ++++ b/tests/help_test.in +@@ -0,0 +1,16 @@ ++#! /bin/bash ++set -e ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++template="Usage: help [PATTERN ...] ++Show a help message. ++ ++-h, --help Display this help and exit. ++-u, --usage Display the usage of this command and exit. ++Hello World" ++outpu="$(echo 'help help; hello' | @builddir@/grub-shell)" ++ ++if [ "$template" != "$outpu" ]; then ++ exit 1 ++fi +diff --git a/tests/ohci_test.in b/tests/ohci_test.in +new file mode 100644 +index 0000000..d6c1e0c +--- /dev/null ++++ b/tests/ohci_test.in +@@ -0,0 +1,50 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; ++ # FIXME: qemu gets bonito DMA wrong ++ mipsel-loongson) ++ exit 0;; ++ # no USB on ARC and qemu-mips platforms ++ mips*-arc | mips*-qemu_mips) ++ exit 0;; ++ # FIXME: No native drivers are available for those ++ powerpc-ieee1275 | sparc64-ieee1275) ++ exit 0;; ++esac ++ ++imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++ ++echo "hello" > "$outfile" ++ ++tar cf "$imgfile" "$outfile" ++ ++if [ "$(echo "nativedisk; source '(usb0)/$outfile';" | "${grubshell}" --qemu-opts="-device pci-ohci -drive id=my_usb_disk,file=$imgfile,if=none -device usb-storage,drive=my_usb_disk" | tail -n 1)" != "Hello World" ]; then ++ rm "$imgfile" ++ rm "$outfile" ++ exit 1 ++fi ++ ++rm "$imgfile" ++rm "$outfile" +diff --git a/tests/pata_test.in b/tests/pata_test.in +new file mode 100644 +index 0000000..3671300 +--- /dev/null ++++ b/tests/pata_test.in +@@ -0,0 +1,54 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++disk=hda ++indisk=ata0 ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; ++ # no ATA on ARC platforms (they use SCSI) ++ *-arc) ++ exit 0;; ++ # FIXME: No native drivers are available for those ++ powerpc-ieee1275 | sparc64-ieee1275) ++ exit 0;; ++ i386-ieee1275) ++ disk=hdb ++ indisk=ata1 ++ ;; ++esac ++ ++imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++ ++echo "hello" > "$outfile" ++ ++tar cf "$imgfile" "$outfile" ++ ++if [ "$(echo "nativedisk; source '($indisk)/$outfile';" | "${grubshell}" --qemu-opts="-$disk $imgfile")" != "Hello World" ]; then ++ rm "$imgfile" ++ rm "$outfile" ++ exit 1 ++fi ++ ++rm "$imgfile" ++rm "$outfile" +diff --git a/tests/uhci_test.in b/tests/uhci_test.in +new file mode 100644 +index 0000000..ec6731c +--- /dev/null ++++ b/tests/uhci_test.in +@@ -0,0 +1,50 @@ ++#! /bin/sh ++# Copyright (C) 2013 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++set -e ++grubshell=@builddir@/grub-shell ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ *-emu) ++ exit 0;; ++ # FIXME: qemu gets bonito DMA wrong ++ mipsel-loongson) ++ exit 0;; ++ # no USB on ARC and qemu-mips platforms ++ mips*-arc | mips*-qemu_mips) ++ exit 0;; ++ # FIXME: No native drivers are available for those ++ powerpc-ieee1275 | sparc64-ieee1275) ++ exit 0;; ++esac ++ ++imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 ++ ++echo "hello" > "$outfile" ++ ++tar cf "$imgfile" "$outfile" ++ ++if [ "$(echo "nativedisk; source '(usb0)/$outfile';" | "${grubshell}" --qemu-opts="-usb -usbdevice disk:$imgfile" | tail -n 1)" != "Hello World" ]; then ++ rm "$imgfile" ++ rm "$outfile" ++ exit 1 ++fi ++ ++rm "$imgfile" ++rm "$outfile" +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index b034e96..5b20ca3 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -322,7 +322,7 @@ do + done + + cat <>${cfgfile} +-source \$prefix/testcase.cfg ++source "\$prefix/testcase.cfg" + # Stop serial output to suppress "ACPI shutdown failed" error. + EOF + if [ x$console != x ]; then +-- +1.8.2.1 + diff --git a/0391-Unify-more-code-in-grub-install_header.patch b/0391-Unify-more-code-in-grub-install_header.patch new file mode 100644 index 0000000..4cfbe93 --- /dev/null +++ b/0391-Unify-more-code-in-grub-install_header.patch @@ -0,0 +1,452 @@ +From 5ece7791529296e557e7b38aa66ffb4262a96a31 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 12:26:43 +0200 +Subject: [PATCH 391/471] Unify more code in grub-install_header. + +--- + ChangeLog | 4 ++++ + util/grub-install.in | 37 ------------------------------------- + util/grub-install_header | 40 ++++++++++++++++++++++++++++++++++++++++ + util/grub-mknetdir.in | 36 ------------------------------------ + util/grub-mkrescue.in | 39 --------------------------------------- + util/grub-mkstandalone.in | 37 ------------------------------------- + 6 files changed, 44 insertions(+), 149 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index e4a7307..eff0b6b 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-29 Vladimir Serbinenko + ++ Unify more code in grub-install_header. ++ ++2013-04-29 Vladimir Serbinenko ++ + Add few new tests. + + 2013-04-29 Vladimir Serbinenko +diff --git a/util/grub-install.in b/util/grub-install.in +index d69ef3a..3dbd5da 100644 +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -17,38 +17,19 @@ + # along with GRUB. If not, see . + + # Initialize some variables. +-prefix="@prefix@" +-exec_prefix="@exec_prefix@" +-datarootdir="@datarootdir@" + sbindir="@sbindir@" +-bindir="@bindir@" +-libdir="@libdir@" + sysconfdir="@sysconfdir@" +-PACKAGE_NAME=@PACKAGE_NAME@ +-PACKAGE_TARNAME=@PACKAGE_TARNAME@ +-PACKAGE_VERSION=@PACKAGE_VERSION@ +- +-export TEXTDOMAIN=@PACKAGE@ +-export TEXTDOMAINDIR="@localedir@" + + host_os=@host_os@ + target= +-datadir="@datadir@" +-if [ "x$pkgdatadir" = x ]; then +- pkgdatadir="${datadir}/@PACKAGE@" +-fi + localedir="@datadir@/locale" + +-self="`basename $0`" +- +-grub_mkimage="${bindir}/@grub_mkimage@" + grub_probe="${sbindir}/@grub_probe@" + grub_editenv="${bindir}/@grub_editenv@" + grub_mkrelpath="${bindir}/@grub_mkrelpath@" + rootdir= + bootdir= + grubdir="`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'`" +-modules= + + install_device= + force_lba= +@@ -73,8 +54,6 @@ fi + + disk_module=unspecified + +-. "${pkgdatadir}/grub-mkconfig_lib" +- + # Usage: usage + # Print the usage. + usage () { +@@ -85,8 +64,6 @@ usage () { + gettext "Install GRUB on your drive." ; echo + echo + print_option_help "-h, --help" "$(gettext "print this message and exit")" +- print_option_help "-v, --version" "$(gettext "print the version information and exit")" +- print_option_help "--modules=$(gettext "MODULES")" "$(gettext "pre-load specified modules MODULES")" + grub_print_install_files_help + + dirmsg="$(gettext_printf "install GRUB images under the directory DIR/%s instead of the %s directory" "@grubdirname@" "$grubdir")" +@@ -96,7 +73,6 @@ usage () { + # TRANSLATORS: "current" refers to the platform user's currently running on + print_option_help "--target=$target_trans" "$(gettext "install GRUB for TARGET platform [default=current]")" + print_option_help "--grub-setup=$(gettext "FILE")" "$(gettext "use FILE as grub-setup")" +- print_option_help "--grub-mkimage=$(gettext "FILE")" "$(gettext "use FILE as grub-mkimage")" + print_option_help "--grub-mkrelpath=$(gettext "FILE")" "$(gettext "use FILE as grub-mkrelpath")" + print_option_help "--grub-probe=$(gettext "FILE")" "$(gettext "use FILE as grub-probe")" + # TRANSLATORS: "may break" doesn't just mean that option wouldn't have any +@@ -140,14 +116,6 @@ do + -h | --help) + usage + exit 0 ;; +- -v | --version) +- echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" +- exit 0 ;; +- +- --modules) +- modules=`argument $option "$@"`; shift;; +- --modules=*) +- modules=`echo "$option" | sed 's/--modules=//'` ;; + + --force-file-id) + force_file_id=y ;; +@@ -189,11 +157,6 @@ do + --bootloader-id=*) + bootloader_id="`echo "$option" | sed 's/--bootloader-id=//'`" ;; + +- --grub-mkimage) +- grub_mkimage="`argument $option "$@"`"; shift;; +- --grub-mkimage=*) +- grub_mkimage="`echo "$option" | sed 's/--grub-mkimage=//'`" ;; +- + --grub-mkrelpath) + grub_mkrelpath="`argument "$option" "$@"`"; shift;; + --grub-mkrelpath=*) +diff --git a/util/grub-install_header b/util/grub-install_header +index 72d91e9..cf7fa9d 100644 +--- a/util/grub-install_header ++++ b/util/grub-install_header +@@ -16,9 +16,34 @@ set -e + # You should have received a copy of the GNU General Public License + # along with GRUB. If not, see . + ++prefix="@prefix@" ++exec_prefix="@exec_prefix@" ++datarootdir="@datarootdir@" ++bindir="@bindir@" ++ ++libdir="@libdir@" ++PACKAGE_NAME=@PACKAGE_NAME@ ++PACKAGE_TARNAME=@PACKAGE_TARNAME@ ++PACKAGE_VERSION=@PACKAGE_VERSION@ ++datadir="@datadir@" ++if [ "x$pkgdatadir" = x ]; then ++ pkgdatadir="${datadir}/@PACKAGE@" ++fi ++ ++self=`basename $0` ++ ++export TEXTDOMAIN=@PACKAGE@ ++export TEXTDOMAINDIR="@localedir@" ++ ++. "${pkgdatadir}/grub-mkconfig_lib" ++ ++modules= ++ + pkglib_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst \ + handler.lst video.lst crypto.lst terminal.lst" + ++grub_mkimage="${bindir}/@grub_mkimage@" ++ + grub_compress_file () { + if [ "$compressor" != "" ] ; then + "$compressor" $compressor_opts "$1" > "$2" +@@ -121,6 +146,7 @@ grub_install_files () { + } + + grub_print_install_files_help () { ++ print_option_help "--modules=$(gettext "MODULES")" "$(gettext "pre-load specified modules MODULES")" + print_option_help "--install-modules=$(gettext "MODULES")" "$(gettext "install only MODULES and their dependencies [default=all]")" + print_option_help "--themes=THEMES" "$(gettext_printf "install THEMES [default=%s]" "starfield")" + print_option_help "--fonts=FONTS" "$(gettext_printf "install FONTS [default=%s]" "unicode")" +@@ -129,6 +155,8 @@ grub_print_install_files_help () { + # TRANSLATORS: platform here isn't identifier. It can be translated. + dir_msg="$(gettext_printf "use images and modules under DIR [default=%s/]" "${libdir}/@PACKAGE@")" + print_option_help "-d, --directory=$(gettext "DIR")" "$dir_msg" ++ print_option_help "--grub-mkimage=$(gettext "FILE")" "$(gettext "use FILE as grub-mkimage")" ++ print_option_help "-v, --version" "$(gettext "print the version information and exit")" + } + + install_modules=all +@@ -212,6 +240,18 @@ grub_process_install_options () { + source_directory=`argument $option "$@"`; grub_process_install_options_consumed=2 ;; + --override-directory=*) + source_directory=`echo "$option" | sed 's/--override-directory=//'` grub_process_install_options_consumed=1;; ++ ++ --grub-mkimage) ++ grub_mkimage=`argument $option "$@"`; grub_process_install_options_consumed=2 ;; ++ --grub-mkimage=*) ++ grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'`;grub_process_install_options_consumed=1 ;; ++ --modules) ++ modules=`argument $option "$@"`; grub_process_install_options_consumed=2;; ++ --modules=*) ++ modules=`echo "$option" | sed 's/--modules=//'` grub_process_install_options_consumed=1;; ++ -v | --version) ++ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" ++ exit 0 ;; + esac + } + +diff --git a/util/grub-mknetdir.in b/util/grub-mknetdir.in +index 051b985..97d4155 100644 +--- a/util/grub-mknetdir.in ++++ b/util/grub-mknetdir.in +@@ -15,23 +15,8 @@ + # along with GRUB. If not, see . + + # Initialize some variables. +-prefix="@prefix@" +-exec_prefix="@exec_prefix@" +-datarootdir="@datarootdir@" +-bindir="@bindir@" +-libdir="@libdir@" +-PACKAGE_NAME=@PACKAGE_NAME@ +-PACKAGE_TARNAME=@PACKAGE_TARNAME@ +-PACKAGE_VERSION=@PACKAGE_VERSION@ + host_os=@host_os@ +-datadir="@datadir@" +-if [ "x$pkgdatadir" = x ]; then +- pkgdatadir="${datadir}/@PACKAGE@" +-fi +- +-self=`basename $0` + +-grub_mkimage="${bindir}/@grub_mkimage@" + rootdir=/srv/tftp + modules= + +@@ -48,11 +33,6 @@ efi32_dir="${libdir}/@PACKAGE@/i386-efi" + efi64_dir="${libdir}/@PACKAGE@/x86_64-efi" + itanium_dir="${libdir}/@PACKAGE@/ia64-efi" + +-export TEXTDOMAIN=@PACKAGE@ +-export TEXTDOMAINDIR="@localedir@" +- +-. "${pkgdatadir}/grub-mkconfig_lib" +- + # Usage: usage + # Print the usage. + usage () { +@@ -60,12 +40,9 @@ usage () { + gettext; echo "Install GRUB on your drive."; echo + echo + print_option_help "-h, --help" "$(gettext "print this message and exit")" +- print_option_help "-v, --version" "$(gettext "print the version information and exit")" +- print_option_help "--modules=$(gettext "MODULES")" "$(gettext "pre-load specified modules MODULES")" + grub_print_install_files_help + print_option_help "--net-directory=$(gettext "DIR")" "$(gettext "root directory of TFTP server")" + print_option_help "--subdir=$(gettext "DIR")" "$(gettext "relative subdirectory on network server")" +- print_option_help "--grub-mkimage=$(gettext "FILE")" "$(gettext "use FILE as grub-mkimage")" + echo + gettext_printf "%s copies GRUB images into net_directory/subdir/target_cpu-platform\n" "$self" + echo +@@ -88,14 +65,6 @@ do + -h | --help) + usage + exit 0 ;; +- -v | --version) +- echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" +- exit 0 ;; +- +- --modules) +- modules=`argument $option "$@"`; shift;; +- --modules=*) +- modules=`echo "$option" | sed 's/--modules=//'` ;; + + --net-directory) + rootdir=`argument $option "$@"`; shift;; +@@ -107,11 +76,6 @@ do + --subdir=*) + subdir=`echo "$option" | sed 's/--subdir=//'` ;; + +- --grub-mkimage) +- grub_mkimage=`argument $option "$@"`; shift;; +- --grub-mkimage=*) +- grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;; +- + # This is an undocumented feature... + --debug) + debug=yes ;; +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index a8d492e..b942c8f 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -18,22 +18,6 @@ + + # Initialize some variables. + +-prefix="@prefix@" +-exec_prefix="@exec_prefix@" +-datarootdir="@datarootdir@" +-bindir="@bindir@" +-libdir="@libdir@" +-PACKAGE_NAME=@PACKAGE_NAME@ +-PACKAGE_TARNAME=@PACKAGE_TARNAME@ +-PACKAGE_VERSION=@PACKAGE_VERSION@ +-datadir="@datadir@" +-if [ "x$pkgdatadir" = x ]; then +- pkgdatadir="${datadir}/@PACKAGE@" +-fi +-pkglib_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst" +- +-self=`basename $0` +- + multiboot_dir="${libdir}/@PACKAGE@/i386-multiboot" + coreboot_dir="${libdir}/@PACKAGE@/i386-coreboot" + qemu_dir="${libdir}/@PACKAGE@/i386-qemu" +@@ -50,7 +34,6 @@ arcs_dir="${libdir}/@PACKAGE@/mips-arc" + arc_dir="${libdir}/@PACKAGE@/mipsel-arc" + ppc_dir="${libdir}/@PACKAGE@/powerpc-ieee1275" + rom_directory= +-grub_mkimage="${bindir}/@grub_mkimage@" + grub_render_label="${bindir}/@grub_render_label@" + grub_glue_efi="${bindir}/@grub_glue_efi@" + label_font="${pkgdatadir}/unicode.pf2" +@@ -61,13 +44,8 @@ product_version="${PACKAGE_VERSION}" + + xorriso=xorriso + +-export TEXTDOMAIN=@PACKAGE@ +-export TEXTDOMAINDIR="@localedir@" +- + localedir="@datadir@/locale" + +-. "${pkgdatadir}/grub-mkconfig_lib" +- + # Usage: usage + # Print the usage. + usage () { +@@ -77,15 +55,11 @@ usage () { + echo + filetrans="$(gettext FILE)" + print_option_help "-h, --help" "$(gettext "print this message and exit")" +- print_option_help "-v, --version" "$(gettext "print the version information and exit")" + print_option_help "-o, --output=$filetrans" "$(gettext "save output in FILE [required]")" +- print_option_help "--modules=$(gettext "MODULES")" "$(gettext "pre-load specified modules MODULES")" + grub_print_install_files_help +- print_option_help "--install-modules=$(gettext "MODULES")" "$(gettext "install only MODULES and their dependencies on bootable media")" + print_option_help "--rom-directory=$(gettext "DIR")" "$(gettext "save ROM images in DIR [optional]")" + # TRANSLATORS: xorriso is a program for creating ISOs and burning CDs + print_option_help "--xorriso=$filetrans" "$(gettext "use FILE as xorriso [optional]")" +- print_option_help "--grub-mkimage=$filetrans" "$(gettext "use FILE as grub-mkimage")" + print_option_help "--grub-glue-efi=$filetrans" "$(gettext "use FILE as grub-glue-efi")" + print_option_help "--grub-render-label=$filetrans" "$(gettext "use FILE as grub-render-label")" + print_option_help "--label-font=$filetrans" "$(gettext "use FILE as font for label")" +@@ -123,14 +97,6 @@ do + -h | --help) + usage + exit 0 ;; +- -v | --version) +- echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" +- exit 0 ;; +- +- --modules) +- modules=`argument $option "$@"`; shift ;; +- --modules=*) +- modules=`echo "$option" | sed 's/--modules=//'` ;; + + -o | --output) + output_image=`argument $option "$@"`; shift ;; +@@ -164,11 +130,6 @@ do + --product-version=*) + product_version=`echo "$option" | sed 's/--product-version=//'` ;; + +- --grub-mkimage) +- grub_mkimage=`argument $option "$@"`; shift ;; +- --grub-mkimage=*) +- grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;; +- + --grub-glue-efi) + grub_glue_efi=`argument $option "$@"`; shift ;; + --grub-glue-efi=*) +diff --git a/util/grub-mkstandalone.in b/util/grub-mkstandalone.in +index 30dd90f..b692c48 100644 +--- a/util/grub-mkstandalone.in ++++ b/util/grub-mkstandalone.in +@@ -18,31 +18,10 @@ + + # Initialize some variables. + +-prefix="@prefix@" +-exec_prefix="@exec_prefix@" +-datarootdir="@datarootdir@" +-bindir="@bindir@" +-libdir="@libdir@" +-PACKAGE_NAME=@PACKAGE_NAME@ +-PACKAGE_TARNAME=@PACKAGE_TARNAME@ +-PACKAGE_VERSION=@PACKAGE_VERSION@ +-datadir="@datadir@" +-if [ "x$pkgdatadir" = x ]; then +- pkgdatadir="${datadir}/@PACKAGE@" +-fi +- +-self=`basename $0` +- + compression=auto + format= +-grub_mkimage="${bindir}/@grub_mkimage@" + source= + +-export TEXTDOMAIN=@PACKAGE@ +-export TEXTDOMAINDIR="@localedir@" +- +-. "${pkgdatadir}/grub-mkconfig_lib" +- + # Usage: usage + # Print the usage. + usage () { +@@ -51,15 +30,12 @@ usage () { + gettext "Generate a standalone image (containing all modules) in the selected format" + echo + print_option_help "-h, --help" "$(gettext "print this message and exit")" +- print_option_help "-v, --version" "$(gettext "print the version information and exit")" + print_option_help "-o, --output=$(gettext FILE)" "$(gettext "save output in FILE [required]")" + print_option_help "-O, --format=$(gettext "FORMAT")" "$(gettext "generate an image in FORMAT")"; echo + print_option_help "" "$(gettext "available formats:") $formats" + echo + print_option_help "-C, --compression=(xz|none|auto)" "$(gettext "choose the compression to use for core image")" +- print_option_help "--modules=$(gettext "MODULES")" "$(gettext "pre-load specified modules MODULES")" + grub_print_install_files_help +- print_option_help "--grub-mkimage=$(gettext "FILE")" "$(gettext "use FILE as grub-mkimage")" + echo + gettext "Report bugs to ."; echo + } +@@ -80,25 +56,12 @@ do + -h | --help) + usage + exit 0 ;; +- -v | --version) +- echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" +- exit 0 ;; +- +- --modules) +- modules=`argument $option "$@"`; shift ;; +- --modules=*) +- modules=`echo "$option" | sed 's/--modules=//'` ;; + + -o | --output) + output_image=`argument $option "$@"`; shift ;; + --output=*) + output_image=`echo "$option" | sed 's/--output=//'` ;; + +- --grub-mkimage) +- grub_mkimage=`argument $option "$@"`; shift ;; +- --grub-mkimage=*) +- grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;; +- + --compression | -C) + compression=`argument $option "$@"`; shift ;; + --compression=*) +-- +1.8.2.1 + diff --git a/0392-grub-core-gfxmenu-gui_list.c-Refresh-first_shown_ent.patch b/0392-grub-core-gfxmenu-gui_list.c-Refresh-first_shown_ent.patch new file mode 100644 index 0000000..ad36bf0 --- /dev/null +++ b/0392-grub-core-gfxmenu-gui_list.c-Refresh-first_shown_ent.patch @@ -0,0 +1,117 @@ +From a4ff5d5fe50365bd4ba31addc3fa67b59aa59d78 Mon Sep 17 00:00:00 2001 +From: Vladimir Testov +Date: Mon, 29 Apr 2013 13:40:11 +0200 +Subject: [PATCH 392/471] * grub-core/gfxmenu/gui_list.c: Refresh + first_shown_entry value when cached view is reused. * + grub-core/gfxmenu/view.c: Call the refresh procedure for all open boot + menus. + +--- + ChangeLog | 7 +++++++ + grub-core/gfxmenu/gui_list.c | 13 ++++++++++++- + grub-core/gfxmenu/view.c | 22 ++++++++++++++++++++++ + include/grub/gui.h | 2 ++ + 4 files changed, 43 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index eff0b6b..86effa0 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,10 @@ ++2013-04-29 Vladimir Testov ++ ++ * grub-core/gfxmenu/gui_list.c: Refresh first_shown_entry value when ++ cached view is reused. ++ * grub-core/gfxmenu/view.c: Call the refresh procedure for all ++ open boot menus. ++ + 2013-04-29 Vladimir Serbinenko + + Unify more code in grub-install_header. +diff --git a/grub-core/gfxmenu/gui_list.c b/grub-core/gfxmenu/gui_list.c +index 1982d9a..a06603b 100644 +--- a/grub-core/gfxmenu/gui_list.c ++++ b/grub-core/gfxmenu/gui_list.c +@@ -541,6 +541,16 @@ list_set_view_info (void *vself, + self->view = view; + } + ++/* Refresh list variables */ ++static void ++list_refresh_info (void *vself, ++ grub_gfxmenu_view_t view) ++{ ++ list_impl_t self = vself; ++ if (view->nested) ++ self->first_shown_index = 0; ++} ++ + static struct grub_gui_component_ops list_comp_ops = + { + .destroy = list_destroy, +@@ -557,7 +567,8 @@ static struct grub_gui_component_ops list_comp_ops = + + static struct grub_gui_list_ops list_ops = + { +- .set_view_info = list_set_view_info ++ .set_view_info = list_set_view_info, ++ .refresh_list = list_refresh_info + }; + + grub_gui_component_t +diff --git a/grub-core/gfxmenu/view.c b/grub-core/gfxmenu/view.c +index 6de96ca..475fc76 100644 +--- a/grub-core/gfxmenu/view.c ++++ b/grub-core/gfxmenu/view.c +@@ -237,6 +237,27 @@ update_menu_components (grub_gfxmenu_view_t view) + } + + static void ++refresh_menu_visit (grub_gui_component_t component, ++ void *userdata) ++{ ++ grub_gfxmenu_view_t view; ++ view = userdata; ++ if (component->ops->is_instance (component, "list")) ++ { ++ grub_gui_list_t list = (grub_gui_list_t) component; ++ list->ops->refresh_list (list, view); ++ } ++} ++ ++/* Refresh list information (useful for submenus) */ ++static void ++refresh_menu_components (grub_gfxmenu_view_t view) ++{ ++ grub_gui_iterate_recursively ((grub_gui_component_t) view->canvas, ++ refresh_menu_visit, view); ++} ++ ++static void + draw_message (grub_gfxmenu_view_t view) + { + char *text = view->progress_message_text; +@@ -294,6 +315,7 @@ grub_gfxmenu_view_draw (grub_gfxmenu_view_t view) + view->screen.x, view->screen.y, + view->screen.width, view->screen.height); + ++ refresh_menu_components (view); + update_menu_components (view); + + grub_gfxmenu_view_redraw (view, &view->screen); +diff --git a/include/grub/gui.h b/include/grub/gui.h +index ef0795c..4b8ec89 100644 +--- a/include/grub/gui.h ++++ b/include/grub/gui.h +@@ -67,6 +67,8 @@ struct grub_gui_list_ops + { + void (*set_view_info) (void *self, + grub_gfxmenu_view_t view); ++ void (*refresh_list) (void *self, ++ grub_gfxmenu_view_t view); + }; + + struct grub_gui_progress_ops +-- +1.8.2.1 + diff --git a/0393-Make-PCI-init-in-i386-qemu-port-more-robust.patch b/0393-Make-PCI-init-in-i386-qemu-port-more-robust.patch new file mode 100644 index 0000000..5ddaa3b --- /dev/null +++ b/0393-Make-PCI-init-in-i386-qemu-port-more-robust.patch @@ -0,0 +1,517 @@ +From d164941306b06f408c3b2fb6a3176d1b8e2412d1 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 15:09:39 +0200 +Subject: [PATCH 393/471] Make PCI init in i386-qemu port more robust. + +--- + ChangeLog | 6 +- + grub-core/Makefile.core.def | 4 +- + grub-core/bus/usb/uhci.c | 10 +- + grub-core/disk/ahci.c | 3 - + grub-core/kern/i386/coreboot/init.c | 22 +-- + grub-core/kern/i386/qemu/init.c | 284 ++++++++++++++++++++++++++++++++++++ + grub-core/kern/mips/loongson/init.c | 3 +- + grub-core/kern/vga_init.c | 35 ----- + include/grub/pci.h | 1 + + 9 files changed, 299 insertions(+), 69 deletions(-) + create mode 100644 grub-core/kern/i386/qemu/init.c + +diff --git a/ChangeLog b/ChangeLog +index 86effa0..ece8586 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,4 +1,8 @@ +-2013-04-29 Vladimir Testov ++2013-04-29 Vladimir Serbinenko ++ ++ Make PCI init in i386-qemu port more robust. ++ ++2013-04-29 Vladimir Testov + + * grub-core/gfxmenu/gui_list.c: Refresh first_shown_entry value when + cached view is reused. +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index ebcd01d..7e19acb 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -134,7 +134,9 @@ kernel = { + + i386 = kern/i386/dl.c; + +- i386_coreboot_multiboot_qemu = kern/i386/coreboot/init.c; ++ i386_coreboot = kern/i386/coreboot/init.c; ++ i386_multiboot = kern/i386/coreboot/init.c; ++ i386_qemu = kern/i386/qemu/init.c; + i386_coreboot_multiboot_qemu = term/i386/pc/vga_text.c; + + efi = disk/efi/efidisk.c; +diff --git a/grub-core/bus/usb/uhci.c b/grub-core/bus/usb/uhci.c +index c2e2e7e..0fca1a1 100644 +--- a/grub-core/bus/usb/uhci.c ++++ b/grub-core/bus/usb/uhci.c +@@ -236,15 +236,7 @@ grub_uhci_pci_iter (grub_pci_device_t dev, + return 0; + + if ((base & GRUB_UHCI_IOMASK) == 0) +- { +-#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) +- static int ndevs = 0; +- base = 0x1800 + ndevs++ * 0x100; +- grub_pci_write (addr, base | GRUB_PCI_ADDR_SPACE_IO); +-#else +- return 0; +-#endif +- } ++ return 0; + + grub_dprintf ("uhci", "base = %x\n", base); + +diff --git a/grub-core/disk/ahci.c b/grub-core/disk/ahci.c +index 554fcc5..58bc190 100644 +--- a/grub-core/disk/ahci.c ++++ b/grub-core/disk/ahci.c +@@ -185,9 +185,6 @@ grub_ahci_pciinit (grub_pci_device_t dev, + + addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG5); + +-#ifdef GRUB_MACHINE_QEMU +- grub_pci_write (addr, 0xf4000000); +-#endif + bar = grub_pci_read (addr); + + if ((bar & (GRUB_PCI_ADDR_SPACE_MASK | GRUB_PCI_ADDR_MEM_TYPE_MASK +diff --git a/grub-core/kern/i386/coreboot/init.c b/grub-core/kern/i386/coreboot/init.c +index bfc8f3f..7cd530d 100644 +--- a/grub-core/kern/i386/coreboot/init.c ++++ b/grub-core/kern/i386/coreboot/init.c +@@ -1,6 +1,6 @@ + /* + * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc. ++ * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2013 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -34,9 +34,6 @@ + #include + #include + #include +-#ifdef GRUB_MACHINE_QEMU +-#include +-#endif + + extern grub_uint8_t _start[]; + extern grub_uint8_t _end[]; +@@ -51,12 +48,8 @@ grub_exit (void) + grub_cpu_idle (); + } + +-#ifdef GRUB_MACHINE_QEMU +-grub_addr_t grub_modbase; +-#else + grub_addr_t grub_modbase = GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR; + static grub_uint64_t modend; +-#endif + + /* Helper for grub_machine_init. */ + static int +@@ -80,10 +73,8 @@ heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, + if (begin < GRUB_MEMORY_MACHINE_LOWER_SIZE) + begin = GRUB_MEMORY_MACHINE_LOWER_SIZE; + +-#ifndef GRUB_MACHINE_QEMU + if (modend && begin < modend) + begin = modend; +-#endif + + if (end <= begin) + return 0; +@@ -96,18 +87,11 @@ heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, + void + grub_machine_init (void) + { +-#ifdef GRUB_MACHINE_QEMU +- grub_modbase = grub_core_entry_addr + (_edata - _start); +- +- grub_qemu_init_cirrus (); +-#endif +-#ifndef GRUB_MACHINE_QEMU + modend = grub_modules_get_end (); +-#endif +- /* Initialize the console as early as possible. */ ++ + grub_vga_text_init (); + +-#if defined (GRUB_MACHINE_MULTIBOOT) || defined (GRUB_MACHINE_QEMU) ++#ifdef GRUB_MACHINE_MULTIBOOT + grub_machine_mmap_init (); + #endif + grub_machine_mmap_iterate (heap_init, NULL); +diff --git a/grub-core/kern/i386/qemu/init.c b/grub-core/kern/i386/qemu/init.c +new file mode 100644 +index 0000000..cad6c40 +--- /dev/null ++++ b/grub-core/kern/i386/qemu/init.c +@@ -0,0 +1,284 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern grub_uint8_t _start[]; ++extern grub_uint8_t _end[]; ++extern grub_uint8_t _edata[]; ++ ++void __attribute__ ((noreturn)) ++grub_exit (void) ++{ ++ /* We can't use grub_fatal() in this function. This would create an infinite ++ loop, since grub_fatal() calls grub_abort() which in turn calls grub_exit(). */ ++ while (1) ++ grub_cpu_idle (); ++} ++ ++grub_addr_t grub_modbase; ++ ++/* Helper for grub_machine_init. */ ++static int ++heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, ++ void *data __attribute__ ((unused))) ++{ ++ grub_uint64_t begin = addr, end = addr + size; ++ ++#if GRUB_CPU_SIZEOF_VOID_P == 4 ++ /* Restrict ourselves to 32-bit memory space. */ ++ if (begin > GRUB_ULONG_MAX) ++ return 0; ++ if (end > GRUB_ULONG_MAX) ++ end = GRUB_ULONG_MAX; ++#endif ++ ++ if (type != GRUB_MEMORY_AVAILABLE) ++ return 0; ++ ++ /* Avoid the lower memory. */ ++ if (begin < GRUB_MEMORY_MACHINE_LOWER_SIZE) ++ begin = GRUB_MEMORY_MACHINE_LOWER_SIZE; ++ ++ if (end <= begin) ++ return 0; ++ ++ grub_mm_init_region ((void *) (grub_addr_t) begin, (grub_size_t) (end - begin)); ++ ++ return 0; ++} ++ ++struct resource ++{ ++ grub_pci_device_t dev; ++ int type; ++ grub_size_t size; ++ int bar; ++}; ++ ++struct iterator_ctx ++{ ++ struct resource *resources; ++ grub_size_t nresources; ++}; ++ ++static int ++count_cards (grub_pci_device_t dev __attribute__ ((unused)), ++ grub_pci_id_t pciid __attribute__ ((unused)), ++ void *data) ++{ ++ int *cnt = data; ++ ++ (*cnt)++; ++ ++ return 0; ++} ++ ++static int ++find_resources (grub_pci_device_t dev, ++ grub_pci_id_t pciid __attribute__ ((unused)), ++ void *data) ++{ ++ struct iterator_ctx *ctx = data; ++ int bar; ++ ++ for (bar = 0; bar < 6; bar++) ++ { ++ grub_pci_address_t addr; ++ grub_uint32_t ones, zeros, mask; ++ struct resource *res; ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0 ++ + 4 * bar); ++ grub_pci_write (addr, 0xffffffff); ++ grub_pci_read (addr); ++ ones = grub_pci_read (addr); ++ grub_pci_write (addr, 0); ++ grub_pci_read (addr); ++ zeros = grub_pci_read (addr); ++ if (ones == zeros) ++ continue; ++ res = &ctx->resources[ctx->nresources++]; ++ if ((zeros & GRUB_PCI_ADDR_SPACE_MASK) == GRUB_PCI_ADDR_SPACE_IO) ++ mask = GRUB_PCI_ADDR_SPACE_MASK; ++ else ++ mask = (GRUB_PCI_ADDR_MEM_TYPE_MASK | GRUB_PCI_ADDR_SPACE_MASK | GRUB_PCI_ADDR_MEM_PREFETCH); ++ ++ res->type = ones & mask; ++ res->dev = dev; ++ res->bar = bar; ++ res->size = (~((zeros ^ ones)) | mask) + 1; ++ if ((zeros & (GRUB_PCI_ADDR_MEM_TYPE_MASK | GRUB_PCI_ADDR_SPACE_MASK)) ++ == (GRUB_PCI_ADDR_SPACE_MEMORY | GRUB_PCI_ADDR_MEM_TYPE_64)) ++ bar++; ++ } ++ return 0; ++} ++ ++static int ++enable_cards (grub_pci_device_t dev, ++ grub_pci_id_t pciid __attribute__ ((unused)), ++ void *data __attribute__ ((unused))) ++{ ++ grub_uint16_t cmd = 0; ++ grub_pci_address_t addr; ++ grub_uint32_t class; ++ int bar; ++ ++ for (bar = 0; bar < 6; bar++) ++ { ++ grub_uint32_t val; ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0 ++ + 4 * bar); ++ val = grub_pci_read (addr); ++ if (!val) ++ continue; ++ if ((val & GRUB_PCI_ADDR_SPACE_MASK) == GRUB_PCI_ADDR_SPACE_IO) ++ cmd |= GRUB_PCI_COMMAND_IO_ENABLED; ++ else ++ cmd |= GRUB_PCI_COMMAND_MEM_ENABLED; ++ } ++ ++ class = (grub_pci_read (addr) >> 16) & 0xffff; ++ ++ if (class == GRUB_PCI_CLASS_SUBCLASS_VGA) ++ cmd |= GRUB_PCI_COMMAND_IO_ENABLED ++ | GRUB_PCI_COMMAND_MEM_ENABLED; ++ ++ if (class == GRUB_PCI_CLASS_SUBCLASS_USB) ++ return 0; ++ ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); ++ grub_pci_write (addr, cmd); ++ ++ return 0; ++} ++ ++static void ++grub_pci_assign_addresses (void) ++{ ++ int ncards = 0; ++ struct iterator_ctx ctx; ++ ++ grub_pci_iterate (count_cards, &ncards); ++ ++ { ++ struct resource resources[ncards * 6]; ++ int done; ++ unsigned i; ++ ctx.nresources = 0; ++ ctx.resources = resources; ++ grub_uint32_t memptr = 0xf0000000; ++ grub_uint16_t ioptr = 0x1000; ++ ++ grub_pci_iterate (find_resources, &ctx); ++ /* FIXME: do we need a better sort here? */ ++ do ++ { ++ done = 0; ++ for (i = 0; i + 1 < ctx.nresources; i++) ++ if (resources[i].size < resources[i+1].size) ++ { ++ struct resource t; ++ t = resources[i]; ++ resources[i] = resources[i+1]; ++ resources[i+1] = t; ++ done = 1; ++ } ++ } ++ while (done); ++ ++ for (i = 0; i < ctx.nresources; i++) ++ { ++ grub_pci_address_t addr; ++ addr = grub_pci_make_address (resources[i].dev, ++ GRUB_PCI_REG_ADDRESS_REG0 ++ + 4 * resources[i].bar); ++ if ((resources[i].type & GRUB_PCI_ADDR_SPACE_MASK) ++ == GRUB_PCI_ADDR_SPACE_IO) ++ { ++ grub_pci_write (addr, ioptr | resources[i].type); ++ ioptr += resources[i].size; ++ } ++ else ++ { ++ grub_pci_write (addr, memptr | resources[i].type); ++ memptr += resources[i].size; ++ if ((resources[i].type & (GRUB_PCI_ADDR_MEM_TYPE_MASK ++ | GRUB_PCI_ADDR_SPACE_MASK)) ++ == (GRUB_PCI_ADDR_SPACE_MEMORY | GRUB_PCI_ADDR_MEM_TYPE_64)) ++ { ++ addr = grub_pci_make_address (resources[i].dev, ++ GRUB_PCI_REG_ADDRESS_REG0 ++ + 4 * resources[i].bar + 4); ++ grub_pci_write (addr, 0); ++ } ++ } ++ } ++ grub_pci_iterate (enable_cards, NULL); ++ } ++} ++ ++void ++grub_machine_init (void) ++{ ++ grub_modbase = grub_core_entry_addr + (_edata - _start); ++ ++ grub_pci_assign_addresses (); ++ ++ grub_qemu_init_cirrus (); ++ ++ grub_vga_text_init (); ++ ++ grub_machine_mmap_init (); ++ grub_machine_mmap_iterate (heap_init, NULL); ++ ++ ++ grub_tsc_init (); ++} ++ ++void ++grub_machine_get_bootlocation (char **device __attribute__ ((unused)), ++ char **path __attribute__ ((unused))) ++{ ++} ++ ++void ++grub_machine_fini (void) ++{ ++ grub_vga_text_fini (); ++ grub_stop_floppy (); ++} +diff --git a/grub-core/kern/mips/loongson/init.c b/grub-core/kern/mips/loongson/init.c +index 1abcf1a..52cbfd4 100644 +--- a/grub-core/kern/mips/loongson/init.c ++++ b/grub-core/kern/mips/loongson/init.c +@@ -55,7 +55,8 @@ set_card (grub_pci_device_t dev, grub_pci_id_t pciid, + void *data __attribute__ ((unused))) + { + grub_pci_address_t addr; +- /* FIXME: autoscan for BARs and devices. */ ++ /* We could use grub_pci_assign_addresses for this but we prefer to ++ have exactly same memory map as on pmon. */ + switch (pciid) + { + case GRUB_LOONGSON_OHCI_PCIID: +diff --git a/grub-core/kern/vga_init.c b/grub-core/kern/vga_init.c +index 1119bb3..301721d 100644 +--- a/grub-core/kern/vga_init.c ++++ b/grub-core/kern/vga_init.c +@@ -88,44 +88,9 @@ load_palette (void) + grub_vga_palette_write (i, colors[i].r, colors[i].g, colors[i].b); + } + +-#ifndef __mips__ +-/* Helper for grub_qemu_init_cirrus. */ +-static int +-find_card (grub_pci_device_t dev, grub_pci_id_t pciid __attribute__ ((unused)), +- void *data __attribute__ ((unused))) +-{ +- grub_pci_address_t addr; +- grub_uint32_t class; +- +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS); +- class = grub_pci_read (addr); +- +- if (((class >> 16) & 0xffff) != GRUB_PCI_CLASS_SUBCLASS_VGA) +- return 0; +- +- /* FIXME: chooose addresses dynamically. */ +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0); +- grub_pci_write (addr, 0xf0000000 | GRUB_PCI_ADDR_MEM_PREFETCH +- | GRUB_PCI_ADDR_SPACE_MEMORY | GRUB_PCI_ADDR_MEM_TYPE_32); +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG1); +- grub_pci_write (addr, 0xf2000000 +- | GRUB_PCI_ADDR_SPACE_MEMORY | GRUB_PCI_ADDR_MEM_TYPE_32); +- +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); +- grub_pci_write (addr, GRUB_PCI_COMMAND_MEM_ENABLED +- | GRUB_PCI_COMMAND_IO_ENABLED); +- +- return 1; +-} +-#endif +- + void + grub_qemu_init_cirrus (void) + { +-#ifndef __mips__ +- grub_pci_iterate (find_card, NULL); +-#endif +- + grub_outb (GRUB_VGA_IO_MISC_COLOR, + GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_MISC_WRITE); + +diff --git a/include/grub/pci.h b/include/grub/pci.h +index e163d47..70d9a05 100644 +--- a/include/grub/pci.h ++++ b/include/grub/pci.h +@@ -81,6 +81,7 @@ + #define GRUB_PCI_STATUS_DEVSEL_TIMING_SHIFT 9 + #define GRUB_PCI_STATUS_DEVSEL_TIMING_MASK 0x0600 + #define GRUB_PCI_CLASS_SUBCLASS_VGA 0x0300 ++#define GRUB_PCI_CLASS_SUBCLASS_USB 0x0c03 + + #ifndef ASM_FILE + +-- +1.8.2.1 + diff --git a/0394-grub-core-gfxmenu-circular_progress.c-Set-start_angl.patch b/0394-grub-core-gfxmenu-circular_progress.c-Set-start_angl.patch new file mode 100644 index 0000000..90536aa --- /dev/null +++ b/0394-grub-core-gfxmenu-circular_progress.c-Set-start_angl.patch @@ -0,0 +1,70 @@ +From 22970f8c19587ba78aa36c2370512bf393768d3f Mon Sep 17 00:00:00 2001 +From: Vladimir Testov +Date: Mon, 29 Apr 2013 15:32:56 +0200 +Subject: [PATCH 394/471] =?UTF-8?q?=09*=20grub-core/gfxmenu/circular=5Fpro?= + =?UTF-8?q?gress.c:=20Set=20start=5Fangle=20in=20degrees=20=09with=20synta?= + =?UTF-8?q?x=20"XXX=20deg"/"XXX=20=C2=B0".?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + ChangeLog | 5 +++++ + grub-core/gfxmenu/gui_circular_progress.c | 21 ++++++++++++++++++++- + 2 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index ece8586..0e6d38a 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-04-29 Vladimir Testov ++ ++ * grub-core/gfxmenu/circular_progress.c: Set start_angle in degrees ++ with syntax "XXX deg"/"XXX °". ++ + 2013-04-29 Vladimir Serbinenko + + Make PCI init in i386-qemu port more robust. +diff --git a/grub-core/gfxmenu/gui_circular_progress.c b/grub-core/gfxmenu/gui_circular_progress.c +index e06d40c..284a75a 100644 +--- a/grub-core/gfxmenu/gui_circular_progress.c ++++ b/grub-core/gfxmenu/gui_circular_progress.c +@@ -223,6 +223,25 @@ circprog_set_state (void *vself, int visible, int start, + self->end = end; + } + ++static int ++parse_angle (const char *value) ++{ ++ char *ptr; ++ int angle; ++ ++ angle = grub_strtol (value, &ptr, 10); ++ if (grub_errno) ++ return 0; ++ while (grub_isspace (*ptr)) ++ ptr++; ++ if (grub_strcmp (ptr, "deg") == 0 ++ /* Unicode symbol of degrees (a circle, U+b0). Put here in UTF-8 to ++ avoid potential problem with text file reesncoding */ ++ || grub_strcmp (ptr, "\xc2\xb0") == 0) ++ angle = (angle * 64 + 45) / 90; ++ return angle; ++} ++ + static grub_err_t + circprog_set_property (void *vself, const char *name, const char *value) + { +@@ -233,7 +252,7 @@ circprog_set_property (void *vself, const char *name, const char *value) + } + else if (grub_strcmp (name, "start_angle") == 0) + { +- self->start_angle = grub_strtol (value, 0, 10); ++ self->start_angle = parse_angle (value); + } + else if (grub_strcmp (name, "ticks_disappear") == 0) + { +-- +1.8.2.1 + diff --git a/0395-configure.ac-Use-mcmodel-large-on-x86_64-emu-as-well.patch b/0395-configure.ac-Use-mcmodel-large-on-x86_64-emu-as-well.patch new file mode 100644 index 0000000..be5a20f --- /dev/null +++ b/0395-configure.ac-Use-mcmodel-large-on-x86_64-emu-as-well.patch @@ -0,0 +1,50 @@ +From 0ac44e6aa6e42da168eac6595cdb439b343a8a22 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Mon, 29 Apr 2013 19:14:46 +0200 +Subject: [PATCH 395/471] * configure.ac: Use -mcmodel=large on + x86_64-emu as well. Reported by: qwertial. + +--- + ChangeLog | 5 +++++ + configure.ac | 4 +++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 0e6d38a..0485a01 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-04-29 Vladimir Serbinenko ++ ++ * configure.ac: Use -mcmodel=large on x86_64-emu as well. ++ Reported by: qwertial. ++ + 2013-04-29 Vladimir Testov + + * grub-core/gfxmenu/circular_progress.c: Set start_angle in degrees +diff --git a/configure.ac b/configure.ac +index 5ff7f25..00540e6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -605,7 +605,7 @@ if test "x$target_m64" = x1; then + TARGET_MODULE_FORMAT="elf64" + fi + +-if test "$target_cpu"-"$platform" = x86_64-efi; then ++if test "$target_cpu" = x86_64; then + # Use large model to support 4G memory + AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [ + SAVED_CFLAGS=$CFLAGS +@@ -619,7 +619,9 @@ if test "$target_cpu"-"$platform" = x86_64-efi; then + else + TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large" + fi ++fi + ++if test "$target_cpu"-"$platform" = x86_64-efi; then + # EFI writes to stack below %rsp, we must not use the red zone + AC_CACHE_CHECK([whether option -mno-red-zone works], grub_cv_cc_no_red_zone, [ + CFLAGS="$CFLAGS -m64 -mno-red-zone" +-- +1.8.2.1 + diff --git a/0396-grub-core-partmap-amiga.c-Fix-size-of-checksummed-bl.patch b/0396-grub-core-partmap-amiga.c-Fix-size-of-checksummed-bl.patch new file mode 100644 index 0000000..5fb12dd --- /dev/null +++ b/0396-grub-core-partmap-amiga.c-Fix-size-of-checksummed-bl.patch @@ -0,0 +1,116 @@ +From 6faaef8e1cb03785b2baea19e8ada1fd23382e68 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 30 Apr 2013 17:34:29 +0200 +Subject: [PATCH 396/471] * grub-core/partmap/amiga.c: Fix size of + checksummed block. + +--- + ChangeLog | 4 ++++ + grub-core/partmap/amiga.c | 25 +++++++++++++++++-------- + 2 files changed, 21 insertions(+), 8 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 0485a01..b0ae4ee 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-04-30 Vladimir Serbinenko ++ ++ * grub-core/partmap/amiga.c: Fix size of checksummed block. ++ + 2013-04-29 Vladimir Serbinenko + + * configure.ac: Use -mcmodel=large on x86_64-emu as well. +diff --git a/grub-core/partmap/amiga.c b/grub-core/partmap/amiga.c +index 213d707..97f7160 100644 +--- a/grub-core/partmap/amiga.c ++++ b/grub-core/partmap/amiga.c +@@ -25,6 +25,8 @@ + + GRUB_MOD_LICENSE ("GPLv3+"); + ++#define AMIGA_CHECKSUM_WORDS 128 ++ + struct grub_amiga_rdsk + { + /* "RDSK". */ +@@ -39,7 +41,7 @@ struct grub_amiga_rdsk + grub_uint32_t partitionlst; + grub_uint32_t fslst; + +- grub_uint32_t unused[128 - 9]; ++ grub_uint32_t unused[AMIGA_CHECKSUM_WORDS - 9]; + } __attribute__ ((packed)); + + struct grub_amiga_partition +@@ -47,7 +49,7 @@ struct grub_amiga_partition + /* "PART". */ + grub_uint8_t magic[4]; + #define GRUB_AMIGA_PART_MAGIC "PART" +- grub_int32_t size; ++ grub_uint32_t size; + grub_int32_t checksum; + grub_uint32_t scsihost; + grub_uint32_t next; +@@ -67,7 +69,7 @@ struct grub_amiga_partition + grub_uint32_t highcyl; + + grub_uint32_t firstcyl; +- grub_uint32_t unused[128 - 44]; ++ grub_uint32_t unused[AMIGA_CHECKSUM_WORDS - 44]; + } __attribute__ ((packed)); + + static struct grub_partition_map grub_amiga_partition_map; +@@ -75,13 +77,20 @@ static struct grub_partition_map grub_amiga_partition_map; + + + static grub_uint32_t +-amiga_partition_map_checksum (void *buf, grub_size_t sz) ++amiga_partition_map_checksum (void *buf) + { + grub_uint32_t *ptr = buf; + grub_uint32_t r = 0; +- sz /= sizeof (grub_uint32_t); ++ grub_size_t sz; ++ /* Fancy and quick way of checking sz >= 512 / 4 = 128. */ ++ if (ptr[1] & ~grub_cpu_to_be32_compile_time (AMIGA_CHECKSUM_WORDS - 1)) ++ sz = AMIGA_CHECKSUM_WORDS; ++ else ++ sz = grub_be_to_cpu32 (ptr[1]); ++ + for (; sz; sz--, ptr++) + r += grub_be_to_cpu32 (*ptr); ++ + return r; + } + +@@ -105,7 +114,7 @@ amiga_partition_map_iterate (grub_disk_t disk, + + if (grub_memcmp (rdsk.magic, GRUB_AMIGA_RDSK_MAGIC, + sizeof (rdsk.magic)) == 0 +- && amiga_partition_map_checksum (&rdsk, sizeof (rdsk)) == 0) ++ && amiga_partition_map_checksum (&rdsk) == 0) + { + /* Found the first PART block. */ + next = grub_be_to_cpu32 (rdsk.partitionlst); +@@ -128,7 +137,7 @@ amiga_partition_map_iterate (grub_disk_t disk, + + if (grub_memcmp (apart.magic, GRUB_AMIGA_PART_MAGIC, + sizeof (apart.magic)) != 0 +- || amiga_partition_map_checksum (&apart, sizeof (apart)) != 0) ++ || amiga_partition_map_checksum (&apart) != 0) + return grub_error (GRUB_ERR_BAD_PART_TABLE, + "invalid Amiga partition map"); + /* Calculate the first block and the size of the partition. */ +@@ -140,7 +149,7 @@ amiga_partition_map_iterate (grub_disk_t disk, + * grub_be_to_cpu32 (apart.heads) + * grub_be_to_cpu32 (apart.block_per_track)); + +- part.offset = (grub_off_t) next * 512; ++ part.offset = next; + part.number = partno; + part.index = 0; + part.partmap = &grub_amiga_partition_map; +-- +1.8.2.1 + diff --git a/0397-grub-core-kern-mips-loongson-init.c-Support-halt-for.patch b/0397-grub-core-kern-mips-loongson-init.c-Support-halt-for.patch new file mode 100644 index 0000000..c64dcfb --- /dev/null +++ b/0397-grub-core-kern-mips-loongson-init.c-Support-halt-for.patch @@ -0,0 +1,78 @@ +From 405b6d1cdc0d3fba50b0ba846c811a6ec1939ff3 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 30 Apr 2013 17:37:37 +0200 +Subject: [PATCH 397/471] * grub-core/kern/mips/loongson/init.c: Support + halt for loongson 2E. + +--- + ChangeLog | 4 ++++ + grub-core/kern/mips/loongson/init.c | 33 +++++++++++++++++++++++++++++++++ + 2 files changed, 37 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index b0ae4ee..6b5feff 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-30 Vladimir Serbinenko + ++ * grub-core/kern/mips/loongson/init.c: Support halt for loongson 2E. ++ ++2013-04-30 Vladimir Serbinenko ++ + * grub-core/partmap/amiga.c: Fix size of checksummed block. + + 2013-04-29 Vladimir Serbinenko +diff --git a/grub-core/kern/mips/loongson/init.c b/grub-core/kern/mips/loongson/init.c +index 52cbfd4..3ed1ded 100644 +--- a/grub-core/kern/mips/loongson/init.c ++++ b/grub-core/kern/mips/loongson/init.c +@@ -221,12 +221,45 @@ grub_machine_fini (void) + { + } + ++static int ++halt_via (grub_pci_device_t dev, grub_pci_id_t pciid, ++ void *data __attribute__ ((unused))) ++{ ++ grub_uint16_t pm; ++ grub_pci_address_t addr; ++ ++ if (pciid != 0x30571106) ++ return 0; ++ ++ addr = grub_pci_make_address (dev, 0x40); ++ pm = grub_pci_read (addr) & ~1; ++ ++ if (pm == 0) ++ { ++ grub_pci_write (addr, 0x1801); ++ pm = 0x1800; ++ } ++ ++ addr = grub_pci_make_address (dev, 0x80); ++ grub_pci_write_byte (addr, 0xff); ++ ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); ++ grub_pci_write_word (addr, grub_pci_read_word (addr) | GRUB_PCI_COMMAND_IO_ENABLED); ++ ++ /* FIXME: This one is derived from qemu. Check on real hardware. */ ++ grub_outw (0x2000, pm + 4 + GRUB_MACHINE_PCI_IO_BASE); ++ grub_millisleep (5000); ++ ++ return 0; ++} ++ + void + grub_halt (void) + { + switch (grub_arch_machine) + { + case GRUB_ARCH_MACHINE_FULOONG2E: ++ grub_pci_iterate (halt_via, NULL); + break; + case GRUB_ARCH_MACHINE_FULOONG2F: + { +-- +1.8.2.1 + diff --git a/0398-include-grub-arc-arc.h-Account-for-missing-other-per.patch b/0398-include-grub-arc-arc.h-Account-for-missing-other-per.patch new file mode 100644 index 0000000..e72772a --- /dev/null +++ b/0398-include-grub-arc-arc.h-Account-for-missing-other-per.patch @@ -0,0 +1,91 @@ +From f4b8e9c9249112964441d582283761ada51198a7 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 30 Apr 2013 17:40:31 +0200 +Subject: [PATCH 398/471] * include/grub/arc/arc.h: Account for missing + "other" peripheral on ARCS. All users updated. + +--- + ChangeLog | 5 +++++ + grub-core/kern/mips/arc/init.c | 6 +++++- + grub-core/term/arc/console.c | 10 +++++----- + include/grub/arc/arc.h | 2 ++ + 4 files changed, 17 insertions(+), 6 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 6b5feff..b924457 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-04-30 Vladimir Serbinenko + ++ * include/grub/arc/arc.h: Account for missing "other" peripheral on ++ ARCS. All users updated. ++ ++2013-04-30 Vladimir Serbinenko ++ + * grub-core/kern/mips/loongson/init.c: Support halt for loongson 2E. + + 2013-04-30 Vladimir Serbinenko +diff --git a/grub-core/kern/mips/arc/init.c b/grub-core/kern/mips/arc/init.c +index fdcc2bd..ddee814 100644 +--- a/grub-core/kern/mips/arc/init.c ++++ b/grub-core/kern/mips/arc/init.c +@@ -45,7 +45,11 @@ const char *type_names[] = { + "eisa", "tc", "scsi", "dti", "multi", "disk", "tape", "cdrom", "worm", + "serial", "net", "video", "par", "point", "key", "audio", "other", + "rdisk", "fdisk", "tape", "modem", "monitor", "print", "pointer", +- "keyboard", "term", "other", "line", "network", NULL ++ "keyboard", "term", ++#ifndef GRUB_CPU_WORDS_BIGENDIAN ++ "other", ++#endif ++ "line", "network", NULL + }; + + static int +diff --git a/grub-core/term/arc/console.c b/grub-core/term/arc/console.c +index ea4737c..df099f0 100644 +--- a/grub-core/term/arc/console.c ++++ b/grub-core/term/arc/console.c +@@ -61,7 +61,7 @@ grub_arc_is_device_serial (const char *name, int alt_names) + /* + Recognize: + serial(N) +- serial(N)other(M) ++ serial(N)line(M) + */ + for (i = 0; i < 2; i++) + { +@@ -84,11 +84,11 @@ grub_arc_is_device_serial (const char *name, int alt_names) + && grub_memcmp (ptr + 1 - (sizeof ("serial") - 1), + "serial", sizeof ("serial") - 1) == 0) + return 1; +- if (!(ptr + 1 >= name + sizeof ("other") - 1 +- && grub_memcmp (ptr + 1 - (sizeof ("other") - 1), +- "other", sizeof ("other") - 1) == 0)) ++ if (!(ptr + 1 >= name + sizeof ("line") - 1 ++ && grub_memcmp (ptr + 1 - (sizeof ("line") - 1), ++ "line", sizeof ("line") - 1) == 0)) + return 0; +- ptr -= sizeof ("other") - 1; ++ ptr -= sizeof ("line") - 1; + if (alt_names) + { + if (*ptr != '/') +diff --git a/include/grub/arc/arc.h b/include/grub/arc/arc.h +index c2578f4..7615a49 100644 +--- a/include/grub/arc/arc.h ++++ b/include/grub/arc/arc.h +@@ -139,7 +139,9 @@ enum + GRUB_ARC_COMPONENT_TYPE_POINTER, + GRUB_ARC_COMPONENT_TYPE_KBD, + GRUB_ARC_COMPONENT_TYPE_TERMINAL, ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + GRUB_ARC_COMPONENT_TYPE_OTHER_PERIPHERAL, ++#endif + GRUB_ARC_COMPONENT_TYPE_LINE, + GRUB_ARC_COMPONENT_TYPE_NET, + GRUB_ARC_COMPONENT_TYPE_MEMORY_UNIT, +-- +1.8.2.1 + diff --git a/0399-Add-few-more-tests.patch b/0399-Add-few-more-tests.patch new file mode 100644 index 0000000..8e877d1 --- /dev/null +++ b/0399-Add-few-more-tests.patch @@ -0,0 +1,544 @@ +From c89f2b7c9bfa0961058179bdaad17cbc05257387 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 30 Apr 2013 17:41:32 +0200 +Subject: [PATCH 399/471] Add few more tests. + +--- + ChangeLog | 4 ++ + Makefile.util.def | 12 ++++ + tests/ahci_test.in | 3 +- + tests/cdboot_test.in | 3 +- + tests/core_compress_test.in | 2 +- + tests/ehci_test.in | 3 +- + tests/fddboot_test.in | 5 +- + tests/grub_cmd_date.in | 17 +++-- + tests/grub_cmd_set_date.in | 35 ++++++++++ + tests/grub_cmd_sleep.in | 20 ++++++ + tests/hddboot_test.in | 3 +- + tests/netboot_test.in | 3 +- + tests/ohci_test.in | 3 +- + tests/partmap_test.in | 160 +++++++++++++++++++++++++++++++++++++++++++- + tests/pata_test.in | 3 +- + tests/uhci_test.in | 3 +- + tests/util/grub-shell.in | 6 +- + 17 files changed, 265 insertions(+), 20 deletions(-) + create mode 100644 tests/grub_cmd_set_date.in + create mode 100644 tests/grub_cmd_sleep.in + +diff --git a/ChangeLog b/ChangeLog +index b924457..642858c 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-04-30 Vladimir Serbinenko + ++ Add few more tests. ++ ++2013-04-30 Vladimir Serbinenko ++ + * include/grub/arc/arc.h: Account for missing "other" peripheral on + ARCS. All users updated. + +diff --git a/Makefile.util.def b/Makefile.util.def +index 3cfc592..fbd37eb 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -702,6 +702,18 @@ script = { + + script = { + testcase; ++ name = grub_cmd_set_date; ++ common = tests/grub_cmd_set_date.in; ++}; ++ ++script = { ++ testcase; ++ name = grub_cmd_sleep; ++ common = tests/grub_cmd_sleep.in; ++}; ++ ++script = { ++ testcase; + name = grub_script_expansion; + common = tests/grub_script_expansion.in; + }; +diff --git a/tests/ahci_test.in b/tests/ahci_test.in +index fa5314c..e7d26ac 100644 +--- a/tests/ahci_test.in ++++ b/tests/ahci_test.in +@@ -20,12 +20,13 @@ grubshell=@builddir@/grub-shell + . "@builddir@/grub-core/modinfo.sh" + + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # PLATFORM: Don't mess with real devices when OS is active + *-emu) + exit 0;; + # FIXME: qemu gets bonito DMA wrong + mipsel-loongson) + exit 0;; +- # no AHCI on ARC and qemu-mips platforms ++ # PLATFORM: no AHCI on ARC and qemu-mips platforms + mips*-arc | mips*-qemu_mips) + exit 0;; + # FIXME: No native drivers are available for those +diff --git a/tests/cdboot_test.in b/tests/cdboot_test.in +index 097964f..1cc9019 100644 +--- a/tests/cdboot_test.in ++++ b/tests/cdboot_test.in +@@ -20,9 +20,10 @@ grubshell=@builddir@/grub-shell + . "@builddir@/grub-core/modinfo.sh" + + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # PLATFORM: emu is different + *-emu) + exit 0;; +- # Flash targets ++ # PLATFORM: Flash targets + i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) + exit 0;; + # FIXME: currently grub-shell uses only -kernel for loongson +diff --git a/tests/core_compress_test.in b/tests/core_compress_test.in +index bd57f6f..f97c024 100644 +--- a/tests/core_compress_test.in ++++ b/tests/core_compress_test.in +@@ -19,8 +19,8 @@ grubshell=@builddir@/grub-shell + + . "@builddir@/grub-core/modinfo.sh" + +-# FIXME: Only mips currently supports configurable core compression + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # FIXME: Only mips currently supports configurable core compression + *-emu | i386-* | x86_64-* | sparc64-* | ia64-*) + exit 0 + ;; +diff --git a/tests/ehci_test.in b/tests/ehci_test.in +index d9999f8..5cfe726 100644 +--- a/tests/ehci_test.in ++++ b/tests/ehci_test.in +@@ -20,12 +20,13 @@ grubshell=@builddir@/grub-shell + . "@builddir@/grub-core/modinfo.sh" + + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # PLATFORM: Don't mess with real devices when OS is active + *-emu) + exit 0;; + # FIXME: qemu gets bonito DMA wrong + mipsel-loongson) + exit 0;; +- # no USB on ARC and qemu-mips platforms ++ # PLATFORM: no USB on ARC and qemu-mips platforms + mips*-arc | mips*-qemu_mips) + exit 0;; + # FIXME: No native drivers are available for those +diff --git a/tests/fddboot_test.in b/tests/fddboot_test.in +index 0866fdc..a05eb3e 100644 +--- a/tests/fddboot_test.in ++++ b/tests/fddboot_test.in +@@ -20,9 +20,10 @@ grubshell=@builddir@/grub-shell + . "@builddir@/grub-core/modinfo.sh" + + case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # PLATFORM: emu is different + *-emu) + exit 0;; +- # Flash targets ++ # PLATFORM: Flash targets + i386-qemu | i386-coreboot | mips-qemu_mips | mipsel-qemu_mips) + exit 0;; + # FIXME: currently grub-shell uses only -kernel for loongson +@@ -40,7 +41,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + # FIXME: QEMU doesn't emulate SCSI floppies + mipsel-arc | mips-arc) + exit 0;; +- # powerpc doesn't boot from floppy except OldWorld Macs which we don't support anyway ++ # PLATFORM: powerpc doesn't boot from floppy except OldWorld Macs which we don't support anyway + powerpc-ieee1275) + exit 0;; + esac +diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in +index 0417c67..a459353 100644 +--- a/tests/grub_cmd_date.in ++++ b/tests/grub_cmd_date.in +@@ -13,8 +13,17 @@ dt=`echo date | @builddir@/grub-shell` + dtg="$(date -u -d "$dt" +%s)" + ndt="$(date -u +%s)" + +-if [ $pdt -le $dtg ] && [ $dtg -le $ndt ]; then +- exit 0; ++if [ $pdt -gt $dtg ] || [ $dtg -gt $ndt ]; then ++ echo "Date not in range: $pdt <= $dtg <= $ndt" ++ exit 1 ++fi ++ ++pdt="$(date -u +%s)" ++dt=`echo 'insmod datehook; echo $YEAR-$MONTH-$DAY $HOUR:$MINUTE:$SECOND' | @builddir@/grub-shell` ++dtg="$(date -u -d "$dt" +%s)" ++ndt="$(date -u +%s)" ++ ++if [ $pdt -gt $dtg ] || [ $dtg -gt $ndt ]; then ++ echo "Date not in range: $pdt <= $dtg <= $ndt" ++ exit 1 + fi +-echo "Date not in range: $pdt <= $dtg <= $ndt" +-exit 1 +diff --git a/tests/grub_cmd_set_date.in b/tests/grub_cmd_set_date.in +new file mode 100644 +index 0000000..c594ae3 +--- /dev/null ++++ b/tests/grub_cmd_set_date.in +@@ -0,0 +1,35 @@ ++#! /bin/bash ++set -e ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in ++ # FIXME: OpenBIOS on sparc64 doesn't implement RTC ++ sparc64-ieee1275) ++ exit 0;; ++ # PLATFORM: ARC doesn't provide any way to set time ++ *-arc) ++ exit 0;; ++ # PLATFORM: EMU doesn't provide any way to set time ++ # Even if it did we'd need some kind of sandbox to avoid ++ # modifying real system time. ++ *-emu) ++ exit 0;; ++esac ++ ++out=$(cat < +Date: Thu, 2 May 2013 14:34:13 +0200 +Subject: [PATCH 400/471] * grub-core/commands/videotest.c: Reduce + flickering and draw 6 squares instead of 2 to have full RGB/CMY test + pattern. + +--- + ChangeLog | 5 +++++ + grub-core/commands/videotest.c | 43 ++++++++++++++++++++++++++---------------- + 2 files changed, 32 insertions(+), 16 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 642858c..b202abe 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-05-02 Vladimir Serbinenko ++ ++ * grub-core/commands/videotest.c: Reduce flickering and draw 6 squares ++ instead of 2 to have full RGB/CMY test pattern. ++ + 2013-04-30 Vladimir Serbinenko + + Add few more tests. +diff --git a/grub-core/commands/videotest.c b/grub-core/commands/videotest.c +index 2256237..b6c181b 100644 +--- a/grub-core/commands/videotest.c ++++ b/grub-core/commands/videotest.c +@@ -49,7 +49,6 @@ grub_cmd_videotest (grub_command_t cmd __attribute__ ((unused)), + if (grub_strcmp (cmd->name, "vbetest") == 0) + grub_dl_load ("vbe"); + #endif +- + mode = grub_env_get ("gfxmode"); + if (argc) + mode = args[0]; +@@ -155,26 +154,38 @@ grub_cmd_videotest (grub_command_t cmd __attribute__ ((unused)), + + grub_video_set_active_render_target (GRUB_VIDEO_RENDER_TARGET_DISPLAY); + +- for (i = 0; i < 2; i++) ++ for (i = 0; i < 5; i++) + { +- color = grub_video_map_rgb (0, 0, 0); +- grub_video_fill_rect (color, 0, 0, width, height); + +- color = grub_video_map_rgb (255, 0, 0); +- grub_video_fill_rect (color, 0, 0, 100, 100); ++ if (i == 0 || i == 1) ++ { ++ color = grub_video_map_rgb (0, 0, 0); ++ grub_video_fill_rect (color, 0, 0, width, height); + +- color = grub_video_map_rgb (0, 255, 255); +- grub_video_fill_rect (color, 100, 100, 100, 100); ++ color = grub_video_map_rgb (255, 0, 0); ++ grub_video_fill_rect (color, 0, 0, 100, 100); + +- grub_video_set_viewport (x + 150, y + 150, +- width - 150 * 2, height - 150 * 2); +- color = grub_video_map_rgb (77, 33, 77); +- grub_video_fill_rect (color, 0, 0, width, height); +- grub_video_swap_buffers (); +- } ++ color = grub_video_map_rgb (0, 255, 0); ++ grub_video_fill_rect (color, 100, 0, 100, 100); ++ ++ color = grub_video_map_rgb (0, 0, 255); ++ grub_video_fill_rect (color, 200, 0, 100, 100); ++ ++ color = grub_video_map_rgb (0, 255, 255); ++ grub_video_fill_rect (color, 0, 100, 100, 100); ++ ++ color = grub_video_map_rgb (255, 0, 255); ++ grub_video_fill_rect (color, 100, 100, 100, 100); ++ ++ color = grub_video_map_rgb (255, 255, 0); ++ grub_video_fill_rect (color, 200, 100, 100, 100); ++ ++ grub_video_set_viewport (x + 150, y + 150, ++ width - 150 * 2, height - 150 * 2); ++ color = grub_video_map_rgb (77, 33, 77); ++ grub_video_fill_rect (color, 0, 0, width, height); ++ } + +- for (i = 0; i < 5; i++) +- { + color = grub_video_map_rgb (i, 33, 77); + grub_video_fill_rect (color, 0, 0, width, height); + grub_video_blit_render_target (text_layer, GRUB_VIDEO_BLIT_BLEND, 0, 0, +-- +1.8.2.1 + diff --git a/0401-First-automated-video-test-running-videotest-and-com.patch b/0401-First-automated-video-test-running-videotest-and-com.patch new file mode 100644 index 0000000..c8c8930 --- /dev/null +++ b/0401-First-automated-video-test-running-videotest-and-com.patch @@ -0,0 +1,1507 @@ +From 4b187937acb52b5ee5da7c687ded09e7b2c1825a Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 2 May 2013 14:39:03 +0200 +Subject: [PATCH 401/471] First automated video test (running videotest + and comparing results) + +--- + ChangeLog | 4 + + Makefile.util.def | 7 + + grub-core/Makefile.core.def | 8 + + grub-core/tests/checksums.c | 27 +++ + grub-core/tests/fake_input.c | 67 ++++++ + grub-core/tests/lib/functional_test.c | 29 ++- + grub-core/tests/video_checksum.c | 435 ++++++++++++++++++++++++++++++++++ + grub-core/tests/videotest_checksum.c | 286 ++++++++++++++++++++++ + grub-core/video/capture.c | 128 ++++++++++ + grub-core/video/video.c | 13 +- + include/grub/emu/export.h | 3 +- + include/grub/test.h | 9 + + include/grub/video.h | 120 +++++++++- + tests/grub_func_test.in | 12 + + tests/util/grub-shell.in | 2 + + util/grub-render-label.c | 97 ++------ + 16 files changed, 1150 insertions(+), 97 deletions(-) + create mode 100644 grub-core/tests/checksums.c + create mode 100644 grub-core/tests/fake_input.c + create mode 100644 grub-core/tests/video_checksum.c + create mode 100644 grub-core/tests/videotest_checksum.c + create mode 100644 grub-core/video/capture.c + create mode 100644 tests/grub_func_test.in + +diff --git a/ChangeLog b/ChangeLog +index b202abe..37595a9 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-02 Vladimir Serbinenko + ++ First automated video test (running videotest and comparing results) ++ ++2013-05-02 Vladimir Serbinenko ++ + * grub-core/commands/videotest.c: Reduce flickering and draw 6 squares + instead of 2 to have full RGB/CMY test pattern. + +diff --git a/Makefile.util.def b/Makefile.util.def +index fbd37eb..a357341 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -67,6 +67,7 @@ library = { + common = grub-core/video/fb/fbfill.c; + common = grub-core/video/fb/video_fb.c; + common = grub-core/video/video.c; ++ common = grub-core/video/capture.c; + common = grub-core/video/colors.c; + common = grub-core/unidata.c; + common = grub-core/io/bufio.c; +@@ -814,6 +815,12 @@ script = { + common = tests/grub_script_strcmp.in; + }; + ++script = { ++ testcase; ++ name = grub_func_test; ++ common = tests/grub_func_test.in; ++}; ++ + program = { + testcase; + name = example_unit_test; +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 7e19acb..2fa0ea7 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1731,6 +1731,9 @@ module = { + name = functional_test; + common = tests/lib/functional_test.c; + common = tests/lib/test.c; ++ common = tests/video_checksum.c; ++ common = tests/fake_input.c; ++ common = video/capture.c; + }; + + module = { +@@ -1739,6 +1742,11 @@ module = { + }; + + module = { ++ name = videotest_checksum; ++ common = tests/videotest_checksum.c; ++}; ++ ++module = { + name = bitmap; + common = video/bitmap.c; + enable = videomodules; +diff --git a/grub-core/tests/checksums.c b/grub-core/tests/checksums.c +new file mode 100644 +index 0000000..93d100f +--- /dev/null ++++ b/grub-core/tests/checksums.c +@@ -0,0 +1,27 @@ ++ { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, }, 5 }, ++ { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, }, 5 }, ++ { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgb555 */, (grub_uint32_t []) { 0x2c97569c, 0x2c97569c, 0x2c97569c, 0x2c97569c, 0x2c97569c, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgb555 */, (grub_uint32_t []) { 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgb555 */, (grub_uint32_t []) { 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgb565 */, (grub_uint32_t []) { 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgb565 */, (grub_uint32_t []) { 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgb565 */, (grub_uint32_t []) { 0x66cee14c, 0x66cee14c, 0x66cee14c, 0x66cee14c, 0x66cee14c, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgb888 */, (grub_uint32_t []) { 0x61db45b7, 0x1d867efe, 0x99613325, 0xe53c086c, 0x9543de62, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgb888 */, (grub_uint32_t []) { 0xa46eb37f, 0xd2a59656, 0x49f8f92d, 0x3f33dc04, 0x7aae512a, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgb888 */, (grub_uint32_t []) { 0xb864a496, 0x6c22313b, 0x1505f93d, 0xc1436c90, 0xe74a6931, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgb888 */, (grub_uint32_t []) { 0x2b154617, 0x692e98df, 0xaf62fb87, 0xed59254f, 0x26164bc6, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgb888 */, (grub_uint32_t []) { 0x3b0fbc56, 0xd9d57c0e, 0xfb564a17, 0x198c8a4f, 0xbe502625, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgb888 */, (grub_uint32_t []) { 0x6e6c9b36, 0x4ae9f137, 0x27664f34, 0x3e32535, 0xfc793332, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgr555 */, (grub_uint32_t []) { 0x9056f776, 0x9056f776, 0x9056f776, 0x9056f776, 0x9056f776, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgr555 */, (grub_uint32_t []) { 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgr555 */, (grub_uint32_t []) { 0xb04615f3, 0xb04615f3, 0xb04615f3, 0xb04615f3, 0xb04615f3, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgr565 */, (grub_uint32_t []) { 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgr565 */, (grub_uint32_t []) { 0x84ac1329, 0x84ac1329, 0x84ac1329, 0x84ac1329, 0x84ac1329, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgr565 */, (grub_uint32_t []) { 0x145ad698, 0x145ad698, 0x145ad698, 0x145ad698, 0x145ad698, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgr888 */, (grub_uint32_t []) { 0x4af6b480, 0x923db79c, 0xfe8cc449, 0x2647c755, 0x27ee23e3, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgr888 */, (grub_uint32_t []) { 0x121d5e29, 0xf66c0aed, 0xdf138150, 0x3b62d594, 0x8dec962a, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgr888 */, (grub_uint32_t []) { 0xae86a12c, 0x4dabbe89, 0x6d30e897, 0x8e1df732, 0x2c0644ab, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgr888 */, (grub_uint32_t []) { 0x2605d280, 0xc06e3172, 0xef3e6395, 0x9558067, 0xb19ec65b, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgr888 */, (grub_uint32_t []) { 0x9404ef3b, 0xa4fdf18, 0xad7ef98c, 0x3335c9af, 0xe6f0c255, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgr888 */, (grub_uint32_t []) { 0xa008b770, 0xb98eb0d8, 0x9304b820, 0x8a82bf88, 0xc610a9d0, }, 5 }, +diff --git a/grub-core/tests/fake_input.c b/grub-core/tests/fake_input.c +new file mode 100644 +index 0000000..b514c2a +--- /dev/null ++++ b/grub-core/tests/fake_input.c +@@ -0,0 +1,67 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static int *seq; ++static int seqptr, nseq; ++static struct grub_term_input *saved; ++ ++static int ++fake_getkey (struct grub_term_input *term __attribute__ ((unused))) ++{ ++ if (seq && seqptr < nseq) ++ return seq[seqptr++]; ++ return -1; ++} ++ ++static struct grub_term_input fake_input_term = ++ { ++ .name = "fake", ++ .getkey = fake_getkey ++ }; ++ ++void ++grub_terminal_input_fake_sequence (int *seq_in, int nseq_in) ++{ ++ if (!saved) ++ saved = grub_term_inputs; ++ if (seq) ++ grub_free (seq); ++ seq = grub_malloc (nseq_in * sizeof (seq[0])); ++ if (seq) ++ { ++ grub_term_inputs = &fake_input_term; ++ grub_memcpy (seq, seq_in, nseq_in * sizeof (seq[0])); ++ } ++ nseq = nseq_in; ++} ++ ++void ++grub_terminal_input_fake_sequence_end (void) ++{ ++ grub_term_inputs = saved; ++ grub_free (seq); ++ seq = 0; ++ nseq = 0; ++} +diff --git a/grub-core/tests/lib/functional_test.c b/grub-core/tests/lib/functional_test.c +index fd199bd..da4d5f8 100644 +--- a/grub-core/tests/lib/functional_test.c ++++ b/grub-core/tests/lib/functional_test.c +@@ -30,9 +30,34 @@ grub_functional_test (grub_extcmd_context_t ctxt __attribute__ ((unused)), + char **args __attribute__ ((unused))) + { + grub_test_t test; ++ int ok = 1; + + FOR_LIST_ELEMENTS (test, grub_test_list) +- grub_test_run (test); ++ ok = ok && !grub_test_run (test); ++ if (ok) ++ grub_printf ("ALL TESTS PASSED\n"); ++ else ++ grub_printf ("TEST FAILURE\n"); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_functional_all_tests (grub_extcmd_context_t ctxt __attribute__ ((unused)), ++ int argc __attribute__ ((unused)), ++ char **args __attribute__ ((unused))) ++{ ++ grub_test_t test; ++ int ok = 1; ++ ++ grub_dl_load ("exfctest"); ++ grub_dl_load ("videotest_checksum"); ++ ++ FOR_LIST_ELEMENTS (test, grub_test_list) ++ ok = ok && !grub_test_run (test); ++ if (ok) ++ grub_printf ("ALL TESTS PASSED\n"); ++ else ++ grub_printf ("TEST FAILURE\n"); + return GRUB_ERR_NONE; + } + +@@ -41,6 +66,8 @@ static grub_extcmd_t cmd; + GRUB_MOD_INIT (functional_test) + { + cmd = grub_register_extcmd ("functional_test", grub_functional_test, 0, 0, ++ "Run all loaded functional tests.", 0); ++ cmd = grub_register_extcmd ("all_functional_test", grub_functional_all_tests, 0, 0, + "Run all functional tests.", 0); + } + +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +new file mode 100644 +index 0000000..b2aab79 +--- /dev/null ++++ b/grub-core/tests/video_checksum.c +@@ -0,0 +1,435 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++/* All tests need to include test.h for GRUB testing framework. */ ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static int ctr; ++static int nchk; ++static char *basename; ++static const grub_uint32_t *checksums; ++static struct grub_video_mode_info capt_mode_info; ++ ++#ifdef GRUB_MACHINE_EMU ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct bmp_header ++{ ++ grub_uint8_t magic[2]; ++ grub_uint32_t filesize; ++ grub_uint32_t reserved; ++ grub_uint32_t bmp_off; ++ grub_uint32_t head_size; ++ grub_uint16_t width; ++ grub_uint16_t height; ++ grub_uint16_t planes; ++ grub_uint16_t bpp; ++} __attribute__ ((packed)); ++ ++static void ++grub_video_capture_write_bmp (const char *fname, ++ void *ptr, ++ const struct grub_video_mode_info *mode_info) ++{ ++ int fd = open (fname, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); ++ struct bmp_header head; ++ ++ if (fd < 0) ++ { ++ grub_printf (_("cannot open `%s': %s"), ++ fname, strerror (errno)); ++ } ++ ++ grub_memset (&head, 0, sizeof (head)); ++ ++ head.magic[0] = 'B'; ++ head.magic[1] = 'M'; ++ ++ if (mode_info->mode_type & GRUB_VIDEO_MODE_TYPE_RGB) ++ { ++ head.filesize = grub_cpu_to_le32 (sizeof (head) + mode_info->width * mode_info->height * 3); ++ head.bmp_off = grub_cpu_to_le32 (sizeof (head)); ++ head.bpp = grub_cpu_to_le16_compile_time (24); ++ } ++ else ++ { ++ head.filesize = grub_cpu_to_le32 (sizeof (head) + 3 * 256 + mode_info->width * mode_info->height); ++ head.bmp_off = grub_cpu_to_le32 (sizeof (head) + 3 * 256); ++ head.bpp = grub_cpu_to_le16_compile_time (8); ++ } ++ head.head_size = grub_cpu_to_le32 (sizeof (head) - 14); ++ head.width = grub_cpu_to_le16 (mode_info->width); ++ head.height = grub_cpu_to_le16 (mode_info->height); ++ head.planes = grub_cpu_to_le16_compile_time (1); ++ ++ head.width = grub_cpu_to_le16 (mode_info->width); ++ head.height = grub_cpu_to_le16 (mode_info->height); ++ ++ write (fd, &head, sizeof (head)); ++ ++ if (!(mode_info->mode_type & GRUB_VIDEO_MODE_TYPE_RGB)) ++ { ++ struct grub_video_palette_data palette_data[256]; ++ int i; ++ int palette_len = mode_info->number_of_colors; ++ grub_memset (palette_data, 0, sizeof (palette_data)); ++ if (palette_len > 256) ++ palette_len = 256; ++ grub_video_get_palette (0, palette_len, palette_data); ++ for (i = 0; i < 256; i++) ++ { ++ grub_uint8_t r, g, b; ++ r = palette_data[i].r; ++ g = palette_data[i].g; ++ b = palette_data[i].b; ++ ++ write (fd, &b, 1); ++ write (fd, &g, 1); ++ write (fd, &r, 1); ++ } ++ } ++ ++ /* This does essentialy the same as some fbblit functions yet using ++ them would mean testing them against themselves so keep this ++ implemetation separate. */ ++ switch (mode_info->bytes_per_pixel) ++ { ++ case 4: ++ { ++ grub_uint8_t *buffer = xmalloc (mode_info->width * 3); ++ grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); ++ grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); ++ grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); ++ int rshift = mode_info->red_field_pos; ++ int gshift = mode_info->green_field_pos; ++ int bshift = mode_info->blue_field_pos; ++ int mulrshift = (8 - mode_info->red_mask_size); ++ int mulgshift = (8 - mode_info->green_mask_size); ++ int mulbshift = (8 - mode_info->blue_mask_size); ++ int y; ++ ++ for (y = mode_info->height - 1; y >= 0; y--) ++ { ++ grub_uint32_t *iptr = (grub_uint32_t *) ((grub_uint8_t *) ptr + mode_info->pitch * y); ++ int x; ++ grub_uint8_t *optr = buffer; ++ for (x = 0; x < (int) mode_info->width; x++) ++ { ++ grub_uint32_t val = *iptr++; ++ *optr++ = ((val >> bshift) & bmask) << mulbshift; ++ *optr++ = ((val >> gshift) & gmask) << mulgshift; ++ *optr++ = ((val >> rshift) & rmask) << mulrshift; ++ } ++ write (fd, buffer, mode_info->width * 3); ++ } ++ grub_free (buffer); ++ break; ++ } ++ case 3: ++ { ++ grub_uint8_t *buffer = xmalloc (mode_info->width * 3); ++ grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); ++ grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); ++ grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); ++ int rshift = mode_info->red_field_pos; ++ int gshift = mode_info->green_field_pos; ++ int bshift = mode_info->blue_field_pos; ++ int mulrshift = (8 - mode_info->red_mask_size); ++ int mulgshift = (8 - mode_info->green_mask_size); ++ int mulbshift = (8 - mode_info->blue_mask_size); ++ int y; ++ ++ for (y = mode_info->height - 1; y >= 0; y--) ++ { ++ grub_uint8_t *iptr = ((grub_uint8_t *) ptr + mode_info->pitch * y); ++ int x; ++ grub_uint8_t *optr = buffer; ++ for (x = 0; x < (int) mode_info->width; x++) ++ { ++ grub_uint32_t val = 0; ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ val |= *iptr++ << 16; ++ val |= *iptr++ << 8; ++ val |= *iptr++; ++#else ++ val |= *iptr++; ++ val |= *iptr++ << 8; ++ val |= *iptr++ << 16; ++#endif ++ *optr++ = ((val >> bshift) & bmask) << mulbshift; ++ *optr++ = ((val >> gshift) & gmask) << mulgshift; ++ *optr++ = ((val >> rshift) & rmask) << mulrshift; ++ } ++ write (fd, buffer, mode_info->width * 3); ++ } ++ grub_free (buffer); ++ break; ++ } ++ case 2: ++ { ++ grub_uint8_t *buffer = xmalloc (mode_info->width * 3); ++ grub_uint16_t rmask = ((1 << mode_info->red_mask_size) - 1); ++ grub_uint16_t gmask = ((1 << mode_info->green_mask_size) - 1); ++ grub_uint16_t bmask = ((1 << mode_info->blue_mask_size) - 1); ++ int rshift = mode_info->red_field_pos; ++ int gshift = mode_info->green_field_pos; ++ int bshift = mode_info->blue_field_pos; ++ int mulrshift = (8 - mode_info->red_mask_size); ++ int mulgshift = (8 - mode_info->green_mask_size); ++ int mulbshift = (8 - mode_info->blue_mask_size); ++ int y; ++ ++ for (y = mode_info->height - 1; y >= 0; y--) ++ { ++ grub_uint16_t *iptr = (grub_uint16_t *) ((grub_uint8_t *) ptr + mode_info->pitch * y); ++ int x; ++ grub_uint8_t *optr = buffer; ++ for (x = 0; x < (int) mode_info->width; x++) ++ { ++ grub_uint16_t val = *iptr++; ++ *optr++ = ((val >> bshift) & bmask) << mulbshift; ++ *optr++ = ((val >> gshift) & gmask) << mulgshift; ++ *optr++ = ((val >> rshift) & rmask) << mulrshift; ++ } ++ write (fd, buffer, mode_info->width * 3); ++ } ++ grub_free (buffer); ++ break; ++ } ++ case 1: ++ { ++ int y; ++ ++ for (y = mode_info->height - 1; y >= 0; y--) ++ write (fd, ((grub_uint8_t *) ptr + mode_info->pitch * y), mode_info->width); ++ break; ++ } ++ } ++ close (fd); ++} ++ ++#endif ++ ++static const char * ++get_modename (void) ++{ ++ static char buf[40]; ++ if (capt_mode_info.mode_type & GRUB_VIDEO_MODE_TYPE_INDEX_COLOR) ++ { ++ grub_snprintf (buf, sizeof (buf), "i%d", capt_mode_info.number_of_colors); ++ return buf; ++ } ++ if (capt_mode_info.red_field_pos == 0) ++ { ++ grub_snprintf (buf, sizeof (buf), "bgr%d%d%d", capt_mode_info.blue_mask_size, ++ capt_mode_info.green_mask_size, ++ capt_mode_info.red_mask_size); ++ return buf; ++ } ++ grub_snprintf (buf, sizeof (buf), "rgb%d%d%d", capt_mode_info.red_mask_size, ++ capt_mode_info.green_mask_size, ++ capt_mode_info.blue_mask_size); ++ return buf; ++} ++ ++//#define GENERATE_MODE 1 ++ ++#if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) ++int genfd = -1; ++#endif ++ ++static void ++checksum (void) ++{ ++ void *ptr; ++ grub_uint32_t crc; ++ ++ ptr = grub_video_capture_get_framebuffer (); ++ ++ crc = grub_getcrc32c (0, ptr, capt_mode_info.pitch * capt_mode_info.height); ++ if (!checksums || ctr >= nchk) ++ { ++ grub_test_assert (0, "Unexpected checksum %s_%dx%dx%s:%d: 0x%x", ++ basename, ++ capt_mode_info.width, ++ capt_mode_info.height, get_modename (), ctr, crc); ++ } ++ else if (crc != checksums[ctr]) ++ { ++ grub_test_assert (0, "Checksum %s_%dx%dx%s:%d failed: 0x%x vs 0x%x", ++ basename, ++ capt_mode_info.width, ++ capt_mode_info.height, get_modename (), ++ ctr, crc, checksums[ctr]); ++ } ++ else ++ { ++#if !(defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU)) ++ ctr++; ++ return; ++#endif ++ } ++#ifdef GRUB_MACHINE_EMU ++ char *name = grub_xasprintf ("%s_%dx%dx%s_%d.bmp", basename, ++ capt_mode_info.width, ++ capt_mode_info.height, get_modename (), ++ ctr); ++ grub_video_capture_write_bmp (name, ptr, &capt_mode_info); ++#endif ++ ++#if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) ++ if (genfd >= 0) ++ { ++ char buf[20]; ++ grub_snprintf (buf, sizeof (buf), "0x%x, ", crc); ++ write (genfd, buf, grub_strlen (buf)); ++ } ++#endif ++ ++ ctr++; ++} ++ ++struct checksum_desc ++{ ++ const char *name; ++ unsigned width; ++ unsigned height; ++ unsigned mode_type; ++ unsigned number_of_colors; ++ unsigned bpp; ++ unsigned bytes_per_pixel; ++ unsigned red_field_pos; ++ unsigned red_mask_size; ++ unsigned green_field_pos; ++ unsigned green_mask_size; ++ unsigned blue_field_pos; ++ unsigned blue_mask_size; ++ unsigned reserved_field_pos; ++ unsigned reserved_mask_size; ++ const grub_uint32_t *checksums; ++ int nchk; ++}; ++ ++const struct checksum_desc checksum_table[] = { ++#include "checksums.c" ++}; ++ ++void ++grub_video_checksum (const char *basename_in) ++{ ++ unsigned i; ++ ++ grub_video_get_info (&capt_mode_info); ++ ++#if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) ++ if (genfd < 0) ++ genfd = open ("checksums.c", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); ++ if (genfd >= 0) ++ { ++ char buf[400]; ++ ++ grub_snprintf (buf, sizeof (buf), "\", %d, %d, 0x%x, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d /* %dx%dx%s */, (grub_uint32_t []) { ", ++ capt_mode_info.width, ++ capt_mode_info.height, ++ capt_mode_info.mode_type, ++ capt_mode_info.number_of_colors, ++ capt_mode_info.bpp, ++ capt_mode_info.bytes_per_pixel, ++ capt_mode_info.red_field_pos, ++ capt_mode_info.red_mask_size, ++ capt_mode_info.green_field_pos, ++ capt_mode_info.green_mask_size, ++ capt_mode_info.blue_field_pos, ++ capt_mode_info.blue_mask_size, ++ capt_mode_info.reserved_field_pos, ++ capt_mode_info.reserved_mask_size, ++ capt_mode_info.width, ++ capt_mode_info.height, get_modename ()); ++ ++ write (genfd, " { \"", 5); ++ write (genfd, basename_in, grub_strlen (basename_in)); ++ write (genfd, buf, grub_strlen (buf)); ++ } ++#endif ++ ++ basename = grub_strdup (basename_in); ++ nchk = 0; ++ checksums = 0; ++ /* FIXME: optimize this. */ ++ for (i = 0; i < ARRAY_SIZE (checksum_table); i++) ++ if (grub_strcmp (checksum_table[i].name, basename_in) == 0 ++ && capt_mode_info.width == checksum_table[i].width ++ && capt_mode_info.height == checksum_table[i].height ++ && capt_mode_info.mode_type == checksum_table[i].mode_type ++ && capt_mode_info.number_of_colors == checksum_table[i].number_of_colors ++ && capt_mode_info.bpp == checksum_table[i].bpp ++ && capt_mode_info.bytes_per_pixel == checksum_table[i].bytes_per_pixel ++ && capt_mode_info.red_field_pos == checksum_table[i].red_field_pos ++ && capt_mode_info.red_mask_size == checksum_table[i].red_mask_size ++ && capt_mode_info.green_field_pos == checksum_table[i].green_field_pos ++ && capt_mode_info.green_mask_size == checksum_table[i].green_mask_size ++ && capt_mode_info.blue_field_pos == checksum_table[i].blue_field_pos ++ && capt_mode_info.blue_mask_size == checksum_table[i].blue_mask_size ++ && capt_mode_info.reserved_field_pos == checksum_table[i].reserved_field_pos ++ && capt_mode_info.reserved_mask_size == checksum_table[i].reserved_mask_size) ++ { ++ nchk = checksum_table[i].nchk; ++ checksums = checksum_table[i].checksums; ++ break; ++ } ++ ++ ctr = 0; ++ grub_video_capture_refresh_cb = checksum; ++} ++ ++void ++grub_video_checksum_end (void) ++{ ++#if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) ++ if (genfd >= 0) ++ { ++ char buf[40]; ++ grub_snprintf (buf, sizeof (buf), "}, %x },\n", ctr); ++ write (genfd, buf, grub_strlen (buf)); ++ } ++#endif ++ grub_test_assert (ctr == nchk, "Not enough checksums %s_%dx%dx%s: %d vs %d", ++ basename, ++ capt_mode_info.width, ++ capt_mode_info.height, get_modename (), ++ ctr, nchk); ++ grub_free (basename); ++ basename = 0; ++ nchk = 0; ++ checksums = 0; ++ ctr = 0; ++ grub_video_capture_refresh_cb = 0; ++} +diff --git a/grub-core/tests/videotest_checksum.c b/grub-core/tests/videotest_checksum.c +new file mode 100644 +index 0000000..e57dae7 +--- /dev/null ++++ b/grub-core/tests/videotest_checksum.c +@@ -0,0 +1,286 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++/* All tests need to include test.h for GRUB testing framework. */ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++struct ++{ ++ struct grub_video_mode_info mode_info; ++} tests[] = { ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 640, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 800, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 1280, ++ GRUB_VIDEO_MI_RGB555 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 1600, ++ GRUB_VIDEO_MI_RGB555 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 2048, ++ GRUB_VIDEO_MI_RGB555 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 1280, ++ GRUB_VIDEO_MI_RGB565 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 1600, ++ GRUB_VIDEO_MI_RGB565 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 2048, ++ GRUB_VIDEO_MI_RGB565 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 640 * 3, ++ GRUB_VIDEO_MI_RGB888 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 3, ++ GRUB_VIDEO_MI_RGB888 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 3, ++ GRUB_VIDEO_MI_RGB888 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 640 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ }, ++ ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 1280, ++ GRUB_VIDEO_MI_BGR555 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 1600, ++ GRUB_VIDEO_MI_BGR555 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 2048, ++ GRUB_VIDEO_MI_BGR555 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 1280, ++ GRUB_VIDEO_MI_BGR565 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 1600, ++ GRUB_VIDEO_MI_BGR565 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 2048, ++ GRUB_VIDEO_MI_BGR565 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 640 * 3, ++ GRUB_VIDEO_MI_BGR888 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 3, ++ GRUB_VIDEO_MI_BGR888 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 3, ++ GRUB_VIDEO_MI_BGR888 () ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 640 * 4, ++ GRUB_VIDEO_MI_BGRA8888() ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 4, ++ GRUB_VIDEO_MI_BGRA8888() ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 4, ++ GRUB_VIDEO_MI_BGRA8888() ++ }, ++ }, ++ ++ }; ++ ++ ++/* Functional test main method. */ ++static void ++videotest_checksum (void) ++{ ++ unsigned i; ++ grub_font_load ("unicode"); ++ for (i = 0; i < ARRAY_SIZE (tests); i++) ++ { ++ grub_video_capture_start (&tests[i].mode_info, ++ grub_video_fbstd_colors, ++ GRUB_VIDEO_FBSTD_NUMCOLORS); ++ grub_terminal_input_fake_sequence ((int []) { '\n' }, 1); ++ ++ grub_video_checksum ("videotest"); ++ ++ char *args[] = { 0 }; ++ grub_command_execute ("videotest", 0, args); ++ grub_video_checksum_end (); ++ grub_video_capture_end (); ++ } ++} ++ ++/* Register example_test method as a functional test. */ ++GRUB_FUNCTIONAL_TEST (videotest_checksum, videotest_checksum); +diff --git a/grub-core/video/capture.c b/grub-core/video/capture.c +new file mode 100644 +index 0000000..be7fb61 +--- /dev/null ++++ b/grub-core/video/capture.c +@@ -0,0 +1,128 @@ ++ ++#define grub_video_render_target grub_video_fbrender_target ++ ++#include ++#include ++#include ++ ++static struct ++{ ++ struct grub_video_mode_info mode_info; ++ struct grub_video_render_target *render_target; ++ grub_uint8_t *ptr; ++} framebuffer; ++ ++void (*grub_video_capture_refresh_cb) (void); ++ ++static grub_err_t ++grub_video_capture_swap_buffers (void) ++{ ++ if (grub_video_capture_refresh_cb) ++ grub_video_capture_refresh_cb (); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_video_capture_set_active_render_target (struct grub_video_render_target *target) ++{ ++ if (target == GRUB_VIDEO_RENDER_TARGET_DISPLAY) ++ target = framebuffer.render_target; ++ ++ return grub_video_fb_set_active_render_target (target); ++} ++ ++static struct grub_video_adapter grub_video_capture_adapter = ++ { ++ .name = "Render capture", ++ ++ .prio = 0, ++ .id = GRUB_VIDEO_ADAPTER_CAPTURE, ++ ++ .fini = grub_video_fb_fini, ++ .get_info = grub_video_fb_get_info, ++ .get_info_and_fini = 0, ++ .set_palette = grub_video_fb_set_palette, ++ .get_palette = grub_video_fb_get_palette, ++ .set_viewport = grub_video_fb_set_viewport, ++ .get_viewport = grub_video_fb_get_viewport, ++ .map_color = grub_video_fb_map_color, ++ .map_rgb = grub_video_fb_map_rgb, ++ .map_rgba = grub_video_fb_map_rgba, ++ .unmap_color = grub_video_fb_unmap_color, ++ .fill_rect = grub_video_fb_fill_rect, ++ .blit_bitmap = grub_video_fb_blit_bitmap, ++ .blit_render_target = grub_video_fb_blit_render_target, ++ .scroll = grub_video_fb_scroll, ++ .swap_buffers = grub_video_capture_swap_buffers, ++ .create_render_target = grub_video_fb_create_render_target, ++ .delete_render_target = grub_video_fb_delete_render_target, ++ .set_active_render_target = grub_video_capture_set_active_render_target, ++ .get_active_render_target = grub_video_fb_get_active_render_target, ++ ++ .next = 0 ++ }; ++ ++static struct grub_video_adapter *saved; ++static struct grub_video_mode_info saved_mode_info; ++ ++grub_err_t ++grub_video_capture_start (const struct grub_video_mode_info *mode_info, ++ struct grub_video_palette_data *palette, ++ unsigned int palette_size) ++{ ++ grub_err_t err; ++ grub_memset (&framebuffer, 0, sizeof (framebuffer)); ++ ++ grub_video_fb_init (); ++ ++ framebuffer.mode_info = *mode_info; ++ framebuffer.mode_info.blit_format = grub_video_get_blit_format (&framebuffer.mode_info); ++ ++ framebuffer.ptr = grub_malloc (framebuffer.mode_info.height * framebuffer.mode_info.pitch); ++ if (!framebuffer.ptr) ++ return grub_errno; ++ ++ err = grub_video_fb_create_render_target_from_pointer (&framebuffer.render_target, ++ &framebuffer.mode_info, ++ framebuffer.ptr); ++ if (err) ++ return err; ++ err = grub_video_fb_set_active_render_target (framebuffer.render_target); ++ if (err) ++ return err; ++ err = grub_video_fb_set_palette (0, palette_size, palette); ++ if (err) ++ return err; ++ ++ saved = grub_video_adapter_active; ++ if (saved) ++ { ++ grub_video_get_info (&saved_mode_info); ++ if (saved->fini) ++ saved->fini (); ++ } ++ grub_video_adapter_active = &grub_video_capture_adapter; ++ ++ return GRUB_ERR_NONE; ++} ++ ++void * ++grub_video_capture_get_framebuffer (void) ++{ ++ return framebuffer.ptr; ++} ++ ++void ++grub_video_capture_end (void) ++{ ++ grub_free (framebuffer.ptr); ++ grub_video_fb_fini (); ++ grub_video_adapter_active = saved; ++ if (saved) ++ { ++ if (saved->init) ++ saved->init (); ++ if (saved->setup) ++ saved->setup (saved_mode_info.width, saved_mode_info.height, 0, 0); ++ } ++} +diff --git a/grub-core/video/video.c b/grub-core/video/video.c +index 844f36c..90b5253 100644 +--- a/grub-core/video/video.c ++++ b/grub-core/video/video.c +@@ -29,7 +29,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); + grub_video_adapter_t grub_video_adapter_list = NULL; + + /* Active video adapter. */ +-static grub_video_adapter_t grub_video_adapter_active; ++grub_video_adapter_t grub_video_adapter_active; + + /* Restore back to initial mode (where applicable). */ + grub_err_t +@@ -510,6 +510,9 @@ grub_video_set_mode (const char *modestring, + if (! modevar) + return grub_errno; + ++ if (grub_video_adapter_active && grub_video_adapter_active->id == GRUB_VIDEO_ADAPTER_CAPTURE) ++ return GRUB_ERR_NONE; ++ + if (grub_memcmp (next_mode, "keep", sizeof ("keep")) == 0 + || grub_memcmp (next_mode, "keep,", sizeof ("keep,") - 1) == 0 + || grub_memcmp (next_mode, "keep;", sizeof ("keep;") - 1) == 0) +@@ -714,11 +717,3 @@ grub_video_set_mode (const char *modestring, + return grub_error (GRUB_ERR_BAD_ARGUMENT, + N_("no suitable video mode found")); + } +- +-#ifdef GRUB_UTIL +-void +-grub_video_set_adapter (grub_video_adapter_t adapter) +-{ +- grub_video_adapter_active = adapter; +-} +-#endif +diff --git a/include/grub/emu/export.h b/include/grub/emu/export.h +index 1e2f043..7f9e4e1 100644 +--- a/include/grub/emu/export.h ++++ b/include/grub/emu/export.h +@@ -3,4 +3,5 @@ void EXPORT_FUNC (close) (void); + void EXPORT_FUNC (read) (void); + void EXPORT_FUNC (write) (void); + void EXPORT_FUNC (ioctl) (void); +- ++void EXPORT_FUNC (__errno_location) (void); ++void EXPORT_FUNC (strerror) (void); +diff --git a/include/grub/test.h b/include/grub/test.h +index d876f57..6aa4069 100644 +--- a/include/grub/test.h ++++ b/include/grub/test.h +@@ -90,4 +90,13 @@ void grub_unit_test_fini (void); + grub_test_unregister (#name); \ + } + ++void ++grub_video_checksum (const char *basename_in); ++void ++grub_video_checksum_end (void); ++void ++grub_terminal_input_fake_sequence (int *seq_in, int nseq_in); ++void ++grub_terminal_input_fake_sequence_end (void); ++ + #endif /* ! GRUB_TEST_HEADER */ +diff --git a/include/grub/video.h b/include/grub/video.h +index bd5852e..6308177 100644 +--- a/include/grub/video.h ++++ b/include/grub/video.h +@@ -284,7 +284,8 @@ typedef enum grub_video_driver_id + GRUB_VIDEO_DRIVER_SIS315PRO, + GRUB_VIDEO_DRIVER_RADEON_FULOONG2E, + GRUB_VIDEO_DRIVER_COREBOOT, +- GRUB_VIDEO_DRIVER_IEEE1275 ++ GRUB_VIDEO_DRIVER_IEEE1275, ++ GRUB_VIDEO_ADAPTER_CAPTURE + } grub_video_driver_id_t; + + typedef enum grub_video_adapter_prio +@@ -544,9 +545,122 @@ extern void grub_video_sis315pro_fini (void); + extern void grub_video_radeon_fuloong2e_fini (void); + #endif + +-#ifdef GRUB_UTIL + void + grub_video_set_adapter (grub_video_adapter_t adapter); +-#endif ++grub_video_adapter_t ++grub_video_get_adapter (void); ++grub_err_t ++grub_video_capture_start (const struct grub_video_mode_info *mode_info, ++ struct grub_video_palette_data *palette, ++ unsigned int palette_size); ++void ++grub_video_capture_end (void); ++ ++void * ++grub_video_capture_get_framebuffer (void); ++ ++extern grub_video_adapter_t EXPORT_VAR (grub_video_adapter_active); ++extern void (*grub_video_capture_refresh_cb) (void); ++ ++#define GRUB_VIDEO_MI_RGB555(x) \ ++ x.mode_type = GRUB_VIDEO_MODE_TYPE_RGB, \ ++ x.bpp = 15, \ ++ x.bytes_per_pixel = 2, \ ++ x.number_of_colors = 256, \ ++ x.red_mask_size = 5, \ ++ x.red_field_pos = 10, \ ++ x.green_mask_size = 5, \ ++ x.green_field_pos = 5, \ ++ x.blue_mask_size = 5, \ ++ x.blue_field_pos = 0 ++ ++#define GRUB_VIDEO_MI_RGB565(x) \ ++ x.mode_type = GRUB_VIDEO_MODE_TYPE_RGB, \ ++ x.bpp = 16, \ ++ x.bytes_per_pixel = 2, \ ++ x.number_of_colors = 256, \ ++ x.red_mask_size = 5, \ ++ x.red_field_pos = 11, \ ++ x.green_mask_size = 6, \ ++ x.green_field_pos = 5, \ ++ x.blue_mask_size = 5, \ ++ x.blue_field_pos = 0 ++ ++#define GRUB_VIDEO_MI_RGB888(x) \ ++ x.mode_type = GRUB_VIDEO_MODE_TYPE_RGB, \ ++ x.bpp = 24, \ ++ x.bytes_per_pixel = 3, \ ++ x.number_of_colors = 256, \ ++ x.red_mask_size = 8, \ ++ x.red_field_pos = 16, \ ++ x.green_mask_size = 8, \ ++ x.green_field_pos = 8, \ ++ x.blue_mask_size = 8, \ ++ x.blue_field_pos = 0 ++ ++#define GRUB_VIDEO_MI_RGBA8888(x) \ ++ x.mode_type = GRUB_VIDEO_MODE_TYPE_RGB, \ ++ x.bpp = 32, \ ++ x.bytes_per_pixel = 4, \ ++ x.number_of_colors = 256, \ ++ x.reserved_mask_size = 8, \ ++ x.reserved_field_pos = 24, \ ++ x.red_mask_size = 8, \ ++ x.red_field_pos = 16, \ ++ x.green_mask_size = 8, \ ++ x.green_field_pos = 8, \ ++ x.blue_mask_size = 8, \ ++ x.blue_field_pos = 0 ++ ++ ++#define GRUB_VIDEO_MI_BGR555(x) \ ++ x.mode_type = GRUB_VIDEO_MODE_TYPE_RGB, \ ++ x.bpp = 15, \ ++ x.bytes_per_pixel = 2, \ ++ x.number_of_colors = 256, \ ++ x.red_mask_size = 5, \ ++ x.red_field_pos = 0, \ ++ x.green_mask_size = 5, \ ++ x.green_field_pos = 5, \ ++ x.blue_mask_size = 5, \ ++ x.blue_field_pos = 10 ++ ++#define GRUB_VIDEO_MI_BGR565(x) \ ++ x.mode_type = GRUB_VIDEO_MODE_TYPE_RGB, \ ++ x.bpp = 16, \ ++ x.bytes_per_pixel = 2, \ ++ x.number_of_colors = 256, \ ++ x.red_mask_size = 5, \ ++ x.red_field_pos = 0, \ ++ x.green_mask_size = 6, \ ++ x.green_field_pos = 5, \ ++ x.blue_mask_size = 5, \ ++ x.blue_field_pos = 11 ++ ++#define GRUB_VIDEO_MI_BGR888(x) \ ++ x.mode_type = GRUB_VIDEO_MODE_TYPE_RGB, \ ++ x.bpp = 24, \ ++ x.bytes_per_pixel = 3, \ ++ x.number_of_colors = 256, \ ++ x.red_mask_size = 8, \ ++ x.red_field_pos = 0, \ ++ x.green_mask_size = 8, \ ++ x.green_field_pos = 8, \ ++ x.blue_mask_size = 8, \ ++ x.blue_field_pos = 16 ++ ++#define GRUB_VIDEO_MI_BGRA8888(x) \ ++ x.mode_type = GRUB_VIDEO_MODE_TYPE_RGB, \ ++ x.bpp = 32, \ ++ x.bytes_per_pixel = 4, \ ++ x.number_of_colors = 256, \ ++ x.reserved_mask_size = 8, \ ++ x.reserved_field_pos = 24, \ ++ x.red_mask_size = 8, \ ++ x.red_field_pos = 0, \ ++ x.green_mask_size = 8, \ ++ x.green_field_pos = 8, \ ++ x.blue_mask_size = 8, \ ++ x.blue_field_pos = 16 + + #endif /* ! GRUB_VIDEO_HEADER */ +diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in +new file mode 100644 +index 0000000..a149cf9 +--- /dev/null ++++ b/tests/grub_func_test.in +@@ -0,0 +1,12 @@ ++#! /bin/bash ++set -e ++ ++. "@builddir@/grub-core/modinfo.sh" ++ ++out=`echo all_functional_test | @builddir@/grub-shell` ++ ++if [ "$(echo "$out" | tail -n 1)" != "ALL TESTS PASSED" ]; then ++ echo "Functional test failure: $out" ++ exit 1 ++fi ++ +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index 1d7dfb8..dfde836 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -408,6 +408,8 @@ if [ x$boot = xnet ]; then + timeout -s KILL $timeout "${qemu}" ${qemuopts} -nographic ${serial_null} -serial file:/dev/stdout -monitor file:/dev/null -boot n -net "user,tftp=$netdir,bootfile=/boot/grub/${grub_modinfo_target_cpu}-${grub_modinfo_platform}/core.$netbootext" -net nic | cat | tr -d "\r" | do_trim + elif [ x$boot = xemu ]; then + grubdir="$(mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX")" ++ mkdir -p "$grubdir/fonts" ++ cp "@builddir@/"unicode.pf2 "$grubdir/fonts/unicode.pf2" + cp "${cfgfile}" "$grubdir/grub.cfg" + cp "${source}" "$grubdir/testcase.cfg" + @builddir@/grub-core/grub-emu -m "$device_map" -d "$grubdir" | tr -d "\r" | do_trim +diff --git a/util/grub-render-label.c b/util/grub-render-label.c +index 7237759..32d3774 100644 +--- a/util/grub-render-label.c ++++ b/util/grub-render-label.c +@@ -1,6 +1,6 @@ + /* + * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2010,2012 Free Software Foundation, Inc. ++ * Copyright (C) 2010,2012,2013 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -17,8 +17,6 @@ + */ + + +-#define grub_video_render_target grub_video_fbrender_target +- + #include + + #include +@@ -74,58 +72,6 @@ static struct argp_option options[] = { + #include + #include + +-static struct +-{ +- struct grub_video_mode_info mode_info; +- struct grub_video_render_target *render_target; +- grub_uint8_t *ptr; +-} framebuffer; +- +-static grub_err_t +-grub_video_text_render_swap_buffers (void) +-{ +- return GRUB_ERR_NONE; +-} +- +-static grub_err_t +-grub_video_text_render_set_active_render_target (struct grub_video_render_target *target) +-{ +- if (target == GRUB_VIDEO_RENDER_TARGET_DISPLAY) +- target = framebuffer.render_target; +- +- return grub_video_fb_set_active_render_target (target); +-} +- +-static struct grub_video_adapter grub_video_text_render_adapter = +- { +- .name = "Text rendering", +- +- .prio = GRUB_VIDEO_ADAPTER_PRIO_FIRMWARE, +- +- .fini = grub_video_fb_fini, +- .get_info = grub_video_fb_get_info, +- .get_info_and_fini = 0, +- .set_palette = grub_video_fb_set_palette, +- .get_palette = grub_video_fb_get_palette, +- .set_viewport = grub_video_fb_set_viewport, +- .get_viewport = grub_video_fb_get_viewport, +- .map_color = grub_video_fb_map_color, +- .map_rgb = grub_video_fb_map_rgb, +- .map_rgba = grub_video_fb_map_rgba, +- .unmap_color = grub_video_fb_unmap_color, +- .fill_rect = grub_video_fb_fill_rect, +- .blit_bitmap = grub_video_fb_blit_bitmap, +- .blit_render_target = grub_video_fb_blit_render_target, +- .scroll = grub_video_fb_scroll, +- .swap_buffers = grub_video_text_render_swap_buffers, +- .create_render_target = grub_video_fb_create_render_target, +- .delete_render_target = grub_video_fb_delete_render_target, +- .set_active_render_target = grub_video_text_render_set_active_render_target, +- .get_active_render_target = grub_video_fb_get_active_render_target, +- +- .next = 0 +- }; +- + static error_t + argp_parser (int key, char *arg, struct argp_state *state) + { +@@ -208,6 +154,7 @@ main (int argc, char *argv[]) + 0x77, 0x66, 0x3f, 0x27 }; + int i, j, k, cptr = 0; + grub_uint8_t bg, fg; ++ struct grub_video_mode_info mode_info; + + for (i = 0; i < 256; i++) + ieee1275_palette[i].a = 0xff; +@@ -340,32 +287,17 @@ main (int argc, char *argv[]) + width = grub_font_get_string_width (font, text) + 10; + height = grub_font_get_height (font); + +- grub_memset (&framebuffer, 0, sizeof (framebuffer)); +- +- grub_video_fb_init (); ++ mode_info.width = width; ++ mode_info.height = height; ++ mode_info.pitch = width; + +- framebuffer.mode_info.width = width; +- framebuffer.mode_info.height = height; +- framebuffer.mode_info.pitch = width; ++ mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR; ++ mode_info.bpp = 8; ++ mode_info.bytes_per_pixel = 1; ++ mode_info.number_of_colors = 256; + +- framebuffer.mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR; +- framebuffer.mode_info.bpp = 8; +- framebuffer.mode_info.bytes_per_pixel = 1; +- framebuffer.mode_info.number_of_colors = 256; +- +- framebuffer.mode_info.blit_format = grub_video_get_blit_format (&framebuffer.mode_info); +- +- /* For some reason sparc64 uses 32-bit pointer too. */ +- framebuffer.ptr = xmalloc (height * width); +- +- grub_video_fb_create_render_target_from_pointer (&framebuffer.render_target, +- &framebuffer.mode_info, +- framebuffer.ptr); +- grub_video_fb_set_active_render_target (framebuffer.render_target); +- grub_video_fb_set_palette (0, ARRAY_SIZE (ieee1275_palette), +- ieee1275_palette); +- +- grub_video_set_adapter (&grub_video_text_render_adapter); ++ grub_video_capture_start (&mode_info, ieee1275_palette, ++ ARRAY_SIZE (ieee1275_palette)); + + fg = grub_video_map_rgb (arguments.fgcolor.red, + arguments.fgcolor.green, +@@ -374,18 +306,17 @@ main (int argc, char *argv[]) + arguments.bgcolor.green, + arguments.bgcolor.blue); + +- grub_memset (framebuffer.ptr, bg, height * width); ++ grub_memset (grub_video_capture_get_framebuffer (), bg, height * width); + grub_font_draw_string (text, font, fg, + 5, grub_font_get_ascent (font)); + +- grub_video_set_adapter (0); +- + head.magic = 1; + head.width = grub_cpu_to_be16 (width); + head.height = grub_cpu_to_be16 (height); + fwrite (&head, 1, sizeof (head), out); +- fwrite (framebuffer.ptr, 1, width * height, out); ++ fwrite (grub_video_capture_get_framebuffer (), 1, width * height, out); + ++ grub_video_capture_end (); + if (out != stdout) + fclose (out); + +-- +1.8.2.1 + diff --git a/0402-grub-core-loader-i386-linux.c-grub_linux_setup_video.patch b/0402-grub-core-loader-i386-linux.c-grub_linux_setup_video.patch new file mode 100644 index 0000000..8a9e5fe --- /dev/null +++ b/0402-grub-core-loader-i386-linux.c-grub_linux_setup_video.patch @@ -0,0 +1,42 @@ +From f3c2abf3f840c6ec0430e56aea362afc774f25ae Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 2 May 2013 18:06:39 +0200 +Subject: [PATCH 402/471] * grub-core/loader/i386/linux.c + (grub_linux_setup_video): Add GRUB_VIDEO_ADAPTER_CAPTURE: to handled drived + ids. + +--- + ChangeLog | 5 +++++ + grub-core/loader/i386/linux.c | 1 + + 2 files changed, 6 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 37595a9..de8acba 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-02 Vladimir Serbinenko + ++ * grub-core/loader/i386/linux.c (grub_linux_setup_video): Add ++ GRUB_VIDEO_ADAPTER_CAPTURE: to handled drived ids. ++ ++2013-05-02 Vladimir Serbinenko ++ + First automated video test (running videotest and comparing results) + + 2013-05-02 Vladimir Serbinenko +diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c +index 106496b..4ff6106 100644 +--- a/grub-core/loader/i386/linux.c ++++ b/grub-core/loader/i386/linux.c +@@ -343,6 +343,7 @@ grub_linux_setup_video (struct linux_kernel_params *params) + /* Make gcc happy. */ + case GRUB_VIDEO_DRIVER_SDL: + case GRUB_VIDEO_DRIVER_NONE: ++ case GRUB_VIDEO_ADAPTER_CAPTURE: + params->have_vga = GRUB_VIDEO_LINUX_TYPE_SIMPLE; + break; + } +-- +1.8.2.1 + diff --git a/0403-grub-core-tests-videotest_checksum.c-videotest_check.patch b/0403-grub-core-tests-videotest_checksum.c-videotest_check.patch new file mode 100644 index 0000000..ca5e6d7 --- /dev/null +++ b/0403-grub-core-tests-videotest_checksum.c-videotest_check.patch @@ -0,0 +1,58 @@ +From f27f3a18a9854098f5efc8e5472e21a4ffcdf0e6 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 2 May 2013 18:08:42 +0200 +Subject: [PATCH 403/471] * grub-core/tests/videotest_checksum.c + (videotest_checksum): Error out if no unifont is found. + Restore original keyboard. + +--- + ChangeLog | 6 ++++++ + grub-core/tests/videotest_checksum.c | 9 ++++++++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index de8acba..ef402f8 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,11 @@ + 2013-05-02 Vladimir Serbinenko + ++ * grub-core/tests/videotest_checksum.c (videotest_checksum): Error out ++ if no unifont is found. ++ Restore original keyboard. ++ ++2013-05-02 Vladimir Serbinenko ++ + * grub-core/loader/i386/linux.c (grub_linux_setup_video): Add + GRUB_VIDEO_ADAPTER_CAPTURE: to handled drived ids. + +diff --git a/grub-core/tests/videotest_checksum.c b/grub-core/tests/videotest_checksum.c +index e57dae7..3c70f8c 100644 +--- a/grub-core/tests/videotest_checksum.c ++++ b/grub-core/tests/videotest_checksum.c +@@ -265,7 +265,12 @@ static void + videotest_checksum (void) + { + unsigned i; +- grub_font_load ("unicode"); ++ if (grub_font_load ("unicode") == 0) ++ { ++ grub_test_assert (0, "unicode font not found: %s", grub_errmsg); ++ return; ++ } ++ + for (i = 0; i < ARRAY_SIZE (tests); i++) + { + grub_video_capture_start (&tests[i].mode_info, +@@ -277,6 +282,8 @@ videotest_checksum (void) + + char *args[] = { 0 }; + grub_command_execute ("videotest", 0, args); ++ ++ grub_terminal_input_fake_sequence_end (); + grub_video_checksum_end (); + grub_video_capture_end (); + } +-- +1.8.2.1 + diff --git a/0404-Add-missing-exports-on-mips.patch b/0404-Add-missing-exports-on-mips.patch new file mode 100644 index 0000000..18b523c --- /dev/null +++ b/0404-Add-missing-exports-on-mips.patch @@ -0,0 +1,200 @@ +From 54dd20578308c07d3c15a6d07638d3abecfb626c Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 2 May 2013 18:10:11 +0200 +Subject: [PATCH 404/471] Add missing exports on mips. + +--- + ChangeLog | 4 ++++ + grub-core/Makefile.am | 2 ++ + include/grub/font.h | 2 +- + include/grub/video.h | 2 +- + include/grub/video_fb.h | 61 +++++++++++++++++++++++++------------------------ + 5 files changed, 39 insertions(+), 32 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index ef402f8..8525dd9 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-02 Vladimir Serbinenko + ++ Add missing exports on mips. ++ ++2013-05-02 Vladimir Serbinenko ++ + * grub-core/tests/videotest_checksum.c (videotest_checksum): Error out + if no unifont is found. + Restore original keyboard. +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index fa6afcf..c350b5a 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -160,6 +160,7 @@ KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h + KERNEL_HEADER_FILES += $(top_builddir)/include/grub/cpu/cache.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap_scale.h +@@ -178,6 +179,7 @@ KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/time.h + KERNEL_HEADER_FILES += $(top_builddir)/include/grub/cpu/cache.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap_scale.h +diff --git a/include/grub/font.h b/include/grub/font.h +index 975432e..aed7e1c 100644 +--- a/include/grub/font.h ++++ b/include/grub/font.h +@@ -81,7 +81,7 @@ void grub_font_loader_init (void); + + /* Load a font and add it to the beginning of the global font list. + Returns: 0 upon success; nonzero upon failure. */ +-grub_font_t grub_font_load (const char *filename); ++grub_font_t EXPORT_FUNC(grub_font_load) (const char *filename); + + /* Get the font that has the specified name. Font names are in the form + "Family Name Bold Italic 14", where Bold and Italic are optional. +diff --git a/include/grub/video.h b/include/grub/video.h +index 6308177..36e863b 100644 +--- a/include/grub/video.h ++++ b/include/grub/video.h +@@ -419,7 +419,7 @@ grub_err_t EXPORT_FUNC (grub_video_get_info) (struct grub_video_mode_info *mode_ + grub_err_t EXPORT_FUNC (grub_video_get_info_and_fini) (struct grub_video_mode_info *mode_info, + void **framebuffer); + +-enum grub_video_blit_format grub_video_get_blit_format (struct grub_video_mode_info *mode_info); ++enum grub_video_blit_format EXPORT_FUNC(grub_video_get_blit_format) (struct grub_video_mode_info *mode_info); + + grub_err_t grub_video_set_palette (unsigned int start, unsigned int count, + struct grub_video_palette_data *palette_data); +diff --git a/include/grub/video_fb.h b/include/grub/video_fb.h +index d696398..0628467 100644 +--- a/include/grub/video_fb.h ++++ b/include/grub/video_fb.h +@@ -31,45 +31,46 @@ struct grub_video_fbblit_info; + struct grub_video_fbrender_target; + + #define GRUB_VIDEO_FBSTD_NUMCOLORS 16 +-extern struct grub_video_palette_data grub_video_fbstd_colors[GRUB_VIDEO_FBSTD_NUMCOLORS]; ++extern struct grub_video_palette_data EXPORT_VAR(grub_video_fbstd_colors)[GRUB_VIDEO_FBSTD_NUMCOLORS]; + + grub_err_t +-grub_video_fb_init (void); ++EXPORT_FUNC(grub_video_fb_init) (void); + + grub_err_t +-grub_video_fb_fini (void); ++EXPORT_FUNC(grub_video_fb_fini) (void); + + grub_err_t +-grub_video_fb_get_info (struct grub_video_mode_info *mode_info); ++EXPORT_FUNC(grub_video_fb_get_info) (struct grub_video_mode_info *mode_info); + + grub_err_t +-grub_video_fb_get_palette (unsigned int start, unsigned int count, +- struct grub_video_palette_data *palette_data); ++EXPORT_FUNC(grub_video_fb_get_palette) (unsigned int start, unsigned int count, ++ struct grub_video_palette_data *palette_data); + grub_err_t +-grub_video_fb_set_palette (unsigned int start, unsigned int count, +- struct grub_video_palette_data *palette_data); ++EXPORT_FUNC(grub_video_fb_set_palette) (unsigned int start, unsigned int count, ++ struct grub_video_palette_data *palette_data); + grub_err_t +-grub_video_fb_set_viewport (unsigned int x, unsigned int y, +- unsigned int width, unsigned int height); ++EXPORT_FUNC(grub_video_fb_set_viewport) (unsigned int x, unsigned int y, ++ unsigned int width, unsigned int height); + grub_err_t +-grub_video_fb_get_viewport (unsigned int *x, unsigned int *y, +- unsigned int *width, unsigned int *height); ++EXPORT_FUNC(grub_video_fb_get_viewport) (unsigned int *x, unsigned int *y, ++ unsigned int *width, ++ unsigned int *height); + + grub_video_color_t +-grub_video_fb_map_color (grub_uint32_t color_name); ++EXPORT_FUNC(grub_video_fb_map_color) (grub_uint32_t color_name); + + grub_video_color_t +-grub_video_fb_map_rgb (grub_uint8_t red, grub_uint8_t green, +- grub_uint8_t blue); ++EXPORT_FUNC(grub_video_fb_map_rgb) (grub_uint8_t red, grub_uint8_t green, ++ grub_uint8_t blue); + + grub_video_color_t +-grub_video_fb_map_rgba (grub_uint8_t red, grub_uint8_t green, +- grub_uint8_t blue, grub_uint8_t alpha); ++EXPORT_FUNC(grub_video_fb_map_rgba) (grub_uint8_t red, grub_uint8_t green, ++ grub_uint8_t blue, grub_uint8_t alpha); + + grub_err_t +-grub_video_fb_unmap_color (grub_video_color_t color, +- grub_uint8_t *red, grub_uint8_t *green, +- grub_uint8_t *blue, grub_uint8_t *alpha); ++EXPORT_FUNC(grub_video_fb_unmap_color) (grub_video_color_t color, ++ grub_uint8_t *red, grub_uint8_t *green, ++ grub_uint8_t *blue, grub_uint8_t *alpha); + + void + grub_video_fb_unmap_color_int (struct grub_video_fbblit_info * source, +@@ -78,42 +79,42 @@ grub_video_fb_unmap_color_int (struct grub_video_fbblit_info * source, + grub_uint8_t *blue, grub_uint8_t *alpha); + + grub_err_t +-grub_video_fb_fill_rect (grub_video_color_t color, int x, int y, +- unsigned int width, unsigned int height); ++EXPORT_FUNC(grub_video_fb_fill_rect) (grub_video_color_t color, int x, int y, ++ unsigned int width, unsigned int height); + + grub_err_t +-grub_video_fb_blit_bitmap (struct grub_video_bitmap *bitmap, ++EXPORT_FUNC(grub_video_fb_blit_bitmap) (struct grub_video_bitmap *bitmap, + enum grub_video_blit_operators oper, int x, int y, + int offset_x, int offset_y, + unsigned int width, unsigned int height); + + grub_err_t +-grub_video_fb_blit_render_target (struct grub_video_fbrender_target *source, ++EXPORT_FUNC(grub_video_fb_blit_render_target) (struct grub_video_fbrender_target *source, + enum grub_video_blit_operators oper, + int x, int y, int offset_x, int offset_y, + unsigned int width, unsigned int height); + + grub_err_t +-grub_video_fb_scroll (grub_video_color_t color, int dx, int dy); ++EXPORT_FUNC(grub_video_fb_scroll) (grub_video_color_t color, int dx, int dy); + + grub_err_t +-grub_video_fb_create_render_target (struct grub_video_fbrender_target **result, ++EXPORT_FUNC(grub_video_fb_create_render_target) (struct grub_video_fbrender_target **result, + unsigned int width, unsigned int height, + unsigned int mode_type __attribute__ ((unused))); + + grub_err_t +-grub_video_fb_create_render_target_from_pointer (struct grub_video_fbrender_target **result, ++EXPORT_FUNC(grub_video_fb_create_render_target_from_pointer) (struct grub_video_fbrender_target **result, + const struct grub_video_mode_info *mode_info, + void *ptr); + + grub_err_t +-grub_video_fb_delete_render_target (struct grub_video_fbrender_target *target); ++EXPORT_FUNC(grub_video_fb_delete_render_target) (struct grub_video_fbrender_target *target); + + grub_err_t +-grub_video_fb_get_active_render_target (struct grub_video_fbrender_target **target); ++EXPORT_FUNC(grub_video_fb_get_active_render_target) (struct grub_video_fbrender_target **target); + + grub_err_t +-grub_video_fb_set_active_render_target (struct grub_video_fbrender_target *target); ++EXPORT_FUNC(grub_video_fb_set_active_render_target) (struct grub_video_fbrender_target *target); + + typedef grub_err_t (*grub_video_fb_set_page_t) (int page); + +-- +1.8.2.1 + diff --git a/0405-Several-fixes-to-ieee1275-and-big-endian-video.patch b/0405-Several-fixes-to-ieee1275-and-big-endian-video.patch new file mode 100644 index 0000000..8a8bf51 --- /dev/null +++ b/0405-Several-fixes-to-ieee1275-and-big-endian-video.patch @@ -0,0 +1,1270 @@ +From f3d557cb000022e4d163f2e566e243aa73632675 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Thu, 2 May 2013 22:30:20 +0200 +Subject: [PATCH 405/471] Several fixes to ieee1275 and big-endian + video. + +--- + ChangeLog | 4 + + grub-core/tests/checksums.c | 3 + + grub-core/tests/video_checksum.c | 82 +++++++++- + grub-core/tests/videotest_checksum.c | 38 ++++- + grub-core/video/bochs.c | 1 + + grub-core/video/cirrus.c | 6 +- + grub-core/video/efi_uga.c | 2 +- + grub-core/video/emu/sdl.c | 12 +- + grub-core/video/fb/fbblit.c | 78 +++++++++- + grub-core/video/fb/fbfill.c | 20 +-- + grub-core/video/fb/fbutil.c | 8 + + grub-core/video/fb/video_fb.c | 280 +++++++++++++++++++++++++++++++---- + grub-core/video/i386/pc/vbe.c | 5 +- + grub-core/video/ieee1275.c | 106 +++++++++++-- + grub-core/video/readers/jpeg.c | 13 ++ + grub-core/video/readers/png.c | 61 +++++++- + grub-core/video/sis315pro.c | 4 +- + include/grub/video_fb.h | 4 +- + 18 files changed, 655 insertions(+), 72 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 8525dd9..3ff4a05 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-02 Vladimir Serbinenko + ++ Several fixes to ieee1275 and big-endian video. ++ ++2013-05-02 Vladimir Serbinenko ++ + Add missing exports on mips. + + 2013-05-02 Vladimir Serbinenko +diff --git a/grub-core/tests/checksums.c b/grub-core/tests/checksums.c +index 93d100f..583c696 100644 +--- a/grub-core/tests/checksums.c ++++ b/grub-core/tests/checksums.c +@@ -1,6 +1,9 @@ + { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, }, 5 }, + { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, }, 5 }, + { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, }, 5 }, ++ { "videotest", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, }, 5 }, ++ { "videotest", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0x327d1082, 0x327d1082, 0x327d1082, 0x327d1082, 0x327d1082, }, 5 }, ++ { "videotest", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xadd0f186, 0xadd0f186, 0xadd0f186, 0xadd0f186, 0xadd0f186, }, 5 }, + { "videotest", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgb555 */, (grub_uint32_t []) { 0x2c97569c, 0x2c97569c, 0x2c97569c, 0x2c97569c, 0x2c97569c, }, 5 }, + { "videotest", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgb555 */, (grub_uint32_t []) { 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, }, 5 }, + { "videotest", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgb555 */, (grub_uint32_t []) { 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, }, 5 }, +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +index b2aab79..cf47fa2 100644 +--- a/grub-core/tests/video_checksum.c ++++ b/grub-core/tests/video_checksum.c +@@ -249,14 +249,16 @@ get_modename (void) + } + if (capt_mode_info.red_field_pos == 0) + { +- grub_snprintf (buf, sizeof (buf), "bgr%d%d%d", capt_mode_info.blue_mask_size, ++ grub_snprintf (buf, sizeof (buf), "bgra%d%d%d%d", capt_mode_info.blue_mask_size, + capt_mode_info.green_mask_size, +- capt_mode_info.red_mask_size); ++ capt_mode_info.red_mask_size, ++ capt_mode_info.reserved_mask_size); + return buf; + } +- grub_snprintf (buf, sizeof (buf), "rgb%d%d%d", capt_mode_info.red_mask_size, ++ grub_snprintf (buf, sizeof (buf), "rgba%d%d%d%d", capt_mode_info.red_mask_size, + capt_mode_info.green_mask_size, +- capt_mode_info.blue_mask_size); ++ capt_mode_info.blue_mask_size, ++ capt_mode_info.reserved_mask_size); + return buf; + } + +@@ -270,11 +272,81 @@ static void + checksum (void) + { + void *ptr; +- grub_uint32_t crc; ++ grub_uint32_t crc = 0; + + ptr = grub_video_capture_get_framebuffer (); + ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ switch (capt_mode_info.bytes_per_pixel) ++ { ++ case 1: ++ crc = grub_getcrc32c (0, ptr, capt_mode_info.pitch ++ * capt_mode_info.height); ++ break; ++ case 2: ++ { ++ unsigned x, y, rowskip; ++ grub_uint8_t *iptr = ptr; ++ crc = 0; ++ rowskip = capt_mode_info.pitch - capt_mode_info.width * 2; ++ for (y = 0; y < capt_mode_info.height; y++) ++ { ++ for (x = 0; x < capt_mode_info.width; x++) ++ { ++ crc = grub_getcrc32c (crc, iptr + 1, 1); ++ crc = grub_getcrc32c (crc, iptr, 1); ++ iptr += 2; ++ } ++ crc = grub_getcrc32c (crc, iptr, rowskip); ++ iptr += rowskip; ++ } ++ break; ++ } ++ case 3: ++ { ++ unsigned x, y, rowskip; ++ grub_uint8_t *iptr = ptr; ++ crc = 0; ++ rowskip = capt_mode_info.pitch - capt_mode_info.width * 3; ++ for (y = 0; y < capt_mode_info.height; y++) ++ { ++ for (x = 0; x < capt_mode_info.width; x++) ++ { ++ crc = grub_getcrc32c (crc, iptr + 2, 1); ++ crc = grub_getcrc32c (crc, iptr + 1, 1); ++ crc = grub_getcrc32c (crc, iptr, 1); ++ iptr += 3; ++ } ++ crc = grub_getcrc32c (crc, iptr, rowskip); ++ iptr += rowskip; ++ } ++ break; ++ } ++ case 4: ++ { ++ unsigned x, y, rowskip; ++ grub_uint8_t *iptr = ptr; ++ crc = 0; ++ rowskip = capt_mode_info.pitch - capt_mode_info.width * 4; ++ for (y = 0; y < capt_mode_info.height; y++) ++ { ++ for (x = 0; x < capt_mode_info.width; x++) ++ { ++ crc = grub_getcrc32c (crc, iptr + 3, 1); ++ crc = grub_getcrc32c (crc, iptr + 2, 1); ++ crc = grub_getcrc32c (crc, iptr + 1, 1); ++ crc = grub_getcrc32c (crc, iptr, 1); ++ iptr += 4; ++ } ++ crc = grub_getcrc32c (crc, iptr, rowskip); ++ iptr += rowskip; ++ } ++ break; ++ } ++ } ++#else + crc = grub_getcrc32c (0, ptr, capt_mode_info.pitch * capt_mode_info.height); ++#endif + if (!checksums || ctr >= nchk) + { + grub_test_assert (0, "Unexpected checksum %s_%dx%dx%s:%d: 0x%x", +diff --git a/grub-core/tests/videotest_checksum.c b/grub-core/tests/videotest_checksum.c +index 3c70f8c..7833d04 100644 +--- a/grub-core/tests/videotest_checksum.c ++++ b/grub-core/tests/videotest_checksum.c +@@ -63,6 +63,42 @@ struct + .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS + }, + }, ++ ++ ++ { ++ .mode_info = { ++ .width = 640, ++ .height = 480, ++ .pitch = 640, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 800, ++ .height = 600, ++ .pitch = 800, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS ++ }, ++ }, ++ { ++ .mode_info = { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS ++ }, ++ }, ++ + { + .mode_info = { + .width = 640, +@@ -275,7 +311,7 @@ videotest_checksum (void) + { + grub_video_capture_start (&tests[i].mode_info, + grub_video_fbstd_colors, +- GRUB_VIDEO_FBSTD_NUMCOLORS); ++ tests[i].mode_info.number_of_colors); + grub_terminal_input_fake_sequence ((int []) { '\n' }, 1); + + grub_video_checksum ("videotest"); +diff --git a/grub-core/video/bochs.c b/grub-core/video/bochs.c +index aea486c..287ae0f 100644 +--- a/grub-core/video/bochs.c ++++ b/grub-core/video/bochs.c +@@ -331,6 +331,7 @@ grub_video_bochs_setup (unsigned int width, unsigned int height, + case 4: + case 8: + framebuffer.mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR; ++ framebuffer.mode_info.number_of_colors = 16; + break; + case 16: + framebuffer.mode_info.red_mask_size = 5; +diff --git a/grub-core/video/cirrus.c b/grub-core/video/cirrus.c +index 073c54e..00e6516 100644 +--- a/grub-core/video/cirrus.c ++++ b/grub-core/video/cirrus.c +@@ -295,15 +295,14 @@ grub_video_cirrus_setup (unsigned int width, unsigned int height, + && !grub_video_check_mode_flag (mode_type, mode_mask, + GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, 0)) + depth = 24; +- +- if (depth == 0) ++ else if (depth == 0) + depth = 8; + + if (depth != 32 && depth != 24 && depth != 16 && depth != 15 && depth != 8) + return grub_error (GRUB_ERR_IO, "only 32, 24, 16, 15 and 8-bit bpp are" + " supported by cirrus video"); + +- bytes_per_pixel = (depth + 7) / 8; ++ bytes_per_pixel = (depth + GRUB_CHAR_BIT - 1) / GRUB_CHAR_BIT; + pitch = width * bytes_per_pixel; + + if (pitch > CIRRUS_MAX_PITCH) +@@ -411,6 +410,7 @@ grub_video_cirrus_setup (unsigned int width, unsigned int height, + { + case 8: + framebuffer.mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR; ++ framebuffer.mode_info.number_of_colors = 16; + break; + case 16: + framebuffer.mode_info.red_mask_size = 5; +diff --git a/grub-core/video/efi_uga.c b/grub-core/video/efi_uga.c +index 695f015..159df8e 100644 +--- a/grub-core/video/efi_uga.c ++++ b/grub-core/video/efi_uga.c +@@ -247,7 +247,7 @@ grub_video_uga_setup (unsigned int width, unsigned int height, + framebuffer.mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_RGB; + framebuffer.mode_info.bpp = 32; + framebuffer.mode_info.bytes_per_pixel = 4; +- framebuffer.mode_info.number_of_colors = 256; /* TODO: fix me. */ ++ framebuffer.mode_info.number_of_colors = 256; + framebuffer.mode_info.red_mask_size = 8; + framebuffer.mode_info.red_field_pos = 16; + framebuffer.mode_info.green_mask_size = 8; +diff --git a/grub-core/video/emu/sdl.c b/grub-core/video/emu/sdl.c +index f4c1a6a..6fd01be 100644 +--- a/grub-core/video/emu/sdl.c ++++ b/grub-core/video/emu/sdl.c +@@ -151,8 +151,7 @@ grub_video_sdl_setup (unsigned int width, unsigned int height, + return err; + + /* Copy default palette to initialize emulated palette. */ +- grub_video_sdl_set_palette (0, (sizeof (grub_video_fbstd_colors) +- / sizeof (grub_video_fbstd_colors[0])), ++ grub_video_sdl_set_palette (0, GRUB_VIDEO_FBSTD_NUMCOLORS, + grub_video_fbstd_colors); + + /* Reset render target to SDL one. */ +@@ -166,7 +165,14 @@ grub_video_sdl_set_palette (unsigned int start, unsigned int count, + unsigned i; + if (window->format->palette) + { +- SDL_Color *tmp = grub_malloc (count * sizeof (tmp[0])); ++ SDL_Color *tmp; ++ if (start >= mode_info.number_of_colors) ++ return GRUB_ERR_NONE; ++ ++ if (start + count > mode_info.number_of_colors) ++ count = mode_info.number_of_colors - start; ++ ++ tmp = grub_malloc (count * sizeof (tmp[0])); + for (i = 0; i < count; i++) + { + tmp[i].r = palette_data[i].r; +diff --git a/grub-core/video/fb/fbblit.c b/grub-core/video/fb/fbblit.c +index 4d262d7..13e2926 100644 +--- a/grub-core/video/fb/fbblit.c ++++ b/grub-core/video/fb/fbblit.c +@@ -416,15 +416,25 @@ grub_video_fbblit_replace_BGRX8888_RGBX8888 (struct grub_video_fbblit_info *dst, + { + for (i = 0; i < width; i++) + { ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ grub_uint8_t a = *srcptr++; ++#endif + grub_uint8_t r = *srcptr++; + grub_uint8_t g = *srcptr++; + grub_uint8_t b = *srcptr++; ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + grub_uint8_t a = *srcptr++; ++#endif + ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ *dstptr++ = a; ++#endif + *dstptr++ = b; + *dstptr++ = g; + *dstptr++ = r; ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + *dstptr++ = a; ++#endif + } + + srcptr += srcrowskip; +@@ -463,12 +473,19 @@ grub_video_fbblit_replace_BGRX8888_RGB888 (struct grub_video_fbblit_info *dst, + grub_uint8_t g = *srcptr++; + grub_uint8_t b = *srcptr++; + ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ /* Set alpha component as opaque. */ ++ *dstptr++ = 255; ++#endif ++ + *dstptr++ = b; + *dstptr++ = g; + *dstptr++ = r; + ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + /* Set alpha component as opaque. */ + *dstptr++ = 255; ++#endif + } + + srcptr += srcrowskip; +@@ -514,9 +531,15 @@ grub_video_fbblit_replace_BGR888_RGBX8888 (struct grub_video_fbblit_info *dst, + sg = (color >> 8) & 0xFF; + sb = (color >> 16) & 0xFF; + ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ *dstptr++ = sr; ++ *dstptr++ = sg; ++ *dstptr++ = sb; ++#else + *dstptr++ = sb; + *dstptr++ = sg; + *dstptr++ = sr; ++#endif + } + + GRUB_VIDEO_FB_ADVANCE_POINTER (srcptr, srcrowskip); +@@ -593,10 +616,15 @@ grub_video_fbblit_replace_RGBX8888_RGB888 (struct grub_video_fbblit_info *dst, + { + for (i = 0; i < width; i++) + { ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ sb = *srcptr++; ++ sg = *srcptr++; ++ sr = *srcptr++; ++#else + sr = *srcptr++; + sg = *srcptr++; + sb = *srcptr++; +- ++#endif + /* Set alpha as opaque. */ + color = 0xFF000000 | (sb << 16) | (sg << 8) | sr; + +@@ -641,9 +669,15 @@ grub_video_fbblit_replace_RGB888_RGBX8888 (struct grub_video_fbblit_info *dst, + sg = (color >> 8) & 0xFF; + sb = (color >> 16) & 0xFF; + ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + *dstptr++ = sr; + *dstptr++ = sg; + *dstptr++ = sb; ++#else ++ *dstptr++ = sb; ++ *dstptr++ = sg; ++ *dstptr++ = sr; ++#endif + } + GRUB_VIDEO_FB_ADVANCE_POINTER (srcptr, srcrowskip); + GRUB_VIDEO_FB_ADVANCE_POINTER (dstptr, dstrowskip); +@@ -681,9 +715,15 @@ grub_video_fbblit_replace_index_RGBX8888 (struct grub_video_fbblit_info *dst, + { + color = *srcptr++; + ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ sb = (color >> 0) & 0xFF; ++ sg = (color >> 8) & 0xFF; ++ sr = (color >> 16) & 0xFF; ++#else + sr = (color >> 0) & 0xFF; + sg = (color >> 8) & 0xFF; + sb = (color >> 16) & 0xFF; ++#endif + + color = grub_video_fb_map_rgb(sr, sg, sb); + *dstptr++ = color & 0xFF; +@@ -722,9 +762,15 @@ grub_video_fbblit_replace_index_RGB888 (struct grub_video_fbblit_info *dst, + { + for (i = 0; i < width; i++) + { ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + sr = *srcptr++; + sg = *srcptr++; + sb = *srcptr++; ++#else ++ sb = *srcptr++; ++ sg = *srcptr++; ++ sr = *srcptr++; ++#endif + + color = grub_video_fb_map_rgb(sr, sg, sb); + +@@ -948,9 +994,15 @@ grub_video_fbblit_blend_BGR888_RGBA8888 (struct grub_video_fbblit_info *dst, + dr = (dr * (255 - a) + sr * a) / 255; + } + ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + *dstptr++ = db; + *dstptr++ = dg; + *dstptr++ = dr; ++#else ++ *dstptr++ = dr; ++ *dstptr++ = dg; ++ *dstptr++ = db; ++#endif + } + + GRUB_VIDEO_FB_ADVANCE_POINTER (srcptr, srcrowskip); +@@ -1079,24 +1131,42 @@ grub_video_fbblit_blend_RGB888_RGBA8888 (struct grub_video_fbblit_info *dst, + + if (a == 255) + { ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + *dstptr++ = sr; + *dstptr++ = sg; + *dstptr++ = sb; ++#else ++ *dstptr++ = sb; ++ *dstptr++ = sg; ++ *dstptr++ = sr; ++#endif + + continue; + } + ++#ifndef GRUB_CPU_WORDS_BIGENDIAN ++ db = dstptr[0]; ++ dg = dstptr[1]; ++ dr = dstptr[2]; ++#else + dr = dstptr[0]; + dg = dstptr[1]; + db = dstptr[2]; ++#endif + + dr = (dr * (255 - a) + sr * a) / 255; + dg = (dg * (255 - a) + sg * a) / 255; + db = (db * (255 - a) + sb * a) / 255; + ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + *dstptr++ = dr; + *dstptr++ = dg; + *dstptr++ = db; ++#else ++ *dstptr++ = db; ++ *dstptr++ = dg; ++ *dstptr++ = dr; ++#endif + } + GRUB_VIDEO_FB_ADVANCE_POINTER (srcptr, srcrowskip); + GRUB_VIDEO_FB_ADVANCE_POINTER (dstptr, dstrowskip); +@@ -1330,9 +1400,15 @@ grub_video_fbblit_blend_XXX888_1bit (struct grub_video_fbblit_info *dst, + + if (a == 255) + { ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + ((grub_uint8_t *) dstptr)[0] = color & 0xff; + ((grub_uint8_t *) dstptr)[1] = (color & 0xff00) >> 8; + ((grub_uint8_t *) dstptr)[2] = (color & 0xff0000) >> 16; ++#else ++ ((grub_uint8_t *) dstptr)[2] = color & 0xff; ++ ((grub_uint8_t *) dstptr)[1] = (color & 0xff00) >> 8; ++ ((grub_uint8_t *) dstptr)[0] = (color & 0xff0000) >> 16; ++#endif + } + else if (a != 0) + { +diff --git a/grub-core/video/fb/fbfill.c b/grub-core/video/fb/fbfill.c +index 5f3e55f..74b157b 100644 +--- a/grub-core/video/fb/fbfill.c ++++ b/grub-core/video/fb/fbfill.c +@@ -87,10 +87,15 @@ grub_video_fbfill_direct24 (struct grub_video_fbblit_info *dst, + int j; + grub_size_t rowskip; + grub_uint8_t *dstptr; ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + grub_uint8_t fill0 = (grub_uint8_t)((color >> 0) & 0xFF); + grub_uint8_t fill1 = (grub_uint8_t)((color >> 8) & 0xFF); + grub_uint8_t fill2 = (grub_uint8_t)((color >> 16) & 0xFF); +- ++#else ++ grub_uint8_t fill2 = (grub_uint8_t)((color >> 0) & 0xFF); ++ grub_uint8_t fill1 = (grub_uint8_t)((color >> 8) & 0xFF); ++ grub_uint8_t fill0 = (grub_uint8_t)((color >> 16) & 0xFF); ++#endif + /* Calculate the number of bytes to advance from the end of one line + to the beginning of the next line. */ + rowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; +@@ -122,13 +127,11 @@ grub_video_fbfill_direct16 (struct grub_video_fbblit_info *dst, + int i; + int j; + grub_size_t rowskip; +- grub_uint8_t *dstptr; +- grub_uint8_t fill0 = (grub_uint8_t)((color >> 0) & 0xFF); +- grub_uint8_t fill1 = (grub_uint8_t)((color >> 8) & 0xFF); ++ grub_uint16_t *dstptr; + + /* Calculate the number of bytes to advance from the end of one line + to the beginning of the next line. */ +- rowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ rowskip = (dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width); + + /* Get the start address. */ + dstptr = grub_video_fb_get_video_ptr (dst, x, y); +@@ -136,13 +139,10 @@ grub_video_fbfill_direct16 (struct grub_video_fbblit_info *dst, + for (j = 0; j < height; j++) + { + for (i = 0; i < width; i++) +- { +- *dstptr++ = fill0; +- *dstptr++ = fill1; +- } ++ *dstptr++ = color; + + /* Advance the dest pointer to the right location on the next line. */ +- dstptr += rowskip; ++ GRUB_VIDEO_FB_ADVANCE_POINTER (dstptr, rowskip); + } + } + +diff --git a/grub-core/video/fb/fbutil.c b/grub-core/video/fb/fbutil.c +index c7fb087..81b3860 100644 +--- a/grub-core/video/fb/fbutil.c ++++ b/grub-core/video/fb/fbutil.c +@@ -82,7 +82,11 @@ get_pixel (struct grub_video_fbblit_info *source, + { + grub_uint8_t *ptr; + ptr = grub_video_fb_get_video_ptr (source, x, y); ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ color = ptr[2] | (ptr[1] << 8) | (ptr[0] << 16); ++#else + color = ptr[0] | (ptr[1] << 8) | (ptr[2] << 16); ++#endif + } + break; + +@@ -131,7 +135,11 @@ set_pixel (struct grub_video_fbblit_info *source, + case 24: + { + grub_uint8_t *ptr; ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ grub_uint8_t *colorptr = ((grub_uint8_t *)&color) + 1; ++#else + grub_uint8_t *colorptr = (grub_uint8_t *)&color; ++#endif + + ptr = grub_video_fb_get_video_ptr (source, x, y); + +diff --git a/grub-core/video/fb/video_fb.c b/grub-core/video/fb/video_fb.c +index cfe441f..836842e 100644 +--- a/grub-core/video/fb/video_fb.c ++++ b/grub-core/video/fb/video_fb.c +@@ -59,8 +59,10 @@ static struct + + /* Specify "standard" VGA palette, some video cards may + need this and this will also be used when using RGB modes. */ +-struct grub_video_palette_data grub_video_fbstd_colors[GRUB_VIDEO_FBSTD_NUMCOLORS] = ++struct grub_video_palette_data grub_video_fbstd_colors[GRUB_VIDEO_FBSTD_EXT_NUMCOLORS] = + { ++ /* Standard (3-bit) colors. */ ++ + // {R, G, B, A} + {0x00, 0x00, 0x00, 0xFF}, // 0 = black + {0x00, 0x00, 0xA8, 0xFF}, // 1 = blue +@@ -71,6 +73,7 @@ struct grub_video_palette_data grub_video_fbstd_colors[GRUB_VIDEO_FBSTD_NUMCOLOR + {0xA8, 0x54, 0x00, 0xFF}, // 6 = brown + {0xA8, 0xA8, 0xA8, 0xFF}, // 7 = light gray + ++ /* Bright (4-bit) colors. */ + {0x54, 0x54, 0x54, 0xFF}, // 8 = dark gray + {0x54, 0x54, 0xFE, 0xFF}, // 9 = bright blue + {0x54, 0xFE, 0x54, 0xFF}, // 10 = bright green +@@ -78,7 +81,249 @@ struct grub_video_palette_data grub_video_fbstd_colors[GRUB_VIDEO_FBSTD_NUMCOLOR + {0xFE, 0x54, 0x54, 0xFF}, // 12 = bright red + {0xFE, 0x54, 0xFE, 0xFF}, // 13 = bright magenta + {0xFE, 0xFE, 0x54, 0xFF}, // 14 = yellow +- {0xFE, 0xFE, 0xFE, 0xFF} // 15 = white ++ {0xFE, 0xFE, 0xFE, 0xFF}, // 15 = white ++ ++ /* Extended (8-bit) colors. Completes preceding colors to full RGB332. */ ++ {0x00, 0x00, 0x55, 0xFF}, // RGB332 = (0, 0, 1) ++ {0x00, 0x00, 0xFF, 0xFF}, // RGB332 = (0, 0, 3) ++ {0x00, 0x24, 0x00, 0xFF}, // RGB332 = (0, 1, 0) ++ {0x00, 0x24, 0x55, 0xFF}, // RGB332 = (0, 1, 1) ++ {0x00, 0x24, 0xAA, 0xFF}, // RGB332 = (0, 1, 2) ++ {0x00, 0x24, 0xFF, 0xFF}, // RGB332 = (0, 1, 3) ++ {0x00, 0x48, 0x00, 0xFF}, // RGB332 = (0, 2, 0) ++ {0x00, 0x48, 0x55, 0xFF}, // RGB332 = (0, 2, 1) ++ {0x00, 0x48, 0xAA, 0xFF}, // RGB332 = (0, 2, 2) ++ {0x00, 0x48, 0xFF, 0xFF}, // RGB332 = (0, 2, 3) ++ {0x00, 0x6C, 0x00, 0xFF}, // RGB332 = (0, 3, 0) ++ {0x00, 0x6C, 0x55, 0xFF}, // RGB332 = (0, 3, 1) ++ {0x00, 0x6C, 0xAA, 0xFF}, // RGB332 = (0, 3, 2) ++ {0x00, 0x6C, 0xFF, 0xFF}, // RGB332 = (0, 3, 3) ++ {0x00, 0x90, 0x00, 0xFF}, // RGB332 = (0, 4, 0) ++ {0x00, 0x90, 0x55, 0xFF}, // RGB332 = (0, 4, 1) ++ {0x00, 0x90, 0xAA, 0xFF}, // RGB332 = (0, 4, 2) ++ {0x00, 0x90, 0xFF, 0xFF}, // RGB332 = (0, 4, 3) ++ {0x00, 0xB4, 0x55, 0xFF}, // RGB332 = (0, 5, 1) ++ {0x00, 0xB4, 0xFF, 0xFF}, // RGB332 = (0, 5, 3) ++ {0x00, 0xD8, 0x00, 0xFF}, // RGB332 = (0, 6, 0) ++ {0x00, 0xD8, 0x55, 0xFF}, // RGB332 = (0, 6, 1) ++ {0x00, 0xD8, 0xAA, 0xFF}, // RGB332 = (0, 6, 2) ++ {0x00, 0xD8, 0xFF, 0xFF}, // RGB332 = (0, 6, 3) ++ {0x00, 0xFC, 0x00, 0xFF}, // RGB332 = (0, 7, 0) ++ {0x00, 0xFC, 0x55, 0xFF}, // RGB332 = (0, 7, 1) ++ {0x00, 0xFC, 0xAA, 0xFF}, // RGB332 = (0, 7, 2) ++ {0x00, 0xFC, 0xFF, 0xFF}, // RGB332 = (0, 7, 3) ++ {0x24, 0x00, 0x00, 0xFF}, // RGB332 = (1, 0, 0) ++ {0x24, 0x00, 0x55, 0xFF}, // RGB332 = (1, 0, 1) ++ {0x24, 0x00, 0xAA, 0xFF}, // RGB332 = (1, 0, 2) ++ {0x24, 0x00, 0xFF, 0xFF}, // RGB332 = (1, 0, 3) ++ {0x24, 0x24, 0x00, 0xFF}, // RGB332 = (1, 1, 0) ++ {0x24, 0x24, 0x55, 0xFF}, // RGB332 = (1, 1, 1) ++ {0x24, 0x24, 0xAA, 0xFF}, // RGB332 = (1, 1, 2) ++ {0x24, 0x24, 0xFF, 0xFF}, // RGB332 = (1, 1, 3) ++ {0x24, 0x48, 0x00, 0xFF}, // RGB332 = (1, 2, 0) ++ {0x24, 0x48, 0x55, 0xFF}, // RGB332 = (1, 2, 1) ++ {0x24, 0x48, 0xAA, 0xFF}, // RGB332 = (1, 2, 2) ++ {0x24, 0x48, 0xFF, 0xFF}, // RGB332 = (1, 2, 3) ++ {0x24, 0x6C, 0x00, 0xFF}, // RGB332 = (1, 3, 0) ++ {0x24, 0x6C, 0x55, 0xFF}, // RGB332 = (1, 3, 1) ++ {0x24, 0x6C, 0xAA, 0xFF}, // RGB332 = (1, 3, 2) ++ {0x24, 0x6C, 0xFF, 0xFF}, // RGB332 = (1, 3, 3) ++ {0x24, 0x90, 0x00, 0xFF}, // RGB332 = (1, 4, 0) ++ {0x24, 0x90, 0x55, 0xFF}, // RGB332 = (1, 4, 1) ++ {0x24, 0x90, 0xAA, 0xFF}, // RGB332 = (1, 4, 2) ++ {0x24, 0x90, 0xFF, 0xFF}, // RGB332 = (1, 4, 3) ++ {0x24, 0xB4, 0x00, 0xFF}, // RGB332 = (1, 5, 0) ++ {0x24, 0xB4, 0x55, 0xFF}, // RGB332 = (1, 5, 1) ++ {0x24, 0xB4, 0xAA, 0xFF}, // RGB332 = (1, 5, 2) ++ {0x24, 0xB4, 0xFF, 0xFF}, // RGB332 = (1, 5, 3) ++ {0x24, 0xD8, 0x00, 0xFF}, // RGB332 = (1, 6, 0) ++ {0x24, 0xD8, 0x55, 0xFF}, // RGB332 = (1, 6, 1) ++ {0x24, 0xD8, 0xAA, 0xFF}, // RGB332 = (1, 6, 2) ++ {0x24, 0xD8, 0xFF, 0xFF}, // RGB332 = (1, 6, 3) ++ {0x24, 0xFC, 0x00, 0xFF}, // RGB332 = (1, 7, 0) ++ {0x24, 0xFC, 0x55, 0xFF}, // RGB332 = (1, 7, 1) ++ {0x24, 0xFC, 0xAA, 0xFF}, // RGB332 = (1, 7, 2) ++ {0x24, 0xFC, 0xFF, 0xFF}, // RGB332 = (1, 7, 3) ++ {0x48, 0x00, 0x00, 0xFF}, // RGB332 = (2, 0, 0) ++ {0x48, 0x00, 0x55, 0xFF}, // RGB332 = (2, 0, 1) ++ {0x48, 0x00, 0xAA, 0xFF}, // RGB332 = (2, 0, 2) ++ {0x48, 0x00, 0xFF, 0xFF}, // RGB332 = (2, 0, 3) ++ {0x48, 0x24, 0x00, 0xFF}, // RGB332 = (2, 1, 0) ++ {0x48, 0x24, 0x55, 0xFF}, // RGB332 = (2, 1, 1) ++ {0x48, 0x24, 0xAA, 0xFF}, // RGB332 = (2, 1, 2) ++ {0x48, 0x24, 0xFF, 0xFF}, // RGB332 = (2, 1, 3) ++ {0x48, 0x48, 0x00, 0xFF}, // RGB332 = (2, 2, 0) ++ {0x48, 0x48, 0xAA, 0xFF}, // RGB332 = (2, 2, 2) ++ {0x48, 0x6C, 0x00, 0xFF}, // RGB332 = (2, 3, 0) ++ {0x48, 0x6C, 0x55, 0xFF}, // RGB332 = (2, 3, 1) ++ {0x48, 0x6C, 0xAA, 0xFF}, // RGB332 = (2, 3, 2) ++ {0x48, 0x6C, 0xFF, 0xFF}, // RGB332 = (2, 3, 3) ++ {0x48, 0x90, 0x00, 0xFF}, // RGB332 = (2, 4, 0) ++ {0x48, 0x90, 0x55, 0xFF}, // RGB332 = (2, 4, 1) ++ {0x48, 0x90, 0xAA, 0xFF}, // RGB332 = (2, 4, 2) ++ {0x48, 0x90, 0xFF, 0xFF}, // RGB332 = (2, 4, 3) ++ {0x48, 0xB4, 0x00, 0xFF}, // RGB332 = (2, 5, 0) ++ {0x48, 0xB4, 0x55, 0xFF}, // RGB332 = (2, 5, 1) ++ {0x48, 0xB4, 0xAA, 0xFF}, // RGB332 = (2, 5, 2) ++ {0x48, 0xB4, 0xFF, 0xFF}, // RGB332 = (2, 5, 3) ++ {0x48, 0xD8, 0x00, 0xFF}, // RGB332 = (2, 6, 0) ++ {0x48, 0xD8, 0x55, 0xFF}, // RGB332 = (2, 6, 1) ++ {0x48, 0xD8, 0xAA, 0xFF}, // RGB332 = (2, 6, 2) ++ {0x48, 0xD8, 0xFF, 0xFF}, // RGB332 = (2, 6, 3) ++ {0x48, 0xFC, 0x00, 0xFF}, // RGB332 = (2, 7, 0) ++ {0x48, 0xFC, 0xAA, 0xFF}, // RGB332 = (2, 7, 2) ++ {0x6C, 0x00, 0x00, 0xFF}, // RGB332 = (3, 0, 0) ++ {0x6C, 0x00, 0x55, 0xFF}, // RGB332 = (3, 0, 1) ++ {0x6C, 0x00, 0xAA, 0xFF}, // RGB332 = (3, 0, 2) ++ {0x6C, 0x00, 0xFF, 0xFF}, // RGB332 = (3, 0, 3) ++ {0x6C, 0x24, 0x00, 0xFF}, // RGB332 = (3, 1, 0) ++ {0x6C, 0x24, 0x55, 0xFF}, // RGB332 = (3, 1, 1) ++ {0x6C, 0x24, 0xAA, 0xFF}, // RGB332 = (3, 1, 2) ++ {0x6C, 0x24, 0xFF, 0xFF}, // RGB332 = (3, 1, 3) ++ {0x6C, 0x48, 0x00, 0xFF}, // RGB332 = (3, 2, 0) ++ {0x6C, 0x48, 0x55, 0xFF}, // RGB332 = (3, 2, 1) ++ {0x6C, 0x48, 0xAA, 0xFF}, // RGB332 = (3, 2, 2) ++ {0x6C, 0x48, 0xFF, 0xFF}, // RGB332 = (3, 2, 3) ++ {0x6C, 0x6C, 0x00, 0xFF}, // RGB332 = (3, 3, 0) ++ {0x6C, 0x6C, 0x55, 0xFF}, // RGB332 = (3, 3, 1) ++ {0x6C, 0x6C, 0xAA, 0xFF}, // RGB332 = (3, 3, 2) ++ {0x6C, 0x6C, 0xFF, 0xFF}, // RGB332 = (3, 3, 3) ++ {0x6C, 0x90, 0x00, 0xFF}, // RGB332 = (3, 4, 0) ++ {0x6C, 0x90, 0x55, 0xFF}, // RGB332 = (3, 4, 1) ++ {0x6C, 0x90, 0xAA, 0xFF}, // RGB332 = (3, 4, 2) ++ {0x6C, 0x90, 0xFF, 0xFF}, // RGB332 = (3, 4, 3) ++ {0x6C, 0xB4, 0x00, 0xFF}, // RGB332 = (3, 5, 0) ++ {0x6C, 0xB4, 0x55, 0xFF}, // RGB332 = (3, 5, 1) ++ {0x6C, 0xB4, 0xAA, 0xFF}, // RGB332 = (3, 5, 2) ++ {0x6C, 0xB4, 0xFF, 0xFF}, // RGB332 = (3, 5, 3) ++ {0x6C, 0xD8, 0x00, 0xFF}, // RGB332 = (3, 6, 0) ++ {0x6C, 0xD8, 0x55, 0xFF}, // RGB332 = (3, 6, 1) ++ {0x6C, 0xD8, 0xAA, 0xFF}, // RGB332 = (3, 6, 2) ++ {0x6C, 0xD8, 0xFF, 0xFF}, // RGB332 = (3, 6, 3) ++ {0x6C, 0xFC, 0x00, 0xFF}, // RGB332 = (3, 7, 0) ++ {0x6C, 0xFC, 0x55, 0xFF}, // RGB332 = (3, 7, 1) ++ {0x6C, 0xFC, 0xAA, 0xFF}, // RGB332 = (3, 7, 2) ++ {0x6C, 0xFC, 0xFF, 0xFF}, // RGB332 = (3, 7, 3) ++ {0x90, 0x00, 0x00, 0xFF}, // RGB332 = (4, 0, 0) ++ {0x90, 0x00, 0x55, 0xFF}, // RGB332 = (4, 0, 1) ++ {0x90, 0x00, 0xAA, 0xFF}, // RGB332 = (4, 0, 2) ++ {0x90, 0x00, 0xFF, 0xFF}, // RGB332 = (4, 0, 3) ++ {0x90, 0x24, 0x00, 0xFF}, // RGB332 = (4, 1, 0) ++ {0x90, 0x24, 0x55, 0xFF}, // RGB332 = (4, 1, 1) ++ {0x90, 0x24, 0xAA, 0xFF}, // RGB332 = (4, 1, 2) ++ {0x90, 0x24, 0xFF, 0xFF}, // RGB332 = (4, 1, 3) ++ {0x90, 0x48, 0x00, 0xFF}, // RGB332 = (4, 2, 0) ++ {0x90, 0x48, 0x55, 0xFF}, // RGB332 = (4, 2, 1) ++ {0x90, 0x48, 0xAA, 0xFF}, // RGB332 = (4, 2, 2) ++ {0x90, 0x48, 0xFF, 0xFF}, // RGB332 = (4, 2, 3) ++ {0x90, 0x6C, 0x00, 0xFF}, // RGB332 = (4, 3, 0) ++ {0x90, 0x6C, 0x55, 0xFF}, // RGB332 = (4, 3, 1) ++ {0x90, 0x6C, 0xAA, 0xFF}, // RGB332 = (4, 3, 2) ++ {0x90, 0x6C, 0xFF, 0xFF}, // RGB332 = (4, 3, 3) ++ {0x90, 0x90, 0x00, 0xFF}, // RGB332 = (4, 4, 0) ++ {0x90, 0x90, 0x55, 0xFF}, // RGB332 = (4, 4, 1) ++ {0x90, 0x90, 0xAA, 0xFF}, // RGB332 = (4, 4, 2) ++ {0x90, 0x90, 0xFF, 0xFF}, // RGB332 = (4, 4, 3) ++ {0x90, 0xB4, 0x00, 0xFF}, // RGB332 = (4, 5, 0) ++ {0x90, 0xB4, 0x55, 0xFF}, // RGB332 = (4, 5, 1) ++ {0x90, 0xB4, 0xAA, 0xFF}, // RGB332 = (4, 5, 2) ++ {0x90, 0xB4, 0xFF, 0xFF}, // RGB332 = (4, 5, 3) ++ {0x90, 0xD8, 0x00, 0xFF}, // RGB332 = (4, 6, 0) ++ {0x90, 0xD8, 0x55, 0xFF}, // RGB332 = (4, 6, 1) ++ {0x90, 0xD8, 0xAA, 0xFF}, // RGB332 = (4, 6, 2) ++ {0x90, 0xD8, 0xFF, 0xFF}, // RGB332 = (4, 6, 3) ++ {0x90, 0xFC, 0x00, 0xFF}, // RGB332 = (4, 7, 0) ++ {0x90, 0xFC, 0x55, 0xFF}, // RGB332 = (4, 7, 1) ++ {0x90, 0xFC, 0xAA, 0xFF}, // RGB332 = (4, 7, 2) ++ {0x90, 0xFC, 0xFF, 0xFF}, // RGB332 = (4, 7, 3) ++ {0xB4, 0x00, 0x55, 0xFF}, // RGB332 = (5, 0, 1) ++ {0xB4, 0x00, 0xFF, 0xFF}, // RGB332 = (5, 0, 3) ++ {0xB4, 0x24, 0x00, 0xFF}, // RGB332 = (5, 1, 0) ++ {0xB4, 0x24, 0x55, 0xFF}, // RGB332 = (5, 1, 1) ++ {0xB4, 0x24, 0xAA, 0xFF}, // RGB332 = (5, 1, 2) ++ {0xB4, 0x24, 0xFF, 0xFF}, // RGB332 = (5, 1, 3) ++ {0xB4, 0x48, 0x55, 0xFF}, // RGB332 = (5, 2, 1) ++ {0xB4, 0x48, 0xAA, 0xFF}, // RGB332 = (5, 2, 2) ++ {0xB4, 0x48, 0xFF, 0xFF}, // RGB332 = (5, 2, 3) ++ {0xB4, 0x6C, 0x00, 0xFF}, // RGB332 = (5, 3, 0) ++ {0xB4, 0x6C, 0x55, 0xFF}, // RGB332 = (5, 3, 1) ++ {0xB4, 0x6C, 0xAA, 0xFF}, // RGB332 = (5, 3, 2) ++ {0xB4, 0x6C, 0xFF, 0xFF}, // RGB332 = (5, 3, 3) ++ {0xB4, 0x90, 0x00, 0xFF}, // RGB332 = (5, 4, 0) ++ {0xB4, 0x90, 0x55, 0xFF}, // RGB332 = (5, 4, 1) ++ {0xB4, 0x90, 0xAA, 0xFF}, // RGB332 = (5, 4, 2) ++ {0xB4, 0x90, 0xFF, 0xFF}, // RGB332 = (5, 4, 3) ++ {0xB4, 0xB4, 0x00, 0xFF}, // RGB332 = (5, 5, 0) ++ {0xB4, 0xB4, 0x55, 0xFF}, // RGB332 = (5, 5, 1) ++ {0xB4, 0xB4, 0xFF, 0xFF}, // RGB332 = (5, 5, 3) ++ {0xB4, 0xD8, 0x00, 0xFF}, // RGB332 = (5, 6, 0) ++ {0xB4, 0xD8, 0x55, 0xFF}, // RGB332 = (5, 6, 1) ++ {0xB4, 0xD8, 0xAA, 0xFF}, // RGB332 = (5, 6, 2) ++ {0xB4, 0xD8, 0xFF, 0xFF}, // RGB332 = (5, 6, 3) ++ {0xB4, 0xFC, 0x00, 0xFF}, // RGB332 = (5, 7, 0) ++ {0xB4, 0xFC, 0x55, 0xFF}, // RGB332 = (5, 7, 1) ++ {0xB4, 0xFC, 0xAA, 0xFF}, // RGB332 = (5, 7, 2) ++ {0xB4, 0xFC, 0xFF, 0xFF}, // RGB332 = (5, 7, 3) ++ {0xD8, 0x00, 0x00, 0xFF}, // RGB332 = (6, 0, 0) ++ {0xD8, 0x00, 0x55, 0xFF}, // RGB332 = (6, 0, 1) ++ {0xD8, 0x00, 0xAA, 0xFF}, // RGB332 = (6, 0, 2) ++ {0xD8, 0x00, 0xFF, 0xFF}, // RGB332 = (6, 0, 3) ++ {0xD8, 0x24, 0x00, 0xFF}, // RGB332 = (6, 1, 0) ++ {0xD8, 0x24, 0x55, 0xFF}, // RGB332 = (6, 1, 1) ++ {0xD8, 0x24, 0xAA, 0xFF}, // RGB332 = (6, 1, 2) ++ {0xD8, 0x24, 0xFF, 0xFF}, // RGB332 = (6, 1, 3) ++ {0xD8, 0x48, 0x00, 0xFF}, // RGB332 = (6, 2, 0) ++ {0xD8, 0x48, 0x55, 0xFF}, // RGB332 = (6, 2, 1) ++ {0xD8, 0x48, 0xAA, 0xFF}, // RGB332 = (6, 2, 2) ++ {0xD8, 0x48, 0xFF, 0xFF}, // RGB332 = (6, 2, 3) ++ {0xD8, 0x6C, 0x00, 0xFF}, // RGB332 = (6, 3, 0) ++ {0xD8, 0x6C, 0x55, 0xFF}, // RGB332 = (6, 3, 1) ++ {0xD8, 0x6C, 0xAA, 0xFF}, // RGB332 = (6, 3, 2) ++ {0xD8, 0x6C, 0xFF, 0xFF}, // RGB332 = (6, 3, 3) ++ {0xD8, 0x90, 0x00, 0xFF}, // RGB332 = (6, 4, 0) ++ {0xD8, 0x90, 0x55, 0xFF}, // RGB332 = (6, 4, 1) ++ {0xD8, 0x90, 0xAA, 0xFF}, // RGB332 = (6, 4, 2) ++ {0xD8, 0x90, 0xFF, 0xFF}, // RGB332 = (6, 4, 3) ++ {0xD8, 0xB4, 0x00, 0xFF}, // RGB332 = (6, 5, 0) ++ {0xD8, 0xB4, 0x55, 0xFF}, // RGB332 = (6, 5, 1) ++ {0xD8, 0xB4, 0xAA, 0xFF}, // RGB332 = (6, 5, 2) ++ {0xD8, 0xB4, 0xFF, 0xFF}, // RGB332 = (6, 5, 3) ++ {0xD8, 0xD8, 0x00, 0xFF}, // RGB332 = (6, 6, 0) ++ {0xD8, 0xD8, 0x55, 0xFF}, // RGB332 = (6, 6, 1) ++ {0xD8, 0xD8, 0xAA, 0xFF}, // RGB332 = (6, 6, 2) ++ {0xD8, 0xD8, 0xFF, 0xFF}, // RGB332 = (6, 6, 3) ++ {0xD8, 0xFC, 0x00, 0xFF}, // RGB332 = (6, 7, 0) ++ {0xD8, 0xFC, 0x55, 0xFF}, // RGB332 = (6, 7, 1) ++ {0xD8, 0xFC, 0xAA, 0xFF}, // RGB332 = (6, 7, 2) ++ {0xD8, 0xFC, 0xFF, 0xFF}, // RGB332 = (6, 7, 3) ++ {0xFC, 0x00, 0x00, 0xFF}, // RGB332 = (7, 0, 0) ++ {0xFC, 0x00, 0x55, 0xFF}, // RGB332 = (7, 0, 1) ++ {0xFC, 0x00, 0xAA, 0xFF}, // RGB332 = (7, 0, 2) ++ {0xFC, 0x00, 0xFF, 0xFF}, // RGB332 = (7, 0, 3) ++ {0xFC, 0x24, 0x00, 0xFF}, // RGB332 = (7, 1, 0) ++ {0xFC, 0x24, 0x55, 0xFF}, // RGB332 = (7, 1, 1) ++ {0xFC, 0x24, 0xAA, 0xFF}, // RGB332 = (7, 1, 2) ++ {0xFC, 0x24, 0xFF, 0xFF}, // RGB332 = (7, 1, 3) ++ {0xFC, 0x48, 0x00, 0xFF}, // RGB332 = (7, 2, 0) ++ {0xFC, 0x48, 0xAA, 0xFF}, // RGB332 = (7, 2, 2) ++ {0xFC, 0x6C, 0x00, 0xFF}, // RGB332 = (7, 3, 0) ++ {0xFC, 0x6C, 0x55, 0xFF}, // RGB332 = (7, 3, 1) ++ {0xFC, 0x6C, 0xAA, 0xFF}, // RGB332 = (7, 3, 2) ++ {0xFC, 0x6C, 0xFF, 0xFF}, // RGB332 = (7, 3, 3) ++ {0xFC, 0x90, 0x00, 0xFF}, // RGB332 = (7, 4, 0) ++ {0xFC, 0x90, 0x55, 0xFF}, // RGB332 = (7, 4, 1) ++ {0xFC, 0x90, 0xAA, 0xFF}, // RGB332 = (7, 4, 2) ++ {0xFC, 0x90, 0xFF, 0xFF}, // RGB332 = (7, 4, 3) ++ {0xFC, 0xB4, 0x00, 0xFF}, // RGB332 = (7, 5, 0) ++ {0xFC, 0xB4, 0x55, 0xFF}, // RGB332 = (7, 5, 1) ++ {0xFC, 0xB4, 0xAA, 0xFF}, // RGB332 = (7, 5, 2) ++ {0xFC, 0xB4, 0xFF, 0xFF}, // RGB332 = (7, 5, 3) ++ {0xFC, 0xD8, 0x00, 0xFF}, // RGB332 = (7, 6, 0) ++ {0xFC, 0xD8, 0x55, 0xFF}, // RGB332 = (7, 6, 1) ++ {0xFC, 0xD8, 0xAA, 0xFF}, // RGB332 = (7, 6, 2) ++ {0xFC, 0xD8, 0xFF, 0xFF}, // RGB332 = (7, 6, 3) ++ {0xFC, 0xFC, 0x00, 0xFF}, // RGB332 = (7, 7, 0) ++ {0xFC, 0xFC, 0xAA, 0xFF}, // RGB332 = (7, 7, 2) + }; + + grub_err_t +@@ -487,38 +732,21 @@ grub_video_fb_fill_rect (grub_video_color_t color, int x, int y, + + /* Try to figure out more optimized version. Note that color is already + mapped to target format so we can make assumptions based on that. */ +- if (target.mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888) +- { +- grub_video_fbfill_direct32 (&target, color, x, y, +- width, height); +- return GRUB_ERR_NONE; +- } +- else if (target.mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888) ++ switch (target.mode_info->bytes_per_pixel) + { ++ case 4: + grub_video_fbfill_direct32 (&target, color, x, y, +- width, height); ++ width, height); + return GRUB_ERR_NONE; +- } +- else if (target.mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGB_888) +- { ++ case 3: + grub_video_fbfill_direct24 (&target, color, x, y, +- width, height); ++ width, height); + return GRUB_ERR_NONE; +- } +- else if (target.mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGB_565) +- { ++ case 2: + grub_video_fbfill_direct16 (&target, color, x, y, + width, height); + return GRUB_ERR_NONE; +- } +- else if (target.mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGR_565) +- { +- grub_video_fbfill_direct16 (&target, color, x, y, +- width, height); +- return GRUB_ERR_NONE; +- } +- else if (target.mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR) +- { ++ case 1: + grub_video_fbfill_direct8 (&target, color, x, y, + width, height); + return GRUB_ERR_NONE; +diff --git a/grub-core/video/i386/pc/vbe.c b/grub-core/video/i386/pc/vbe.c +index f112f15..6f7ede1 100644 +--- a/grub-core/video/i386/pc/vbe.c ++++ b/grub-core/video/i386/pc/vbe.c +@@ -938,7 +938,10 @@ vbe2videoinfo (grub_uint32_t mode, + else + mode_info->pitch = vbeinfo->bytes_per_scan_line; + +- mode_info->number_of_colors = 256; /* TODO: fix me. */ ++ if (mode_info->mode_type & GRUB_VIDEO_MODE_TYPE_INDEX_COLOR) ++ mode_info->number_of_colors = 16; ++ else ++ mode_info->number_of_colors = 256; + mode_info->red_mask_size = vbeinfo->red_mask_size; + mode_info->red_field_pos = vbeinfo->red_field_position; + mode_info->green_mask_size = vbeinfo->green_mask_size; +diff --git a/grub-core/video/ieee1275.c b/grub-core/video/ieee1275.c +index 5830b68..5c58702 100644 +--- a/grub-core/video/ieee1275.c ++++ b/grub-core/video/ieee1275.c +@@ -43,6 +43,20 @@ static struct + grub_uint8_t *ptr; + } framebuffer; + ++static struct grub_video_palette_data serial_colors[] = ++ { ++ // {R, G, B} ++ {0x00, 0x00, 0x00, 0xFF}, // 0 = black ++ {0xA8, 0x00, 0x00, 0xFF}, // 1 = red ++ {0x00, 0xA8, 0x00, 0xFF}, // 2 = green ++ {0xFE, 0xFE, 0x54, 0xFF}, // 3 = yellow ++ {0x00, 0x00, 0xA8, 0xFF}, // 4 = blue ++ {0xA8, 0x00, 0xA8, 0xFF}, // 5 = magenta ++ {0x00, 0xA8, 0xA8, 0xFF}, // 6 = cyan ++ {0xFE, 0xFE, 0xFE, 0xFF} // 7 = white ++ }; ++ ++ + static grub_err_t + grub_video_ieee1275_set_palette (unsigned int start, unsigned int count, + struct grub_video_palette_data *palette_data); +@@ -123,11 +137,63 @@ grub_video_ieee1275_fill_mode_info (grub_ieee1275_phandle_t dev, + return grub_error (GRUB_ERR_IO, "Couldn't retrieve display pitch."); + out->pitch = tmp; + +- out->mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR; +- out->bpp = 8; +- out->bytes_per_pixel = 1; ++ if (grub_ieee1275_get_integer_property (dev, "depth", &tmp, ++ sizeof (tmp), 0)) ++ tmp = 4; ++ ++ out->mode_type = GRUB_VIDEO_MODE_TYPE_RGB; ++ out->bpp = tmp; ++ out->bytes_per_pixel = (out->bpp + GRUB_CHAR_BIT - 1) / GRUB_CHAR_BIT; + out->number_of_colors = 256; + ++ switch (tmp) ++ { ++ case 4: ++ case 8: ++ out->mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR; ++ out->bpp = 8; ++ if (have_setcolors) ++ out->number_of_colors = 1 << tmp; ++ else ++ out->number_of_colors = 8; ++ break; ++ ++ /* FIXME: we may need byteswapping for the following. Currently it ++ was seen only on qemu and no byteswap was needed. */ ++ case 15: ++ out->red_mask_size = 5; ++ out->red_field_pos = 10; ++ out->green_mask_size = 5; ++ out->green_field_pos = 5; ++ out->blue_mask_size = 5; ++ out->blue_field_pos = 0; ++ break; ++ ++ case 16: ++ out->red_mask_size = 5; ++ out->red_field_pos = 11; ++ out->green_mask_size = 6; ++ out->green_field_pos = 5; ++ out->blue_mask_size = 5; ++ out->blue_field_pos = 0; ++ break; ++ ++ case 32: ++ out->reserved_mask_size = 8; ++ out->reserved_field_pos = 24; ++ ++ case 24: ++ out->red_mask_size = 8; ++ out->red_field_pos = 16; ++ out->green_mask_size = 8; ++ out->green_field_pos = 8; ++ out->blue_mask_size = 8; ++ out->blue_field_pos = 0; ++ break; ++ default: ++ return grub_error (GRUB_ERR_IO, "unsupported video depth %d", tmp); ++ } ++ + out->blit_format = grub_video_get_blit_format (out); + return GRUB_ERR_NONE; + } +@@ -192,7 +258,7 @@ grub_video_ieee1275_setup (unsigned int width, unsigned int height, + if (err) + return err; + +- grub_video_ieee1275_set_palette (0, GRUB_VIDEO_FBSTD_NUMCOLORS, ++ grub_video_ieee1275_set_palette (0, framebuffer.mode_info.number_of_colors, + grub_video_fbstd_colors); + + return err; +@@ -214,25 +280,35 @@ static grub_err_t + grub_video_ieee1275_set_palette (unsigned int start, unsigned int count, + struct grub_video_palette_data *palette_data) + { +- grub_err_t err; ++ unsigned col; + struct grub_video_palette_data fb_palette_data[256]; ++ grub_err_t err; ++ ++ if (!(framebuffer.mode_info.mode_type & GRUB_VIDEO_MODE_TYPE_INDEX_COLOR)) ++ return grub_video_fb_set_palette (start, count, palette_data); ++ ++ if (!have_setcolors) ++ return grub_video_fb_set_palette (0, ARRAY_SIZE (serial_colors), ++ serial_colors); ++ ++ if (start >= framebuffer.mode_info.number_of_colors) ++ return GRUB_ERR_NONE; ++ ++ if (start + count > framebuffer.mode_info.number_of_colors) ++ count = framebuffer.mode_info.number_of_colors - start; + + err = grub_video_fb_set_palette (start, count, palette_data); + if (err) + return err; + +- grub_video_fb_get_palette (0, ARRAY_SIZE (fb_palette_data), fb_palette_data); +- + /* Set colors. */ +- if (have_setcolors) +- { +- unsigned col; +- for (col = 0; col < ARRAY_SIZE (fb_palette_data); col++) +- grub_ieee1275_set_color (stdout_ihandle, col, fb_palette_data[col].r, +- fb_palette_data[col].g, +- fb_palette_data[col].b); +- } ++ grub_video_fb_get_palette (0, ARRAY_SIZE (fb_palette_data), ++ fb_palette_data); + ++ for (col = 0; col < ARRAY_SIZE (fb_palette_data); col++) ++ grub_ieee1275_set_color (stdout_ihandle, col, fb_palette_data[col].r, ++ fb_palette_data[col].g, ++ fb_palette_data[col].b); + return GRUB_ERR_NONE; + } + +diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c +index f5e63ae..33f28c3 100644 +--- a/grub-core/video/readers/jpeg.c ++++ b/grub-core/video/readers/jpeg.c +@@ -528,7 +528,11 @@ grub_jpeg_ycrcb_to_rgb (int yy, int cr, int cb, grub_uint8_t * rgb) + dd = 0; + if (dd > 255) + dd = 255; ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ rgb[2] = dd; ++#else + *(rgb++) = dd; ++#endif + + /* Green */ + dd = yy - ((cb * CONST (0.34414) + cr * CONST (0.71414)) >> SHIFT_BITS); +@@ -536,7 +540,11 @@ grub_jpeg_ycrcb_to_rgb (int yy, int cr, int cb, grub_uint8_t * rgb) + dd = 0; + if (dd > 255) + dd = 255; ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ rgb[1] = dd; ++#else + *(rgb++) = dd; ++#endif + + /* Blue */ + dd = yy + ((cb * CONST (1.772)) >> SHIFT_BITS); +@@ -544,7 +552,12 @@ grub_jpeg_ycrcb_to_rgb (int yy, int cr, int cb, grub_uint8_t * rgb) + dd = 0; + if (dd > 255) + dd = 255; ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ rgb[0] = dd; ++ rgb += 3; ++#else + *(rgb++) = dd; ++#endif + } + + static grub_err_t +diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c +index 7ef7e3b..6cae896 100644 +--- a/grub-core/video/readers/png.c ++++ b/grub-core/video/readers/png.c +@@ -253,9 +253,12 @@ grub_png_decode_image_header (struct grub_png_data *data) + "png: color type not supported"); + + if (data->is_16bit) +- { + data->bpp <<= 1; + ++#ifndef GRUB_CPU_WORDS_BIGENDIAN ++ if (data->is_16bit) ++#endif ++ { + data->image_data = grub_malloc (data->image_height * + data->image_width * data->bpp); + if (grub_errno) +@@ -263,11 +266,13 @@ grub_png_decode_image_header (struct grub_png_data *data) + + data->cur_rgb = data->image_data; + } ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + else + { + data->image_data = 0; + data->cur_rgb = (*data->bitmap)->data; + } ++#endif + + data->raw_bytes = data->image_height * (data->image_width + 1) * data->bpp; + +@@ -536,7 +541,7 @@ grub_png_output_byte (struct grub_png_data *data, grub_uint8_t n) + data->cur_filter = n; + } + else +- *(data->cur_rgb++) = n; ++ *data->cur_rgb++ = n; + + data->cur_column++; + row_bytes = data->image_width * data->bpp; +@@ -772,12 +777,60 @@ grub_png_convert_image (struct grub_png_data *data) + grub_uint8_t *d1, *d2; + + d1 = (*data->bitmap)->data; +- d2 = data->image_data + 1; ++ d2 = data->image_data + data->is_16bit; + + /* Only copy the upper 8 bit. */ ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + for (i = 0; i < (data->image_width * data->image_height * data->bpp >> 1); + i++, d1++, d2+=2) + *d1 = *d2; ++#else ++ switch (data->bpp) ++ { ++ /* 16-bit with alpha. */ ++ case 8: ++ for (i = 0; i < (data->image_width * data->image_height); ++ i++, d1 += 4, d2+=8) ++ { ++ d1[0] = d2[7]; ++ d1[1] = d2[5]; ++ d1[2] = d2[3]; ++ d1[3] = d2[1]; ++ } ++ break; ++ /* 16-bit without alpha. */ ++ case 6: ++ for (i = 0; i < (data->image_width * data->image_height); ++ i++, d1 += 3, d2+=6) ++ { ++ d1[0] = d2[5]; ++ d1[1] = d2[3]; ++ d1[2] = d2[1]; ++ } ++ break; ++ /* 8-bit with alpha. */ ++ case 4: ++ for (i = 0; i < (data->image_width * data->image_height); ++ i++, d1 += 4, d2 += 4) ++ { ++ d1[0] = d2[3]; ++ d1[1] = d2[2]; ++ d1[2] = d2[1]; ++ d1[3] = d2[0]; ++ } ++ break; ++ /* 8-bit without alpha. */ ++ case 3: ++ for (i = 0; i < (data->image_width * data->image_height); ++ i++, d1 += 3, d2 += 3) ++ { ++ d1[0] = d2[2]; ++ d1[1] = d2[1]; ++ d1[2] = d2[0]; ++ } ++ break; ++ } ++#endif + } + + static grub_err_t +@@ -816,7 +869,9 @@ grub_png_decode_png (struct grub_png_data *data) + break; + + case PNG_CHUNK_IEND: ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + if (data->is_16bit) ++#endif + grub_png_convert_image (data); + + return grub_errno; +diff --git a/grub-core/video/sis315pro.c b/grub-core/video/sis315pro.c +index a986669..cf45493 100644 +--- a/grub-core/video/sis315pro.c ++++ b/grub-core/video/sis315pro.c +@@ -152,7 +152,7 @@ grub_video_sis315pro_setup (unsigned int width, unsigned int height, + framebuffer.mode_info.bpp = 8; + framebuffer.mode_info.bytes_per_pixel = 1; + framebuffer.mode_info.pitch = 640 * 1; +- framebuffer.mode_info.number_of_colors = 256; ++ framebuffer.mode_info.number_of_colors = 16; + framebuffer.mode_info.red_mask_size = 0; + framebuffer.mode_info.red_field_pos = 0; + framebuffer.mode_info.green_mask_size = 0; +@@ -372,7 +372,7 @@ grub_video_sis315pro_setup (unsigned int width, unsigned int height, + return err; + + /* Copy default palette to initialize emulated palette. */ +- err = grub_video_fb_set_palette (0, GRUB_VIDEO_FBSTD_NUMCOLORS, ++ err = grub_video_fb_set_palette (0, GRUB_VIDEO_FBSTD_EXT_NUMCOLORS, + grub_video_fbstd_colors); + #endif + return err; +diff --git a/include/grub/video_fb.h b/include/grub/video_fb.h +index 0628467..ffe16c3 100644 +--- a/include/grub/video_fb.h ++++ b/include/grub/video_fb.h +@@ -31,7 +31,9 @@ struct grub_video_fbblit_info; + struct grub_video_fbrender_target; + + #define GRUB_VIDEO_FBSTD_NUMCOLORS 16 +-extern struct grub_video_palette_data EXPORT_VAR(grub_video_fbstd_colors)[GRUB_VIDEO_FBSTD_NUMCOLORS]; ++#define GRUB_VIDEO_FBSTD_EXT_NUMCOLORS 256 ++ ++extern struct grub_video_palette_data EXPORT_VAR(grub_video_fbstd_colors)[GRUB_VIDEO_FBSTD_EXT_NUMCOLORS]; + + grub_err_t + EXPORT_FUNC(grub_video_fb_init) (void); +-- +1.8.2.1 + diff --git a/0406-grub-core-normal-term.c-print_ucs4_real-Fix-startwid.patch b/0406-grub-core-normal-term.c-print_ucs4_real-Fix-startwid.patch new file mode 100644 index 0000000..c36d50e --- /dev/null +++ b/0406-grub-core-normal-term.c-print_ucs4_real-Fix-startwid.patch @@ -0,0 +1,41 @@ +From d5e9a65c59adfe1fee4027a611ec8e9e74145f4c Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 3 May 2013 13:56:45 +0200 +Subject: [PATCH 406/471] * grub-core/normal/term.c (print_ucs4_real): + Fix startwidth in dry run. + +--- + ChangeLog | 4 ++++ + grub-core/normal/term.c | 4 ++-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 3ff4a05..9e99eb5 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-05-03 Vladimir Serbinenko ++ ++ * grub-core/normal/term.c (print_ucs4_real): Fix startwidth in dry run. ++ + 2013-05-02 Vladimir Serbinenko + + Several fixes to ieee1275 and big-endian video. +diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c +index f9620f6..9764423 100644 +--- a/grub-core/normal/term.c ++++ b/grub-core/normal/term.c +@@ -920,8 +920,8 @@ print_ucs4_real (const grub_uint32_t * str, + get_maxwidth (term, + margin_left, + margin_right), +- get_startwidth (term, +- margin_left), ++ dry_run ? 0 : get_startwidth (term, ++ margin_left), + contchar, pos, !!contchar); + if (visual_len < 0) + { +-- +1.8.2.1 + diff --git a/0407-grub-core-gfxmenu-view.c-grub_gfxmenu_view_new-Clear.patch b/0407-grub-core-gfxmenu-view.c-grub_gfxmenu_view_new-Clear.patch new file mode 100644 index 0000000..06ebd1d --- /dev/null +++ b/0407-grub-core-gfxmenu-view.c-grub_gfxmenu_view_new-Clear.patch @@ -0,0 +1,64 @@ +From f11cb55e6d2efcccb2be34942622f18a40dd1218 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 3 May 2013 14:02:49 +0200 +Subject: [PATCH 407/471] * grub-core/gfxmenu/view.c + (grub_gfxmenu_view_new): Clear grub_gfxmenu_timeout_notifications. + (grub_gfxmenu_view_destroy): Likewise. + +--- + ChangeLog | 6 ++++++ + grub-core/gfxmenu/view.c | 15 +++++++++++++++ + 2 files changed, 21 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 9e99eb5..858f0b0 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,11 @@ + 2013-05-03 Vladimir Serbinenko + ++ * grub-core/gfxmenu/view.c (grub_gfxmenu_view_new): Clear ++ grub_gfxmenu_timeout_notifications. ++ (grub_gfxmenu_view_destroy): Likewise. ++ ++2013-05-03 Vladimir Serbinenko ++ + * grub-core/normal/term.c (print_ucs4_real): Fix startwidth in dry run. + + 2013-05-02 Vladimir Serbinenko +diff --git a/grub-core/gfxmenu/view.c b/grub-core/gfxmenu/view.c +index 475fc76..bcf6399 100644 +--- a/grub-core/gfxmenu/view.c ++++ b/grub-core/gfxmenu/view.c +@@ -58,6 +58,14 @@ grub_gfxmenu_view_new (const char *theme_path, + if (! view) + return 0; + ++ while (grub_gfxmenu_timeout_notifications) ++ { ++ struct grub_gfxmenu_timeout_notify *p; ++ p = grub_gfxmenu_timeout_notifications; ++ grub_gfxmenu_timeout_notifications = grub_gfxmenu_timeout_notifications->next; ++ grub_free (p); ++ } ++ + view->screen.x = 0; + view->screen.y = 0; + view->screen.width = width; +@@ -105,6 +113,13 @@ grub_gfxmenu_view_destroy (grub_gfxmenu_view_t view) + { + if (!view) + return; ++ while (grub_gfxmenu_timeout_notifications) ++ { ++ struct grub_gfxmenu_timeout_notify *p; ++ p = grub_gfxmenu_timeout_notifications; ++ grub_gfxmenu_timeout_notifications = grub_gfxmenu_timeout_notifications->next; ++ grub_free (p); ++ } + grub_video_bitmap_destroy (view->desktop_image); + if (view->terminal_box) + view->terminal_box->destroy (view->terminal_box); +-- +1.8.2.1 + diff --git a/0408-include-grub-gui.h-grub_gfxmenu_timeout_unregister-F.patch b/0408-include-grub-gui.h-grub_gfxmenu_timeout_unregister-F.patch new file mode 100644 index 0000000..1230e90 --- /dev/null +++ b/0408-include-grub-gui.h-grub_gfxmenu_timeout_unregister-F.patch @@ -0,0 +1,41 @@ +From f2c269eb161b7b32d52b6c818d8181c1d2b6d993 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 3 May 2013 14:05:57 +0200 +Subject: [PATCH 408/471] * include/grub/gui.h + (grub_gfxmenu_timeout_unregister): Free cb descriptor. + +--- + ChangeLog | 5 +++++ + include/grub/gui.h | 1 + + 2 files changed, 6 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 858f0b0..9e8884a 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-03 Vladimir Serbinenko + ++ * include/grub/gui.h (grub_gfxmenu_timeout_unregister): Free cb ++ descriptor. ++ ++2013-05-03 Vladimir Serbinenko ++ + * grub-core/gfxmenu/view.c (grub_gfxmenu_view_new): Clear + grub_gfxmenu_timeout_notifications. + (grub_gfxmenu_view_destroy): Likewise. +diff --git a/include/grub/gui.h b/include/grub/gui.h +index 4b8ec89..6f81862 100644 +--- a/include/grub/gui.h ++++ b/include/grub/gui.h +@@ -112,6 +112,7 @@ grub_gfxmenu_timeout_unregister (grub_gui_component_t self) + if (q->self == self) + { + *p = q->next; ++ grub_free (q); + break; + } + } +-- +1.8.2.1 + diff --git a/0409-grub-core-video-fb-fbblit.c-grub_video_fbblit_blend_.patch b/0409-grub-core-video-fb-fbblit.c-grub_video_fbblit_blend_.patch new file mode 100644 index 0000000..29e1bd5 --- /dev/null +++ b/0409-grub-core-video-fb-fbblit.c-grub_video_fbblit_blend_.patch @@ -0,0 +1,74 @@ +From c76c33ca623202ad8473fd590e934db4bfa38256 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 3 May 2013 14:07:30 +0200 +Subject: [PATCH 409/471] * grub-core/video/fb/fbblit.c + (grub_video_fbblit_blend_BGR888_RGBA8888): Fix order bug. + (grub_video_fbblit_blend_RGB888_RGBA8888): Likewise. + +--- + ChangeLog | 6 ++++++ + grub-core/video/fb/fbblit.c | 19 +++++++++++++------ + 2 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 9e8884a..c26b110 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,11 @@ + 2013-05-03 Vladimir Serbinenko + ++ * grub-core/video/fb/fbblit.c (grub_video_fbblit_blend_BGR888_RGBA8888): ++ Fix order bug. ++ (grub_video_fbblit_blend_RGB888_RGBA8888): Likewise. ++ ++2013-05-03 Vladimir Serbinenko ++ + * include/grub/gui.h (grub_gfxmenu_timeout_unregister): Free cb + descriptor. + +diff --git a/grub-core/video/fb/fbblit.c b/grub-core/video/fb/fbblit.c +index 13e2926..541a0ce 100644 +--- a/grub-core/video/fb/fbblit.c ++++ b/grub-core/video/fb/fbblit.c +@@ -986,11 +986,18 @@ grub_video_fbblit_blend_BGR888_RGBA8888 (struct grub_video_fbblit_info *dst, + /* General pixel color blending. */ + color = *dstptr; + ++#ifndef GRUB_CPU_WORDS_BIGENDIAN + db = dstptr[0]; +- db = (db * (255 - a) + sb * a) / 255; + dg = dstptr[1]; +- dg = (dg * (255 - a) + sg * a) / 255; + dr = dstptr[2]; ++#else ++ dr = dstptr[0]; ++ dg = dstptr[1]; ++ db = dstptr[2]; ++#endif ++ ++ db = (db * (255 - a) + sb * a) / 255; ++ dg = (dg * (255 - a) + sg * a) / 255; + dr = (dr * (255 - a) + sr * a) / 255; + } + +@@ -1145,13 +1152,13 @@ grub_video_fbblit_blend_RGB888_RGBA8888 (struct grub_video_fbblit_info *dst, + } + + #ifndef GRUB_CPU_WORDS_BIGENDIAN +- db = dstptr[0]; +- dg = dstptr[1]; +- dr = dstptr[2]; +-#else + dr = dstptr[0]; + dg = dstptr[1]; + db = dstptr[2]; ++#else ++ db = dstptr[0]; ++ dg = dstptr[1]; ++ dr = dstptr[2]; + #endif + + dr = (dr * (255 - a) + sr * a) / 255; +-- +1.8.2.1 + diff --git a/0410-grub-core-gfxmenu-gfxmenu.c-grub_gfxmenu_try-Allow-s.patch b/0410-grub-core-gfxmenu-gfxmenu.c-grub_gfxmenu_try-Allow-s.patch new file mode 100644 index 0000000..f764490 --- /dev/null +++ b/0410-grub-core-gfxmenu-gfxmenu.c-grub_gfxmenu_try-Allow-s.patch @@ -0,0 +1,72 @@ +From e8aa1eb895298af57764ec03ff6df44a48b1f7d1 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 3 May 2013 14:08:51 +0200 +Subject: [PATCH 410/471] * grub-core/gfxmenu/gfxmenu.c + (grub_gfxmenu_try): Allow specifying the theme path relative to + $prefix/themes. + +--- + ChangeLog | 5 +++++ + grub-core/gfxmenu/gfxmenu.c | 17 +++++++++++++++-- + 2 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index c26b110..ed99c80 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-03 Vladimir Serbinenko + ++ * grub-core/gfxmenu/gfxmenu.c (grub_gfxmenu_try): Allow specifying ++ the theme path relative to $prefix/themes. ++ ++2013-05-03 Vladimir Serbinenko ++ + * grub-core/video/fb/fbblit.c (grub_video_fbblit_blend_BGR888_RGBA8888): + Fix order bug. + (grub_video_fbblit_blend_RGB888_RGBA8888): Likewise. +diff --git a/grub-core/gfxmenu/gfxmenu.c b/grub-core/gfxmenu/gfxmenu.c +index 09e8621..51110a6 100644 +--- a/grub-core/gfxmenu/gfxmenu.c ++++ b/grub-core/gfxmenu/gfxmenu.c +@@ -53,6 +53,7 @@ grub_gfxmenu_try (int entry, grub_menu_t menu, int nested) + { + grub_gfxmenu_view_t view = NULL; + const char *theme_path; ++ char *full_theme_path = 0; + struct grub_menu_viewer *instance; + grub_err_t err; + struct grub_video_mode_info mode_info; +@@ -70,15 +71,27 @@ grub_gfxmenu_try (int entry, grub_menu_t menu, int nested) + if (err) + return err; + +- if (!cached_view || grub_strcmp (cached_view->theme_path, theme_path) != 0 ++ if (theme_path[0] != '/' && theme_path[0] != '(') ++ { ++ const char *prefix; ++ prefix = grub_env_get ("prefix"); ++ full_theme_path = grub_xasprintf ("%s/themes/%s", ++ prefix, ++ theme_path); ++ } ++ ++ if (!cached_view || grub_strcmp (cached_view->theme_path, ++ full_theme_path ? : theme_path) != 0 + || cached_view->screen.width != mode_info.width + || cached_view->screen.height != mode_info.height) + { + grub_free (cached_view); + /* Create the view. */ +- cached_view = grub_gfxmenu_view_new (theme_path, mode_info.width, ++ cached_view = grub_gfxmenu_view_new (full_theme_path ? : theme_path, ++ mode_info.width, + mode_info.height); + } ++ grub_free (full_theme_path); + + if (! cached_view) + { +-- +1.8.2.1 + diff --git a/0411-New-series-of-tests-for-gfxterm-and-gfxmenu.patch b/0411-New-series-of-tests-for-gfxterm-and-gfxmenu.patch new file mode 100644 index 0000000..35a9406 --- /dev/null +++ b/0411-New-series-of-tests-for-gfxterm-and-gfxmenu.patch @@ -0,0 +1,891 @@ +From 5a030df7b1a5e9a15689be38a09c7ff37d874fbc Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 3 May 2013 14:09:55 +0200 +Subject: [PATCH 411/471] New series of tests for gfxterm and gfxmenu. + +--- + ChangeLog | 4 + + grub-core/Makefile.core.def | 5 + + grub-core/tests/checksums.c | 108 ++++++++++--- + grub-core/tests/fake_input.c | 2 + + grub-core/tests/gfxterm_menu.c | 113 ++++++++++++++ + grub-core/tests/lib/functional_test.c | 3 +- + grub-core/tests/video_checksum.c | 204 ++++++++++++++++++++++++- + grub-core/tests/videotest_checksum.c | 279 +--------------------------------- + include/grub/test.h | 5 + + tests/util/grub-shell.in | 3 + + 10 files changed, 426 insertions(+), 300 deletions(-) + create mode 100644 grub-core/tests/gfxterm_menu.c + +diff --git a/ChangeLog b/ChangeLog +index ed99c80..5fc7372 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-03 Vladimir Serbinenko + ++ New series of tests for gfxterm and gfxmenu. ++ ++2013-05-03 Vladimir Serbinenko ++ + * grub-core/gfxmenu/gfxmenu.c (grub_gfxmenu_try): Allow specifying + the theme path relative to $prefix/themes. + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 2fa0ea7..da7637f 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1747,6 +1747,11 @@ module = { + }; + + module = { ++ name = gfxterm_menu; ++ common = tests/gfxterm_menu.c; ++}; ++ ++module = { + name = bitmap; + common = video/bitmap.c; + enable = videomodules; +diff --git a/grub-core/tests/checksums.c b/grub-core/tests/checksums.c +index 583c696..c2d2f5a 100644 +--- a/grub-core/tests/checksums.c ++++ b/grub-core/tests/checksums.c +@@ -1,30 +1,90 @@ ++ { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa14ad466, 0x69520db1, 0xa14ad466, 0xe82e990f, 0x59c36f00, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa3faf149, 0xb4654ad0, 0xa3faf149, 0xff6942c6, 0xaa4593fe, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5e4100a, 0x39522e26, 0xd5e4100a, 0x2e0276, 0xc9cbf769, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xa14ad466, 0x69520db1, 0xa14ad466, 0xe82e990f, 0x59c36f00, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xa3faf149, 0xb4654ad0, 0xa3faf149, 0xff6942c6, 0xaa4593fe, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5e4100a, 0x39522e26, 0xd5e4100a, 0x2e0276, 0xc9cbf769, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9093f849, 0xc02929e3, 0x9093f849, 0xe2f077d4, 0x5387d57f, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbbe054f6, 0xbef13bfe, 0xbbe054f6, 0xa23fcfe0, 0xf83ee7aa, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x8cea8db2, 0x9688dd3b, 0x8cea8db2, 0x6fe82515, 0x724366e5, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25e346a1, 0xbd5eb38b, 0x25e346a1, 0x9d469431, 0x5387d57f, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x6f33e7a0, 0x5716dafe, 0x6f33e7a0, 0xbfa18d18, 0xf83ee7aa, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xffb24323, 0x6e8fa0be, 0xffb24323, 0xad5c8fa5, 0x724366e5, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x5a925b39, 0x36226b, 0x5a925b39, 0xafa322b7, 0x1c955882, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfb4aecf8, 0x17b91739, 0xfb4aecf8, 0xf7e3d211, 0x4d266f7a, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x4015c90f, 0x430ae98c, 0x4015c90f, 0xeb61f90d, 0x1ed9d731, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4df27666, 0xb8015ce1, 0x4df27666, 0x8bef2cac, 0x9813a416, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6d1d5058, 0xb2d8ed2c, 0x6d1d5058, 0xe8936168, 0x5fcf013d, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xeec86af1, 0x13493ea, 0xeec86af1, 0xee83739a, 0xdd28f52b, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9093f849, 0xc02929e3, 0x9093f849, 0xe2f077d4, 0x5387d57f, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbbe054f6, 0xbef13bfe, 0xbbe054f6, 0xa23fcfe0, 0xf83ee7aa, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x8cea8db2, 0x9688dd3b, 0x8cea8db2, 0x6fe82515, 0x724366e5, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25e346a1, 0xbd5eb38b, 0x25e346a1, 0x9d469431, 0x5387d57f, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x6f33e7a0, 0x5716dafe, 0x6f33e7a0, 0xbfa18d18, 0xf83ee7aa, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xffb24323, 0x6e8fa0be, 0xffb24323, 0xad5c8fa5, 0x724366e5, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x5a925b39, 0x36226b, 0x5a925b39, 0xafa322b7, 0x1c955882, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfb4aecf8, 0x17b91739, 0xfb4aecf8, 0xf7e3d211, 0x4d266f7a, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x4015c90f, 0x430ae98c, 0x4015c90f, 0xeb61f90d, 0x1ed9d731, }, 6 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x4df27666, 0xb8015ce1, 0x4df27666, 0x8bef2cac, 0x9813a416, }, 6 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6d1d5058, 0xb2d8ed2c, 0x6d1d5058, 0xe8936168, 0x5fcf013d, }, 6 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xeec86af1, 0x13493ea, 0xeec86af1, 0xee83739a, 0xdd28f52b, }, 6 }, ++ { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7a3f695f, 0xac449d41, 0x7a3f695f, 0x28a073b1, }, 5 }, ++ { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2ee70aea, 0x8f5328d2, 0x2ee70aea, 0x19fb9508, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xef842e14, 0x9b7cdc00, 0xef842e14, 0x750c3145, }, 5 }, ++ { "gfxmenu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xcfa0e627, 0x8b7088da, 0xcfa0e627, 0xcd807142, }, 5 }, ++ { "gfxmenu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x64807934, 0x85d684c9, 0x64807934, 0x61726a79, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x9792b643, 0x1d769dd8, 0x9386dd8c, 0x9792b643, 0x3d74bd2f, }, 6 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbdb8f583, 0x1e27b76, 0xbdb8f583, 0x91be6e17, }, 5 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbe72e1cb, 0x4943add3, 0xbe72e1cb, 0xa207f983, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xbc064047, 0x9e12d9ac, 0xbc064047, 0xf9bdce43, }, 5 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x6181ad43, 0xe570d91, 0x6181ad43, 0x567fb1cc, }, 5 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1e5b6982, 0x789f961c, 0x1e5b6982, 0xc1ad694a, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x73f85cef, 0x9469d68d, 0x73f85cef, 0x24779078, }, 5 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xa6ddcb95, 0xa3934314, 0xa6ddcb95, 0x16ab9b6c, }, 5 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x18e25ecc, 0xe52f7def, 0x18e25ecc, 0x5bd10081, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xa845bba2, 0xb67fe791, 0xa845bba2, 0x80452493, }, 5 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xf162dfa3, 0xe0f86fe6, 0xf162dfa3, 0x51f56384, }, 5 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x644b801, 0x8a201b04, 0x644b801, 0xa4508ec0, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x1e1a41fe, 0x237e53c4, 0x1e1a41fe, 0xd5890062, }, 5 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xa35a45c5, 0xacbc8410, 0xa35a45c5, 0xed2e11bd, }, 5 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8a6fa170, 0x7605140e, 0x8a6fa170, 0xc030feb1, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x49ddd3e4, 0xbfaeedf9, 0x49ddd3e4, 0xcde1d4b5, }, 5 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x98a8e7a8, 0xd9cab55f, 0x98a8e7a8, 0xf2b7dd05, }, 5 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa000334f, 0xa1b11a86, 0xa000334f, 0x8ac1b99f, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xc662fb1, 0x673baf90, 0xc662fb1, 0xfb88406, }, 5 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x33d4530e, 0x11ff262b, 0x33d4530e, 0xbb511beb, }, 5 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8b2e9364, 0x1d99d298, 0x8b2e9364, 0x958d5e8d, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x6e78baae, 0xaedcda00, 0x6e78baae, 0x9399bef9, }, 5 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x42860f9a, 0x57da9ef, 0x42860f9a, 0x221db42c, }, 5 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x2ade7eff, 0xc91e0e0c, 0x2ade7eff, 0x8ad4bad6, }, 5 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xef4a3312, 0x4c493c2d, 0x487c542b, 0x4c493c2d, 0xfec68cd6, }, 5 }, + { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, }, 5 }, + { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, }, 5 }, + { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, }, 5 }, + { "videotest", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, }, 5 }, + { "videotest", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0x327d1082, 0x327d1082, 0x327d1082, 0x327d1082, 0x327d1082, }, 5 }, + { "videotest", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xadd0f186, 0xadd0f186, 0xadd0f186, 0xadd0f186, 0xadd0f186, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgb555 */, (grub_uint32_t []) { 0x2c97569c, 0x2c97569c, 0x2c97569c, 0x2c97569c, 0x2c97569c, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgb555 */, (grub_uint32_t []) { 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgb555 */, (grub_uint32_t []) { 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgb565 */, (grub_uint32_t []) { 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgb565 */, (grub_uint32_t []) { 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgb565 */, (grub_uint32_t []) { 0x66cee14c, 0x66cee14c, 0x66cee14c, 0x66cee14c, 0x66cee14c, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgb888 */, (grub_uint32_t []) { 0x61db45b7, 0x1d867efe, 0x99613325, 0xe53c086c, 0x9543de62, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgb888 */, (grub_uint32_t []) { 0xa46eb37f, 0xd2a59656, 0x49f8f92d, 0x3f33dc04, 0x7aae512a, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgb888 */, (grub_uint32_t []) { 0xb864a496, 0x6c22313b, 0x1505f93d, 0xc1436c90, 0xe74a6931, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgb888 */, (grub_uint32_t []) { 0x2b154617, 0x692e98df, 0xaf62fb87, 0xed59254f, 0x26164bc6, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgb888 */, (grub_uint32_t []) { 0x3b0fbc56, 0xd9d57c0e, 0xfb564a17, 0x198c8a4f, 0xbe502625, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgb888 */, (grub_uint32_t []) { 0x6e6c9b36, 0x4ae9f137, 0x27664f34, 0x3e32535, 0xfc793332, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgr555 */, (grub_uint32_t []) { 0x9056f776, 0x9056f776, 0x9056f776, 0x9056f776, 0x9056f776, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgr555 */, (grub_uint32_t []) { 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgr555 */, (grub_uint32_t []) { 0xb04615f3, 0xb04615f3, 0xb04615f3, 0xb04615f3, 0xb04615f3, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgr565 */, (grub_uint32_t []) { 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgr565 */, (grub_uint32_t []) { 0x84ac1329, 0x84ac1329, 0x84ac1329, 0x84ac1329, 0x84ac1329, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgr565 */, (grub_uint32_t []) { 0x145ad698, 0x145ad698, 0x145ad698, 0x145ad698, 0x145ad698, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgr888 */, (grub_uint32_t []) { 0x4af6b480, 0x923db79c, 0xfe8cc449, 0x2647c755, 0x27ee23e3, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgr888 */, (grub_uint32_t []) { 0x121d5e29, 0xf66c0aed, 0xdf138150, 0x3b62d594, 0x8dec962a, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgr888 */, (grub_uint32_t []) { 0xae86a12c, 0x4dabbe89, 0x6d30e897, 0x8e1df732, 0x2c0644ab, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgr888 */, (grub_uint32_t []) { 0x2605d280, 0xc06e3172, 0xef3e6395, 0x9558067, 0xb19ec65b, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgr888 */, (grub_uint32_t []) { 0x9404ef3b, 0xa4fdf18, 0xad7ef98c, 0x3335c9af, 0xe6f0c255, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgr888 */, (grub_uint32_t []) { 0xa008b770, 0xb98eb0d8, 0x9304b820, 0x8a82bf88, 0xc610a9d0, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x2c97569c, 0x2c97569c, 0x2c97569c, 0x2c97569c, 0x2c97569c, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, 0x9bd7a3ac, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, 0xedbceb9c, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, 0x3c2a42f1, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, 0xb25ce62a, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x66cee14c, 0x66cee14c, 0x66cee14c, 0x66cee14c, 0x66cee14c, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x61db45b7, 0x1d867efe, 0x99613325, 0xe53c086c, 0x9543de62, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0xa46eb37f, 0xd2a59656, 0x49f8f92d, 0x3f33dc04, 0x7aae512a, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0xb864a496, 0x6c22313b, 0x1505f93d, 0xc1436c90, 0xe74a6931, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x2b154617, 0x692e98df, 0xaf62fb87, 0xed59254f, 0x26164bc6, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x3b0fbc56, 0xd9d57c0e, 0xfb564a17, 0x198c8a4f, 0xbe502625, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0x6e6c9b36, 0x4ae9f137, 0x27664f34, 0x3e32535, 0xfc793332, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x9056f776, 0x9056f776, 0x9056f776, 0x9056f776, 0x9056f776, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0xb04615f3, 0xb04615f3, 0xb04615f3, 0xb04615f3, 0xb04615f3, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, 0xba8df8dd, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0x84ac1329, 0x84ac1329, 0x84ac1329, 0x84ac1329, 0x84ac1329, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x145ad698, 0x145ad698, 0x145ad698, 0x145ad698, 0x145ad698, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x4af6b480, 0x923db79c, 0xfe8cc449, 0x2647c755, 0x27ee23e3, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x121d5e29, 0xf66c0aed, 0xdf138150, 0x3b62d594, 0x8dec962a, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0xae86a12c, 0x4dabbe89, 0x6d30e897, 0x8e1df732, 0x2c0644ab, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x2605d280, 0xc06e3172, 0xef3e6395, 0x9558067, 0xb19ec65b, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x9404ef3b, 0xa4fdf18, 0xad7ef98c, 0x3335c9af, 0xe6f0c255, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xa008b770, 0xb98eb0d8, 0x9304b820, 0x8a82bf88, 0xc610a9d0, }, 5 }, +diff --git a/grub-core/tests/fake_input.c b/grub-core/tests/fake_input.c +index b514c2a..3c24e0f 100644 +--- a/grub-core/tests/fake_input.c ++++ b/grub-core/tests/fake_input.c +@@ -55,6 +55,7 @@ grub_terminal_input_fake_sequence (int *seq_in, int nseq_in) + grub_memcpy (seq, seq_in, nseq_in * sizeof (seq[0])); + } + nseq = nseq_in; ++ seqptr = 0; + } + + void +@@ -64,4 +65,5 @@ grub_terminal_input_fake_sequence_end (void) + grub_free (seq); + seq = 0; + nseq = 0; ++ seqptr = 0; + } +diff --git a/grub-core/tests/gfxterm_menu.c b/grub-core/tests/gfxterm_menu.c +new file mode 100644 +index 0000000..e4aae12 +--- /dev/null ++++ b/grub-core/tests/gfxterm_menu.c +@@ -0,0 +1,113 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++/* All tests need to include test.h for GRUB testing framework. */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++ ++static const char testfile[] = ++ "terminal_output gfxterm\n" ++ "menuentry \"test\" {\n" ++ "\ttrue\n" ++ "}\n" ++ "menuentry \"sÌ› oÌ› t oÌ’ sÌ’ u oÌ•Ìš 8.04 mÌ‚ñaÌŠhÌŠz̆xÌ£ aÌ¡ bÌ¢gÌ¢ uá·Žoá·ŽÌ‚ oÌ‚á·Ž OÌ· aÌ–Ì£ aÌ‘Ì\" --class ubuntu --class linux --class os {\n" ++ "\ttrue\n" ++ "}\n" ++ "menuentry \" הַרמלל(טוֹבָ) לֶךְ\" --class opensuse --class linux --class os {\n" ++ "\ttrue\n" ++ "}\n" ++ "menuentry \"الرملل جÙداً Ù„ÙÙƒÙŽ\" --class gentoo --class linux --class os {\n" ++ "\ttrue\n" ++ "}\n" ++ "menuentry \"ὑπόγυͅον\" --class kubuntu --class linux --class os {\n" ++ "\ttrue\n" ++ "}\n" ++ "menuentry \"سَّ نّ٠نَّ نٌّ نّْ\" --class linuxmint --class linux --class os {\n" ++ "\ttrue\n" ++ "}\n" ++ /* Chinese & UTF-8 test from Carbon Jiao. */ ++ "menuentry \"从硬盘的第一主分区å¯åŠ¨\" --class \"windows xp\" --class windows --class os {\n" ++ "\ttrue\n" ++ "}\n" ++ "timeout=3\n"; ++ ++static char * ++get_test_cfg (void) ++{ ++ return grub_strdup (testfile); ++} ++ ++struct grub_procfs_entry test_cfg = ++{ ++ .name = "test.cfg", ++ .get_contents = get_test_cfg ++}; ++ ++ ++/* Functional test main method. */ ++static void ++gfxterm_menu (void) ++{ ++ unsigned i, j; ++ if (grub_font_load ("unicode") == 0) ++ { ++ grub_test_assert (0, "unicode font not found: %s", grub_errmsg); ++ return; ++ } ++ ++ grub_procfs_register ("test.cfg", &test_cfg); ++ ++ for (j = 0; j < 2; j++) ++ for (i = 0; i < ARRAY_SIZE (grub_test_video_modes); i++) ++ { ++ grub_video_capture_start (&grub_test_video_modes[i], ++ grub_video_fbstd_colors, ++ grub_test_video_modes[i].number_of_colors); ++ grub_terminal_input_fake_sequence ((int []) { -1, -1, -1, GRUB_TERM_KEY_DOWN, -1, '\e' }, 6); ++ ++ grub_video_checksum (j ? "gfxmenu" : "gfxterm_menu"); ++ ++ grub_env_context_open (); ++ if (j) ++ grub_env_set ("theme", "starfield/theme.txt"); ++ grub_normal_execute ("(proc)/test.cfg", 1, 0); ++ grub_env_context_close (); ++ ++ char *args[] = { (char *) "console", 0 }; ++ grub_command_execute ("terminal_output", 1, args); ++ ++ grub_terminal_input_fake_sequence_end (); ++ grub_video_checksum_end (); ++ grub_video_capture_end (); ++ } ++ ++ grub_procfs_unregister (&test_cfg); ++} ++ ++/* Register example_test method as a functional test. */ ++GRUB_FUNCTIONAL_TEST (gfxterm_menu, gfxterm_menu); +diff --git a/grub-core/tests/lib/functional_test.c b/grub-core/tests/lib/functional_test.c +index da4d5f8..c70e1ad 100644 +--- a/grub-core/tests/lib/functional_test.c ++++ b/grub-core/tests/lib/functional_test.c +@@ -51,9 +51,10 @@ grub_functional_all_tests (grub_extcmd_context_t ctxt __attribute__ ((unused)), + + grub_dl_load ("exfctest"); + grub_dl_load ("videotest_checksum"); ++ grub_dl_load ("gfxterm_menu"); + + FOR_LIST_ELEMENTS (test, grub_test_list) +- ok = ok && !grub_test_run (test); ++ ok = !grub_test_run (test) && ok; + if (ok) + grub_printf ("ALL TESTS PASSED\n"); + else +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +index cf47fa2..c678059 100644 +--- a/grub-core/tests/video_checksum.c ++++ b/grub-core/tests/video_checksum.c +@@ -31,6 +31,208 @@ static char *basename; + static const grub_uint32_t *checksums; + static struct grub_video_mode_info capt_mode_info; + ++struct grub_video_mode_info grub_test_video_modes[30] = { ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 640, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 800, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS ++ }, ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 640, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 800, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024, ++ .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, ++ .bpp = 8, ++ .bytes_per_pixel = 1, ++ .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS ++ }, ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 1280, ++ GRUB_VIDEO_MI_RGB555 () ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 1600, ++ GRUB_VIDEO_MI_RGB555 () ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 2048, ++ GRUB_VIDEO_MI_RGB555 () ++ }, ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 1280, ++ GRUB_VIDEO_MI_RGB565 () ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 1600, ++ GRUB_VIDEO_MI_RGB565 () ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 2048, ++ GRUB_VIDEO_MI_RGB565 () ++ }, ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 640 * 3, ++ GRUB_VIDEO_MI_RGB888 () ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 3, ++ GRUB_VIDEO_MI_RGB888 () ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 3, ++ GRUB_VIDEO_MI_RGB888 () ++ }, ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 640 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 1280, ++ GRUB_VIDEO_MI_BGR555 () ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 1600, ++ GRUB_VIDEO_MI_BGR555 () ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 2048, ++ GRUB_VIDEO_MI_BGR555 () ++ }, ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 1280, ++ GRUB_VIDEO_MI_BGR565 () ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 1600, ++ GRUB_VIDEO_MI_BGR565 () ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 2048, ++ GRUB_VIDEO_MI_BGR565 () ++ }, ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 640 * 3, ++ GRUB_VIDEO_MI_BGR888 () ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 3, ++ GRUB_VIDEO_MI_BGR888 () ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 3, ++ GRUB_VIDEO_MI_BGR888 () ++ }, ++ { ++ .width = 640, ++ .height = 480, ++ .pitch = 640 * 4, ++ GRUB_VIDEO_MI_BGRA8888() ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 4, ++ GRUB_VIDEO_MI_BGRA8888() ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 4, ++ GRUB_VIDEO_MI_BGRA8888() ++ }, ++}; ++ + #ifdef GRUB_MACHINE_EMU + #include + #include +@@ -262,7 +464,7 @@ get_modename (void) + return buf; + } + +-//#define GENERATE_MODE 1 ++#define GENERATE_MODE 1 + + #if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) + int genfd = -1; +diff --git a/grub-core/tests/videotest_checksum.c b/grub-core/tests/videotest_checksum.c +index 7833d04..ee7058f 100644 +--- a/grub-core/tests/videotest_checksum.c ++++ b/grub-core/tests/videotest_checksum.c +@@ -26,292 +26,23 @@ + + GRUB_MOD_LICENSE ("GPLv3+"); + +-struct +-{ +- struct grub_video_mode_info mode_info; +-} tests[] = { +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 640, +- .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, +- .bpp = 8, +- .bytes_per_pixel = 1, +- .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 800, +- .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, +- .bpp = 8, +- .bytes_per_pixel = 1, +- .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 1024, +- .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, +- .bpp = 8, +- .bytes_per_pixel = 1, +- .number_of_colors = GRUB_VIDEO_FBSTD_NUMCOLORS +- }, +- }, +- +- +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 640, +- .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, +- .bpp = 8, +- .bytes_per_pixel = 1, +- .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 800, +- .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, +- .bpp = 8, +- .bytes_per_pixel = 1, +- .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 1024, +- .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, +- .bpp = 8, +- .bytes_per_pixel = 1, +- .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS +- }, +- }, +- +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 1280, +- GRUB_VIDEO_MI_RGB555 () +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 1600, +- GRUB_VIDEO_MI_RGB555 () +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 2048, +- GRUB_VIDEO_MI_RGB555 () +- }, +- }, +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 1280, +- GRUB_VIDEO_MI_RGB565 () +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 1600, +- GRUB_VIDEO_MI_RGB565 () +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 2048, +- GRUB_VIDEO_MI_RGB565 () +- }, +- }, +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 640 * 3, +- GRUB_VIDEO_MI_RGB888 () +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 800 * 3, +- GRUB_VIDEO_MI_RGB888 () +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 1024 * 3, +- GRUB_VIDEO_MI_RGB888 () +- }, +- }, +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 640 * 4, +- GRUB_VIDEO_MI_RGBA8888() +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 800 * 4, +- GRUB_VIDEO_MI_RGBA8888() +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 1024 * 4, +- GRUB_VIDEO_MI_RGBA8888() +- }, +- }, +- +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 1280, +- GRUB_VIDEO_MI_BGR555 () +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 1600, +- GRUB_VIDEO_MI_BGR555 () +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 2048, +- GRUB_VIDEO_MI_BGR555 () +- }, +- }, +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 1280, +- GRUB_VIDEO_MI_BGR565 () +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 1600, +- GRUB_VIDEO_MI_BGR565 () +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 2048, +- GRUB_VIDEO_MI_BGR565 () +- }, +- }, +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 640 * 3, +- GRUB_VIDEO_MI_BGR888 () +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 800 * 3, +- GRUB_VIDEO_MI_BGR888 () +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 1024 * 3, +- GRUB_VIDEO_MI_BGR888 () +- }, +- }, +- { +- .mode_info = { +- .width = 640, +- .height = 480, +- .pitch = 640 * 4, +- GRUB_VIDEO_MI_BGRA8888() +- }, +- }, +- { +- .mode_info = { +- .width = 800, +- .height = 600, +- .pitch = 800 * 4, +- GRUB_VIDEO_MI_BGRA8888() +- }, +- }, +- { +- .mode_info = { +- .width = 1024, +- .height = 768, +- .pitch = 1024 * 4, +- GRUB_VIDEO_MI_BGRA8888() +- }, +- }, +- +- }; +- +- + /* Functional test main method. */ + static void + videotest_checksum (void) + { + unsigned i; ++ + if (grub_font_load ("unicode") == 0) + { + grub_test_assert (0, "unicode font not found: %s", grub_errmsg); + return; + } +- +- for (i = 0; i < ARRAY_SIZE (tests); i++) ++ ++ for (i = 0; i < ARRAY_SIZE (grub_test_video_modes); i++) + { +- grub_video_capture_start (&tests[i].mode_info, ++ grub_video_capture_start (&grub_test_video_modes[i], + grub_video_fbstd_colors, +- tests[i].mode_info.number_of_colors); ++ grub_test_video_modes[i].number_of_colors); + grub_terminal_input_fake_sequence ((int []) { '\n' }, 1); + + grub_video_checksum ("videotest"); +diff --git a/include/grub/test.h b/include/grub/test.h +index 6aa4069..946a81b 100644 +--- a/include/grub/test.h ++++ b/include/grub/test.h +@@ -25,6 +25,9 @@ + #include + #include + ++#include ++#include ++ + struct grub_test + { + /* The next test. */ +@@ -99,4 +102,6 @@ grub_terminal_input_fake_sequence (int *seq_in, int nseq_in); + void + grub_terminal_input_fake_sequence_end (void); + ++extern struct grub_video_mode_info grub_test_video_modes[30]; ++ + #endif /* ! GRUB_TEST_HEADER */ +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index dfde836..dee3962 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -22,6 +22,7 @@ prefix="@prefix@" + exec_prefix="@exec_prefix@" + datarootdir="@datarootdir@" + builddir="@builddir@" ++srcdir="@srcdir@" + PACKAGE_NAME=@PACKAGE_NAME@ + PACKAGE_TARNAME=@PACKAGE_TARNAME@ + PACKAGE_VERSION=@PACKAGE_VERSION@ +@@ -409,7 +410,9 @@ if [ x$boot = xnet ]; then + elif [ x$boot = xemu ]; then + grubdir="$(mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX")" + mkdir -p "$grubdir/fonts" ++ mkdir -p "$grubdir/themes" + cp "@builddir@/"unicode.pf2 "$grubdir/fonts/unicode.pf2" ++ cp -R "@srcdir@/themes/starfield" "$grubdir/themes/starfield" + cp "${cfgfile}" "$grubdir/grub.cfg" + cp "${source}" "$grubdir/testcase.cfg" + @builddir@/grub-core/grub-emu -m "$device_map" -d "$grubdir" | tr -d "\r" | do_trim +-- +1.8.2.1 + diff --git a/0412-grub-core-tests-video_checksum.c-Don-t-set-GENERATE_.patch b/0412-grub-core-tests-video_checksum.c-Don-t-set-GENERATE_.patch new file mode 100644 index 0000000..45d96fb --- /dev/null +++ b/0412-grub-core-tests-video_checksum.c-Don-t-set-GENERATE_.patch @@ -0,0 +1,41 @@ +From c372c983f29bf103d949d7dcb51b2d7e41c64203 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Fri, 3 May 2013 14:50:05 +0200 +Subject: [PATCH 412/471] * grub-core/tests/video_checksum.c: Don't set + GENERATE_MODE. + +--- + ChangeLog | 4 ++++ + grub-core/tests/video_checksum.c | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 5fc7372..1b4c925 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-03 Vladimir Serbinenko + ++ * grub-core/tests/video_checksum.c: Don't set GENERATE_MODE. ++ ++2013-05-03 Vladimir Serbinenko ++ + New series of tests for gfxterm and gfxmenu. + + 2013-05-03 Vladimir Serbinenko +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +index c678059..41a262a 100644 +--- a/grub-core/tests/video_checksum.c ++++ b/grub-core/tests/video_checksum.c +@@ -464,7 +464,7 @@ get_modename (void) + return buf; + } + +-#define GENERATE_MODE 1 ++//#define GENERATE_MODE 1 + + #if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) + int genfd = -1; +-- +1.8.2.1 + diff --git a/0413-Rename-grub-core-tests-checksums.c-into-grub-core-te.patch b/0413-Rename-grub-core-tests-checksums.c-into-grub-core-te.patch new file mode 100644 index 0000000..3b3049c --- /dev/null +++ b/0413-Rename-grub-core-tests-checksums.c-into-grub-core-te.patch @@ -0,0 +1,68 @@ +From 233218d45a88d0de97b1c486fa54ffe1f757fd8b Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov +Date: Fri, 3 May 2013 18:39:17 +0400 +Subject: [PATCH 413/471] Rename grub-core/tests/checksums.c into + grub-core/tests/checksums.h and add it as source to functional_test module. + +--- + ChangeLog | 5 +++++ + grub-core/Makefile.core.def | 1 + + grub-core/tests/{checksums.c => checksums.h} | 0 + grub-core/tests/video_checksum.c | 4 ++-- + 4 files changed, 8 insertions(+), 2 deletions(-) + rename grub-core/tests/{checksums.c => checksums.h} (100%) + +diff --git a/ChangeLog b/ChangeLog +index 1b4c925..8113b6d 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-05-03 Andrey Borzenkov ++ ++ Rename grub-core/tests/checksums.c into grub-core/tests/checksums.h ++ and add it as source to functional_test module. ++ + 2013-05-03 Vladimir Serbinenko + + * grub-core/tests/video_checksum.c: Don't set GENERATE_MODE. +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index da7637f..469524f 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1731,6 +1731,7 @@ module = { + name = functional_test; + common = tests/lib/functional_test.c; + common = tests/lib/test.c; ++ common = tests/checksums.h; + common = tests/video_checksum.c; + common = tests/fake_input.c; + common = video/capture.c; +diff --git a/grub-core/tests/checksums.c b/grub-core/tests/checksums.h +similarity index 100% +rename from grub-core/tests/checksums.c +rename to grub-core/tests/checksums.h +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +index 41a262a..f3eb9fc 100644 +--- a/grub-core/tests/video_checksum.c ++++ b/grub-core/tests/video_checksum.c +@@ -613,7 +613,7 @@ struct checksum_desc + }; + + const struct checksum_desc checksum_table[] = { +-#include "checksums.c" ++#include "checksums.h" + }; + + void +@@ -625,7 +625,7 @@ grub_video_checksum (const char *basename_in) + + #if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) + if (genfd < 0) +- genfd = open ("checksums.c", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); ++ genfd = open ("checksums.h", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); + if (genfd >= 0) + { + char buf[400]; +-- +1.8.2.1 + diff --git a/0414-grub-core-font-font.c-grub_font_construct_glyph-Fix-.patch b/0414-grub-core-font-font.c-grub_font_construct_glyph-Fix-.patch new file mode 100644 index 0000000..d4db1e6 --- /dev/null +++ b/0414-grub-core-font-font.c-grub_font_construct_glyph-Fix-.patch @@ -0,0 +1,39 @@ +From 2c765f906626985c55aa5fa8f5287374b9b116cb Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:11:57 +0200 +Subject: [PATCH 414/471] * grub-core/font/font.c + (grub_font_construct_glyph): Fix memory leak. + +--- + ChangeLog | 4 ++++ + grub-core/font/font.c | 2 ++ + 2 files changed, 6 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 8113b6d..a721215 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-05-04 Vladimir Serbinenko ++ ++ * grub-core/font/font.c (grub_font_construct_glyph): Fix memory leak. ++ + 2013-05-03 Andrey Borzenkov + + Rename grub-core/tests/checksums.c into grub-core/tests/checksums.h +diff --git a/grub-core/font/font.c b/grub-core/font/font.c +index fbbb988..4758f6c 100644 +--- a/grub-core/font/font.c ++++ b/grub-core/font/font.c +@@ -1544,6 +1544,8 @@ grub_font_construct_glyph (grub_font_t hinted_font, + + blit_comb (glyph_id, glyph, NULL, main_glyph, combining_glyphs, NULL); + ++ grub_free (combining_glyphs); ++ + return glyph; + } + +-- +1.8.2.1 + diff --git a/0415-Fix-test-a-and-o-precedence.patch b/0415-Fix-test-a-and-o-precedence.patch new file mode 100644 index 0000000..51b65d0 --- /dev/null +++ b/0415-Fix-test-a-and-o-precedence.patch @@ -0,0 +1,180 @@ +From 568a5bef7e6b7309a652b328d65a9964b6d415e5 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:38:59 +0200 +Subject: [PATCH 415/471] Fix test -a and -o precedence. Reported by: + adrian15. + +--- + ChangeLog | 5 +++++ + Makefile.util.def | 6 ++++++ + grub-core/commands/test.c | 30 ++++++++++++++---------------- + tests/grub_script_test.in | 15 +++++++++++++++ + 4 files changed, 40 insertions(+), 16 deletions(-) + create mode 100644 tests/grub_script_test.in + +diff --git a/ChangeLog b/ChangeLog +index a721215..7a7d11c 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-04 Vladimir Serbinenko + ++ Fix test -a and -o precedence. ++ Reported by: adrian15. ++ ++2013-05-04 Vladimir Serbinenko ++ + * grub-core/font/font.c (grub_font_construct_glyph): Fix memory leak. + + 2013-05-03 Andrey Borzenkov +diff --git a/Makefile.util.def b/Makefile.util.def +index a357341..d0ae67f 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -583,6 +583,12 @@ script = { + + script = { + testcase; ++ name = grub_script_test; ++ common = tests/grub_script_test.in; ++}; ++ ++script = { ++ testcase; + name = grub_script_echo1; + common = tests/grub_script_echo1.in; + }; +diff --git a/grub-core/commands/test.c b/grub-core/commands/test.c +index e3347ee..c98c13d 100644 +--- a/grub-core/commands/test.c ++++ b/grub-core/commands/test.c +@@ -41,7 +41,8 @@ grub_strtosl (char *arg, char **end, int base) + /* Context for test_parse. */ + struct test_parse_ctx + { +- int ret, discard, invert; ++ int invert; ++ int or, and; + int file_exists; + struct grub_dirhook_info file_info; + char *filename; +@@ -51,9 +52,8 @@ struct test_parse_ctx + static void + update_val (int val, struct test_parse_ctx *ctx) + { +- if (! ctx->discard) +- ctx->ret = ctx->invert ? ! val : val; +- ctx->invert = ctx->discard = 0; ++ ctx->and = ctx->and && (ctx->invert ? ! val : val); ++ ctx->invert = 0; + } + + /* A hook for iterating directories. */ +@@ -153,8 +153,8 @@ static int + test_parse (char **args, int *argn, int argc) + { + struct test_parse_ctx ctx = { +- .ret = 0, +- .discard = 0, ++ .and = 1, ++ .or = 0, + .invert = 0 + }; + +@@ -332,7 +332,7 @@ test_parse (char **args, int *argn, int argc) + get_fileinfo (args[*argn + 1], &ctx); + update_val (ctx.file_exists && ctx.file_info.dir, &ctx); + (*argn) += 2; +- return ctx.ret; ++ return ctx.or || ctx.and; + } + + if (grub_strcmp (args[*argn], "-e") == 0) +@@ -340,7 +340,7 @@ test_parse (char **args, int *argn, int argc) + get_fileinfo (args[*argn + 1], &ctx); + update_val (ctx.file_exists, &ctx); + (*argn) += 2; +- return ctx.ret; ++ return ctx.or || ctx.and; + } + + if (grub_strcmp (args[*argn], "-f") == 0) +@@ -349,7 +349,7 @@ test_parse (char **args, int *argn, int argc) + /* FIXME: check for other types. */ + update_val (ctx.file_exists && ! ctx.file_info.dir, &ctx); + (*argn) += 2; +- return ctx.ret; ++ return ctx.or || ctx.and; + } + + if (grub_strcmp (args[*argn], "-s") == 0) +@@ -362,7 +362,7 @@ test_parse (char **args, int *argn, int argc) + grub_file_close (file); + grub_errno = GRUB_ERR_NONE; + (*argn) += 2; +- return ctx.ret; ++ return ctx.or || ctx.and; + } + + /* String tests. */ +@@ -387,7 +387,7 @@ test_parse (char **args, int *argn, int argc) + if (grub_strcmp (args[*argn], ")") == 0) + { + (*argn)++; +- return ctx.ret; ++ return ctx.or || ctx.and; + } + /* Recursively invoke if parenthesis. */ + if (grub_strcmp (args[*argn], "(") == 0) +@@ -405,15 +405,13 @@ test_parse (char **args, int *argn, int argc) + } + if (grub_strcmp (args[*argn], "-a") == 0) + { +- /* If current value is 0 second value is to be discarded. */ +- ctx.discard = ! ctx.ret; + (*argn)++; + continue; + } + if (grub_strcmp (args[*argn], "-o") == 0) + { +- /* If current value is 1 second value is to be discarded. */ +- ctx.discard = ctx.ret; ++ ctx.or = ctx.or || ctx.and; ++ ctx.and = 1; + (*argn)++; + continue; + } +@@ -422,7 +420,7 @@ test_parse (char **args, int *argn, int argc) + update_val (args[*argn][0], &ctx); + (*argn)++; + } +- return ctx.ret; ++ return ctx.or || ctx.and; + } + + static grub_err_t +diff --git a/tests/grub_script_test.in b/tests/grub_script_test.in +new file mode 100644 +index 0000000..34a5f14 +--- /dev/null ++++ b/tests/grub_script_test.in +@@ -0,0 +1,15 @@ ++#! @builddir@/grub-shell-tester ++ ++for device in 'hd0' 'fd0'; do ++ # But search them if their search has been inforced ++ set fd0search="no" ++ if [ "$device" != "fd0" -a "$device" != "cd" \ ++ -o \ ++ "$device" = "fd0" -a "$fd0search" = "yes" ]\ ++ ; then ++ echo "Yes" ++ else ++ echo "No" ++ fi ++ ++done +\ No newline at end of file +-- +1.8.2.1 + diff --git a/0416-grub-core-gettext-gettext.c-Try-lang.gmo-as-well.patch b/0416-grub-core-gettext-gettext.c-Try-lang.gmo-as-well.patch new file mode 100644 index 0000000..7b24613 --- /dev/null +++ b/0416-grub-core-gettext-gettext.c-Try-lang.gmo-as-well.patch @@ -0,0 +1,67 @@ +From 51441aa016f8bd439752656d43504704b94f701c Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:40:52 +0200 +Subject: [PATCH 416/471] * grub-core/gettext/gettext.c: Try $lang.gmo + as well. + +--- + ChangeLog | 4 ++++ + grub-core/gettext/gettext.c | 19 +++++++++++++++---- + 2 files changed, 19 insertions(+), 4 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 7a7d11c..e0576e5 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-04 Vladimir Serbinenko + ++ * grub-core/gettext/gettext.c: Try $lang.gmo as well. ++ ++2013-05-04 Vladimir Serbinenko ++ + Fix test -a and -o precedence. + Reported by: adrian15. + +diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c +index 569f985..259251d 100644 +--- a/grub-core/gettext/gettext.c ++++ b/grub-core/gettext/gettext.c +@@ -355,19 +355,30 @@ grub_mofile_open_lang (struct grub_gettext_context *ctx, + return grub_errno; + + err = grub_mofile_open (ctx, mo_file); ++ grub_free (mo_file); + + /* Will try adding .gz as well. */ + if (err) + { +- char *mo_file_old; + grub_errno = GRUB_ERR_NONE; +- mo_file_old = mo_file; +- mo_file = grub_xasprintf ("%s.gz", mo_file); +- grub_free (mo_file_old); ++ mo_file = grub_xasprintf ("%s%s/%s.mo.gz", part1, part2, locale); + if (!mo_file) + return grub_errno; + err = grub_mofile_open (ctx, mo_file); ++ grub_free (mo_file); + } ++ ++ /* Will try adding .gmo as well. */ ++ if (err) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ mo_file = grub_xasprintf ("%s%s/%s.gmo", part1, part2, locale); ++ if (!mo_file) ++ return grub_errno; ++ err = grub_mofile_open (ctx, mo_file); ++ grub_free (mo_file); ++ } ++ + return err; + } + +-- +1.8.2.1 + diff --git a/0417-grub-core-normal-menu.c-run_menu-Fix-timeout-referen.patch b/0417-grub-core-normal-menu.c-run_menu-Fix-timeout-referen.patch new file mode 100644 index 0000000..75a2775 --- /dev/null +++ b/0417-grub-core-normal-menu.c-run_menu-Fix-timeout-referen.patch @@ -0,0 +1,48 @@ +From 0053990e0ed35bc3f438628a5b6b5aa6134b2d4b Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:43:07 +0200 +Subject: [PATCH 417/471] * grub-core/normal/menu.c (run_menu): Fix + timeout reference point. + +--- + ChangeLog | 4 ++++ + grub-core/normal/menu.c | 6 +++--- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index e0576e5..6b0576d 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-04 Vladimir Serbinenko + ++ * grub-core/normal/menu.c (run_menu): Fix timeout reference point. ++ ++2013-05-04 Vladimir Serbinenko ++ + * grub-core/gettext/gettext.c: Try $lang.gmo as well. + + 2013-05-04 Vladimir Serbinenko +diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c +index 787b287..fba19db 100644 +--- a/grub-core/normal/menu.c ++++ b/grub-core/normal/menu.c +@@ -519,12 +519,12 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) + + current_entry = default_entry; + +- /* Initialize the time. */ +- saved_time = grub_get_time_ms (); +- + refresh: + menu_init (current_entry, menu, nested); + ++ /* Initialize the time. */ ++ saved_time = grub_get_time_ms (); ++ + timeout = grub_menu_get_timeout (); + + if (timeout > 0) +-- +1.8.2.1 + diff --git a/0418-Fix-several-memory-leaks.patch b/0418-Fix-several-memory-leaks.patch new file mode 100644 index 0000000..434b48a --- /dev/null +++ b/0418-Fix-several-memory-leaks.patch @@ -0,0 +1,310 @@ +From 598550db95b1ca9419a9fb61900fbfa64d468bda Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:47:10 +0200 +Subject: [PATCH 418/471] Fix several memory leaks. + +--- + ChangeLog | 4 +++ + grub-core/gfxmenu/font.c | 2 ++ + grub-core/gfxmenu/gfxmenu.c | 2 +- + grub-core/gfxmenu/gui_list.c | 5 +++- + grub-core/gfxmenu/gui_progress_bar.c | 1 + + grub-core/normal/context.c | 2 ++ + grub-core/normal/main.c | 2 ++ + grub-core/normal/menu_entry.c | 10 +++++++- + grub-core/normal/menu_text.c | 5 +++- + grub-core/normal/term.c | 2 ++ + grub-core/term/gfxterm.c | 47 +++++++++++++++++++++++++++++------- + grub-core/tests/lib/test.c | 3 ++- + grub-core/video/capture.c | 1 + + 13 files changed, 72 insertions(+), 14 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 6b0576d..47f06fd 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-04 Vladimir Serbinenko + ++ Fix several memory leaks. ++ ++2013-05-04 Vladimir Serbinenko ++ + * grub-core/normal/menu.c (run_menu): Fix timeout reference point. + + 2013-05-04 Vladimir Serbinenko +diff --git a/grub-core/gfxmenu/font.c b/grub-core/gfxmenu/font.c +index 4a8e1f1..9c6e2d4 100644 +--- a/grub-core/gfxmenu/font.c ++++ b/grub-core/gfxmenu/font.c +@@ -70,6 +70,8 @@ grub_font_draw_string (const char *str, grub_font_t font, + return err; + } + ++ for (ptr = visual; ptr < visual + visual_len; ptr++) ++ grub_free (ptr->combining); + grub_free (visual); + + return GRUB_ERR_NONE; +diff --git a/grub-core/gfxmenu/gfxmenu.c b/grub-core/gfxmenu/gfxmenu.c +index 51110a6..f49fce8 100644 +--- a/grub-core/gfxmenu/gfxmenu.c ++++ b/grub-core/gfxmenu/gfxmenu.c +@@ -85,7 +85,7 @@ grub_gfxmenu_try (int entry, grub_menu_t menu, int nested) + || cached_view->screen.width != mode_info.width + || cached_view->screen.height != mode_info.height) + { +- grub_free (cached_view); ++ grub_gfxmenu_view_destroy (cached_view); + /* Create the view. */ + cached_view = grub_gfxmenu_view_new (full_theme_path ? : theme_path, + mode_info.width, +diff --git a/grub-core/gfxmenu/gui_list.c b/grub-core/gfxmenu/gui_list.c +index a06603b..1a2a16d 100644 +--- a/grub-core/gfxmenu/gui_list.c ++++ b/grub-core/gfxmenu/gui_list.c +@@ -83,7 +83,10 @@ list_destroy (void *vself) + self->selected_item_box->destroy (self->selected_item_box); + if (self->icon_manager) + grub_gfxmenu_icon_manager_destroy (self->icon_manager); +- ++ if (self->scrollbar_thumb) ++ self->scrollbar_thumb->destroy (self->scrollbar_thumb); ++ if (self->scrollbar_frame) ++ self->scrollbar_frame->destroy (self->scrollbar_frame); + grub_free (self); + } + +diff --git a/grub-core/gfxmenu/gui_progress_bar.c b/grub-core/gfxmenu/gui_progress_bar.c +index 965c6b3..cb70930 100644 +--- a/grub-core/gfxmenu/gui_progress_bar.c ++++ b/grub-core/gfxmenu/gui_progress_bar.c +@@ -185,6 +185,7 @@ draw_text (grub_gui_progress_bar_t self) + int y = ((height - grub_font_get_descent (font)) / 2 + + grub_font_get_ascent (font) / 2); + grub_font_draw_string (text, font, text_color, x, y); ++ grub_free (text); + } + } + +diff --git a/grub-core/normal/context.c b/grub-core/normal/context.c +index e9923cc..7e0a696 100644 +--- a/grub-core/normal/context.c ++++ b/grub-core/normal/context.c +@@ -139,6 +139,8 @@ grub_env_context_close (void) + grub_current_context = context; + + menu = current_menu->prev; ++ if (current_menu->menu) ++ grub_normal_free_menu (current_menu->menu); + grub_free (current_menu); + current_menu = menu; + +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 759e0a4..f7a815f 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -127,6 +127,7 @@ grub_normal_free_menu (grub_menu_t menu) + grub_free ((void *) entry->users); + grub_free ((void *) entry->title); + grub_free ((void *) entry->sourcecode); ++ grub_free (entry); + entry = next_entry; + } + +@@ -191,6 +192,7 @@ read_config_file (const char *config) + if (ptr) + *ptr = 0; + grub_env_set ("config_directory", config_dir); ++ grub_free (config_dir); + + grub_env_export ("config_file"); + grub_env_export ("config_directory"); +diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c +index e0407aa..3cc0c01 100644 +--- a/grub-core/normal/menu_entry.c ++++ b/grub-core/normal/menu_entry.c +@@ -517,7 +517,15 @@ destroy_screen (struct screen *screen) + struct line *linep = screen->lines + i; + + if (linep) +- grub_free (linep->buf); ++ { ++ unsigned j; ++ if (linep->pos) ++ for (j = 0; j < screen->nterms; j++) ++ grub_free (linep->pos[j]); ++ ++ grub_free (linep->buf); ++ grub_free (linep->pos); ++ } + } + + grub_free (screen->killed_text); +diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c +index e1d3c8f..19a5389 100644 +--- a/grub-core/normal/menu_text.c ++++ b/grub-core/normal/menu_text.c +@@ -56,8 +56,10 @@ grub_getstringwidth (grub_uint32_t * str, const grub_uint32_t * last_position, + while (str < last_position) + { + struct grub_unicode_glyph glyph; ++ glyph.combining = 0; + str += grub_unicode_aglomerate_comb (str, last_position - str, &glyph); + width += grub_term_getcharwidth (term, &glyph); ++ grub_free (glyph.combining); + } + return width; + } +@@ -396,6 +398,7 @@ menu_text_print_timeout (int timeout, void *dataptr) + } + + grub_print_message_indented (msg_translated, 3, 0, data->term); ++ grub_free (msg_translated); + + posx = grub_term_getxy (data->term) >> 8; + grub_print_spaces (data->term, grub_term_width (data->term) - posx - 1); +@@ -447,7 +450,7 @@ menu_text_fini (void *dataptr) + + grub_term_setcursor (data->term, 1); + grub_term_cls (data->term); +- ++ grub_free (data); + } + + static void +diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c +index 9764423..820156f 100644 +--- a/grub-core/normal/term.c ++++ b/grub-core/normal/term.c +@@ -952,6 +952,8 @@ print_ucs4_real (const grub_uint32_t * str, + ret++; + if (visual_len_show && visual[visual_len_show - 1].base != '\n') + ret++; ++ for (vptr = visual; vptr < visual + visual_len; vptr++) ++ grub_free (vptr->combining); + grub_free (visual); + } + else +diff --git a/grub-core/term/gfxterm.c b/grub-core/term/gfxterm.c +index a168e01..1e33a34 100644 +--- a/grub-core/term/gfxterm.c ++++ b/grub-core/term/gfxterm.c +@@ -175,7 +175,11 @@ set_term_color (grub_uint8_t term_color) + static void + clear_char (struct grub_colored_char *c) + { +- grub_free (c->code); ++ if (c->code) ++ { ++ grub_free (c->code->combining); ++ grub_free (c->code); ++ } + c->code = grub_unicode_glyph_from_code (' '); + if (!c->code) + grub_errno = GRUB_ERR_NONE; +@@ -188,7 +192,18 @@ grub_virtual_screen_free (void) + { + /* If virtual screen has been allocated, free it. */ + if (virtual_screen.text_buffer != 0) +- grub_free (virtual_screen.text_buffer); ++ { ++ unsigned i; ++ for (i = 0; ++ i < virtual_screen.columns * virtual_screen.rows; ++ i++) ++ if (virtual_screen.text_buffer[i].code) ++ { ++ grub_free (virtual_screen.text_buffer[i].code->combining); ++ grub_free (virtual_screen.text_buffer[i].code); ++ } ++ grub_free (virtual_screen.text_buffer); ++ } + + /* Reset virtual screen data. */ + grub_memset (&virtual_screen, 0, sizeof (virtual_screen)); +@@ -403,7 +418,11 @@ grub_gfxterm_term_fini (struct grub_term_output *term __attribute__ ((unused))) + + for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++) + { +- grub_free (virtual_screen.text_buffer[i].code); ++ if (virtual_screen.text_buffer[i].code) ++ { ++ grub_free (virtual_screen.text_buffer[i].code->combining); ++ grub_free (virtual_screen.text_buffer[i].code); ++ } + virtual_screen.text_buffer[i].code = 0; + } + +@@ -798,7 +817,11 @@ scroll_up (void) + + /* Clear first line in text buffer. */ + for (i = 0; i < virtual_screen.columns; i++) +- grub_free (virtual_screen.text_buffer[i].code); ++ if (virtual_screen.text_buffer[i].code) ++ { ++ grub_free (virtual_screen.text_buffer[i].code->combining); ++ grub_free (virtual_screen.text_buffer[i].code); ++ } + + /* Scroll text buffer with one line to up. */ + grub_memmove (virtual_screen.text_buffer, +@@ -874,7 +897,11 @@ grub_gfxterm_putchar (struct grub_term_output *term, + p = (virtual_screen.text_buffer + + virtual_screen.cursor_x + + virtual_screen.cursor_y * virtual_screen.columns); +- grub_free (p->code); ++ if (p->code) ++ { ++ grub_free (p->code->combining); ++ grub_free (p->code); ++ } + p->code = grub_unicode_glyph_dup (c); + if (!p->code) + grub_errno = GRUB_ERR_NONE; +@@ -889,10 +916,12 @@ grub_gfxterm_putchar (struct grub_term_output *term, + for (i = 1; i < char_width && p + i < + virtual_screen.text_buffer + virtual_screen.columns + * virtual_screen.rows; i++) +- { +- grub_free (p[i].code); +- p[i].code = NULL; +- } ++ if (p[i].code) ++ { ++ grub_free (p[i].code->combining); ++ grub_free (p[i].code); ++ p[i].code = NULL; ++ } + } + + /* Draw glyph. */ +diff --git a/grub-core/tests/lib/test.c b/grub-core/tests/lib/test.c +index 1d2cb8c..3000fc8 100644 +--- a/grub-core/tests/lib/test.c ++++ b/grub-core/tests/lib/test.c +@@ -87,7 +87,8 @@ failure_append_vtext(grub_test_failure_t failure, const char *fmt, va_list args) + char *oldmsg = failure->message; + + failure->message = grub_xasprintf("%s%s", oldmsg, msg); +- grub_free(oldmsg); ++ grub_free (oldmsg); ++ grub_free (msg); + } + else + { +diff --git a/grub-core/video/capture.c b/grub-core/video/capture.c +index be7fb61..18ffa28 100644 +--- a/grub-core/video/capture.c ++++ b/grub-core/video/capture.c +@@ -115,6 +115,7 @@ grub_video_capture_get_framebuffer (void) + void + grub_video_capture_end (void) + { ++ grub_video_fb_delete_render_target (framebuffer.render_target); + grub_free (framebuffer.ptr); + grub_video_fb_fini (); + grub_video_adapter_active = saved; +-- +1.8.2.1 + diff --git a/0419-grub-core-normal-main.c-Fix-freed-memory-dereference.patch b/0419-grub-core-normal-main.c-Fix-freed-memory-dereference.patch new file mode 100644 index 0000000..699e4f9 --- /dev/null +++ b/0419-grub-core-normal-main.c-Fix-freed-memory-dereference.patch @@ -0,0 +1,67 @@ +From c62405b0f7b966a7efb3642b3db14469d9b82ba8 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:50:16 +0200 +Subject: [PATCH 419/471] * grub-core/normal/main.c: Fix freed memory + dereference. + +--- + ChangeLog | 4 ++++ + grub-core/normal/main.c | 13 ++++++++++--- + 2 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 47f06fd..16456f0 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-04 Vladimir Serbinenko + ++ * grub-core/normal/main.c: Fix freed memory dereference. ++ ++2013-05-04 Vladimir Serbinenko ++ + Fix several memory leaks. + + 2013-05-04 Vladimir Serbinenko +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index f7a815f..ffc2cd2 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -163,8 +163,9 @@ static grub_menu_t + read_config_file (const char *config) + { + grub_file_t file; +- const char *old_file, *old_dir; ++ char *old_file = 0, *old_dir = 0; + char *config_dir, *ptr = 0; ++ const char *ctmp; + + grub_menu_t newmenu; + +@@ -183,8 +184,12 @@ read_config_file (const char *config) + if (! file) + return 0; + +- old_file = grub_env_get ("config_file"); +- old_dir = grub_env_get ("config_directory"); ++ ctmp = grub_env_get ("config_file"); ++ if (ctmp) ++ old_file = grub_strdup (ctmp); ++ ctmp = grub_env_get ("config_directory"); ++ if (ctmp) ++ old_dir = grub_strdup (ctmp); + grub_env_set ("config_file", config); + config_dir = grub_strdup (config); + if (config_dir) +@@ -220,6 +225,8 @@ read_config_file (const char *config) + grub_env_set ("config_directory", old_dir); + else + grub_env_unset ("config_directory"); ++ grub_free (old_file); ++ grub_free (old_dir); + + grub_file_close (file); + +-- +1.8.2.1 + diff --git a/0420-grub-core-normal-menu_text.c-menu_clear_timeout-Clea.patch b/0420-grub-core-normal-menu_text.c-menu_clear_timeout-Clea.patch new file mode 100644 index 0000000..140332a --- /dev/null +++ b/0420-grub-core-normal-menu_text.c-menu_clear_timeout-Clea.patch @@ -0,0 +1,43 @@ +From 8164f12df6412b35e28ee24bd06d4da975590c9b Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:52:21 +0200 +Subject: [PATCH 420/471] * grub-core/normal/menu_text.c + (menu_clear_timeout): Clear second line of timeout as it may contain the + rest of long line. + +--- + ChangeLog | 5 +++++ + grub-core/normal/menu_text.c | 2 ++ + 2 files changed, 7 insertions(+) + +diff --git a/ChangeLog b/ChangeLog +index 16456f0..8d41517 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-04 Vladimir Serbinenko + ++ * grub-core/normal/menu_text.c (menu_clear_timeout): Clear second ++ line of timeout as it may contain the rest of long line. ++ ++2013-05-04 Vladimir Serbinenko ++ + * grub-core/normal/main.c: Fix freed memory dereference. + + 2013-05-04 Vladimir Serbinenko +diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c +index 19a5389..d7e5641 100644 +--- a/grub-core/normal/menu_text.c ++++ b/grub-core/normal/menu_text.c +@@ -460,6 +460,8 @@ menu_text_clear_timeout (void *dataptr) + + grub_term_gotoxy (data->term, 0, grub_term_height (data->term) - 3); + grub_print_spaces (data->term, grub_term_width (data->term) - 1); ++ grub_term_gotoxy (data->term, 0, grub_term_height (data->term) - 2); ++ grub_print_spaces (data->term, grub_term_width (data->term) - 1); + grub_term_gotoxy (data->term, grub_term_cursor_x (data->term), + GRUB_TERM_FIRST_ENTRY_Y + data->offset); + grub_term_refresh (data->term); +-- +1.8.2.1 + diff --git a/0421-grub-core-tests-lib-functional_test.c-Don-t-stop-on-.patch b/0421-grub-core-tests-lib-functional_test.c-Don-t-stop-on-.patch new file mode 100644 index 0000000..d1dc3fa --- /dev/null +++ b/0421-grub-core-tests-lib-functional_test.c-Don-t-stop-on-.patch @@ -0,0 +1,46 @@ +From 64e8517e63da3311ed5016936b3d5a26411f7872 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:54:08 +0200 +Subject: [PATCH 421/471] * grub-core/tests/lib/functional_test.c: Don't + stop on first failed test. + +--- + ChangeLog | 5 +++++ + grub-core/tests/lib/functional_test.c | 6 +++++- + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 8d41517..d5f9bb9 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-04 Vladimir Serbinenko + ++ * grub-core/tests/lib/functional_test.c: Don't stop on first failed ++ test. ++ ++2013-05-04 Vladimir Serbinenko ++ + * grub-core/normal/menu_text.c (menu_clear_timeout): Clear second + line of timeout as it may contain the rest of long line. + +diff --git a/grub-core/tests/lib/functional_test.c b/grub-core/tests/lib/functional_test.c +index c70e1ad..957354e 100644 +--- a/grub-core/tests/lib/functional_test.c ++++ b/grub-core/tests/lib/functional_test.c +@@ -33,7 +33,11 @@ grub_functional_test (grub_extcmd_context_t ctxt __attribute__ ((unused)), + int ok = 1; + + FOR_LIST_ELEMENTS (test, grub_test_list) +- ok = ok && !grub_test_run (test); ++ { ++ grub_errno = 0; ++ ok = ok && !grub_test_run (test); ++ grub_errno = 0; ++ } + if (ok) + grub_printf ("ALL TESTS PASSED\n"); + else +-- +1.8.2.1 + diff --git a/0422-Speed-up-gfxterm-by-saving-intermediate-results-in-i.patch b/0422-Speed-up-gfxterm-by-saving-intermediate-results-in-i.patch new file mode 100644 index 0000000..a3b28ba --- /dev/null +++ b/0422-Speed-up-gfxterm-by-saving-intermediate-results-in-i.patch @@ -0,0 +1,991 @@ +From 18f0215d54546b2d4ccb1ff4877c48d5de00e1b3 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 13:58:30 +0200 +Subject: [PATCH 422/471] Speed-up gfxterm by saving intermediate + results in index+alpha format. + +--- + ChangeLog | 5 + + grub-core/term/gfxterm.c | 2 +- + grub-core/video/fb/fbblit.c | 370 ++++++++++++++++++++++++++++++++++++++++++ + grub-core/video/fb/video_fb.c | 298 ++++++++++++++++++++-------------- + include/grub/video.h | 5 + + include/grub/video_fb.h | 54 ++++++ + 6 files changed, 613 insertions(+), 121 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index d5f9bb9..74cb13d 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-04 Vladimir Serbinenko + ++ Speed-up gfxterm by saving intermediate results in index+alpha ++ format. ++ ++2013-05-04 Vladimir Serbinenko ++ + * grub-core/tests/lib/functional_test.c: Don't stop on first failed + test. + +diff --git a/grub-core/term/gfxterm.c b/grub-core/term/gfxterm.c +index 1e33a34..54636d7 100644 +--- a/grub-core/term/gfxterm.c ++++ b/grub-core/term/gfxterm.c +@@ -254,7 +254,7 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y, + grub_video_create_render_target (&text_layer, + virtual_screen.width, + virtual_screen.height, +- GRUB_VIDEO_MODE_TYPE_RGB ++ GRUB_VIDEO_MODE_TYPE_INDEX_COLOR + | GRUB_VIDEO_MODE_TYPE_ALPHA); + if (grub_errno != GRUB_ERR_NONE) + return grub_errno; +diff --git a/grub-core/video/fb/fbblit.c b/grub-core/video/fb/fbblit.c +index 541a0ce..c206ac8 100644 +--- a/grub-core/video/fb/fbblit.c ++++ b/grub-core/video/fb/fbblit.c +@@ -389,6 +389,376 @@ grub_video_fbblit_replace_8bit_1bit (struct grub_video_fbblit_info *dst, + } + } + ++void ++grub_video_fbblit_replace_32bit_indexa (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y) ++{ ++ int i; ++ int j; ++ grub_uint8_t *srcptr; ++ grub_uint32_t *dstptr; ++ unsigned int dstrowskip; ++ unsigned int srcrowskip; ++ grub_uint32_t palette[17]; ++ ++ srcptr = grub_video_fb_get_video_ptr (src, offset_x, offset_y); ++ dstptr = grub_video_fb_get_video_ptr (dst, x, y); ++ ++ /* Calculate the number of bytes to advance from the end of one line ++ to the beginning of the next line. */ ++ dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ srcrowskip = src->mode_info->pitch - width; ++ ++ for (i = 0; i < 16; i++) ++ palette[i] = grub_video_fb_map_color (i); ++ palette[16] = grub_video_fb_map_rgba (0, 0, 0, 0); ++ ++ for (j = 0; j < height; j++) ++ { ++ for (i = 0; i < width; i++) ++ { ++ if (*srcptr == 0xf0) ++ *dstptr = palette[16]; ++ else ++ *dstptr = palette[*srcptr & 0xf]; ++ srcptr++; ++ dstptr++; ++ } ++ ++ srcptr += srcrowskip; ++ GRUB_VIDEO_FB_ADVANCE_POINTER (dstptr, dstrowskip); ++ } ++} ++ ++/* Optimized replacing blitter for 1-bit to 16bit. */ ++void ++grub_video_fbblit_replace_24bit_indexa (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y) ++{ ++ int i; ++ int j; ++ grub_uint8_t *srcptr; ++ grub_uint8_t *dstptr; ++ unsigned int dstrowskip; ++ unsigned int srcrowskip; ++ grub_uint32_t palette[17]; ++ ++ srcptr = grub_video_fb_get_video_ptr (src, offset_x, offset_y); ++ dstptr = grub_video_fb_get_video_ptr (dst, x, y); ++ ++ /* Calculate the number of bytes to advance from the end of one line ++ to the beginning of the next line. */ ++ dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ srcrowskip = src->mode_info->pitch - width; ++ ++ for (i = 0; i < 16; i++) ++ palette[i] = grub_video_fb_map_color (i); ++ palette[16] = grub_video_fb_map_rgba (0, 0, 0, 0); ++ ++ for (j = 0; j < height; j++) ++ { ++ for (i = 0; i < width; i++) ++ { ++ register grub_uint32_t col; ++ if (*srcptr == 0xf0) ++ col = palette[16]; ++ else ++ col = palette[*srcptr & 0xf]; ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ *dstptr++ = col >> 16; ++ *dstptr++ = col >> 8; ++ *dstptr++ = col >> 0; ++#else ++ *dstptr++ = col >> 0; ++ *dstptr++ = col >> 8; ++ *dstptr++ = col >> 16; ++#endif ++ srcptr++; ++ } ++ ++ srcptr += srcrowskip; ++ dstptr += dstrowskip; ++ } ++} ++ ++/* Optimized replacing blitter for 1-bit to 16bit. */ ++void ++grub_video_fbblit_replace_16bit_indexa (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y) ++{ ++ int i; ++ int j; ++ grub_uint8_t *srcptr; ++ grub_uint16_t *dstptr; ++ unsigned int dstrowskip; ++ unsigned int srcrowskip; ++ grub_uint16_t palette[17]; ++ ++ srcptr = grub_video_fb_get_video_ptr (src, offset_x, offset_y); ++ dstptr = grub_video_fb_get_video_ptr (dst, x, y); ++ ++ /* Calculate the number of bytes to advance from the end of one line ++ to the beginning of the next line. */ ++ dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ srcrowskip = src->mode_info->pitch - width; ++ ++ for (i = 0; i < 16; i++) ++ palette[i] = grub_video_fb_map_color (i); ++ palette[16] = grub_video_fb_map_rgba (0, 0, 0, 0); ++ ++ for (j = 0; j < height; j++) ++ { ++ for (i = 0; i < width; i++) ++ { ++ if (*srcptr == 0xf0) ++ *dstptr = palette[16]; ++ else ++ *dstptr = palette[*srcptr & 0xf]; ++ srcptr++; ++ dstptr++; ++ } ++ ++ srcptr += srcrowskip; ++ GRUB_VIDEO_FB_ADVANCE_POINTER (dstptr, dstrowskip); ++ } ++} ++ ++/* Optimized replacing blitter for 1-bit to 8bit. */ ++void ++grub_video_fbblit_replace_8bit_indexa (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y) ++{ ++ int i; ++ int j; ++ grub_uint8_t *srcptr; ++ grub_uint8_t *dstptr; ++ unsigned int dstrowskip; ++ unsigned int srcrowskip; ++ grub_uint8_t palette[17]; ++ ++ srcptr = grub_video_fb_get_video_ptr (src, offset_x, offset_y); ++ dstptr = grub_video_fb_get_video_ptr (dst, x, y); ++ ++ /* Calculate the number of bytes to advance from the end of one line ++ to the beginning of the next line. */ ++ dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ srcrowskip = src->mode_info->pitch - width; ++ ++ for (i = 0; i < 16; i++) ++ palette[i] = grub_video_fb_map_color (i); ++ palette[16] = grub_video_fb_map_rgba (0, 0, 0, 0); ++ ++ for (j = 0; j < height; j++) ++ { ++ for (i = 0; i < width; i++) ++ { ++ if (*srcptr == 0xf0) ++ *dstptr = palette[16]; ++ else ++ *dstptr = palette[*srcptr & 0xf]; ++ srcptr++; ++ dstptr++; ++ } ++ ++ srcptr += srcrowskip; ++ dstptr += dstrowskip; ++ } ++} ++ ++ ++void ++grub_video_fbblit_blend_32bit_indexa (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y) ++{ ++ int i; ++ int j; ++ grub_uint8_t *srcptr; ++ grub_uint32_t *dstptr; ++ unsigned int dstrowskip; ++ unsigned int srcrowskip; ++ grub_uint32_t palette[16]; ++ ++ srcptr = grub_video_fb_get_video_ptr (src, offset_x, offset_y); ++ dstptr = grub_video_fb_get_video_ptr (dst, x, y); ++ ++ /* Calculate the number of bytes to advance from the end of one line ++ to the beginning of the next line. */ ++ dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ srcrowskip = src->mode_info->pitch - width; ++ ++ for (i = 0; i < 16; i++) ++ palette[i] = grub_video_fb_map_color (i); ++ ++ for (j = 0; j < height; j++) ++ { ++ for (i = 0; i < width; i++) ++ { ++ if (*srcptr != 0xf0) ++ *dstptr = palette[*srcptr & 0xf]; ++ srcptr++; ++ dstptr++; ++ } ++ ++ srcptr += srcrowskip; ++ GRUB_VIDEO_FB_ADVANCE_POINTER (dstptr, dstrowskip); ++ } ++} ++ ++/* Optimized replacing blitter for 1-bit to 16bit. */ ++void ++grub_video_fbblit_blend_24bit_indexa (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y) ++{ ++ int i; ++ int j; ++ grub_uint8_t *srcptr; ++ grub_uint8_t *dstptr; ++ unsigned int dstrowskip; ++ unsigned int srcrowskip; ++ grub_uint32_t palette[16]; ++ ++ srcptr = grub_video_fb_get_video_ptr (src, offset_x, offset_y); ++ dstptr = grub_video_fb_get_video_ptr (dst, x, y); ++ ++ /* Calculate the number of bytes to advance from the end of one line ++ to the beginning of the next line. */ ++ dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ srcrowskip = src->mode_info->pitch - width; ++ ++ for (i = 0; i < 16; i++) ++ palette[i] = grub_video_fb_map_color (i); ++ ++ for (j = 0; j < height; j++) ++ { ++ for (i = 0; i < width; i++) ++ { ++ register grub_uint32_t col; ++ if (*srcptr != 0xf0) ++ { ++ col = palette[*srcptr & 0xf]; ++#ifdef GRUB_CPU_WORDS_BIGENDIAN ++ *dstptr++ = col >> 16; ++ *dstptr++ = col >> 8; ++ *dstptr++ = col >> 0; ++#else ++ *dstptr++ = col >> 0; ++ *dstptr++ = col >> 8; ++ *dstptr++ = col >> 16; ++#endif ++ } ++ else ++ dstptr += 3; ++ srcptr++; ++ } ++ ++ srcptr += srcrowskip; ++ dstptr += dstrowskip; ++ } ++} ++ ++/* Optimized replacing blitter for 1-bit to 16bit. */ ++void ++grub_video_fbblit_blend_16bit_indexa (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y) ++{ ++ int i; ++ int j; ++ grub_uint8_t *srcptr; ++ grub_uint16_t *dstptr; ++ unsigned int dstrowskip; ++ unsigned int srcrowskip; ++ grub_uint16_t palette[17]; ++ ++ srcptr = grub_video_fb_get_video_ptr (src, offset_x, offset_y); ++ dstptr = grub_video_fb_get_video_ptr (dst, x, y); ++ ++ /* Calculate the number of bytes to advance from the end of one line ++ to the beginning of the next line. */ ++ dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ srcrowskip = src->mode_info->pitch - width; ++ ++ for (i = 0; i < 16; i++) ++ palette[i] = grub_video_fb_map_color (i); ++ ++ for (j = 0; j < height; j++) ++ { ++ for (i = 0; i < width; i++) ++ { ++ if (*srcptr != 0xf0) ++ *dstptr = palette[*srcptr & 0xf]; ++ srcptr++; ++ dstptr++; ++ } ++ ++ srcptr += srcrowskip; ++ GRUB_VIDEO_FB_ADVANCE_POINTER (dstptr, dstrowskip); ++ } ++} ++ ++/* Optimized replacing blitter for 1-bit to 8bit. */ ++void ++grub_video_fbblit_blend_8bit_indexa (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y) ++{ ++ int i; ++ int j; ++ grub_uint8_t *srcptr; ++ grub_uint8_t *dstptr; ++ unsigned int dstrowskip; ++ unsigned int srcrowskip; ++ grub_uint8_t palette[16]; ++ ++ srcptr = grub_video_fb_get_video_ptr (src, offset_x, offset_y); ++ dstptr = grub_video_fb_get_video_ptr (dst, x, y); ++ ++ /* Calculate the number of bytes to advance from the end of one line ++ to the beginning of the next line. */ ++ dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width; ++ srcrowskip = src->mode_info->pitch - width; ++ ++ for (i = 0; i < 16; i++) ++ palette[i] = grub_video_fb_map_color (i); ++ ++ for (j = 0; j < height; j++) ++ { ++ for (i = 0; i < width; i++) ++ { ++ if (*srcptr != 0xf0) ++ *dstptr = palette[*srcptr & 0xf]; ++ srcptr++; ++ dstptr++; ++ } ++ ++ srcptr += srcrowskip; ++ dstptr += dstrowskip; ++ } ++} ++ ++ + /* Optimized replacing blitter for RGBX8888 to BGRX8888. */ + void + grub_video_fbblit_replace_BGRX8888_RGBX8888 (struct grub_video_fbblit_info *dst, +diff --git a/grub-core/video/fb/video_fb.c b/grub-core/video/fb/video_fb.c +index 836842e..22a0128 100644 +--- a/grub-core/video/fb/video_fb.c ++++ b/grub-core/video/fb/video_fb.c +@@ -542,11 +542,18 @@ grub_video_color_t + grub_video_fb_map_rgba (grub_uint8_t red, grub_uint8_t green, + grub_uint8_t blue, grub_uint8_t alpha) + { ++ + if ((framebuffer.render_target->mode_info.mode_type + & GRUB_VIDEO_MODE_TYPE_INDEX_COLOR) != 0) +- /* No alpha available in index color modes, just use +- same value as in only RGB modes. */ +- return grub_video_fb_map_rgb (red, green, blue); ++ { ++ if ((framebuffer.render_target->mode_info.mode_type ++ & GRUB_VIDEO_MODE_TYPE_ALPHA) != 0 ++ && alpha == 0) ++ return 0xf0; ++ /* No alpha available in index color modes, just use ++ same value as in only RGB modes. */ ++ return grub_video_fb_map_rgb (red, green, blue); ++ } + else if ((framebuffer.render_target->mode_info.mode_type + & GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP) != 0) + { +@@ -605,6 +612,17 @@ grub_video_fb_unmap_color_int (struct grub_video_fbblit_info * source, + if ((mode_info->mode_type + & GRUB_VIDEO_MODE_TYPE_INDEX_COLOR) != 0) + { ++ if ((framebuffer.render_target->mode_info.mode_type ++ & GRUB_VIDEO_MODE_TYPE_ALPHA) != 0 ++ && color == 0xf0) ++ { ++ *red = 0; ++ *green = 0; ++ *blue = 0; ++ *alpha = 0; ++ return; ++ } ++ + /* If we have an out-of-bounds color, return transparent black. */ + if (color > 255) + { +@@ -772,134 +790,153 @@ common_blitter (struct grub_video_fbblit_info *target, + if (oper == GRUB_VIDEO_BLIT_REPLACE) + { + /* Try to figure out more optimized version for replace operator. */ +- if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888) ++ switch (source->mode_info->blit_format) + { +- if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888) ++ case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888: ++ switch (target->mode_info->blit_format) + { ++ case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888: + grub_video_fbblit_replace_directN (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888: + grub_video_fbblit_replace_BGRX8888_RGBX8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGR_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_BGR_888: + grub_video_fbblit_replace_BGR888_RGBX8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGB_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_RGB_888: + grub_video_fbblit_replace_RGB888_RGBX8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR: + grub_video_fbblit_replace_index_RGBX8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; ++ default: ++ break; + } +- } +- else if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGB_888) +- { +- if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888) ++ break; ++ case GRUB_VIDEO_BLIT_FORMAT_RGB_888: ++ switch (target->mode_info->blit_format) + { ++ case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888: + grub_video_fbblit_replace_BGRX8888_RGB888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888: + grub_video_fbblit_replace_RGBX8888_RGB888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGR_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_BGR_888: + grub_video_fbblit_replace_BGR888_RGB888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGB_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_RGB_888: + grub_video_fbblit_replace_directN (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR: + grub_video_fbblit_replace_index_RGB888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; ++ default: ++ break; + } +- } +- else if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888) +- { +- if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888) ++ break; ++ case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888: ++ switch (target->mode_info->blit_format) + { ++ case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888: + grub_video_fbblit_replace_directN (target, source, + x, y, width, height, + offset_x, offset_y); + return; ++ default: ++ break; + } +- } +- else if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR) +- { +- if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR) ++ break; ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR: ++ switch (target->mode_info->blit_format) + { ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR: ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR_ALPHA: + grub_video_fbblit_replace_directN (target, source, + x, y, width, height, + offset_x, offset_y); + return; ++ default: ++ break; + } +- } +- else if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED) +- { +- if (target->mode_info->bpp == 32) ++ break; ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR_ALPHA: ++ switch (target->mode_info->bytes_per_pixel) ++ { ++ case 4: ++ grub_video_fbblit_replace_32bit_indexa (target, source, ++ x, y, width, height, ++ offset_x, offset_y); ++ return; ++ case 3: ++ grub_video_fbblit_replace_24bit_indexa (target, source, ++ x, y, width, height, ++ offset_x, offset_y); ++ return; ++ case 2: ++ grub_video_fbblit_replace_16bit_indexa (target, source, ++ x, y, width, height, ++ offset_x, offset_y); ++ return; ++ case 1: ++ grub_video_fbblit_replace_8bit_indexa (target, source, ++ x, y, width, height, ++ offset_x, offset_y); ++ return; ++ default: ++ break; ++ } ++ break; ++ case GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED: ++ switch (target->mode_info->bytes_per_pixel) + { ++ case 4: + grub_video_fbblit_replace_32bit_1bit (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } + #ifdef GRUB_HAVE_UNALIGNED_ACCESS +- else if (target->mode_info->bpp == 24) +- { ++ case 3: + grub_video_fbblit_replace_24bit_1bit (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } + #endif +- else if (target->mode_info->bpp == 16) +- { ++ case 2: + grub_video_fbblit_replace_16bit_1bit (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->bpp == 8) +- { ++ case 1: + grub_video_fbblit_replace_8bit_1bit (target, source, + x, y, width, height, + offset_x, offset_y); + return; + } ++ break; ++ default: ++ break; + } + + /* No optimized replace operator found, use default (slow) blitter. */ +@@ -909,123 +946,131 @@ common_blitter (struct grub_video_fbblit_info *target, + else + { + /* Try to figure out more optimized blend operator. */ +- if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888) ++ switch (source->mode_info->blit_format) + { +- if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888) ++ case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888: ++ switch (target->mode_info->blit_format) + { ++ case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888: + grub_video_fbblit_blend_BGRA8888_RGBA8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888: + grub_video_fbblit_blend_RGBA8888_RGBA8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGR_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_BGR_888: + grub_video_fbblit_blend_BGR888_RGBA8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGB_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_RGB_888: + grub_video_fbblit_blend_RGB888_RGBA8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR: + grub_video_fbblit_blend_index_RGBA8888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; ++ default: ++ break; + } +- } +- else if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGB_888) +- { ++ break; ++ case GRUB_VIDEO_BLIT_FORMAT_RGB_888: + /* Note: There is really no alpha information here, so blend is + changed to replace. */ + +- if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888) ++ switch (target->mode_info->blit_format) + { ++ case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888: + grub_video_fbblit_replace_BGRX8888_RGB888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888: + grub_video_fbblit_replace_RGBX8888_RGB888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_BGR_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_BGR_888: + grub_video_fbblit_replace_BGR888_RGB888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_RGB_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_RGB_888: + grub_video_fbblit_replace_directN (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } +- else if (target->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR: + grub_video_fbblit_replace_index_RGB888 (target, source, + x, y, width, height, + offset_x, offset_y); + return; ++ default: ++ break; + } +- } +- else if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED) +- { +- if (target->mode_info->blit_format +- == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888 +- || target->mode_info->blit_format +- == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888) ++ break; ++ case GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED: ++ switch (target->mode_info->blit_format) + { ++ case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888: ++ case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888: + grub_video_fbblit_blend_XXXA8888_1bit (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } + #ifdef GRUB_HAVE_UNALIGNED_ACCESS +- else if (target->mode_info->blit_format +- == GRUB_VIDEO_BLIT_FORMAT_BGR_888 +- || target->mode_info->blit_format +- == GRUB_VIDEO_BLIT_FORMAT_RGB_888) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_BGR_888: ++ case GRUB_VIDEO_BLIT_FORMAT_RGB_888: + grub_video_fbblit_blend_XXX888_1bit (target, source, + x, y, width, height, + offset_x, offset_y); + return; +- } + #endif +- else if (target->mode_info->blit_format +- == GRUB_VIDEO_BLIT_FORMAT_BGR_565 +- || target->mode_info->blit_format +- == GRUB_VIDEO_BLIT_FORMAT_RGB_565) +- { ++ case GRUB_VIDEO_BLIT_FORMAT_BGR_565: ++ case GRUB_VIDEO_BLIT_FORMAT_RGB_565: + grub_video_fbblit_blend_XXX565_1bit (target, source, + x, y, width, height, + offset_x, offset_y); + return; ++ default: ++ break; + } +- ++ break; ++ case GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR_ALPHA: ++ switch (target->mode_info->bytes_per_pixel) ++ { ++ case 4: ++ grub_video_fbblit_blend_32bit_indexa (target, source, ++ x, y, width, height, ++ offset_x, offset_y); ++ return; ++ case 3: ++ grub_video_fbblit_blend_24bit_indexa (target, source, ++ x, y, width, height, ++ offset_x, offset_y); ++ return; ++ case 2: ++ grub_video_fbblit_blend_16bit_indexa (target, source, ++ x, y, width, height, ++ offset_x, offset_y); ++ return; ++ case 1: ++ grub_video_fbblit_blend_8bit_indexa (target, source, ++ x, y, width, height, ++ offset_x, offset_y); ++ return; ++ } ++ break; ++ default: ++ break; + } + +- + /* No optimized blend operation found, use default (slow) blitter. */ + grub_video_fbblit_blend (target, source, x, y, width, height, + offset_x, offset_y); +@@ -1411,22 +1456,35 @@ grub_video_fb_create_render_target (struct grub_video_fbrender_target **result, + /* Setup render target format. */ + target->mode_info.width = width; + target->mode_info.height = height; +- target->mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_RGB +- | GRUB_VIDEO_MODE_TYPE_ALPHA; +- target->mode_info.bpp = 32; +- target->mode_info.bytes_per_pixel = 4; ++ switch (mode_type) ++ { ++ case GRUB_VIDEO_MODE_TYPE_INDEX_COLOR ++ | GRUB_VIDEO_MODE_TYPE_ALPHA: ++ target->mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR ++ | GRUB_VIDEO_MODE_TYPE_ALPHA; ++ target->mode_info.bpp = 8; ++ target->mode_info.bytes_per_pixel = 1; ++ target->mode_info.number_of_colors = 16; ++ target->mode_info.blit_format = GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR_ALPHA; ++ break; ++ default: ++ target->mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_RGB ++ | GRUB_VIDEO_MODE_TYPE_ALPHA; ++ target->mode_info.bpp = 32; ++ target->mode_info.bytes_per_pixel = 4; ++ target->mode_info.red_mask_size = 8; ++ target->mode_info.red_field_pos = 0; ++ target->mode_info.green_mask_size = 8; ++ target->mode_info.green_field_pos = 8; ++ target->mode_info.blue_mask_size = 8; ++ target->mode_info.blue_field_pos = 16; ++ target->mode_info.reserved_mask_size = 8; ++ target->mode_info.reserved_field_pos = 24; ++ target->mode_info.number_of_colors = framebuffer.palette_size; /* Emulated palette. */ ++ target->mode_info.blit_format = GRUB_VIDEO_BLIT_FORMAT_RGBA_8888; ++ break; ++ } + target->mode_info.pitch = target->mode_info.bytes_per_pixel * width; +- target->mode_info.number_of_colors = framebuffer.palette_size; /* Emulated palette. */ +- target->mode_info.red_mask_size = 8; +- target->mode_info.red_field_pos = 0; +- target->mode_info.green_mask_size = 8; +- target->mode_info.green_field_pos = 8; +- target->mode_info.blue_mask_size = 8; +- target->mode_info.blue_field_pos = 16; +- target->mode_info.reserved_mask_size = 8; +- target->mode_info.reserved_field_pos = 24; +- +- target->mode_info.blit_format = grub_video_get_blit_format (&target->mode_info); + + /* Calculate size needed for the data. */ + size = (width * target->mode_info.bytes_per_pixel) * height; +diff --git a/include/grub/video.h b/include/grub/video.h +index 36e863b..b2d1458 100644 +--- a/include/grub/video.h ++++ b/include/grub/video.h +@@ -101,6 +101,11 @@ enum grub_video_blit_format + + /* When needed, decode color or just use value as is. */ + GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR, ++ /* Like index but only 16-colors and F0 is a special value for transparency. ++ Could be extended to 4 bits of alpha and 4 bits of color if necessary. ++ Used internally for text rendering. ++ */ ++ GRUB_VIDEO_BLIT_FORMAT_INDEXCOLOR_ALPHA, + + /* Two color bitmap; bits packed: rows are not padded to byte boundary. */ + GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED +diff --git a/include/grub/video_fb.h b/include/grub/video_fb.h +index ffe16c3..88bc75d 100644 +--- a/include/grub/video_fb.h ++++ b/include/grub/video_fb.h +@@ -118,6 +118,60 @@ EXPORT_FUNC(grub_video_fb_get_active_render_target) (struct grub_video_fbrender_ + grub_err_t + EXPORT_FUNC(grub_video_fb_set_active_render_target) (struct grub_video_fbrender_target *target); + ++void ++EXPORT_FUNC (grub_video_fbblit_blend_32bit_indexa) (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y); ++ ++void ++EXPORT_FUNC (grub_video_fbblit_blend_24bit_indexa) (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y); ++void ++EXPORT_FUNC (grub_video_fbblit_blend_16bit_indexa) (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y); ++void ++EXPORT_FUNC (grub_video_fbblit_blend_8bit_indexa) (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y); ++ ++ ++void ++EXPORT_FUNC (grub_video_fbblit_replace_32bit_indexa) (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y); ++ ++void ++EXPORT_FUNC (grub_video_fbblit_replace_24bit_indexa) (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y); ++ ++void ++EXPORT_FUNC (grub_video_fbblit_replace_16bit_indexa) (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y); ++void ++EXPORT_FUNC (grub_video_fbblit_replace_8bit_indexa) (struct grub_video_fbblit_info *dst, ++ struct grub_video_fbblit_info *src, ++ int x, int y, ++ int width, int height, ++ int offset_x, int offset_y); ++ + typedef grub_err_t (*grub_video_fb_set_page_t) (int page); + + grub_err_t +-- +1.8.2.1 + diff --git a/0423-More-video-checks.patch b/0423-More-video-checks.patch new file mode 100644 index 0000000..4f3a6a0 --- /dev/null +++ b/0423-More-video-checks.patch @@ -0,0 +1,853 @@ +From 4dafde8d6cf598182b80089235d26cc32c46cb8c Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 14:00:14 +0200 +Subject: [PATCH 423/471] More video checks. + +--- + ChangeLog | 4 + + grub-core/tests/checksums.h | 396 ++++++++++++++++++++++++++++++++------- + grub-core/tests/gfxterm_menu.c | 77 +++++++- + grub-core/tests/video_checksum.c | 115 ++++++++---- + grub-core/video/video.c | 6 +- + include/grub/test.h | 4 + + tests/grub_func_test.in | 2 +- + tests/util/grub-shell.in | 2 + + 8 files changed, 494 insertions(+), 112 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 74cb13d..a13face 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-04 Vladimir Serbinenko + ++ More video checks. ++ ++2013-05-04 Vladimir Serbinenko ++ + Speed-up gfxterm by saving intermediate results in index+alpha + format. + +diff --git a/grub-core/tests/checksums.h b/grub-core/tests/checksums.h +index c2d2f5a..ac677bb 100644 +--- a/grub-core/tests/checksums.h ++++ b/grub-core/tests/checksums.h +@@ -1,66 +1,339 @@ +- { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa14ad466, 0x69520db1, 0xa14ad466, 0xe82e990f, 0x59c36f00, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa3faf149, 0xb4654ad0, 0xa3faf149, 0xff6942c6, 0xaa4593fe, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5e4100a, 0x39522e26, 0xd5e4100a, 0x2e0276, 0xc9cbf769, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xa14ad466, 0x69520db1, 0xa14ad466, 0xe82e990f, 0x59c36f00, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xa3faf149, 0xb4654ad0, 0xa3faf149, 0xff6942c6, 0xaa4593fe, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5e4100a, 0x39522e26, 0xd5e4100a, 0x2e0276, 0xc9cbf769, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9093f849, 0xc02929e3, 0x9093f849, 0xe2f077d4, 0x5387d57f, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbbe054f6, 0xbef13bfe, 0xbbe054f6, 0xa23fcfe0, 0xf83ee7aa, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x8cea8db2, 0x9688dd3b, 0x8cea8db2, 0x6fe82515, 0x724366e5, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25e346a1, 0xbd5eb38b, 0x25e346a1, 0x9d469431, 0x5387d57f, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x6f33e7a0, 0x5716dafe, 0x6f33e7a0, 0xbfa18d18, 0xf83ee7aa, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xffb24323, 0x6e8fa0be, 0xffb24323, 0xad5c8fa5, 0x724366e5, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x5a925b39, 0x36226b, 0x5a925b39, 0xafa322b7, 0x1c955882, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfb4aecf8, 0x17b91739, 0xfb4aecf8, 0xf7e3d211, 0x4d266f7a, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x4015c90f, 0x430ae98c, 0x4015c90f, 0xeb61f90d, 0x1ed9d731, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4df27666, 0xb8015ce1, 0x4df27666, 0x8bef2cac, 0x9813a416, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6d1d5058, 0xb2d8ed2c, 0x6d1d5058, 0xe8936168, 0x5fcf013d, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xeec86af1, 0x13493ea, 0xeec86af1, 0xee83739a, 0xdd28f52b, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9093f849, 0xc02929e3, 0x9093f849, 0xe2f077d4, 0x5387d57f, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbbe054f6, 0xbef13bfe, 0xbbe054f6, 0xa23fcfe0, 0xf83ee7aa, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x8cea8db2, 0x9688dd3b, 0x8cea8db2, 0x6fe82515, 0x724366e5, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25e346a1, 0xbd5eb38b, 0x25e346a1, 0x9d469431, 0x5387d57f, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x6f33e7a0, 0x5716dafe, 0x6f33e7a0, 0xbfa18d18, 0xf83ee7aa, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xffb24323, 0x6e8fa0be, 0xffb24323, 0xad5c8fa5, 0x724366e5, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x5a925b39, 0x36226b, 0x5a925b39, 0xafa322b7, 0x1c955882, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfb4aecf8, 0x17b91739, 0xfb4aecf8, 0xf7e3d211, 0x4d266f7a, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x4015c90f, 0x430ae98c, 0x4015c90f, 0xeb61f90d, 0x1ed9d731, }, 6 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x4df27666, 0xb8015ce1, 0x4df27666, 0x8bef2cac, 0x9813a416, }, 6 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6d1d5058, 0xb2d8ed2c, 0x6d1d5058, 0xe8936168, 0x5fcf013d, }, 6 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xeec86af1, 0x13493ea, 0xeec86af1, 0xee83739a, 0xdd28f52b, }, 6 }, +- { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7a3f695f, 0xac449d41, 0x7a3f695f, 0x28a073b1, }, 5 }, +- { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2ee70aea, 0x8f5328d2, 0x2ee70aea, 0x19fb9508, }, 5 }, +- { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xef842e14, 0x9b7cdc00, 0xef842e14, 0x750c3145, }, 5 }, +- { "gfxmenu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xcfa0e627, 0x8b7088da, 0xcfa0e627, 0xcd807142, }, 5 }, +- { "gfxmenu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x64807934, 0x85d684c9, 0x64807934, 0x61726a79, }, 5 }, +- { "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x9792b643, 0x1d769dd8, 0x9386dd8c, 0x9792b643, 0x3d74bd2f, }, 6 }, +- { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbdb8f583, 0x1e27b76, 0xbdb8f583, 0x91be6e17, }, 5 }, +- { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbe72e1cb, 0x4943add3, 0xbe72e1cb, 0xa207f983, }, 5 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xbc064047, 0x9e12d9ac, 0xbc064047, 0xf9bdce43, }, 5 }, +- { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x6181ad43, 0xe570d91, 0x6181ad43, 0x567fb1cc, }, 5 }, +- { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1e5b6982, 0x789f961c, 0x1e5b6982, 0xc1ad694a, }, 5 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x73f85cef, 0x9469d68d, 0x73f85cef, 0x24779078, }, 5 }, +- { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xa6ddcb95, 0xa3934314, 0xa6ddcb95, 0x16ab9b6c, }, 5 }, +- { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x18e25ecc, 0xe52f7def, 0x18e25ecc, 0x5bd10081, }, 5 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xa845bba2, 0xb67fe791, 0xa845bba2, 0x80452493, }, 5 }, +- { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xf162dfa3, 0xe0f86fe6, 0xf162dfa3, 0x51f56384, }, 5 }, +- { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x644b801, 0x8a201b04, 0x644b801, 0xa4508ec0, }, 5 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x1e1a41fe, 0x237e53c4, 0x1e1a41fe, 0xd5890062, }, 5 }, +- { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xa35a45c5, 0xacbc8410, 0xa35a45c5, 0xed2e11bd, }, 5 }, +- { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8a6fa170, 0x7605140e, 0x8a6fa170, 0xc030feb1, }, 5 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x49ddd3e4, 0xbfaeedf9, 0x49ddd3e4, 0xcde1d4b5, }, 5 }, +- { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x98a8e7a8, 0xd9cab55f, 0x98a8e7a8, 0xf2b7dd05, }, 5 }, +- { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa000334f, 0xa1b11a86, 0xa000334f, 0x8ac1b99f, }, 5 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xc662fb1, 0x673baf90, 0xc662fb1, 0xfb88406, }, 5 }, +- { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x33d4530e, 0x11ff262b, 0x33d4530e, 0xbb511beb, }, 5 }, +- { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8b2e9364, 0x1d99d298, 0x8b2e9364, 0x958d5e8d, }, 5 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x6e78baae, 0xaedcda00, 0x6e78baae, 0x9399bef9, }, 5 }, +- { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x42860f9a, 0x57da9ef, 0x42860f9a, 0x221db42c, }, 5 }, +- { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x2ade7eff, 0xc91e0e0c, 0x2ade7eff, 0x8ad4bad6, }, 5 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xef4a3312, 0x4c493c2d, 0x487c542b, 0x4c493c2d, 0xfec68cd6, }, 5 }, ++ { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa14ad466, 0x69520db1, 0xa14ad466, 0xe82e990f, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xe82e990f, 0xe82e990f, 0x59c36f00, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa3faf149, 0xb4654ad0, 0xa3faf149, 0xff6942c6, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0xff6942c6, 0xff6942c6, 0xaa4593fe, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5e4100a, 0x39522e26, 0xd5e4100a, 0x2e0276, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x2e0276, 0x2e0276, 0xc9cbf769, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4df27666, 0xb8015ce1, 0x4df27666, 0x8bef2cac, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0x8bef2cac, 0x8bef2cac, 0x9813a416, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6d1d5058, 0xb2d8ed2c, 0x6d1d5058, 0xe8936168, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0xe8936168, 0xe8936168, 0x5fcf013d, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xeec86af1, 0x13493ea, 0xeec86af1, 0xee83739a, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0xee83739a, 0xee83739a, 0xdd28f52b, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xa14ad466, 0x69520db1, 0xa14ad466, 0xe82e990f, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xe82e990f, 0xe82e990f, 0x59c36f00, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xa3faf149, 0xb4654ad0, 0xa3faf149, 0xff6942c6, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0xff6942c6, 0xff6942c6, 0xaa4593fe, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5e4100a, 0x39522e26, 0xd5e4100a, 0x2e0276, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x2e0276, 0x2e0276, 0xc9cbf769, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9093f849, 0xc02929e3, 0x9093f849, 0xe2f077d4, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0xe2f077d4, 0xe2f077d4, 0x5387d57f, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbbe054f6, 0xbef13bfe, 0xbbe054f6, 0xa23fcfe0, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0xa23fcfe0, 0xa23fcfe0, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x8cea8db2, 0x9688dd3b, 0x8cea8db2, 0x6fe82515, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x6fe82515, 0x6fe82515, 0x724366e5, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25e346a1, 0xbd5eb38b, 0x25e346a1, 0x9d469431, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0x9d469431, 0x9d469431, 0x5387d57f, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x6f33e7a0, 0x5716dafe, 0x6f33e7a0, 0xbfa18d18, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0xbfa18d18, 0xbfa18d18, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xffb24323, 0x6e8fa0be, 0xffb24323, 0xad5c8fa5, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0xad5c8fa5, 0xad5c8fa5, 0x724366e5, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x5a925b39, 0x36226b, 0x5a925b39, 0xafa322b7, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0xafa322b7, 0xafa322b7, 0x1c955882, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfb4aecf8, 0x17b91739, 0xfb4aecf8, 0xf7e3d211, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0xf7e3d211, 0xf7e3d211, 0x4d266f7a, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x4015c90f, 0x430ae98c, 0x4015c90f, 0xeb61f90d, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0xeb61f90d, 0xeb61f90d, 0x1ed9d731, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9093f849, 0xc02929e3, 0x9093f849, 0xe2f077d4, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0xe2f077d4, 0xe2f077d4, 0x5387d57f, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbbe054f6, 0xbef13bfe, 0xbbe054f6, 0xa23fcfe0, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0xa23fcfe0, 0xa23fcfe0, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x8cea8db2, 0x9688dd3b, 0x8cea8db2, 0x6fe82515, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x6fe82515, 0x6fe82515, 0x724366e5, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25e346a1, 0xbd5eb38b, 0x25e346a1, 0x9d469431, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0x9d469431, 0x9d469431, 0x5387d57f, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x6f33e7a0, 0x5716dafe, 0x6f33e7a0, 0xbfa18d18, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0xbfa18d18, 0xbfa18d18, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xffb24323, 0x6e8fa0be, 0xffb24323, 0xad5c8fa5, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0xad5c8fa5, 0xad5c8fa5, 0x724366e5, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x5a925b39, 0x36226b, 0x5a925b39, 0xafa322b7, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0xafa322b7, 0xafa322b7, 0x1c955882, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfb4aecf8, 0x17b91739, 0xfb4aecf8, 0xf7e3d211, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0xf7e3d211, 0xf7e3d211, 0x4d266f7a, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x4015c90f, 0x430ae98c, 0x4015c90f, 0xeb61f90d, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0xeb61f90d, 0xeb61f90d, 0x1ed9d731, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x4df27666, 0xb8015ce1, 0x4df27666, 0x8bef2cac, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0x8bef2cac, 0x8bef2cac, 0x9813a416, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6d1d5058, 0xb2d8ed2c, 0x6d1d5058, 0xe8936168, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0xe8936168, 0xe8936168, 0x5fcf013d, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xeec86af1, 0x13493ea, 0xeec86af1, 0xee83739a, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0xee83739a, 0xee83739a, 0xdd28f52b, }, 20 }, ++ { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7a3f695f, 0xac449d41, 0x7a3f695f, 0x28a073b1, 0xf22da29a, 0x169cd2a2, 0x169cd2a2, 0x169cd2a2, 0xc3a67fb9, 0xc3a67fb9, 0xc3a67fb9, 0x6c67e914, 0x6c67e914, 0x6c67e914, 0x59c36f00, 0x28a073b1, 0x28a073b1, }, 18 }, ++ { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2ee70aea, 0x8f5328d2, 0x2ee70aea, 0x19fb9508, 0x2c3dfa69, 0x1f8453a4, 0x1f8453a4, 0x1f8453a4, 0xc9055b79, 0xc9055b79, 0xc9055b79, 0xef40ac6a, 0xef40ac6a, 0xef40ac6a, 0xaa4593fe, 0x19fb9508, 0x19fb9508, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xef842e14, 0x9b7cdc00, 0xef842e14, 0x750c3145, 0xb069b9a2, 0x3f87d41f, 0x3f87d41f, 0x3f87d41f, 0x8a031b3a, 0x8a031b3a, 0x8a031b3a, 0x4ed887f7, 0x4ed887f7, 0x4ed887f7, 0xc9cbf769, 0x750c3145, 0x750c3145, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xf162dfa3, 0xe0f86fe6, 0xf162dfa3, 0x51f56384, 0xa9aef7c0, 0x7e4eeeb7, 0x7e4eeeb7, 0x7e4eeeb7, 0x902dc363, 0x902dc363, 0x902dc363, 0xd478551d, 0xd478551d, 0xd478551d, 0x1c3742c9, 0x51f56384, 0x51f56384, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x644b801, 0x8a201b04, 0x644b801, 0xa4508ec0, 0xcb189b31, 0x8279446f, 0x8279446f, 0x8279446f, 0x80b67d02, 0x80b67d02, 0x80b67d02, 0xa1cc8118, 0xa1cc8118, 0xa1cc8118, 0xcc5a7bed, 0xa4508ec0, 0xa4508ec0, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x1e1a41fe, 0x237e53c4, 0x1e1a41fe, 0xd5890062, 0x7180f3ea, 0x6be1ad05, 0x6be1ad05, 0x6be1ad05, 0x680e4253, 0x680e4253, 0x680e4253, 0xed2cabb8, 0xed2cabb8, 0xed2cabb8, 0xef4a3312, 0xd5890062, 0xd5890062, }, 18 }, ++ { "gfxmenu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xcfa0e627, 0x8b7088da, 0xcfa0e627, 0xcd807142, 0xdc37dab7, 0x3886aa8f, 0x3886aa8f, 0x3886aa8f, 0xedbc0794, 0xedbc0794, 0xedbc0794, 0x427d9139, 0x427d9139, 0x427d9139, 0x59c36f00, 0xcd807142, 0xcd807142, }, 18 }, ++ { "gfxmenu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x64807934, 0x85d684c9, 0x64807934, 0x61726a79, 0x71c38b, 0x33c86a46, 0x33c86a46, 0x33c86a46, 0xe549629b, 0xe549629b, 0xe549629b, 0xc30c9588, 0xc30c9588, 0xc30c9588, 0xaa4593fe, 0x61726a79, 0x61726a79, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x9792b643, 0x1d769dd8, 0x9386dd8c, 0x9792b643, 0x3d74bd2f, 0x4411e313, 0xcbff8eae, 0xcbff8eae, 0xcbff8eae, 0x7e7b418b, 0x7e7b418b, 0x7e7b418b, 0xbaa0dd46, 0xbaa0dd46, 0xbaa0dd46, 0xc9cbf769, 0x3d74bd2f, 0x3d74bd2f, }, 19 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbdb8f583, 0x1e27b76, 0xbdb8f583, 0x91be6e17, 0xf93a81be, 0x8632932e, 0x8632932e, 0x8632932e, 0xa297894, 0xa297894, 0xa297894, 0x66f16747, 0x66f16747, 0x66f16747, 0x5387d57f, 0x91be6e17, 0x91be6e17, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbe72e1cb, 0x4943add3, 0xbe72e1cb, 0xa207f983, 0x58397d1d, 0x809530c5, 0x809530c5, 0x809530c5, 0x8b80ad8a, 0x8b80ad8a, 0x8b80ad8a, 0x425ad0af, 0x425ad0af, 0x425ad0af, 0xf83ee7aa, 0xa207f983, 0xa207f983, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xbc064047, 0x9e12d9ac, 0xbc064047, 0xf9bdce43, 0x7184c3f8, 0xc8fd1102, 0xc8fd1102, 0xc8fd1102, 0x81f910a3, 0x81f910a3, 0x81f910a3, 0xdb64e608, 0xdb64e608, 0xdb64e608, 0x724366e5, 0xf9bdce43, 0xf9bdce43, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x6181ad43, 0xe570d91, 0x6181ad43, 0x567fb1cc, 0xa8a3da, 0x5f74d9d, 0x5f74d9d, 0x5f74d9d, 0xed4861bc, 0xed4861bc, 0xed4861bc, 0xcd9c9ca8, 0xcd9c9ca8, 0xcd9c9ca8, 0x5387d57f, 0x567fb1cc, 0x567fb1cc, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1e5b6982, 0x789f961c, 0x1e5b6982, 0xc1ad694a, 0xbc4e843c, 0x27165c47, 0x27165c47, 0x27165c47, 0x5312181a, 0x5312181a, 0x5312181a, 0x9a1929fd, 0x9a1929fd, 0x9a1929fd, 0xf83ee7aa, 0xc1ad694a, 0xc1ad694a, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x73f85cef, 0x9469d68d, 0x73f85cef, 0x24779078, 0x6f964a90, 0x205a3335, 0x205a3335, 0x205a3335, 0x5d68cafd, 0x5d68cafd, 0x5d68cafd, 0x4129165e, 0x4129165e, 0x4129165e, 0x724366e5, 0x24779078, 0x24779078, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xa6ddcb95, 0xa3934314, 0xa6ddcb95, 0x16ab9b6c, 0x1755c99c, 0x1432b906, 0x1432b906, 0x1432b906, 0xb2aaa903, 0xb2aaa903, 0xb2aaa903, 0x3014dff7, 0x3014dff7, 0x3014dff7, 0x1c955882, 0x16ab9b6c, 0x16ab9b6c, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x18e25ecc, 0xe52f7def, 0x18e25ecc, 0x5bd10081, 0xf52b17e7, 0x781d42cf, 0x781d42cf, 0x781d42cf, 0x43cb6f95, 0x43cb6f95, 0x43cb6f95, 0xe7bb907d, 0xe7bb907d, 0xe7bb907d, 0x4d266f7a, 0x5bd10081, 0x5bd10081, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xa845bba2, 0xb67fe791, 0xa845bba2, 0x80452493, 0x437302fa, 0xbd263b46, 0xbd263b46, 0xbd263b46, 0xdd07a911, 0xdd07a911, 0xdd07a911, 0x75ab7095, 0x75ab7095, 0x75ab7095, 0x1ed9d731, 0x80452493, 0x80452493, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xa35a45c5, 0xacbc8410, 0xa35a45c5, 0xed2e11bd, 0x79f9376f, 0x6f125ff, 0x6f125ff, 0x6f125ff, 0x8aeace45, 0x8aeace45, 0x8aeace45, 0xe632d196, 0xe632d196, 0xe632d196, 0x5387d57f, 0xed2e11bd, 0xed2e11bd, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8a6fa170, 0x7605140e, 0x8a6fa170, 0xc030feb1, 0xa84da503, 0x70e1e8db, 0x70e1e8db, 0x70e1e8db, 0x7bf47594, 0x7bf47594, 0x7bf47594, 0xb22e08b1, 0xb22e08b1, 0xb22e08b1, 0xf83ee7aa, 0xc030feb1, 0xc030feb1, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x49ddd3e4, 0xbfaeedf9, 0x49ddd3e4, 0xcde1d4b5, 0xf7229851, 0x4e5b4aab, 0x4e5b4aab, 0x4e5b4aab, 0x75f4b0a, 0x75f4b0a, 0x75f4b0a, 0x5dc2bda1, 0x5dc2bda1, 0x5dc2bda1, 0x724366e5, 0xcde1d4b5, 0xcde1d4b5, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x98a8e7a8, 0xd9cab55f, 0x98a8e7a8, 0xf2b7dd05, 0xa199f4d7, 0xa4c61a90, 0xa4c61a90, 0xa4c61a90, 0x4c7936b1, 0x4c7936b1, 0x4c7936b1, 0x6cadcba5, 0x6cadcba5, 0x6cadcba5, 0x5387d57f, 0xf2b7dd05, 0xf2b7dd05, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa000334f, 0xa1b11a86, 0xa000334f, 0x8ac1b99f, 0xeaf098c4, 0x71a840bf, 0x71a840bf, 0x71a840bf, 0x5ac04e2, 0x5ac04e2, 0x5ac04e2, 0xcca73505, 0xcca73505, 0xcca73505, 0xf83ee7aa, 0x8ac1b99f, 0x8ac1b99f, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xc662fb1, 0x673baf90, 0xc662fb1, 0xfb88406, 0x8df6104e, 0xc23a69eb, 0xc23a69eb, 0xc23a69eb, 0xbf089023, 0xbf089023, 0xbf089023, 0xa3494c80, 0xa3494c80, 0xa3494c80, 0x724366e5, 0xfb88406, 0xfb88406, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x33d4530e, 0x11ff262b, 0x33d4530e, 0xbb511beb, 0xb3f7ca7e, 0xb090bae4, 0xb090bae4, 0xb090bae4, 0x1608aae1, 0x1608aae1, 0x1608aae1, 0x94b6dc15, 0x94b6dc15, 0x94b6dc15, 0x1c955882, 0xbb511beb, 0xbb511beb, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8b2e9364, 0x1d99d298, 0x8b2e9364, 0x958d5e8d, 0xfdfd7cdc, 0x70cb29f4, 0x70cb29f4, 0x70cb29f4, 0x4b1d04ae, 0x4b1d04ae, 0x4b1d04ae, 0xef6dfb46, 0xef6dfb46, 0xef6dfb46, 0x4d266f7a, 0x958d5e8d, 0x958d5e8d, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x6e78baae, 0xaedcda00, 0x6e78baae, 0x9399bef9, 0xa685f2c7, 0x58d0cb7b, 0x58d0cb7b, 0x58d0cb7b, 0x38f1592c, 0x38f1592c, 0x38f1592c, 0x905d80a8, 0x905d80a8, 0x905d80a8, 0x1ed9d731, 0x9399bef9, 0x9399bef9, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x42860f9a, 0x57da9ef, 0x42860f9a, 0x221db42c, 0xdb3adfbf, 0xcdac6c8, 0xcdac6c8, 0xcdac6c8, 0xe2b9eb1c, 0xe2b9eb1c, 0xe2b9eb1c, 0xa6ec7d62, 0xa6ec7d62, 0xa6ec7d62, 0x1c3742c9, 0x221db42c, 0x221db42c, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x2ade7eff, 0xc91e0e0c, 0x2ade7eff, 0x8ad4bad6, 0x7f2729d6, 0x3646f688, 0x3646f688, 0x3646f688, 0x3489cfe5, 0x3489cfe5, 0x3489cfe5, 0x15f333ff, 0x15f333ff, 0x15f333ff, 0xcc5a7bed, 0x8ad4bad6, 0x8ad4bad6, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xef4a3312, 0x4c493c2d, 0x487c542b, 0x4c493c2d, 0xfec68cd6, 0x76f27cf8, 0x6c932217, 0x6c932217, 0x6c932217, 0x6f7ccd41, 0x6f7ccd41, 0x6f7ccd41, 0xea5e24aa, 0xea5e24aa, 0xea5e24aa, 0xef4a3312, 0xfec68cd6, 0xfec68cd6, }, 18 }, ++ { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xb0361371, 0x1b06d274, 0xb0361371, 0xf9525e18, 0x59c36f00, 0x59c36f00, 0xbb825618, 0xbb825618, 0xbb825618, 0xe79056fa, 0xe79056fa, 0xe79056fa, 0xa2dc6264, 0xa2dc6264, 0xa2dc6264, 0x59c36f00, 0xf9525e18, 0xf9525e18, 0x59c36f00, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5e07c64, 0xd973835d, 0xcb531eb6, 0x97c0ad39, 0xaa4593fe, 0xaa4593fe, 0x470bd063, 0x470bd063, 0x470bd063, 0x9d8c7f58, 0x9d8c7f58, 0x9d8c7f58, 0xa1806f11, 0xa1806f11, 0xa1806f11, 0xaa4593fe, 0x8973cfeb, 0x97c0ad39, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf652cbe1, 0xd6584e36, 0x993a7b88, 0x4cf069f4, 0xc9cbf769, 0xc9cbf769, 0x40f84477, 0x40f84477, 0x40f84477, 0x74116359, 0x74116359, 0x74116359, 0x56750bd2, 0x56750bd2, 0x56750bd2, 0xc9cbf769, 0x2398d99d, 0x4cf069f4, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x87ba7c21, 0x62eab185, 0x87ba7c21, 0x41a726eb, 0x9813a416, 0x9813a416, 0xcbe87745, 0xcbe87745, 0xcbe87745, 0xc01d73ea, 0xc01d73ea, 0xc01d73ea, 0xd41fb173, 0xd41fb173, 0xd41fb173, 0x9813a416, 0x41a726eb, 0x41a726eb, 0x9813a416, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x7cf854b5, 0x4d5395da, 0xbe7776c4, 0x3bf947f4, 0x5fcf013d, 0x5fcf013d, 0x5c1d4263, 0x5c1d4263, 0x5c1d4263, 0xad5e477e, 0xad5e477e, 0xad5e477e, 0xeaa144f9, 0xeaa144f9, 0xeaa144f9, 0x5fcf013d, 0xf9766585, 0x3bf947f4, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x9ab1c3a0, 0x3c2d2348, 0x4d30c6c3, 0x4d7bdfa8, 0xdd28f52b, 0xdd28f52b, 0x57f4ff36, 0x57f4ff36, 0x57f4ff36, 0x2ae2b8f2, 0x2ae2b8f2, 0x2ae2b8f2, 0x49d066d8, 0x49d066d8, 0x49d066d8, 0xdd28f52b, 0x9afadacb, 0x4d7bdfa8, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xb0361371, 0x1b06d274, 0xb0361371, 0xf9525e18, 0x59c36f00, 0x59c36f00, 0xbb825618, 0xbb825618, 0xbb825618, 0xe79056fa, 0xe79056fa, 0xe79056fa, 0xa2dc6264, 0xa2dc6264, 0xa2dc6264, 0x59c36f00, 0xf9525e18, 0xf9525e18, 0x59c36f00, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5e07c64, 0xd973835d, 0xcb531eb6, 0x97c0ad39, 0xaa4593fe, 0xaa4593fe, 0x470bd063, 0x470bd063, 0x470bd063, 0x9d8c7f58, 0x9d8c7f58, 0x9d8c7f58, 0xa1806f11, 0xa1806f11, 0xa1806f11, 0xaa4593fe, 0x8973cfeb, 0x97c0ad39, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xf652cbe1, 0xd6584e36, 0x993a7b88, 0x4cf069f4, 0xc9cbf769, 0xc9cbf769, 0x40f84477, 0x40f84477, 0x40f84477, 0x74116359, 0x74116359, 0x74116359, 0x56750bd2, 0x56750bd2, 0x56750bd2, 0xc9cbf769, 0x2398d99d, 0x4cf069f4, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x7b209cbf, 0x2f8bc59a, 0x7b209cbf, 0x9431322, 0x5387d57f, 0x5387d57f, 0x68f2d5ef, 0x68f2d5ef, 0x68f2d5ef, 0x4b9313e5, 0x4b9313e5, 0x4b9313e5, 0xe3c85628, 0xe3c85628, 0xe3c85628, 0x5387d57f, 0x9431322, 0x9431322, 0x5387d57f, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xe0d6abdc, 0x1fb5ebb5, 0xf2d32271, 0xeb0cb967, 0xf83ee7aa, 0xf83ee7aa, 0x5e332832, 0x5e332832, 0x5e332832, 0x9a04a3d3, 0x9a04a3d3, 0x9a04a3d3, 0x551af0c1, 0x551af0c1, 0x551af0c1, 0xf83ee7aa, 0xf90930ca, 0xeb0cb967, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xeeeb078a, 0xa8401f78, 0xc4e7df4d, 0x27e577ea, 0x724366e5, 0x724366e5, 0x3c69c88a, 0x3c69c88a, 0x3c69c88a, 0xdf9900ec, 0xdf9900ec, 0xdf9900ec, 0x61db9594, 0x61db9594, 0x61db9594, 0x724366e5, 0xde9af2d, 0x27e577ea, 0x724366e5, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x68a06b59, 0x5f199a13, 0x68a06b59, 0xd005b9c9, 0x5387d57f, 0x5387d57f, 0x8910bf0d, 0x8910bf0d, 0x8910bf0d, 0x77c5e004, 0x77c5e004, 0x77c5e004, 0x7f3d7937, 0x7f3d7937, 0x7f3d7937, 0x5387d57f, 0xd005b9c9, 0xd005b9c9, 0x5387d57f, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x9683ff51, 0xfcc9713a, 0x7efd6d3a, 0xae6f0782, 0xf83ee7aa, 0xf83ee7aa, 0x60155cd0, 0x60155cd0, 0x60155cd0, 0x2e43055d, 0x2e43055d, 0x2e43055d, 0xc49f7e94, 0xc49f7e94, 0xc49f7e94, 0xf83ee7aa, 0x461195e9, 0xae6f0782, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x6f6a363c, 0xb0e5b5b6, 0x6e302243, 0x3cdeeec5, 0x724366e5, 0x724366e5, 0x57309c73, 0x57309c73, 0x57309c73, 0x96a98d99, 0x96a98d99, 0x96a98d99, 0x12fc06d1, 0x12fc06d1, 0x12fc06d1, 0x724366e5, 0x3d84faba, 0x3cdeeec5, 0x724366e5, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x9253d5dd, 0xdd3a228f, 0x9253d5dd, 0x6762ac53, 0x1c955882, 0x1c955882, 0x6e256146, 0x6e256146, 0x6e256146, 0xec738ef6, 0xec738ef6, 0xec738ef6, 0x239b0b8a, 0x239b0b8a, 0x239b0b8a, 0x1c955882, 0x6762ac53, 0x6762ac53, 0x1c955882, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x2415bc63, 0x37b8de72, 0xee1dac36, 0xe2b492df, 0x4d266f7a, 0x4d266f7a, 0xd3a77460, 0xd3a77460, 0xd3a77460, 0x9ff22726, 0x9ff22726, 0x9ff22726, 0xbd5395d8, 0xbd5395d8, 0xbd5395d8, 0x4d266f7a, 0x28bc828a, 0xe2b492df, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x636f96aa, 0x39f2bbca, 0xb5259489, 0x1e51a48b, 0x1ed9d731, 0x1ed9d731, 0x9310ffef, 0x9310ffef, 0x9310ffef, 0x2711bf67, 0x2711bf67, 0x2711bf67, 0x2a3da324, 0x2a3da324, 0x2a3da324, 0x1ed9d731, 0xc81ba6a8, 0x1e51a48b, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x7b209cbf, 0x2f8bc59a, 0x7b209cbf, 0x9431322, 0x5387d57f, 0x5387d57f, 0x68f2d5ef, 0x68f2d5ef, 0x68f2d5ef, 0x4b9313e5, 0x4b9313e5, 0x4b9313e5, 0xe3c85628, 0xe3c85628, 0xe3c85628, 0x5387d57f, 0x9431322, 0x9431322, 0x5387d57f, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xe0d6abdc, 0x1fb5ebb5, 0xf2d32271, 0xeb0cb967, 0xf83ee7aa, 0xf83ee7aa, 0x5e332832, 0x5e332832, 0x5e332832, 0x9a04a3d3, 0x9a04a3d3, 0x9a04a3d3, 0x551af0c1, 0x551af0c1, 0x551af0c1, 0xf83ee7aa, 0xf90930ca, 0xeb0cb967, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xeeeb078a, 0xa8401f78, 0xc4e7df4d, 0x27e577ea, 0x724366e5, 0x724366e5, 0x3c69c88a, 0x3c69c88a, 0x3c69c88a, 0xdf9900ec, 0xdf9900ec, 0xdf9900ec, 0x61db9594, 0x61db9594, 0x61db9594, 0x724366e5, 0xde9af2d, 0x27e577ea, 0x724366e5, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x68a06b59, 0x5f199a13, 0x68a06b59, 0xd005b9c9, 0x5387d57f, 0x5387d57f, 0x8910bf0d, 0x8910bf0d, 0x8910bf0d, 0x77c5e004, 0x77c5e004, 0x77c5e004, 0x7f3d7937, 0x7f3d7937, 0x7f3d7937, 0x5387d57f, 0xd005b9c9, 0xd005b9c9, 0x5387d57f, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x9683ff51, 0xfcc9713a, 0x7efd6d3a, 0xae6f0782, 0xf83ee7aa, 0xf83ee7aa, 0x60155cd0, 0x60155cd0, 0x60155cd0, 0x2e43055d, 0x2e43055d, 0x2e43055d, 0xc49f7e94, 0xc49f7e94, 0xc49f7e94, 0xf83ee7aa, 0x461195e9, 0xae6f0782, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x6f6a363c, 0xb0e5b5b6, 0x6e302243, 0x3cdeeec5, 0x724366e5, 0x724366e5, 0x57309c73, 0x57309c73, 0x57309c73, 0x96a98d99, 0x96a98d99, 0x96a98d99, 0x12fc06d1, 0x12fc06d1, 0x12fc06d1, 0x724366e5, 0x3d84faba, 0x3cdeeec5, 0x724366e5, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x9253d5dd, 0xdd3a228f, 0x9253d5dd, 0x6762ac53, 0x1c955882, 0x1c955882, 0x6e256146, 0x6e256146, 0x6e256146, 0xec738ef6, 0xec738ef6, 0xec738ef6, 0x239b0b8a, 0x239b0b8a, 0x239b0b8a, 0x1c955882, 0x6762ac53, 0x6762ac53, 0x1c955882, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x2415bc63, 0x37b8de72, 0xee1dac36, 0xe2b492df, 0x4d266f7a, 0x4d266f7a, 0xd3a77460, 0xd3a77460, 0xd3a77460, 0x9ff22726, 0x9ff22726, 0x9ff22726, 0xbd5395d8, 0xbd5395d8, 0xbd5395d8, 0x4d266f7a, 0x28bc828a, 0xe2b492df, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x636f96aa, 0x39f2bbca, 0xb5259489, 0x1e51a48b, 0x1ed9d731, 0x1ed9d731, 0x9310ffef, 0x9310ffef, 0x9310ffef, 0x2711bf67, 0x2711bf67, 0x2711bf67, 0x2a3da324, 0x2a3da324, 0x2a3da324, 0x1ed9d731, 0xc81ba6a8, 0x1e51a48b, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x87ba7c21, 0x62eab185, 0x87ba7c21, 0x41a726eb, 0x9813a416, 0x9813a416, 0xcbe87745, 0xcbe87745, 0xcbe87745, 0xc01d73ea, 0xc01d73ea, 0xc01d73ea, 0xd41fb173, 0xd41fb173, 0xd41fb173, 0x9813a416, 0x41a726eb, 0x41a726eb, 0x9813a416, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x7cf854b5, 0x4d5395da, 0xbe7776c4, 0x3bf947f4, 0x5fcf013d, 0x5fcf013d, 0x5c1d4263, 0x5c1d4263, 0x5c1d4263, 0xad5e477e, 0xad5e477e, 0xad5e477e, 0xeaa144f9, 0xeaa144f9, 0xeaa144f9, 0x5fcf013d, 0xf9766585, 0x3bf947f4, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x9ab1c3a0, 0x3c2d2348, 0x4d30c6c3, 0x4d7bdfa8, 0xdd28f52b, 0xdd28f52b, 0x57f4ff36, 0x57f4ff36, 0x57f4ff36, 0x2ae2b8f2, 0x2ae2b8f2, 0x2ae2b8f2, 0x49d066d8, 0x49d066d8, 0x49d066d8, 0xdd28f52b, 0x9afadacb, 0x4d7bdfa8, 0xdd28f52b, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7cd7d588, 0xd97ec8cc, 0x7cd7d588, 0x35b398e1, 0x59c36f00, 0x59c36f00, 0x4834c117, 0x4834c117, 0x4834c117, 0x1426c1f5, 0x1426c1f5, 0x1426c1f5, 0x516af56b, 0x516af56b, 0x516af56b, 0x59c36f00, 0x35b398e1, 0x35b398e1, 0x59c36f00, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x77d5614b, 0xee38f19f, 0x77d5614b, 0x2b46d2c4, 0xaa4593fe, 0xaa4593fe, 0x88eefe02, 0x88eefe02, 0x88eefe02, 0x52695139, 0x52695139, 0x52695139, 0x6e654170, 0x6e654170, 0x6e654170, 0xaa4593fe, 0x2b46d2c4, 0x2b46d2c4, 0xaa4593fe, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5c774be, 0xd6ea481d, 0xd5c774be, 0xd66c2, 0xc9cbf769, 0xc9cbf769, 0x8ca7204, 0x8ca7204, 0x8ca7204, 0x3c23552a, 0x3c23552a, 0x3c23552a, 0x1e473da1, 0x1e473da1, 0x1e473da1, 0xc9cbf769, 0xd66c2, 0xd66c2, 0xc9cbf769, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6ff25334, 0x60142559, 0x6ff25334, 0xa9ef09fe, 0x9813a416, 0x9813a416, 0xe9d151d6, 0xe9d151d6, 0xe9d151d6, 0xe2245579, 0xe2245579, 0xe2245579, 0xf62697e0, 0xf62697e0, 0xf62697e0, 0x9813a416, 0xa9ef09fe, 0xa9ef09fe, 0x9813a416, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x45387400, 0x1f12042f, 0x45387400, 0xc0b64530, 0x5fcf013d, 0x5fcf013d, 0xae65b130, 0xae65b130, 0xae65b130, 0x5f26b42d, 0x5f26b42d, 0x5f26b42d, 0x18d9b7aa, 0x18d9b7aa, 0x18d9b7aa, 0x5fcf013d, 0xc0b64530, 0xc0b64530, 0x5fcf013d, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf22852b8, 0x64b58aed, 0xf22852b8, 0xf2634bd3, 0xdd28f52b, 0xdd28f52b, 0x6226cfea, 0x6226cfea, 0x6226cfea, 0x1f30882e, 0x1f30882e, 0x1f30882e, 0x7c025604, 0x7c025604, 0x7c025604, 0xdd28f52b, 0xf2634bd3, 0xf2634bd3, 0xdd28f52b, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x7cd7d588, 0xd97ec8cc, 0x7cd7d588, 0x35b398e1, 0x59c36f00, 0x59c36f00, 0x4834c117, 0x4834c117, 0x4834c117, 0x1426c1f5, 0x1426c1f5, 0x1426c1f5, 0x516af56b, 0x516af56b, 0x516af56b, 0x59c36f00, 0x35b398e1, 0x35b398e1, 0x59c36f00, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x77d5614b, 0xee38f19f, 0x77d5614b, 0x2b46d2c4, 0xaa4593fe, 0xaa4593fe, 0x88eefe02, 0x88eefe02, 0x88eefe02, 0x52695139, 0x52695139, 0x52695139, 0x6e654170, 0x6e654170, 0x6e654170, 0xaa4593fe, 0x2b46d2c4, 0x2b46d2c4, 0xaa4593fe, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5c774be, 0xd6ea481d, 0xd5c774be, 0xd66c2, 0xc9cbf769, 0xc9cbf769, 0x8ca7204, 0x8ca7204, 0x8ca7204, 0x3c23552a, 0x3c23552a, 0x3c23552a, 0x1e473da1, 0x1e473da1, 0x1e473da1, 0xc9cbf769, 0xd66c2, 0xd66c2, 0xc9cbf769, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x44f24a9a, 0xb7ce71f6, 0x44f24a9a, 0x3691c507, 0x5387d57f, 0x5387d57f, 0x4ae6f1ac, 0x4ae6f1ac, 0x4ae6f1ac, 0x698737a6, 0x698737a6, 0x698737a6, 0xc1dc726b, 0xc1dc726b, 0xc1dc726b, 0x5387d57f, 0x3691c507, 0x3691c507, 0x5387d57f, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf3703bd8, 0x8a9322ca, 0xf3703bd8, 0xeaafa0ce, 0xf83ee7aa, 0xf83ee7aa, 0xc41b64b6, 0xc41b64b6, 0xc41b64b6, 0x2cef57, 0x2cef57, 0x2cef57, 0xcf32bc45, 0xcf32bc45, 0xcf32bc45, 0xf83ee7aa, 0xeaafa0ce, 0xeaafa0ce, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x159757b3, 0x82f3937, 0x159757b3, 0xf695ff14, 0x724366e5, 0x724366e5, 0xd936d375, 0xd936d375, 0xd936d375, 0x3ac61b13, 0x3ac61b13, 0x3ac61b13, 0x84848e6b, 0x84848e6b, 0x84848e6b, 0x724366e5, 0xf695ff14, 0xf695ff14, 0x724366e5, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x96a35d83, 0x84b40f7d, 0x96a35d83, 0x2e068f13, 0x5387d57f, 0x5387d57f, 0x2512d363, 0x2512d363, 0x2512d363, 0xdbc78c6a, 0xdbc78c6a, 0xdbc78c6a, 0xd33f1559, 0xd33f1559, 0xd33f1559, 0x5387d57f, 0x2e068f13, 0x2e068f13, 0x5387d57f, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1c900934, 0xece326ba, 0x1c900934, 0xcc02638c, 0xf83ee7aa, 0xf83ee7aa, 0x1dbd718d, 0x1dbd718d, 0x1dbd718d, 0x53eb2800, 0x53eb2800, 0x53eb2800, 0xb93753c9, 0xb93753c9, 0xb93753c9, 0xf83ee7aa, 0xcc02638c, 0xcc02638c, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x32265220, 0x42236b81, 0x32265220, 0x60c89ea6, 0x724366e5, 0x724366e5, 0x63c96d38, 0x63c96d38, 0x63c96d38, 0xa2507cd2, 0xa2507cd2, 0xa2507cd2, 0x2605f79a, 0x2605f79a, 0x2605f79a, 0x724366e5, 0x60c89ea6, 0x60c89ea6, 0x724366e5, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xdfe16fc4, 0xfeb34743, 0xdfe16fc4, 0x2ad0164a, 0x1c955882, 0x1c955882, 0xdc546008, 0xdc546008, 0xdc546008, 0x5e028fb8, 0x5e028fb8, 0x5e028fb8, 0x91ea0ac4, 0x91ea0ac4, 0x91ea0ac4, 0x1c955882, 0x2ad0164a, 0x2ad0164a, 0x1c955882, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xf988b96e, 0x28c3dbd0, 0xf988b96e, 0xf5218787, 0x4d266f7a, 0x4d266f7a, 0xe63989ae, 0xe63989ae, 0xe63989ae, 0xaa6cdae8, 0xaa6cdae8, 0xaa6cdae8, 0x88cd6816, 0x88cd6816, 0x88cd6816, 0x4d266f7a, 0xf5218787, 0xf5218787, 0x4d266f7a, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe189c1c0, 0x6e09d325, 0xe189c1c0, 0x4afdf1c2, 0x1ed9d731, 0x1ed9d731, 0xb7a388a2, 0xb7a388a2, 0xb7a388a2, 0x3a2c82a, 0x3a2c82a, 0x3a2c82a, 0xe8ed469, 0xe8ed469, 0xe8ed469, 0x1ed9d731, 0x4afdf1c2, 0x4afdf1c2, 0x1ed9d731, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x44f24a9a, 0xb7ce71f6, 0x44f24a9a, 0x3691c507, 0x5387d57f, 0x5387d57f, 0x4ae6f1ac, 0x4ae6f1ac, 0x4ae6f1ac, 0x698737a6, 0x698737a6, 0x698737a6, 0xc1dc726b, 0xc1dc726b, 0xc1dc726b, 0x5387d57f, 0x3691c507, 0x3691c507, 0x5387d57f, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf3703bd8, 0x8a9322ca, 0xf3703bd8, 0xeaafa0ce, 0xf83ee7aa, 0xf83ee7aa, 0xc41b64b6, 0xc41b64b6, 0xc41b64b6, 0x2cef57, 0x2cef57, 0x2cef57, 0xcf32bc45, 0xcf32bc45, 0xcf32bc45, 0xf83ee7aa, 0xeaafa0ce, 0xeaafa0ce, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x159757b3, 0x82f3937, 0x159757b3, 0xf695ff14, 0x724366e5, 0x724366e5, 0xd936d375, 0xd936d375, 0xd936d375, 0x3ac61b13, 0x3ac61b13, 0x3ac61b13, 0x84848e6b, 0x84848e6b, 0x84848e6b, 0x724366e5, 0xf695ff14, 0xf695ff14, 0x724366e5, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x96a35d83, 0x84b40f7d, 0x96a35d83, 0x2e068f13, 0x5387d57f, 0x5387d57f, 0x2512d363, 0x2512d363, 0x2512d363, 0xdbc78c6a, 0xdbc78c6a, 0xdbc78c6a, 0xd33f1559, 0xd33f1559, 0xd33f1559, 0x5387d57f, 0x2e068f13, 0x2e068f13, 0x5387d57f, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1c900934, 0xece326ba, 0x1c900934, 0xcc02638c, 0xf83ee7aa, 0xf83ee7aa, 0x1dbd718d, 0x1dbd718d, 0x1dbd718d, 0x53eb2800, 0x53eb2800, 0x53eb2800, 0xb93753c9, 0xb93753c9, 0xb93753c9, 0xf83ee7aa, 0xcc02638c, 0xcc02638c, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x32265220, 0x42236b81, 0x32265220, 0x60c89ea6, 0x724366e5, 0x724366e5, 0x63c96d38, 0x63c96d38, 0x63c96d38, 0xa2507cd2, 0xa2507cd2, 0xa2507cd2, 0x2605f79a, 0x2605f79a, 0x2605f79a, 0x724366e5, 0x60c89ea6, 0x60c89ea6, 0x724366e5, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xdfe16fc4, 0xfeb34743, 0xdfe16fc4, 0x2ad0164a, 0x1c955882, 0x1c955882, 0xdc546008, 0xdc546008, 0xdc546008, 0x5e028fb8, 0x5e028fb8, 0x5e028fb8, 0x91ea0ac4, 0x91ea0ac4, 0x91ea0ac4, 0x1c955882, 0x2ad0164a, 0x2ad0164a, 0x1c955882, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xf988b96e, 0x28c3dbd0, 0xf988b96e, 0xf5218787, 0x4d266f7a, 0x4d266f7a, 0xe63989ae, 0xe63989ae, 0xe63989ae, 0xaa6cdae8, 0xaa6cdae8, 0xaa6cdae8, 0x88cd6816, 0x88cd6816, 0x88cd6816, 0x4d266f7a, 0xf5218787, 0xf5218787, 0x4d266f7a, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe189c1c0, 0x6e09d325, 0xe189c1c0, 0x4afdf1c2, 0x1ed9d731, 0x1ed9d731, 0xb7a388a2, 0xb7a388a2, 0xb7a388a2, 0x3a2c82a, 0x3a2c82a, 0x3a2c82a, 0xe8ed469, 0xe8ed469, 0xe8ed469, 0x1ed9d731, 0x4afdf1c2, 0x4afdf1c2, 0x1ed9d731, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x6ff25334, 0x60142559, 0x6ff25334, 0xa9ef09fe, 0x9813a416, 0x9813a416, 0xe9d151d6, 0xe9d151d6, 0xe9d151d6, 0xe2245579, 0xe2245579, 0xe2245579, 0xf62697e0, 0xf62697e0, 0xf62697e0, 0x9813a416, 0xa9ef09fe, 0xa9ef09fe, 0x9813a416, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x45387400, 0x1f12042f, 0x45387400, 0xc0b64530, 0x5fcf013d, 0x5fcf013d, 0xae65b130, 0xae65b130, 0xae65b130, 0x5f26b42d, 0x5f26b42d, 0x5f26b42d, 0x18d9b7aa, 0x18d9b7aa, 0x18d9b7aa, 0x5fcf013d, 0xc0b64530, 0xc0b64530, 0x5fcf013d, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf22852b8, 0x64b58aed, 0xf22852b8, 0xf2634bd3, 0xdd28f52b, 0xdd28f52b, 0x6226cfea, 0x6226cfea, 0x6226cfea, 0x1f30882e, 0x1f30882e, 0x1f30882e, 0x7c025604, 0x7c025604, 0x7c025604, 0xdd28f52b, 0xf2634bd3, 0xf2634bd3, 0xdd28f52b, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x5564b5ac, 0x60da9eee, 0xbd1e9681, 0xf47adbe8, 0x59c36f00, 0x59c36f00, 0x21d91745, 0x21d91745, 0x21d91745, 0x7dcb17a7, 0x7dcb17a7, 0x7dcb17a7, 0x38872339, 0x38872339, 0x38872339, 0x59c36f00, 0x1c00f8c5, 0xf47adbe8, 0x59c36f00, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x76e5e86, 0x7b494fdd, 0x495a38ac, 0x15c98b23, 0xaa4593fe, 0xaa4593fe, 0x3eadf2ea, 0x3eadf2ea, 0x3eadf2ea, 0xe42a5dd1, 0xe42a5dd1, 0xe42a5dd1, 0xd8264d98, 0xd8264d98, 0xd8264d98, 0xaa4593fe, 0x5bfded09, 0x15c98b23, 0xaa4593fe, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb6cb7893, 0x3d8832b4, 0xa83e25d, 0xdf49f021, 0xc9cbf769, 0xc9cbf769, 0xee497240, 0xee497240, 0xee497240, 0xdaa0556e, 0xdaa0556e, 0xdaa0556e, 0xf8c43de5, 0xf8c43de5, 0xf8c43de5, 0xc9cbf769, 0x63016aef, 0xdf49f021, 0xc9cbf769, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xaec0098e, 0x31dc5518, 0x6f2943a1, 0xa934196b, 0x9813a416, 0x9813a416, 0x27d7c19f, 0x27d7c19f, 0x27d7c19f, 0x2c22c530, 0x2c22c530, 0x2c22c530, 0x382007a9, 0x382007a9, 0x382007a9, 0x9813a416, 0x68dd5344, 0xa934196b, 0x9813a416, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6840baa6, 0xe3649779, 0x3c42fbb8, 0xb9ccca88, 0x5fcf013d, 0x5fcf013d, 0x634fa67d, 0x634fa67d, 0x634fa67d, 0x920ca360, 0x920ca360, 0x920ca360, 0xd5f3a0e7, 0xd5f3a0e7, 0xd5f3a0e7, 0x5fcf013d, 0xedce8b96, 0xb9ccca88, 0x5fcf013d, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7b6f728f, 0x802df91c, 0x6fe59e4c, 0x6fae8727, 0xdd28f52b, 0xdd28f52b, 0xc591678c, 0xc591678c, 0xc591678c, 0xb8872048, 0xb8872048, 0xb8872048, 0xdbb5fe62, 0xdbb5fe62, 0xdbb5fe62, 0xdd28f52b, 0x7b246be4, 0x6fae8727, 0xdd28f52b, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x5564b5ac, 0x60da9eee, 0xbd1e9681, 0xf47adbe8, 0x59c36f00, 0x59c36f00, 0x21d91745, 0x21d91745, 0x21d91745, 0x7dcb17a7, 0x7dcb17a7, 0x7dcb17a7, 0x38872339, 0x38872339, 0x38872339, 0x59c36f00, 0x1c00f8c5, 0xf47adbe8, 0x59c36f00, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x76e5e86, 0x7b494fdd, 0x495a38ac, 0x15c98b23, 0xaa4593fe, 0xaa4593fe, 0x3eadf2ea, 0x3eadf2ea, 0x3eadf2ea, 0xe42a5dd1, 0xe42a5dd1, 0xe42a5dd1, 0xd8264d98, 0xd8264d98, 0xd8264d98, 0xaa4593fe, 0x5bfded09, 0x15c98b23, 0xaa4593fe, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xb6cb7893, 0x3d8832b4, 0xa83e25d, 0xdf49f021, 0xc9cbf769, 0xc9cbf769, 0xee497240, 0xee497240, 0xee497240, 0xdaa0556e, 0xdaa0556e, 0xdaa0556e, 0xf8c43de5, 0xf8c43de5, 0xf8c43de5, 0xc9cbf769, 0x63016aef, 0xdf49f021, 0xc9cbf769, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xe91b111e, 0xf17069cf, 0x6b0d417f, 0x196ecee2, 0x5387d57f, 0x5387d57f, 0x3a0bd784, 0x3a0bd784, 0x3a0bd784, 0x196a118e, 0x196a118e, 0x196a118e, 0xb1315443, 0xb1315443, 0xb1315443, 0x5387d57f, 0x9b789e83, 0x196ecee2, 0x5387d57f, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x618a321d, 0x424668ca, 0xbb28dfaa, 0xa2f744bc, 0xf83ee7aa, 0xf83ee7aa, 0x3a74d341, 0x3a74d341, 0x3a74d341, 0xfe4358a0, 0xfe4358a0, 0xfe4358a0, 0x315d0bb2, 0x315d0bb2, 0x315d0bb2, 0xf83ee7aa, 0x7855a90b, 0xa2f744bc, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x87840389, 0x646994d2, 0x50ce49fd, 0xb3cce15a, 0x724366e5, 0x724366e5, 0x695c97b4, 0x695c97b4, 0x695c97b4, 0x8aac5fd2, 0x8aac5fd2, 0x8aac5fd2, 0x34eecaaa, 0x34eecaaa, 0x34eecaaa, 0x724366e5, 0x6486ab2e, 0xb3cce15a, 0x724366e5, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x1ef83cc4, 0x8f37421b, 0xccc91d44, 0x746ccfd4, 0x5387d57f, 0x5387d57f, 0xce1861a0, 0xce1861a0, 0xce1861a0, 0x30cd3ea9, 0x30cd3ea9, 0x30cd3ea9, 0x3835a79a, 0x3835a79a, 0x3835a79a, 0x5387d57f, 0xa65dee54, 0x746ccfd4, 0x5387d57f, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd4d7990, 0x3f81f76b, 0xab169d0e, 0x7b84f7b6, 0xf83ee7aa, 0xf83ee7aa, 0xb21afb9f, 0xb21afb9f, 0xb21afb9f, 0xfc4ca212, 0xfc4ca212, 0xfc4ca212, 0x1690d9db, 0x1690d9db, 0x1690d9db, 0xf83ee7aa, 0xdddf1328, 0x7b84f7b6, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xf484a7a, 0x1d016ff1, 0xa1efb839, 0xf30174bf, 0x724366e5, 0x724366e5, 0x20dd566e, 0x20dd566e, 0x20dd566e, 0xe1444784, 0xe1444784, 0xe1444784, 0x6511cccc, 0x6511cccc, 0x6511cccc, 0x724366e5, 0x5da686fc, 0xf30174bf, 0x724366e5, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xe6f2b3cc, 0xb53e897f, 0xcb165f0b, 0x3e272685, 0x1c955882, 0x1c955882, 0xcebb321, 0xcebb321, 0xcebb321, 0x8ebd5c91, 0x8ebd5c91, 0x8ebd5c91, 0x4155d9ed, 0x4155d9ed, 0x4155d9ed, 0x1c955882, 0x13c3ca42, 0x3e272685, 0x1c955882, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x79d3a961, 0x2abea675, 0x6d16d7f8, 0x61bfe911, 0x4d266f7a, 0x4d266f7a, 0xc6f457fe, 0xc6f457fe, 0xc6f457fe, 0x8aa104b8, 0x8aa104b8, 0x8aa104b8, 0xa800b646, 0xa800b646, 0xa800b646, 0x4d266f7a, 0x757a9788, 0x61bfe911, 0x4d266f7a, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x95a273e0, 0xa4c29c6, 0x5d827a2a, 0xf6f64a28, 0x1ed9d731, 0x1ed9d731, 0xb750ffe0, 0xb750ffe0, 0xb750ffe0, 0x351bf68, 0x351bf68, 0x351bf68, 0xe7da32b, 0xe7da32b, 0xe7da32b, 0x1ed9d731, 0x3ed643e2, 0xf6f64a28, 0x1ed9d731, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xe91b111e, 0xf17069cf, 0x6b0d417f, 0x196ecee2, 0x5387d57f, 0x5387d57f, 0x3a0bd784, 0x3a0bd784, 0x3a0bd784, 0x196a118e, 0x196a118e, 0x196a118e, 0xb1315443, 0xb1315443, 0xb1315443, 0x5387d57f, 0x9b789e83, 0x196ecee2, 0x5387d57f, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x618a321d, 0x424668ca, 0xbb28dfaa, 0xa2f744bc, 0xf83ee7aa, 0xf83ee7aa, 0x3a74d341, 0x3a74d341, 0x3a74d341, 0xfe4358a0, 0xfe4358a0, 0xfe4358a0, 0x315d0bb2, 0x315d0bb2, 0x315d0bb2, 0xf83ee7aa, 0x7855a90b, 0xa2f744bc, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x87840389, 0x646994d2, 0x50ce49fd, 0xb3cce15a, 0x724366e5, 0x724366e5, 0x695c97b4, 0x695c97b4, 0x695c97b4, 0x8aac5fd2, 0x8aac5fd2, 0x8aac5fd2, 0x34eecaaa, 0x34eecaaa, 0x34eecaaa, 0x724366e5, 0x6486ab2e, 0xb3cce15a, 0x724366e5, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x1ef83cc4, 0x8f37421b, 0xccc91d44, 0x746ccfd4, 0x5387d57f, 0x5387d57f, 0xce1861a0, 0xce1861a0, 0xce1861a0, 0x30cd3ea9, 0x30cd3ea9, 0x30cd3ea9, 0x3835a79a, 0x3835a79a, 0x3835a79a, 0x5387d57f, 0xa65dee54, 0x746ccfd4, 0x5387d57f, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd4d7990, 0x3f81f76b, 0xab169d0e, 0x7b84f7b6, 0xf83ee7aa, 0xf83ee7aa, 0xb21afb9f, 0xb21afb9f, 0xb21afb9f, 0xfc4ca212, 0xfc4ca212, 0xfc4ca212, 0x1690d9db, 0x1690d9db, 0x1690d9db, 0xf83ee7aa, 0xdddf1328, 0x7b84f7b6, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xf484a7a, 0x1d016ff1, 0xa1efb839, 0xf30174bf, 0x724366e5, 0x724366e5, 0x20dd566e, 0x20dd566e, 0x20dd566e, 0xe1444784, 0xe1444784, 0xe1444784, 0x6511cccc, 0x6511cccc, 0x6511cccc, 0x724366e5, 0x5da686fc, 0xf30174bf, 0x724366e5, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xe6f2b3cc, 0xb53e897f, 0xcb165f0b, 0x3e272685, 0x1c955882, 0x1c955882, 0xcebb321, 0xcebb321, 0xcebb321, 0x8ebd5c91, 0x8ebd5c91, 0x8ebd5c91, 0x4155d9ed, 0x4155d9ed, 0x4155d9ed, 0x1c955882, 0x13c3ca42, 0x3e272685, 0x1c955882, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x79d3a961, 0x2abea675, 0x6d16d7f8, 0x61bfe911, 0x4d266f7a, 0x4d266f7a, 0xc6f457fe, 0xc6f457fe, 0xc6f457fe, 0x8aa104b8, 0x8aa104b8, 0x8aa104b8, 0xa800b646, 0xa800b646, 0xa800b646, 0x4d266f7a, 0x757a9788, 0x61bfe911, 0x4d266f7a, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x95a273e0, 0xa4c29c6, 0x5d827a2a, 0xf6f64a28, 0x1ed9d731, 0x1ed9d731, 0xb750ffe0, 0xb750ffe0, 0xb750ffe0, 0x351bf68, 0x351bf68, 0x351bf68, 0xe7da32b, 0xe7da32b, 0xe7da32b, 0x1ed9d731, 0x3ed643e2, 0xf6f64a28, 0x1ed9d731, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xaec0098e, 0x31dc5518, 0x6f2943a1, 0xa934196b, 0x9813a416, 0x9813a416, 0x27d7c19f, 0x27d7c19f, 0x27d7c19f, 0x2c22c530, 0x2c22c530, 0x2c22c530, 0x382007a9, 0x382007a9, 0x382007a9, 0x9813a416, 0x68dd5344, 0xa934196b, 0x9813a416, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6840baa6, 0xe3649779, 0x3c42fbb8, 0xb9ccca88, 0x5fcf013d, 0x5fcf013d, 0x634fa67d, 0x634fa67d, 0x634fa67d, 0x920ca360, 0x920ca360, 0x920ca360, 0xd5f3a0e7, 0xd5f3a0e7, 0xd5f3a0e7, 0x5fcf013d, 0xedce8b96, 0xb9ccca88, 0x5fcf013d, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7b6f728f, 0x802df91c, 0x6fe59e4c, 0x6fae8727, 0xdd28f52b, 0xdd28f52b, 0xc591678c, 0xc591678c, 0xc591678c, 0xb8872048, 0xb8872048, 0xb8872048, 0xdbb5fe62, 0xdbb5fe62, 0xdbb5fe62, 0xdd28f52b, 0x7b246be4, 0x6fae8727, 0xdd28f52b, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8c809d98, 0xa2deb5e8, 0x8c809d98, 0xc5e4d0f1, 0x59c36f00, 0x59c36f00, 0xcce4d070, 0xcce4d070, 0xcce4d070, 0x90f6d092, 0x90f6d092, 0x90f6d092, 0xd5bae40c, 0xd5bae40c, 0xd5bae40c, 0x59c36f00, 0xc5e4d0f1, 0xc5e4d0f1, 0x59c36f00, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd2952b24, 0xc43b8c16, 0xd2952b24, 0x8e0698ab, 0xaa4593fe, 0xaa4593fe, 0x72cbd134, 0x72cbd134, 0x72cbd134, 0xa84c7e0f, 0xa84c7e0f, 0xa84c7e0f, 0x94406e46, 0x94406e46, 0x94406e46, 0xaa4593fe, 0x8e0698ab, 0x8e0698ab, 0xaa4593fe, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x10e5e33e, 0xfaceb35c, 0x10e5e33e, 0xc52ff142, 0xc9cbf769, 0xc9cbf769, 0x4b7f7a, 0x4b7f7a, 0x4b7f7a, 0x34a25854, 0x34a25854, 0x34a25854, 0x16c630df, 0x16c630df, 0x16c630df, 0xc9cbf769, 0xc52ff142, 0xc52ff142, 0xc9cbf769, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x35eaca6c, 0xf1f3421e, 0x35eaca6c, 0xf3f790a6, 0x9813a416, 0x9813a416, 0x3a84c463, 0x3a84c463, 0x3a84c463, 0x3171c0cc, 0x3171c0cc, 0x3171c0cc, 0x25730255, 0x25730255, 0x25730255, 0x9813a416, 0xf3f790a6, 0xf3f790a6, 0x9813a416, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xc63e4058, 0x297346bb, 0xc63e4058, 0x43b07168, 0x5fcf013d, 0x5fcf013d, 0x814b6f45, 0x814b6f45, 0x814b6f45, 0x70086a58, 0x70086a58, 0x70086a58, 0x37f769df, 0x37f769df, 0x37f769df, 0x5fcf013d, 0x43b07168, 0x43b07168, 0x5fcf013d, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x42625965, 0xbdbab59d, 0x42625965, 0x4229400e, 0xdd28f52b, 0xdd28f52b, 0x74cb4529, 0x74cb4529, 0x74cb4529, 0x9dd02ed, 0x9dd02ed, 0x9dd02ed, 0x6aefdcc7, 0x6aefdcc7, 0x6aefdcc7, 0xdd28f52b, 0x4229400e, 0x4229400e, 0xdd28f52b, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x8c809d98, 0xa2deb5e8, 0x8c809d98, 0xc5e4d0f1, 0x59c36f00, 0x59c36f00, 0xcce4d070, 0xcce4d070, 0xcce4d070, 0x90f6d092, 0x90f6d092, 0x90f6d092, 0xd5bae40c, 0xd5bae40c, 0xd5bae40c, 0x59c36f00, 0xc5e4d0f1, 0xc5e4d0f1, 0x59c36f00, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xd2952b24, 0xc43b8c16, 0xd2952b24, 0x8e0698ab, 0xaa4593fe, 0xaa4593fe, 0x72cbd134, 0x72cbd134, 0x72cbd134, 0xa84c7e0f, 0xa84c7e0f, 0xa84c7e0f, 0x94406e46, 0x94406e46, 0x94406e46, 0xaa4593fe, 0x8e0698ab, 0x8e0698ab, 0xaa4593fe, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x10e5e33e, 0xfaceb35c, 0x10e5e33e, 0xc52ff142, 0xc9cbf769, 0xc9cbf769, 0x4b7f7a, 0x4b7f7a, 0x4b7f7a, 0x34a25854, 0x34a25854, 0x34a25854, 0x16c630df, 0x16c630df, 0x16c630df, 0xc9cbf769, 0xc52ff142, 0xc52ff142, 0xc9cbf769, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xf1d34c3f, 0xcb451cf, 0xf1d34c3f, 0x83b0c3a2, 0x5387d57f, 0x5387d57f, 0xdc42e576, 0xdc42e576, 0xdc42e576, 0xff23237c, 0xff23237c, 0xff23237c, 0x577866b1, 0x577866b1, 0x577866b1, 0x5387d57f, 0x83b0c3a2, 0x83b0c3a2, 0x5387d57f, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1219f891, 0x3ea9e133, 0x1219f891, 0xbc66387, 0xf83ee7aa, 0xf83ee7aa, 0x4d56ad7d, 0x4d56ad7d, 0x4d56ad7d, 0x8961269c, 0x8961269c, 0x8961269c, 0x467f758e, 0x467f758e, 0x467f758e, 0xf83ee7aa, 0xbc66387, 0xbc66387, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x39dd8885, 0x9ff9b01d, 0x39dd8885, 0xdadf2022, 0x724366e5, 0x724366e5, 0x2a5a1ea5, 0x2a5a1ea5, 0x2a5a1ea5, 0xc9aad6c3, 0xc9aad6c3, 0xc9aad6c3, 0x77e843bb, 0x77e843bb, 0x77e843bb, 0x724366e5, 0xdadf2022, 0xdadf2022, 0x724366e5, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x9c06870a, 0xfb391ac3, 0x9c06870a, 0x24a3559a, 0x5387d57f, 0x5387d57f, 0x67afb6e7, 0x67afb6e7, 0x67afb6e7, 0x997ae9ee, 0x997ae9ee, 0x997ae9ee, 0x918270dd, 0x918270dd, 0x918270dd, 0x5387d57f, 0x24a3559a, 0x24a3559a, 0x5387d57f, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x34160e54, 0xfa0d929, 0x34160e54, 0xe48464ec, 0xf83ee7aa, 0xf83ee7aa, 0xbada5191, 0xbada5191, 0xbada5191, 0xf48c081c, 0xf48c081c, 0xf48c081c, 0x1e5073d5, 0x1e5073d5, 0x1e5073d5, 0xf83ee7aa, 0xe48464ec, 0xe48464ec, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xf8b89646, 0xae36218f, 0xf8b89646, 0xaa565ac0, 0x724366e5, 0x724366e5, 0xc530c749, 0xc530c749, 0xc530c749, 0x4a9d6a3, 0x4a9d6a3, 0x4a9d6a3, 0x80fc5deb, 0x80fc5deb, 0x80fc5deb, 0x724366e5, 0xaa565ac0, 0xaa565ac0, 0x724366e5, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xc814e98c, 0xc80ea558, 0xc814e98c, 0x3d259002, 0x1c955882, 0x1c955882, 0xbaf29951, 0xbaf29951, 0xbaf29951, 0x38a476e1, 0x38a476e1, 0x38a476e1, 0xf74cf39d, 0xf74cf39d, 0xf74cf39d, 0x1c955882, 0x3d259002, 0x3d259002, 0x1c955882, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x4d835add, 0x8e85c29e, 0x4d835add, 0x412a6434, 0x4d266f7a, 0x4d266f7a, 0x37157ce4, 0x37157ce4, 0x37157ce4, 0x7b402fa2, 0x7b402fa2, 0x7b402fa2, 0x59e19d5c, 0x59e19d5c, 0x59e19d5c, 0x4d266f7a, 0x412a6434, 0x412a6434, 0x4d266f7a, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x65f356c1, 0x687de513, 0x65f356c1, 0xce8766c3, 0x1ed9d731, 0x1ed9d731, 0xfb07ebd0, 0xfb07ebd0, 0xfb07ebd0, 0x4f06ab58, 0x4f06ab58, 0x4f06ab58, 0x422ab71b, 0x422ab71b, 0x422ab71b, 0x1ed9d731, 0xce8766c3, 0xce8766c3, 0x1ed9d731, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xf1d34c3f, 0xcb451cf, 0xf1d34c3f, 0x83b0c3a2, 0x5387d57f, 0x5387d57f, 0xdc42e576, 0xdc42e576, 0xdc42e576, 0xff23237c, 0xff23237c, 0xff23237c, 0x577866b1, 0x577866b1, 0x577866b1, 0x5387d57f, 0x83b0c3a2, 0x83b0c3a2, 0x5387d57f, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1219f891, 0x3ea9e133, 0x1219f891, 0xbc66387, 0xf83ee7aa, 0xf83ee7aa, 0x4d56ad7d, 0x4d56ad7d, 0x4d56ad7d, 0x8961269c, 0x8961269c, 0x8961269c, 0x467f758e, 0x467f758e, 0x467f758e, 0xf83ee7aa, 0xbc66387, 0xbc66387, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x39dd8885, 0x9ff9b01d, 0x39dd8885, 0xdadf2022, 0x724366e5, 0x724366e5, 0x2a5a1ea5, 0x2a5a1ea5, 0x2a5a1ea5, 0xc9aad6c3, 0xc9aad6c3, 0xc9aad6c3, 0x77e843bb, 0x77e843bb, 0x77e843bb, 0x724366e5, 0xdadf2022, 0xdadf2022, 0x724366e5, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x9c06870a, 0xfb391ac3, 0x9c06870a, 0x24a3559a, 0x5387d57f, 0x5387d57f, 0x67afb6e7, 0x67afb6e7, 0x67afb6e7, 0x997ae9ee, 0x997ae9ee, 0x997ae9ee, 0x918270dd, 0x918270dd, 0x918270dd, 0x5387d57f, 0x24a3559a, 0x24a3559a, 0x5387d57f, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x34160e54, 0xfa0d929, 0x34160e54, 0xe48464ec, 0xf83ee7aa, 0xf83ee7aa, 0xbada5191, 0xbada5191, 0xbada5191, 0xf48c081c, 0xf48c081c, 0xf48c081c, 0x1e5073d5, 0x1e5073d5, 0x1e5073d5, 0xf83ee7aa, 0xe48464ec, 0xe48464ec, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xf8b89646, 0xae36218f, 0xf8b89646, 0xaa565ac0, 0x724366e5, 0x724366e5, 0xc530c749, 0xc530c749, 0xc530c749, 0x4a9d6a3, 0x4a9d6a3, 0x4a9d6a3, 0x80fc5deb, 0x80fc5deb, 0x80fc5deb, 0x724366e5, 0xaa565ac0, 0xaa565ac0, 0x724366e5, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xc814e98c, 0xc80ea558, 0xc814e98c, 0x3d259002, 0x1c955882, 0x1c955882, 0xbaf29951, 0xbaf29951, 0xbaf29951, 0x38a476e1, 0x38a476e1, 0x38a476e1, 0xf74cf39d, 0xf74cf39d, 0xf74cf39d, 0x1c955882, 0x3d259002, 0x3d259002, 0x1c955882, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x4d835add, 0x8e85c29e, 0x4d835add, 0x412a6434, 0x4d266f7a, 0x4d266f7a, 0x37157ce4, 0x37157ce4, 0x37157ce4, 0x7b402fa2, 0x7b402fa2, 0x7b402fa2, 0x59e19d5c, 0x59e19d5c, 0x59e19d5c, 0x4d266f7a, 0x412a6434, 0x412a6434, 0x4d266f7a, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x65f356c1, 0x687de513, 0x65f356c1, 0xce8766c3, 0x1ed9d731, 0x1ed9d731, 0xfb07ebd0, 0xfb07ebd0, 0xfb07ebd0, 0x4f06ab58, 0x4f06ab58, 0x4f06ab58, 0x422ab71b, 0x422ab71b, 0x422ab71b, 0x1ed9d731, 0xce8766c3, 0xce8766c3, 0x1ed9d731, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x35eaca6c, 0xf1f3421e, 0x35eaca6c, 0xf3f790a6, 0x9813a416, 0x9813a416, 0x3a84c463, 0x3a84c463, 0x3a84c463, 0x3171c0cc, 0x3171c0cc, 0x3171c0cc, 0x25730255, 0x25730255, 0x25730255, 0x9813a416, 0xf3f790a6, 0xf3f790a6, 0x9813a416, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xc63e4058, 0x297346bb, 0xc63e4058, 0x43b07168, 0x5fcf013d, 0x5fcf013d, 0x814b6f45, 0x814b6f45, 0x814b6f45, 0x70086a58, 0x70086a58, 0x70086a58, 0x37f769df, 0x37f769df, 0x37f769df, 0x5fcf013d, 0x43b07168, 0x43b07168, 0x5fcf013d, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x42625965, 0xbdbab59d, 0x42625965, 0x4229400e, 0xdd28f52b, 0xdd28f52b, 0x74cb4529, 0x74cb4529, 0x74cb4529, 0x9dd02ed, 0x9dd02ed, 0x9dd02ed, 0x6aefdcc7, 0x6aefdcc7, 0x6aefdcc7, 0xdd28f52b, 0x4229400e, 0x4229400e, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xdbf44912, 0xc82adc43, 0xdbf44912, 0x9290047b, 0x59c36f00, 0x59c36f00, 0xab23d594, 0xab23d594, 0xab23d594, 0xf731d576, 0xf731d576, 0xf731d576, 0xb27de1e8, 0xb27de1e8, 0xb27de1e8, 0x59c36f00, 0x9290047b, 0x9290047b, 0x59c36f00, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x62fabab4, 0xdbdedb42, 0x62fabab4, 0x3e69093b, 0xaa4593fe, 0xaa4593fe, 0x8573463b, 0x8573463b, 0x8573463b, 0x5ff4e900, 0x5ff4e900, 0x5ff4e900, 0x63f8f949, 0x63f8f949, 0x63f8f949, 0xaa4593fe, 0x3e69093b, 0x3e69093b, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xc4a0b1c4, 0xcaf9129f, 0xc4a0b1c4, 0x116aa3b8, 0xc9cbf769, 0xc9cbf769, 0xcd389b10, 0xcd389b10, 0xcd389b10, 0xf9d1bc3e, 0xf9d1bc3e, 0xf9d1bc3e, 0xdbb5d4b5, 0xdbb5d4b5, 0xdbb5d4b5, 0xc9cbf769, 0x116aa3b8, 0x116aa3b8, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6efb4dad, 0x369b71a, 0x6efb4dad, 0xa8e61767, 0x9813a416, 0x9813a416, 0x3b4bf94, 0x3b4bf94, 0x3b4bf94, 0x841bb3b, 0x841bb3b, 0x841bb3b, 0x1c4379a2, 0x1c4379a2, 0x1c4379a2, 0x9813a416, 0xa8e61767, 0xa8e61767, 0x9813a416, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x179dd979, 0x1de58cc1, 0x179dd979, 0x9213e849, 0x5fcf013d, 0x5fcf013d, 0x349a05dc, 0x349a05dc, 0x349a05dc, 0xc5d900c1, 0xc5d900c1, 0xc5d900c1, 0x82260346, 0x82260346, 0x82260346, 0x5fcf013d, 0x9213e849, 0x9213e849, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5d07b0aa, 0x2682b6f8, 0x5d07b0aa, 0x5d4ca9c1, 0xdd28f52b, 0xdd28f52b, 0xd4dbe6e9, 0xd4dbe6e9, 0xd4dbe6e9, 0xa9cda12d, 0xa9cda12d, 0xa9cda12d, 0xcaff7f07, 0xcaff7f07, 0xcaff7f07, 0xdd28f52b, 0x5d4ca9c1, 0x5d4ca9c1, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xdbf44912, 0xc82adc43, 0xdbf44912, 0x9290047b, 0x59c36f00, 0x59c36f00, 0xab23d594, 0xab23d594, 0xab23d594, 0xf731d576, 0xf731d576, 0xf731d576, 0xb27de1e8, 0xb27de1e8, 0xb27de1e8, 0x59c36f00, 0x9290047b, 0x9290047b, 0x59c36f00, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x62fabab4, 0xdbdedb42, 0x62fabab4, 0x3e69093b, 0xaa4593fe, 0xaa4593fe, 0x8573463b, 0x8573463b, 0x8573463b, 0x5ff4e900, 0x5ff4e900, 0x5ff4e900, 0x63f8f949, 0x63f8f949, 0x63f8f949, 0xaa4593fe, 0x3e69093b, 0x3e69093b, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xc4a0b1c4, 0xcaf9129f, 0xc4a0b1c4, 0x116aa3b8, 0xc9cbf769, 0xc9cbf769, 0xcd389b10, 0xcd389b10, 0xcd389b10, 0xf9d1bc3e, 0xf9d1bc3e, 0xf9d1bc3e, 0xdbb5d4b5, 0xdbb5d4b5, 0xdbb5d4b5, 0xc9cbf769, 0x116aa3b8, 0x116aa3b8, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbc31c24b, 0x83c43023, 0xbc31c24b, 0xce524dd6, 0x5387d57f, 0x5387d57f, 0xda49acb8, 0xda49acb8, 0xda49acb8, 0xf9286ab2, 0xf9286ab2, 0xf9286ab2, 0x51732f7f, 0x51732f7f, 0x51732f7f, 0x5387d57f, 0xce524dd6, 0xce524dd6, 0x5387d57f, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xef057545, 0xac031794, 0xef057545, 0xf6daee53, 0xf83ee7aa, 0xf83ee7aa, 0xd2d55043, 0xd2d55043, 0xd2d55043, 0x16e2dba2, 0x16e2dba2, 0x16e2dba2, 0xd9fc88b0, 0xd9fc88b0, 0xd9fc88b0, 0xf83ee7aa, 0xf6daee53, 0xf6daee53, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xe302caa7, 0xaa205ee5, 0xe302caa7, 0x6200, 0x724366e5, 0x724366e5, 0xc267b9a4, 0xc267b9a4, 0xc267b9a4, 0x219771c2, 0x219771c2, 0x219771c2, 0x9fd5e4ba, 0x9fd5e4ba, 0x9fd5e4ba, 0x724366e5, 0x6200, 0x6200, 0x724366e5, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xe275ba72, 0xc0fca11, 0xe275ba72, 0x5ad068e2, 0x5387d57f, 0x5387d57f, 0x915873ea, 0x915873ea, 0x915873ea, 0x6f8d2ce3, 0x6f8d2ce3, 0x6f8d2ce3, 0x6775b5d0, 0x6775b5d0, 0x6775b5d0, 0x5387d57f, 0x5ad068e2, 0x5ad068e2, 0x5387d57f, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1b78c823, 0x44f4ea59, 0x1b78c823, 0xcbeaa29b, 0xf83ee7aa, 0xf83ee7aa, 0x8a66a6d, 0x8a66a6d, 0x8a66a6d, 0x46f033e0, 0x46f033e0, 0x46f033e0, 0xac2c4829, 0xac2c4829, 0xac2c4829, 0xf83ee7aa, 0xcbeaa29b, 0xcbeaa29b, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xb17861b9, 0x4a460c5, 0xb17861b9, 0xe396ad3f, 0x724366e5, 0x724366e5, 0xb5604b13, 0xb5604b13, 0xb5604b13, 0x74f95af9, 0x74f95af9, 0x74f95af9, 0xf0acd1b1, 0xf0acd1b1, 0xf0acd1b1, 0x724366e5, 0xe396ad3f, 0xe396ad3f, 0x724366e5, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xf4baecd1, 0x8ac6b394, 0xf4baecd1, 0x18b955f, 0x1c955882, 0x1c955882, 0x96ffb153, 0x96ffb153, 0x96ffb153, 0x14a95ee3, 0x14a95ee3, 0x14a95ee3, 0xdb41db9f, 0xdb41db9f, 0xdb41db9f, 0x1c955882, 0x18b955f, 0x18b955f, 0x1c955882, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfd3793dc, 0x2db332c2, 0xfd3793dc, 0xf19ead35, 0x4d266f7a, 0x4d266f7a, 0x12ca05d7, 0x12ca05d7, 0x12ca05d7, 0x5e9f5691, 0x5e9f5691, 0x5e9f5691, 0x7c3ee46f, 0x7c3ee46f, 0x7c3ee46f, 0x4d266f7a, 0xf19ead35, 0xf19ead35, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xeeea770, 0x17ff444a, 0xeeea770, 0xa59a9772, 0x1ed9d731, 0x1ed9d731, 0x1d44b9f2, 0x1d44b9f2, 0x1d44b9f2, 0xa945f97a, 0xa945f97a, 0xa945f97a, 0xa469e539, 0xa469e539, 0xa469e539, 0x1ed9d731, 0xa59a9772, 0xa59a9772, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbc31c24b, 0x83c43023, 0xbc31c24b, 0xce524dd6, 0x5387d57f, 0x5387d57f, 0xda49acb8, 0xda49acb8, 0xda49acb8, 0xf9286ab2, 0xf9286ab2, 0xf9286ab2, 0x51732f7f, 0x51732f7f, 0x51732f7f, 0x5387d57f, 0xce524dd6, 0xce524dd6, 0x5387d57f, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xef057545, 0xac031794, 0xef057545, 0xf6daee53, 0xf83ee7aa, 0xf83ee7aa, 0xd2d55043, 0xd2d55043, 0xd2d55043, 0x16e2dba2, 0x16e2dba2, 0x16e2dba2, 0xd9fc88b0, 0xd9fc88b0, 0xd9fc88b0, 0xf83ee7aa, 0xf6daee53, 0xf6daee53, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xe302caa7, 0xaa205ee5, 0xe302caa7, 0x6200, 0x724366e5, 0x724366e5, 0xc267b9a4, 0xc267b9a4, 0xc267b9a4, 0x219771c2, 0x219771c2, 0x219771c2, 0x9fd5e4ba, 0x9fd5e4ba, 0x9fd5e4ba, 0x724366e5, 0x6200, 0x6200, 0x724366e5, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xe275ba72, 0xc0fca11, 0xe275ba72, 0x5ad068e2, 0x5387d57f, 0x5387d57f, 0x915873ea, 0x915873ea, 0x915873ea, 0x6f8d2ce3, 0x6f8d2ce3, 0x6f8d2ce3, 0x6775b5d0, 0x6775b5d0, 0x6775b5d0, 0x5387d57f, 0x5ad068e2, 0x5ad068e2, 0x5387d57f, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1b78c823, 0x44f4ea59, 0x1b78c823, 0xcbeaa29b, 0xf83ee7aa, 0xf83ee7aa, 0x8a66a6d, 0x8a66a6d, 0x8a66a6d, 0x46f033e0, 0x46f033e0, 0x46f033e0, 0xac2c4829, 0xac2c4829, 0xac2c4829, 0xf83ee7aa, 0xcbeaa29b, 0xcbeaa29b, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xb17861b9, 0x4a460c5, 0xb17861b9, 0xe396ad3f, 0x724366e5, 0x724366e5, 0xb5604b13, 0xb5604b13, 0xb5604b13, 0x74f95af9, 0x74f95af9, 0x74f95af9, 0xf0acd1b1, 0xf0acd1b1, 0xf0acd1b1, 0x724366e5, 0xe396ad3f, 0xe396ad3f, 0x724366e5, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xf4baecd1, 0x8ac6b394, 0xf4baecd1, 0x18b955f, 0x1c955882, 0x1c955882, 0x96ffb153, 0x96ffb153, 0x96ffb153, 0x14a95ee3, 0x14a95ee3, 0x14a95ee3, 0xdb41db9f, 0xdb41db9f, 0xdb41db9f, 0x1c955882, 0x18b955f, 0x18b955f, 0x1c955882, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfd3793dc, 0x2db332c2, 0xfd3793dc, 0xf19ead35, 0x4d266f7a, 0x4d266f7a, 0x12ca05d7, 0x12ca05d7, 0x12ca05d7, 0x5e9f5691, 0x5e9f5691, 0x5e9f5691, 0x7c3ee46f, 0x7c3ee46f, 0x7c3ee46f, 0x4d266f7a, 0xf19ead35, 0xf19ead35, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xeeea770, 0x17ff444a, 0xeeea770, 0xa59a9772, 0x1ed9d731, 0x1ed9d731, 0x1d44b9f2, 0x1d44b9f2, 0x1d44b9f2, 0xa945f97a, 0xa945f97a, 0xa945f97a, 0xa469e539, 0xa469e539, 0xa469e539, 0x1ed9d731, 0xa59a9772, 0xa59a9772, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x6efb4dad, 0x369b71a, 0x6efb4dad, 0xa8e61767, 0x9813a416, 0x9813a416, 0x3b4bf94, 0x3b4bf94, 0x3b4bf94, 0x841bb3b, 0x841bb3b, 0x841bb3b, 0x1c4379a2, 0x1c4379a2, 0x1c4379a2, 0x9813a416, 0xa8e61767, 0xa8e61767, 0x9813a416, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x179dd979, 0x1de58cc1, 0x179dd979, 0x9213e849, 0x5fcf013d, 0x5fcf013d, 0x349a05dc, 0x349a05dc, 0x349a05dc, 0xc5d900c1, 0xc5d900c1, 0xc5d900c1, 0x82260346, 0x82260346, 0x82260346, 0x5fcf013d, 0x9213e849, 0x9213e849, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5d07b0aa, 0x2682b6f8, 0x5d07b0aa, 0x5d4ca9c1, 0xdd28f52b, 0xdd28f52b, 0xd4dbe6e9, 0xd4dbe6e9, 0xd4dbe6e9, 0xa9cda12d, 0xa9cda12d, 0xa9cda12d, 0xcaff7f07, 0xcaff7f07, 0xcaff7f07, 0xdd28f52b, 0x5d4ca9c1, 0x5d4ca9c1, 0xdd28f52b, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x78b258dc, 0x5543ab2b, 0x78b258dc, 0x31d615b5, 0x59c36f00, 0x59c36f00, 0xc73a1033, 0xc73a1033, 0xc73a1033, 0x9b2810d1, 0x9b2810d1, 0x9b2810d1, 0xde64244f, 0xde64244f, 0xde64244f, 0x59c36f00, 0x31d615b5, 0x31d615b5, 0x59c36f00, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8cfc9a2, 0xe48bee7d, 0x8cfc9a2, 0x545c7a2d, 0xaa4593fe, 0xaa4593fe, 0xb30e5e1c, 0xb30e5e1c, 0xb30e5e1c, 0x6989f127, 0x6989f127, 0x6989f127, 0x5585e16e, 0x5585e16e, 0x5585e16e, 0xaa4593fe, 0x545c7a2d, 0x545c7a2d, 0xaa4593fe, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x82e0293c, 0xef26570d, 0x82e0293c, 0x572a3b40, 0xc9cbf769, 0xc9cbf769, 0x9056af5f, 0x9056af5f, 0x9056af5f, 0xa4bf8871, 0xa4bf8871, 0xa4bf8871, 0x86dbe0fa, 0x86dbe0fa, 0x86dbe0fa, 0xc9cbf769, 0x572a3b40, 0x572a3b40, 0xc9cbf769, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xbc06fffc, 0x364aa5c7, 0xbc06fffc, 0x7a1ba536, 0x9813a416, 0x9813a416, 0xabce4a73, 0xabce4a73, 0xabce4a73, 0xa03b4edc, 0xa03b4edc, 0xa03b4edc, 0xb4398c45, 0xb4398c45, 0xb4398c45, 0x9813a416, 0x7a1ba536, 0x7a1ba536, 0x9813a416, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb0b4fa0c, 0xc7b12a4e, 0xb0b4fa0c, 0x353acb3c, 0x5fcf013d, 0x5fcf013d, 0xe300c643, 0xe300c643, 0xe300c643, 0x1243c35e, 0x1243c35e, 0x1243c35e, 0x55bcc0d9, 0x55bcc0d9, 0x55bcc0d9, 0x5fcf013d, 0x353acb3c, 0x353acb3c, 0x5fcf013d, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x20eb710, 0x97329eb5, 0x20eb710, 0x245ae7b, 0xdd28f52b, 0xdd28f52b, 0x7a1d74fd, 0x7a1d74fd, 0x7a1d74fd, 0x70b3339, 0x70b3339, 0x70b3339, 0x6439ed13, 0x6439ed13, 0x6439ed13, 0xdd28f52b, 0x245ae7b, 0x245ae7b, 0xdd28f52b, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x78b258dc, 0x5543ab2b, 0x78b258dc, 0x31d615b5, 0x59c36f00, 0x59c36f00, 0xc73a1033, 0xc73a1033, 0xc73a1033, 0x9b2810d1, 0x9b2810d1, 0x9b2810d1, 0xde64244f, 0xde64244f, 0xde64244f, 0x59c36f00, 0x31d615b5, 0x31d615b5, 0x59c36f00, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x8cfc9a2, 0xe48bee7d, 0x8cfc9a2, 0x545c7a2d, 0xaa4593fe, 0xaa4593fe, 0xb30e5e1c, 0xb30e5e1c, 0xb30e5e1c, 0x6989f127, 0x6989f127, 0x6989f127, 0x5585e16e, 0x5585e16e, 0x5585e16e, 0xaa4593fe, 0x545c7a2d, 0x545c7a2d, 0xaa4593fe, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x82e0293c, 0xef26570d, 0x82e0293c, 0x572a3b40, 0xc9cbf769, 0xc9cbf769, 0x9056af5f, 0x9056af5f, 0x9056af5f, 0xa4bf8871, 0xa4bf8871, 0xa4bf8871, 0x86dbe0fa, 0x86dbe0fa, 0x86dbe0fa, 0xc9cbf769, 0x572a3b40, 0x572a3b40, 0xc9cbf769, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x5e677bb0, 0x10a60901, 0x5e677bb0, 0x2c04f42d, 0x5387d57f, 0x5387d57f, 0x8c4b382b, 0x8c4b382b, 0x8c4b382b, 0xaf2afe21, 0xaf2afe21, 0xaf2afe21, 0x771bbec, 0x771bbec, 0x771bbec, 0x5387d57f, 0x2c04f42d, 0x2c04f42d, 0x5387d57f, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x9cd2ed2a, 0xf0d4a2d6, 0x9cd2ed2a, 0x850d763c, 0xf83ee7aa, 0xf83ee7aa, 0xd8cdc484, 0xd8cdc484, 0xd8cdc484, 0x1cfa4f65, 0x1cfa4f65, 0x1cfa4f65, 0xd3e41c77, 0xd3e41c77, 0xd3e41c77, 0xf83ee7aa, 0x850d763c, 0x850d763c, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x9a851848, 0xa76e7d2d, 0x9a851848, 0x7987b0ef, 0x724366e5, 0x724366e5, 0xdcd2c529, 0xdcd2c529, 0xdcd2c529, 0x3f220d4f, 0x3f220d4f, 0x3f220d4f, 0x81609837, 0x81609837, 0x81609837, 0x724366e5, 0x7987b0ef, 0x7987b0ef, 0x724366e5, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x97619707, 0x6f50f077, 0x97619707, 0x2fc44597, 0x5387d57f, 0x5387d57f, 0x50f935e4, 0x50f935e4, 0x50f935e4, 0xae2c6aed, 0xae2c6aed, 0xae2c6aed, 0xa6d4f3de, 0xa6d4f3de, 0xa6d4f3de, 0x5387d57f, 0x2fc44597, 0x2fc44597, 0x5387d57f, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa1fd9dc7, 0xe73a78a6, 0xa1fd9dc7, 0x716ff77f, 0xf83ee7aa, 0xf83ee7aa, 0x78dde9c4, 0x78dde9c4, 0x78dde9c4, 0x368bb049, 0x368bb049, 0x368bb049, 0xdc57cb80, 0xdc57cb80, 0xdc57cb80, 0xf83ee7aa, 0x716ff77f, 0x716ff77f, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xbb37d363, 0x5f4bb8c9, 0xbb37d363, 0xe9d91fe5, 0x724366e5, 0x724366e5, 0x9a5fce9e, 0x9a5fce9e, 0x9a5fce9e, 0x5bc6df74, 0x5bc6df74, 0x5bc6df74, 0xdf93543c, 0xdf93543c, 0xdf93543c, 0x724366e5, 0xe9d91fe5, 0xe9d91fe5, 0x724366e5, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xd073c0ae, 0x88549625, 0xd073c0ae, 0x2542b920, 0x1c955882, 0x1c955882, 0xf8a21e7d, 0xf8a21e7d, 0xf8a21e7d, 0x7af4f1cd, 0x7af4f1cd, 0x7af4f1cd, 0xb51c74b1, 0xb51c74b1, 0xb51c74b1, 0x1c955882, 0x2542b920, 0x2542b920, 0x1c955882, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x11271f36, 0x6ea425b6, 0x11271f36, 0x1d8e21df, 0x4d266f7a, 0x4d266f7a, 0xbc41aef9, 0xbc41aef9, 0xbc41aef9, 0xf014fdbf, 0xf014fdbf, 0xf014fdbf, 0xd2b54f41, 0xd2b54f41, 0xd2b54f41, 0x4d266f7a, 0x1d8e21df, 0x1d8e21df, 0x4d266f7a, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x58a685bc, 0x38ce9715, 0x58a685bc, 0xf3d2b5be, 0x1ed9d731, 0x1ed9d731, 0x8cc54d61, 0x8cc54d61, 0x8cc54d61, 0x38c40de9, 0x38c40de9, 0x38c40de9, 0x35e811aa, 0x35e811aa, 0x35e811aa, 0x1ed9d731, 0xf3d2b5be, 0xf3d2b5be, 0x1ed9d731, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x5e677bb0, 0x10a60901, 0x5e677bb0, 0x2c04f42d, 0x5387d57f, 0x5387d57f, 0x8c4b382b, 0x8c4b382b, 0x8c4b382b, 0xaf2afe21, 0xaf2afe21, 0xaf2afe21, 0x771bbec, 0x771bbec, 0x771bbec, 0x5387d57f, 0x2c04f42d, 0x2c04f42d, 0x5387d57f, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x9cd2ed2a, 0xf0d4a2d6, 0x9cd2ed2a, 0x850d763c, 0xf83ee7aa, 0xf83ee7aa, 0xd8cdc484, 0xd8cdc484, 0xd8cdc484, 0x1cfa4f65, 0x1cfa4f65, 0x1cfa4f65, 0xd3e41c77, 0xd3e41c77, 0xd3e41c77, 0xf83ee7aa, 0x850d763c, 0x850d763c, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x9a851848, 0xa76e7d2d, 0x9a851848, 0x7987b0ef, 0x724366e5, 0x724366e5, 0xdcd2c529, 0xdcd2c529, 0xdcd2c529, 0x3f220d4f, 0x3f220d4f, 0x3f220d4f, 0x81609837, 0x81609837, 0x81609837, 0x724366e5, 0x7987b0ef, 0x7987b0ef, 0x724366e5, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x97619707, 0x6f50f077, 0x97619707, 0x2fc44597, 0x5387d57f, 0x5387d57f, 0x50f935e4, 0x50f935e4, 0x50f935e4, 0xae2c6aed, 0xae2c6aed, 0xae2c6aed, 0xa6d4f3de, 0xa6d4f3de, 0xa6d4f3de, 0x5387d57f, 0x2fc44597, 0x2fc44597, 0x5387d57f, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa1fd9dc7, 0xe73a78a6, 0xa1fd9dc7, 0x716ff77f, 0xf83ee7aa, 0xf83ee7aa, 0x78dde9c4, 0x78dde9c4, 0x78dde9c4, 0x368bb049, 0x368bb049, 0x368bb049, 0xdc57cb80, 0xdc57cb80, 0xdc57cb80, 0xf83ee7aa, 0x716ff77f, 0x716ff77f, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xbb37d363, 0x5f4bb8c9, 0xbb37d363, 0xe9d91fe5, 0x724366e5, 0x724366e5, 0x9a5fce9e, 0x9a5fce9e, 0x9a5fce9e, 0x5bc6df74, 0x5bc6df74, 0x5bc6df74, 0xdf93543c, 0xdf93543c, 0xdf93543c, 0x724366e5, 0xe9d91fe5, 0xe9d91fe5, 0x724366e5, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xd073c0ae, 0x88549625, 0xd073c0ae, 0x2542b920, 0x1c955882, 0x1c955882, 0xf8a21e7d, 0xf8a21e7d, 0xf8a21e7d, 0x7af4f1cd, 0x7af4f1cd, 0x7af4f1cd, 0xb51c74b1, 0xb51c74b1, 0xb51c74b1, 0x1c955882, 0x2542b920, 0x2542b920, 0x1c955882, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x11271f36, 0x6ea425b6, 0x11271f36, 0x1d8e21df, 0x4d266f7a, 0x4d266f7a, 0xbc41aef9, 0xbc41aef9, 0xbc41aef9, 0xf014fdbf, 0xf014fdbf, 0xf014fdbf, 0xd2b54f41, 0xd2b54f41, 0xd2b54f41, 0x4d266f7a, 0x1d8e21df, 0x1d8e21df, 0x4d266f7a, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x58a685bc, 0x38ce9715, 0x58a685bc, 0xf3d2b5be, 0x1ed9d731, 0x1ed9d731, 0x8cc54d61, 0x8cc54d61, 0x8cc54d61, 0x38c40de9, 0x38c40de9, 0x38c40de9, 0x35e811aa, 0x35e811aa, 0x35e811aa, 0x1ed9d731, 0xf3d2b5be, 0xf3d2b5be, 0x1ed9d731, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xbc06fffc, 0x364aa5c7, 0xbc06fffc, 0x7a1ba536, 0x9813a416, 0x9813a416, 0xabce4a73, 0xabce4a73, 0xabce4a73, 0xa03b4edc, 0xa03b4edc, 0xa03b4edc, 0xb4398c45, 0xb4398c45, 0xb4398c45, 0x9813a416, 0x7a1ba536, 0x7a1ba536, 0x9813a416, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb0b4fa0c, 0xc7b12a4e, 0xb0b4fa0c, 0x353acb3c, 0x5fcf013d, 0x5fcf013d, 0xe300c643, 0xe300c643, 0xe300c643, 0x1243c35e, 0x1243c35e, 0x1243c35e, 0x55bcc0d9, 0x55bcc0d9, 0x55bcc0d9, 0x5fcf013d, 0x353acb3c, 0x353acb3c, 0x5fcf013d, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x20eb710, 0x97329eb5, 0x20eb710, 0x245ae7b, 0xdd28f52b, 0xdd28f52b, 0x7a1d74fd, 0x7a1d74fd, 0x7a1d74fd, 0x70b3339, 0x70b3339, 0x70b3339, 0x6439ed13, 0x6439ed13, 0x6439ed13, 0xdd28f52b, 0x245ae7b, 0x245ae7b, 0xdd28f52b, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xe229a7f0, 0x2a317e27, 0xe229a7f0, 0xab4dea99, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xab4dea99, 0xab4dea99, 0x59c36f00, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8639bc17, 0x91a6078e, 0x8639bc17, 0xdaaa0f98, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0xdaaa0f98, 0xdaaa0f98, 0xaa4593fe, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe6177bfd, 0xaa145d1, 0xe6177bfd, 0x33dd6981, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x33dd6981, 0x33dd6981, 0xc9cbf769, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xec257a83, 0x19d65004, 0xec257a83, 0x2a382049, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0x2a382049, 0x2a382049, 0x9813a416, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x3255e8e, 0xdce0e3fa, 0x3255e8e, 0x86ab6fbe, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0x86ab6fbe, 0x86ab6fbe, 0x5fcf013d, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x673a2dc2, 0x88c6d4d9, 0x673a2dc2, 0x677134a9, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0x677134a9, 0x677134a9, 0xdd28f52b, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xe229a7f0, 0x2a317e27, 0xe229a7f0, 0xab4dea99, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xab4dea99, 0xab4dea99, 0x59c36f00, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x8639bc17, 0x91a6078e, 0x8639bc17, 0xdaaa0f98, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0xdaaa0f98, 0xdaaa0f98, 0xaa4593fe, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xe6177bfd, 0xaa145d1, 0xe6177bfd, 0x33dd6981, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x33dd6981, 0x33dd6981, 0xc9cbf769, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x29e73016, 0x795de1bc, 0x29e73016, 0x5b84bf8b, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0x5b84bf8b, 0x5b84bf8b, 0x5387d57f, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa14eb75d, 0xa45fd855, 0xa14eb75d, 0xb8912c4b, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0xb8912c4b, 0xb8912c4b, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xa97a7639, 0xb31826b0, 0xa97a7639, 0x4a78de9e, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x4a78de9e, 0x4a78de9e, 0x724366e5, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xd37ff64e, 0x4bc20364, 0xd37ff64e, 0x6bda24de, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0x6bda24de, 0x6bda24de, 0x5387d57f, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x83a05a57, 0xbb856709, 0x83a05a57, 0x533230ef, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0x533230ef, 0x533230ef, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x6bb86239, 0xfa8581a4, 0x6bb86239, 0x3956aebf, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0x3956aebf, 0x3956aebf, 0x724366e5, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x8c1945b9, 0xd6bd3ceb, 0x8c1945b9, 0x79283c37, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0x79283c37, 0x79283c37, 0x1c955882, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x1a7618f6, 0xf685e337, 0x1a7618f6, 0x16df261f, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0x16df261f, 0x16df261f, 0x4d266f7a, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x86d73465, 0x85c814e6, 0x86d73465, 0x2da30467, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0x2da30467, 0x2da30467, 0x1ed9d731, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x29e73016, 0x795de1bc, 0x29e73016, 0x5b84bf8b, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0x5b84bf8b, 0x5b84bf8b, 0x5387d57f, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa14eb75d, 0xa45fd855, 0xa14eb75d, 0xb8912c4b, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0xb8912c4b, 0xb8912c4b, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xa97a7639, 0xb31826b0, 0xa97a7639, 0x4a78de9e, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x4a78de9e, 0x4a78de9e, 0x724366e5, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xd37ff64e, 0x4bc20364, 0xd37ff64e, 0x6bda24de, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0x6bda24de, 0x6bda24de, 0x5387d57f, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x83a05a57, 0xbb856709, 0x83a05a57, 0x533230ef, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0x533230ef, 0x533230ef, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x6bb86239, 0xfa8581a4, 0x6bb86239, 0x3956aebf, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0x3956aebf, 0x3956aebf, 0x724366e5, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x8c1945b9, 0xd6bd3ceb, 0x8c1945b9, 0x79283c37, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0x79283c37, 0x79283c37, 0x1c955882, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x1a7618f6, 0xf685e337, 0x1a7618f6, 0x16df261f, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0x16df261f, 0x16df261f, 0x4d266f7a, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x86d73465, 0x85c814e6, 0x86d73465, 0x2da30467, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0x2da30467, 0x2da30467, 0x1ed9d731, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xec257a83, 0x19d65004, 0xec257a83, 0x2a382049, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0x2a382049, 0x2a382049, 0x9813a416, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x3255e8e, 0xdce0e3fa, 0x3255e8e, 0x86ab6fbe, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0x86ab6fbe, 0x86ab6fbe, 0x5fcf013d, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x673a2dc2, 0x88c6d4d9, 0x673a2dc2, 0x677134a9, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0x677134a9, 0x677134a9, 0xdd28f52b, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xae107385, 0xbf8fb82e, 0xae107385, 0xe7743eec, 0x59c36f00, 0x59c36f00, 0xebc12bda, 0xebc12bda, 0xebc12bda, 0xb7d32b38, 0xb7d32b38, 0xb7d32b38, 0xf29f1fa6, 0xf29f1fa6, 0xf29f1fa6, 0x59c36f00, 0xe7743eec, 0xe7743eec, 0x59c36f00, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xfbcace84, 0x6f1a084e, 0xfbcace84, 0xa7597d0b, 0xaa4593fe, 0xaa4593fe, 0x3ae147d7, 0x3ae147d7, 0x3ae147d7, 0xe066e8ec, 0xe066e8ec, 0xe066e8ec, 0xdc6af8a5, 0xdc6af8a5, 0xdc6af8a5, 0xaa4593fe, 0xa7597d0b, 0xa7597d0b, 0xaa4593fe, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xffa6bec, 0x6dcf8053, 0xffa6bec, 0xda307990, 0xc9cbf769, 0xc9cbf769, 0x5a4cfacb, 0x5a4cfacb, 0x5a4cfacb, 0x6ea5dde5, 0x6ea5dde5, 0x6ea5dde5, 0x4cc1b56e, 0x4cc1b56e, 0x4cc1b56e, 0xc9cbf769, 0xda307990, 0xda307990, 0xc9cbf769, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xfa42c2ea, 0xea757246, 0xfa42c2ea, 0x3c5f9820, 0x9813a416, 0x9813a416, 0x290af708, 0x290af708, 0x290af708, 0x22fff3a7, 0x22fff3a7, 0x22fff3a7, 0x36fd313e, 0x36fd313e, 0x36fd313e, 0x9813a416, 0x3c5f9820, 0x3c5f9820, 0x9813a416, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x2ca306b9, 0x97e67cf5, 0x2ca306b9, 0xa92d3789, 0x5fcf013d, 0x5fcf013d, 0x5b42cac9, 0x5b42cac9, 0x5b42cac9, 0xaa01cfd4, 0xaa01cfd4, 0xaa01cfd4, 0xedfecc53, 0xedfecc53, 0xedfecc53, 0x5fcf013d, 0xa92d3789, 0xa92d3789, 0x5fcf013d, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3a839aae, 0x89837837, 0x3a839aae, 0x3ac883c5, 0xdd28f52b, 0xdd28f52b, 0x8de395a5, 0x8de395a5, 0x8de395a5, 0xf0f5d261, 0xf0f5d261, 0xf0f5d261, 0x93c70c4b, 0x93c70c4b, 0x93c70c4b, 0xdd28f52b, 0x3ac883c5, 0x3ac883c5, 0xdd28f52b, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xae107385, 0xbf8fb82e, 0xae107385, 0xe7743eec, 0x59c36f00, 0x59c36f00, 0xebc12bda, 0xebc12bda, 0xebc12bda, 0xb7d32b38, 0xb7d32b38, 0xb7d32b38, 0xf29f1fa6, 0xf29f1fa6, 0xf29f1fa6, 0x59c36f00, 0xe7743eec, 0xe7743eec, 0x59c36f00, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xfbcace84, 0x6f1a084e, 0xfbcace84, 0xa7597d0b, 0xaa4593fe, 0xaa4593fe, 0x3ae147d7, 0x3ae147d7, 0x3ae147d7, 0xe066e8ec, 0xe066e8ec, 0xe066e8ec, 0xdc6af8a5, 0xdc6af8a5, 0xdc6af8a5, 0xaa4593fe, 0xa7597d0b, 0xa7597d0b, 0xaa4593fe, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xffa6bec, 0x6dcf8053, 0xffa6bec, 0xda307990, 0xc9cbf769, 0xc9cbf769, 0x5a4cfacb, 0x5a4cfacb, 0x5a4cfacb, 0x6ea5dde5, 0x6ea5dde5, 0x6ea5dde5, 0x4cc1b56e, 0x4cc1b56e, 0x4cc1b56e, 0xc9cbf769, 0xda307990, 0xda307990, 0xc9cbf769, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x46bfc6c9, 0x8e4ed344, 0x46bfc6c9, 0x34dc4954, 0x5387d57f, 0x5387d57f, 0xc95c2bb9, 0xc95c2bb9, 0xc95c2bb9, 0xea3dedb3, 0xea3dedb3, 0xea3dedb3, 0x4266a87e, 0x4266a87e, 0x4266a87e, 0x5387d57f, 0x34dc4954, 0x34dc4954, 0x5387d57f, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf8fa8dd6, 0x46e7e0cb, 0xf8fa8dd6, 0xe12516c0, 0xf83ee7aa, 0xf83ee7aa, 0xff88f7e1, 0xff88f7e1, 0xff88f7e1, 0x3bbf7c00, 0x3bbf7c00, 0x3bbf7c00, 0xf4a12f12, 0xf4a12f12, 0xf4a12f12, 0xf83ee7aa, 0xe12516c0, 0xe12516c0, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x64084d93, 0x156d5456, 0x64084d93, 0x870ae534, 0x724366e5, 0x724366e5, 0x4c4f3106, 0x4c4f3106, 0x4c4f3106, 0xafbff960, 0xafbff960, 0xafbff960, 0x11fd6c18, 0x11fd6c18, 0x11fd6c18, 0x724366e5, 0x870ae534, 0x870ae534, 0x724366e5, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xc2887c69, 0xe0257645, 0xc2887c69, 0x7a2daef9, 0x5387d57f, 0x5387d57f, 0xf127fce0, 0xf127fce0, 0xf127fce0, 0xff2a3e9, 0xff2a3e9, 0xff2a3e9, 0x70a3ada, 0x70a3ada, 0x70a3ada, 0x5387d57f, 0x7a2daef9, 0x7a2daef9, 0x5387d57f, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8486eeef, 0x5e732c64, 0x8486eeef, 0x54148457, 0xf83ee7aa, 0xf83ee7aa, 0x143cae9e, 0x143cae9e, 0x143cae9e, 0x5a6af713, 0x5a6af713, 0x5a6af713, 0xb0b68cda, 0xb0b68cda, 0xb0b68cda, 0xf83ee7aa, 0x54148457, 0x54148457, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xaad4c3b8, 0x90ce661c, 0xaad4c3b8, 0xf83a0f3e, 0x724366e5, 0x724366e5, 0xa7ac6799, 0xa7ac6799, 0xa7ac6799, 0x66357673, 0x66357673, 0x66357673, 0xe260fd3b, 0xe260fd3b, 0xe260fd3b, 0x724366e5, 0xf83a0f3e, 0xf83a0f3e, 0x724366e5, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x60563832, 0xa0d8e41f, 0x60563832, 0x956741bc, 0x1c955882, 0x1c955882, 0x9abc058d, 0x9abc058d, 0x9abc058d, 0x18eaea3d, 0x18eaea3d, 0x18eaea3d, 0xd7026f41, 0xd7026f41, 0xd7026f41, 0x1c955882, 0x956741bc, 0x956741bc, 0x1c955882, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x9f11c3db, 0x5e6faffc, 0x9f11c3db, 0x93b8fd32, 0x4d266f7a, 0x4d266f7a, 0xdddadbb1, 0xdddadbb1, 0xdddadbb1, 0x918f88f7, 0x918f88f7, 0x918f88f7, 0xb32e3a09, 0xb32e3a09, 0xb32e3a09, 0x4d266f7a, 0x93b8fd32, 0x93b8fd32, 0x4d266f7a, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd58db96, 0x29ecb6a6, 0xd58db96, 0xa62ceb94, 0x1ed9d731, 0x1ed9d731, 0x65cad63c, 0x65cad63c, 0x65cad63c, 0xd1cb96b4, 0xd1cb96b4, 0xd1cb96b4, 0xdce78af7, 0xdce78af7, 0xdce78af7, 0x1ed9d731, 0xa62ceb94, 0xa62ceb94, 0x1ed9d731, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x46bfc6c9, 0x8e4ed344, 0x46bfc6c9, 0x34dc4954, 0x5387d57f, 0x5387d57f, 0xc95c2bb9, 0xc95c2bb9, 0xc95c2bb9, 0xea3dedb3, 0xea3dedb3, 0xea3dedb3, 0x4266a87e, 0x4266a87e, 0x4266a87e, 0x5387d57f, 0x34dc4954, 0x34dc4954, 0x5387d57f, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf8fa8dd6, 0x46e7e0cb, 0xf8fa8dd6, 0xe12516c0, 0xf83ee7aa, 0xf83ee7aa, 0xff88f7e1, 0xff88f7e1, 0xff88f7e1, 0x3bbf7c00, 0x3bbf7c00, 0x3bbf7c00, 0xf4a12f12, 0xf4a12f12, 0xf4a12f12, 0xf83ee7aa, 0xe12516c0, 0xe12516c0, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x64084d93, 0x156d5456, 0x64084d93, 0x870ae534, 0x724366e5, 0x724366e5, 0x4c4f3106, 0x4c4f3106, 0x4c4f3106, 0xafbff960, 0xafbff960, 0xafbff960, 0x11fd6c18, 0x11fd6c18, 0x11fd6c18, 0x724366e5, 0x870ae534, 0x870ae534, 0x724366e5, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xc2887c69, 0xe0257645, 0xc2887c69, 0x7a2daef9, 0x5387d57f, 0x5387d57f, 0xf127fce0, 0xf127fce0, 0xf127fce0, 0xff2a3e9, 0xff2a3e9, 0xff2a3e9, 0x70a3ada, 0x70a3ada, 0x70a3ada, 0x5387d57f, 0x7a2daef9, 0x7a2daef9, 0x5387d57f, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8486eeef, 0x5e732c64, 0x8486eeef, 0x54148457, 0xf83ee7aa, 0xf83ee7aa, 0x143cae9e, 0x143cae9e, 0x143cae9e, 0x5a6af713, 0x5a6af713, 0x5a6af713, 0xb0b68cda, 0xb0b68cda, 0xb0b68cda, 0xf83ee7aa, 0x54148457, 0x54148457, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xaad4c3b8, 0x90ce661c, 0xaad4c3b8, 0xf83a0f3e, 0x724366e5, 0x724366e5, 0xa7ac6799, 0xa7ac6799, 0xa7ac6799, 0x66357673, 0x66357673, 0x66357673, 0xe260fd3b, 0xe260fd3b, 0xe260fd3b, 0x724366e5, 0xf83a0f3e, 0xf83a0f3e, 0x724366e5, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x60563832, 0xa0d8e41f, 0x60563832, 0x956741bc, 0x1c955882, 0x1c955882, 0x9abc058d, 0x9abc058d, 0x9abc058d, 0x18eaea3d, 0x18eaea3d, 0x18eaea3d, 0xd7026f41, 0xd7026f41, 0xd7026f41, 0x1c955882, 0x956741bc, 0x956741bc, 0x1c955882, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x9f11c3db, 0x5e6faffc, 0x9f11c3db, 0x93b8fd32, 0x4d266f7a, 0x4d266f7a, 0xdddadbb1, 0xdddadbb1, 0xdddadbb1, 0x918f88f7, 0x918f88f7, 0x918f88f7, 0xb32e3a09, 0xb32e3a09, 0xb32e3a09, 0x4d266f7a, 0x93b8fd32, 0x93b8fd32, 0x4d266f7a, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd58db96, 0x29ecb6a6, 0xd58db96, 0xa62ceb94, 0x1ed9d731, 0x1ed9d731, 0x65cad63c, 0x65cad63c, 0x65cad63c, 0xd1cb96b4, 0xd1cb96b4, 0xd1cb96b4, 0xdce78af7, 0xdce78af7, 0xdce78af7, 0x1ed9d731, 0xa62ceb94, 0xa62ceb94, 0x1ed9d731, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xfa42c2ea, 0xea757246, 0xfa42c2ea, 0x3c5f9820, 0x9813a416, 0x9813a416, 0x290af708, 0x290af708, 0x290af708, 0x22fff3a7, 0x22fff3a7, 0x22fff3a7, 0x36fd313e, 0x36fd313e, 0x36fd313e, 0x9813a416, 0x3c5f9820, 0x3c5f9820, 0x9813a416, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x2ca306b9, 0x97e67cf5, 0x2ca306b9, 0xa92d3789, 0x5fcf013d, 0x5fcf013d, 0x5b42cac9, 0x5b42cac9, 0x5b42cac9, 0xaa01cfd4, 0xaa01cfd4, 0xaa01cfd4, 0xedfecc53, 0xedfecc53, 0xedfecc53, 0x5fcf013d, 0xa92d3789, 0xa92d3789, 0x5fcf013d, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3a839aae, 0x89837837, 0x3a839aae, 0x3ac883c5, 0xdd28f52b, 0xdd28f52b, 0x8de395a5, 0x8de395a5, 0x8de395a5, 0xf0f5d261, 0xf0f5d261, 0xf0f5d261, 0x93c70c4b, 0x93c70c4b, 0x93c70c4b, 0xdd28f52b, 0x3ac883c5, 0x3ac883c5, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbad0b774, 0x11b3aba3, 0xbad0b774, 0xf3b4fa1d, 0x59c36f00, 0x59c36f00, 0x8fd469d6, 0x8fd469d6, 0x8fd469d6, 0xd3c66934, 0xd3c66934, 0xd3c66934, 0x968a5daa, 0x968a5daa, 0x968a5daa, 0x59c36f00, 0xf3b4fa1d, 0xf3b4fa1d, 0x59c36f00, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x65ca84be, 0xf8d1eb4f, 0x65ca84be, 0x39593731, 0xaa4593fe, 0xaa4593fe, 0xdb2e71a5, 0xdb2e71a5, 0xdb2e71a5, 0x1a9de9e, 0x1a9de9e, 0x1a9de9e, 0x3da5ced7, 0x3da5ced7, 0x3da5ced7, 0xaa4593fe, 0x39593731, 0x39593731, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xdea05d4f, 0xb662c223, 0xdea05d4f, 0xb6a4f33, 0xc9cbf769, 0xc9cbf769, 0xadcc90df, 0xadcc90df, 0xadcc90df, 0x9925b7f1, 0x9925b7f1, 0x9925b7f1, 0xbb41df7a, 0xbb41df7a, 0xbb41df7a, 0xc9cbf769, 0xb6a4f33, 0xb6a4f33, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x97582aea, 0x106653a, 0x97582aea, 0x51457020, 0x9813a416, 0x9813a416, 0x6fbc18ae, 0x6fbc18ae, 0x6fbc18ae, 0x64491c01, 0x64491c01, 0x64491c01, 0x704bde98, 0x704bde98, 0x704bde98, 0x9813a416, 0x51457020, 0x51457020, 0x9813a416, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x964f65ea, 0x34ae6fb6, 0x964f65ea, 0x13c154da, 0x5fcf013d, 0x5fcf013d, 0xa4ebbaa6, 0xa4ebbaa6, 0xa4ebbaa6, 0x55a8bfbb, 0x55a8bfbb, 0x55a8bfbb, 0x1257bc3c, 0x1257bc3c, 0x1257bc3c, 0x5fcf013d, 0x13c154da, 0x13c154da, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x75e6834a, 0x28165e16, 0x75e6834a, 0x75ad9a21, 0xdd28f52b, 0xdd28f52b, 0x6ae4a429, 0x6ae4a429, 0x6ae4a429, 0x17f2e3ed, 0x17f2e3ed, 0x17f2e3ed, 0x74c03dc7, 0x74c03dc7, 0x74c03dc7, 0xdd28f52b, 0x75ad9a21, 0x75ad9a21, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xbad0b774, 0x11b3aba3, 0xbad0b774, 0xf3b4fa1d, 0x59c36f00, 0x59c36f00, 0x8fd469d6, 0x8fd469d6, 0x8fd469d6, 0xd3c66934, 0xd3c66934, 0xd3c66934, 0x968a5daa, 0x968a5daa, 0x968a5daa, 0x59c36f00, 0xf3b4fa1d, 0xf3b4fa1d, 0x59c36f00, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x65ca84be, 0xf8d1eb4f, 0x65ca84be, 0x39593731, 0xaa4593fe, 0xaa4593fe, 0xdb2e71a5, 0xdb2e71a5, 0xdb2e71a5, 0x1a9de9e, 0x1a9de9e, 0x1a9de9e, 0x3da5ced7, 0x3da5ced7, 0x3da5ced7, 0xaa4593fe, 0x39593731, 0x39593731, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xdea05d4f, 0xb662c223, 0xdea05d4f, 0xb6a4f33, 0xc9cbf769, 0xc9cbf769, 0xadcc90df, 0xadcc90df, 0xadcc90df, 0x9925b7f1, 0x9925b7f1, 0x9925b7f1, 0xbb41df7a, 0xbb41df7a, 0xbb41df7a, 0xc9cbf769, 0xb6a4f33, 0xb6a4f33, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xb382d720, 0xb8de6436, 0xb382d720, 0xc1e158bd, 0x5387d57f, 0x5387d57f, 0x929048c4, 0x929048c4, 0x929048c4, 0xb1f18ece, 0xb1f18ece, 0xb1f18ece, 0x19aacb03, 0x19aacb03, 0x19aacb03, 0x5387d57f, 0xc1e158bd, 0xc1e158bd, 0x5387d57f, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x3f3d9790, 0xa35395ab, 0x3f3d9790, 0x26e20c86, 0xf83ee7aa, 0xf83ee7aa, 0xf9737ced, 0xf9737ced, 0xf9737ced, 0x3d44f70c, 0x3d44f70c, 0x3d44f70c, 0xf25aa41e, 0xf25aa41e, 0xf25aa41e, 0xf83ee7aa, 0x26e20c86, 0x26e20c86, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x758a32e3, 0xdee0d5cb, 0x758a32e3, 0x96889a44, 0x724366e5, 0x724366e5, 0xb047ef22, 0xb047ef22, 0xb047ef22, 0x53b72744, 0x53b72744, 0x53b72744, 0xedf5b23c, 0xedf5b23c, 0xedf5b23c, 0x724366e5, 0x96889a44, 0x96889a44, 0x724366e5, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x1dc9c0fa, 0x33ac9864, 0x1dc9c0fa, 0xa56c126a, 0x5387d57f, 0x5387d57f, 0xba18c4c3, 0xba18c4c3, 0xba18c4c3, 0x44cd9bca, 0x44cd9bca, 0x44cd9bca, 0x4c3502f9, 0x4c3502f9, 0x4c3502f9, 0x5387d57f, 0xa56c126a, 0xa56c126a, 0x5387d57f, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd974fae3, 0x3ccb6dc6, 0xd974fae3, 0x9e6905b, 0xf83ee7aa, 0xf83ee7aa, 0xc06251ed, 0xc06251ed, 0xc06251ed, 0x8e340860, 0x8e340860, 0x8e340860, 0x64e873a9, 0x64e873a9, 0x64e873a9, 0xf83ee7aa, 0x9e6905b, 0x9e6905b, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xe1a82093, 0xb564e19c, 0xe1a82093, 0xb346ec15, 0x724366e5, 0x724366e5, 0x97406bcb, 0x97406bcb, 0x97406bcb, 0x56d97a21, 0x56d97a21, 0x56d97a21, 0xd28cf169, 0xd28cf169, 0xd28cf169, 0x724366e5, 0xb346ec15, 0xb346ec15, 0x724366e5, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xd60d9c2e, 0x8d9d3fca, 0xd60d9c2e, 0x233ce5a0, 0x1c955882, 0x1c955882, 0xf3109705, 0xf3109705, 0xf3109705, 0x714678b5, 0x714678b5, 0x714678b5, 0xbeaefdc9, 0xbeaefdc9, 0xbeaefdc9, 0x1c955882, 0x233ce5a0, 0x233ce5a0, 0x1c955882, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8ae42c6c, 0xbf04c68c, 0x8ae42c6c, 0x864d1285, 0x4d266f7a, 0x4d266f7a, 0xdf5e9f05, 0xdf5e9f05, 0xdf5e9f05, 0x930bcc43, 0x930bcc43, 0x930bcc43, 0xb1aa7ebd, 0xb1aa7ebd, 0xb1aa7ebd, 0x4d266f7a, 0x864d1285, 0x864d1285, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xbb7bd38a, 0x76b75720, 0xbb7bd38a, 0x100fe388, 0x1ed9d731, 0x1ed9d731, 0x9dccb1ba, 0x9dccb1ba, 0x9dccb1ba, 0x29cdf132, 0x29cdf132, 0x29cdf132, 0x24e1ed71, 0x24e1ed71, 0x24e1ed71, 0x1ed9d731, 0x100fe388, 0x100fe388, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xb382d720, 0xb8de6436, 0xb382d720, 0xc1e158bd, 0x5387d57f, 0x5387d57f, 0x929048c4, 0x929048c4, 0x929048c4, 0xb1f18ece, 0xb1f18ece, 0xb1f18ece, 0x19aacb03, 0x19aacb03, 0x19aacb03, 0x5387d57f, 0xc1e158bd, 0xc1e158bd, 0x5387d57f, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x3f3d9790, 0xa35395ab, 0x3f3d9790, 0x26e20c86, 0xf83ee7aa, 0xf83ee7aa, 0xf9737ced, 0xf9737ced, 0xf9737ced, 0x3d44f70c, 0x3d44f70c, 0x3d44f70c, 0xf25aa41e, 0xf25aa41e, 0xf25aa41e, 0xf83ee7aa, 0x26e20c86, 0x26e20c86, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x758a32e3, 0xdee0d5cb, 0x758a32e3, 0x96889a44, 0x724366e5, 0x724366e5, 0xb047ef22, 0xb047ef22, 0xb047ef22, 0x53b72744, 0x53b72744, 0x53b72744, 0xedf5b23c, 0xedf5b23c, 0xedf5b23c, 0x724366e5, 0x96889a44, 0x96889a44, 0x724366e5, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x1dc9c0fa, 0x33ac9864, 0x1dc9c0fa, 0xa56c126a, 0x5387d57f, 0x5387d57f, 0xba18c4c3, 0xba18c4c3, 0xba18c4c3, 0x44cd9bca, 0x44cd9bca, 0x44cd9bca, 0x4c3502f9, 0x4c3502f9, 0x4c3502f9, 0x5387d57f, 0xa56c126a, 0xa56c126a, 0x5387d57f, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd974fae3, 0x3ccb6dc6, 0xd974fae3, 0x9e6905b, 0xf83ee7aa, 0xf83ee7aa, 0xc06251ed, 0xc06251ed, 0xc06251ed, 0x8e340860, 0x8e340860, 0x8e340860, 0x64e873a9, 0x64e873a9, 0x64e873a9, 0xf83ee7aa, 0x9e6905b, 0x9e6905b, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xe1a82093, 0xb564e19c, 0xe1a82093, 0xb346ec15, 0x724366e5, 0x724366e5, 0x97406bcb, 0x97406bcb, 0x97406bcb, 0x56d97a21, 0x56d97a21, 0x56d97a21, 0xd28cf169, 0xd28cf169, 0xd28cf169, 0x724366e5, 0xb346ec15, 0xb346ec15, 0x724366e5, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xd60d9c2e, 0x8d9d3fca, 0xd60d9c2e, 0x233ce5a0, 0x1c955882, 0x1c955882, 0xf3109705, 0xf3109705, 0xf3109705, 0x714678b5, 0x714678b5, 0x714678b5, 0xbeaefdc9, 0xbeaefdc9, 0xbeaefdc9, 0x1c955882, 0x233ce5a0, 0x233ce5a0, 0x1c955882, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8ae42c6c, 0xbf04c68c, 0x8ae42c6c, 0x864d1285, 0x4d266f7a, 0x4d266f7a, 0xdf5e9f05, 0xdf5e9f05, 0xdf5e9f05, 0x930bcc43, 0x930bcc43, 0x930bcc43, 0xb1aa7ebd, 0xb1aa7ebd, 0xb1aa7ebd, 0x4d266f7a, 0x864d1285, 0x864d1285, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xbb7bd38a, 0x76b75720, 0xbb7bd38a, 0x100fe388, 0x1ed9d731, 0x1ed9d731, 0x9dccb1ba, 0x9dccb1ba, 0x9dccb1ba, 0x29cdf132, 0x29cdf132, 0x29cdf132, 0x24e1ed71, 0x24e1ed71, 0x24e1ed71, 0x1ed9d731, 0x100fe388, 0x100fe388, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x97582aea, 0x106653a, 0x97582aea, 0x51457020, 0x9813a416, 0x9813a416, 0x6fbc18ae, 0x6fbc18ae, 0x6fbc18ae, 0x64491c01, 0x64491c01, 0x64491c01, 0x704bde98, 0x704bde98, 0x704bde98, 0x9813a416, 0x51457020, 0x51457020, 0x9813a416, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x964f65ea, 0x34ae6fb6, 0x964f65ea, 0x13c154da, 0x5fcf013d, 0x5fcf013d, 0xa4ebbaa6, 0xa4ebbaa6, 0xa4ebbaa6, 0x55a8bfbb, 0x55a8bfbb, 0x55a8bfbb, 0x1257bc3c, 0x1257bc3c, 0x1257bc3c, 0x5fcf013d, 0x13c154da, 0x13c154da, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x75e6834a, 0x28165e16, 0x75e6834a, 0x75ad9a21, 0xdd28f52b, 0xdd28f52b, 0x6ae4a429, 0x6ae4a429, 0x6ae4a429, 0x17f2e3ed, 0x17f2e3ed, 0x17f2e3ed, 0x74c03dc7, 0x74c03dc7, 0x74c03dc7, 0xdd28f52b, 0x75ad9a21, 0x75ad9a21, 0xdd28f52b, }, 20 }, + { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, }, 5 }, + { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, }, 5 }, + { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x2b154617, 0x692e98df, 0xaf62fb87, 0xed59254f, 0x26164bc6, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x3b0fbc56, 0xd9d57c0e, 0xfb564a17, 0x198c8a4f, 0xbe502625, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0x6e6c9b36, 0x4ae9f137, 0x27664f34, 0x3e32535, 0xfc793332, }, 5 }, + { "videotest", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, 0x2d1b122b, }, 5 }, + { "videotest", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0x327d1082, 0x327d1082, 0x327d1082, 0x327d1082, 0x327d1082, }, 5 }, + { "videotest", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xadd0f186, 0xadd0f186, 0xadd0f186, 0xadd0f186, 0xadd0f186, }, 5 }, +@@ -73,9 +346,6 @@ + { "videotest", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x61db45b7, 0x1d867efe, 0x99613325, 0xe53c086c, 0x9543de62, }, 5 }, + { "videotest", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0xa46eb37f, 0xd2a59656, 0x49f8f92d, 0x3f33dc04, 0x7aae512a, }, 5 }, + { "videotest", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0xb864a496, 0x6c22313b, 0x1505f93d, 0xc1436c90, 0xe74a6931, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x2b154617, 0x692e98df, 0xaf62fb87, 0xed59254f, 0x26164bc6, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x3b0fbc56, 0xd9d57c0e, 0xfb564a17, 0x198c8a4f, 0xbe502625, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0x6e6c9b36, 0x4ae9f137, 0x27664f34, 0x3e32535, 0xfc793332, }, 5 }, + { "videotest", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x9056f776, 0x9056f776, 0x9056f776, 0x9056f776, 0x9056f776, }, 5 }, + { "videotest", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, 0x2bde3c67, }, 5 }, + { "videotest", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0xb04615f3, 0xb04615f3, 0xb04615f3, 0xb04615f3, 0xb04615f3, }, 5 }, +diff --git a/grub-core/tests/gfxterm_menu.c b/grub-core/tests/gfxterm_menu.c +index e4aae12..030ec33 100644 +--- a/grub-core/tests/gfxterm_menu.c ++++ b/grub-core/tests/gfxterm_menu.c +@@ -26,12 +26,12 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + + + static const char testfile[] = +- "terminal_output gfxterm\n" + "menuentry \"test\" {\n" + "\ttrue\n" + "}\n" +@@ -68,12 +68,36 @@ struct grub_procfs_entry test_cfg = + .get_contents = get_test_cfg + }; + ++struct ++{ ++ const char *name; ++ const char *var; ++ const char *val; ++} tests[] = ++ { ++ { "gfxterm_menu", NULL, NULL }, ++ { "gfxmenu", "theme", "starfield/theme.txt" }, ++ { "gfxterm_ar", "lang", "en@arabic" }, ++ { "gfxterm_cyr", "lang", "en@cyrillic" }, ++ { "gfxterm_heb", "lang", "en@hebrew" }, ++ { "gfxterm_gre", "lang", "en@greek" }, ++ { "gfxterm_ru", "lang", "ru" }, ++ { "gfxterm_fr", "lang", "fr" }, ++ { "gfxterm_quot", "lang", "en@quot" }, ++ { "gfxterm_piglatin", "lang", "en@piglatin" }, ++ { "gfxterm_ch", "lang", "de_CH" }, ++ }; ++ + + /* Functional test main method. */ + static void + gfxterm_menu (void) + { + unsigned i, j; ++ grub_dl_load ("png"); ++ grub_dl_load ("gettext"); ++ grub_dl_load ("gfxterm"); ++ + if (grub_font_load ("unicode") == 0) + { + grub_test_assert (0, "unicode font not found: %s", grub_errmsg); +@@ -82,28 +106,63 @@ gfxterm_menu (void) + + grub_procfs_register ("test.cfg", &test_cfg); + +- for (j = 0; j < 2; j++) +- for (i = 0; i < ARRAY_SIZE (grub_test_video_modes); i++) ++ for (j = 0; j < ARRAY_SIZE (tests); j++) ++ for (i = 0; i < GRUB_TEST_VIDEO_SMALL_N_MODES; i++) + { ++ struct grub_term_output *saved_outputs; ++ struct grub_term_output *saved_gfxnext; ++ struct grub_term_output *gfxterm; ++ grub_uint64_t start = grub_get_time_ms (); ++ + grub_video_capture_start (&grub_test_video_modes[i], + grub_video_fbstd_colors, + grub_test_video_modes[i].number_of_colors); +- grub_terminal_input_fake_sequence ((int []) { -1, -1, -1, GRUB_TERM_KEY_DOWN, -1, '\e' }, 6); ++ grub_terminal_input_fake_sequence ((int []) { -1, -1, -1, GRUB_TERM_KEY_DOWN, -1, 'e', ++ -1, GRUB_TERM_KEY_RIGHT, -1, 'x', -1, '\e', -1, '\e' }, 14); ++ ++ grub_video_checksum (tests[j].name); + +- grub_video_checksum (j ? "gfxmenu" : "gfxterm_menu"); ++ saved_outputs = grub_term_outputs; ++ ++ FOR_ACTIVE_TERM_OUTPUTS (gfxterm) ++ if (grub_strcmp (gfxterm->name, "gfxterm") == 0) ++ break; ++ if (!gfxterm) ++ FOR_DISABLED_TERM_OUTPUTS (gfxterm) ++ if (grub_strcmp (gfxterm->name, "gfxterm") == 0) ++ break; ++ ++ if (!gfxterm) ++ { ++ grub_test_assert (0, "terminal `%s' isn't found", "gfxterm"); ++ return; ++ } ++ ++ saved_gfxnext = gfxterm->next; ++ grub_term_outputs = gfxterm; ++ gfxterm->next = 0; ++ gfxterm->init (gfxterm); + + grub_env_context_open (); +- if (j) +- grub_env_set ("theme", "starfield/theme.txt"); ++ if (tests[j].var) ++ grub_env_set (tests[j].var, tests[j].val); + grub_normal_execute ("(proc)/test.cfg", 1, 0); + grub_env_context_close (); + +- char *args[] = { (char *) "console", 0 }; +- grub_command_execute ("terminal_output", 1, args); ++ gfxterm->fini (gfxterm); ++ gfxterm->next = saved_gfxnext; ++ grub_term_outputs = saved_outputs; + + grub_terminal_input_fake_sequence_end (); + grub_video_checksum_end (); + grub_video_capture_end (); ++ ++ if (tests[j].var) ++ grub_env_unset (tests[j].var); ++ grub_printf ("%s %dx%dx%s done %lld ms\n", tests[j].name, ++ grub_test_video_modes[i].width, ++ grub_test_video_modes[i].height, ++ grub_video_checksum_get_modename (), (long long) (grub_get_time_ms () - start)); + } + + grub_procfs_unregister (&test_cfg); +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +index f3eb9fc..68c61ff 100644 +--- a/grub-core/tests/video_checksum.c ++++ b/grub-core/tests/video_checksum.c +@@ -62,6 +62,25 @@ struct grub_video_mode_info grub_test_video_modes[30] = { + { + .width = 640, + .height = 480, ++ .pitch = 640 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ { ++ .width = 800, ++ .height = 600, ++ .pitch = 800 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ { ++ .width = 1024, ++ .height = 768, ++ .pitch = 1024 * 4, ++ GRUB_VIDEO_MI_RGBA8888() ++ }, ++ ++ { ++ .width = 640, ++ .height = 480, + .pitch = 640, + .mode_type = GRUB_VIDEO_MODE_TYPE_INDEX_COLOR, + .bpp = 8, +@@ -86,6 +105,10 @@ struct grub_video_mode_info grub_test_video_modes[30] = { + .bytes_per_pixel = 1, + .number_of_colors = GRUB_VIDEO_FBSTD_EXT_NUMCOLORS + }, ++ ++ ++ ++ + { + .width = 640, + .height = 480, +@@ -143,25 +166,6 @@ struct grub_video_mode_info grub_test_video_modes[30] = { + { + .width = 640, + .height = 480, +- .pitch = 640 * 4, +- GRUB_VIDEO_MI_RGBA8888() +- }, +- { +- .width = 800, +- .height = 600, +- .pitch = 800 * 4, +- GRUB_VIDEO_MI_RGBA8888() +- }, +- { +- .width = 1024, +- .height = 768, +- .pitch = 1024 * 4, +- GRUB_VIDEO_MI_RGBA8888() +- }, +- +- { +- .width = 640, +- .height = 480, + .pitch = 1280, + GRUB_VIDEO_MI_BGR555 () + }, +@@ -440,8 +444,8 @@ grub_video_capture_write_bmp (const char *fname, + + #endif + +-static const char * +-get_modename (void) ++const char * ++grub_video_checksum_get_modename (void) + { + static char buf[40]; + if (capt_mode_info.mode_type & GRUB_VIDEO_MODE_TYPE_INDEX_COLOR) +@@ -465,11 +469,39 @@ get_modename (void) + } + + //#define GENERATE_MODE 1 ++//#define SAVE_ALL_IMAGES ++//#define COLLECT_TIME_STATISTICS 1 + + #if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) + int genfd = -1; + #endif + ++#include ++ ++static void ++write_time (void) ++{ ++#if defined (GRUB_MACHINE_EMU) && defined (COLLECT_TIME_STATISTICS) ++ char buf[60]; ++ static grub_uint64_t prev; ++ grub_uint64_t cur; ++ static int tmrfd = -1; ++ if (tmrfd < 0) ++ tmrfd = open ("time.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); ++ cur = grub_get_time_ms (); ++ grub_snprintf (buf, sizeof (buf), "%s_%dx%dx%s:%d: %" PRIuGRUB_UINT64_T " ms\n", ++ basename, ++ capt_mode_info.width, ++ capt_mode_info.height, ++ grub_video_checksum_get_modename (), ctr, ++ cur - prev); ++ prev = cur; ++ if (tmrfd >= 0) ++ write (tmrfd, buf, grub_strlen (buf)); ++#endif ++} ++ ++ + static void + checksum (void) + { +@@ -478,6 +510,8 @@ checksum (void) + + ptr = grub_video_capture_get_framebuffer (); + ++ write_time (); ++ + #ifdef GRUB_CPU_WORDS_BIGENDIAN + switch (capt_mode_info.bytes_per_pixel) + { +@@ -549,44 +583,52 @@ checksum (void) + #else + crc = grub_getcrc32c (0, ptr, capt_mode_info.pitch * capt_mode_info.height); + #endif ++ ++#if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) ++ if (genfd >= 0) ++ { ++ char buf[20]; ++ grub_snprintf (buf, sizeof (buf), "0x%x, ", crc); ++ write (genfd, buf, grub_strlen (buf)); ++ } ++#endif ++ + if (!checksums || ctr >= nchk) + { + grub_test_assert (0, "Unexpected checksum %s_%dx%dx%s:%d: 0x%x", + basename, + capt_mode_info.width, +- capt_mode_info.height, get_modename (), ctr, crc); ++ capt_mode_info.height, ++ grub_video_checksum_get_modename (), ctr, crc); + } + else if (crc != checksums[ctr]) + { + grub_test_assert (0, "Checksum %s_%dx%dx%s:%d failed: 0x%x vs 0x%x", + basename, + capt_mode_info.width, +- capt_mode_info.height, get_modename (), ++ capt_mode_info.height, ++ grub_video_checksum_get_modename (), + ctr, crc, checksums[ctr]); + } ++#if !(defined (SAVE_ALL_IMAGES) && defined (GRUB_MACHINE_EMU)) + else + { +-#if !(defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU)) ++ write_time (); + ctr++; + return; +-#endif + } ++#endif + #ifdef GRUB_MACHINE_EMU + char *name = grub_xasprintf ("%s_%dx%dx%s_%d.bmp", basename, + capt_mode_info.width, +- capt_mode_info.height, get_modename (), ++ capt_mode_info.height, ++ grub_video_checksum_get_modename (), + ctr); + grub_video_capture_write_bmp (name, ptr, &capt_mode_info); ++ grub_free (name); + #endif + +-#if defined (GENERATE_MODE) && defined (GRUB_MACHINE_EMU) +- if (genfd >= 0) +- { +- char buf[20]; +- grub_snprintf (buf, sizeof (buf), "0x%x, ", crc); +- write (genfd, buf, grub_strlen (buf)); +- } +-#endif ++ write_time (); + + ctr++; + } +@@ -691,14 +733,15 @@ grub_video_checksum_end (void) + if (genfd >= 0) + { + char buf[40]; +- grub_snprintf (buf, sizeof (buf), "}, %x },\n", ctr); ++ grub_snprintf (buf, sizeof (buf), "}, %d },\n", ctr); + write (genfd, buf, grub_strlen (buf)); + } + #endif + grub_test_assert (ctr == nchk, "Not enough checksums %s_%dx%dx%s: %d vs %d", + basename, + capt_mode_info.width, +- capt_mode_info.height, get_modename (), ++ capt_mode_info.height, ++ grub_video_checksum_get_modename (), + ctr, nchk); + grub_free (basename); + basename = 0; +diff --git a/grub-core/video/video.c b/grub-core/video/video.c +index 90b5253..5215ac9 100644 +--- a/grub-core/video/video.c ++++ b/grub-core/video/video.c +@@ -499,6 +499,9 @@ grub_video_set_mode (const char *modestring, + char *current_mode; + char *modevar; + ++ if (grub_video_adapter_active && grub_video_adapter_active->id == GRUB_VIDEO_ADAPTER_CAPTURE) ++ return GRUB_ERR_NONE; ++ + modevalue &= modemask; + + /* Take copy of env.var. as we don't want to modify that. */ +@@ -510,9 +513,6 @@ grub_video_set_mode (const char *modestring, + if (! modevar) + return grub_errno; + +- if (grub_video_adapter_active && grub_video_adapter_active->id == GRUB_VIDEO_ADAPTER_CAPTURE) +- return GRUB_ERR_NONE; +- + if (grub_memcmp (next_mode, "keep", sizeof ("keep")) == 0 + || grub_memcmp (next_mode, "keep,", sizeof ("keep,") - 1) == 0 + || grub_memcmp (next_mode, "keep;", sizeof ("keep;") - 1) == 0) +diff --git a/include/grub/test.h b/include/grub/test.h +index 946a81b..cc4e4a8 100644 +--- a/include/grub/test.h ++++ b/include/grub/test.h +@@ -101,7 +101,11 @@ void + grub_terminal_input_fake_sequence (int *seq_in, int nseq_in); + void + grub_terminal_input_fake_sequence_end (void); ++const char * ++grub_video_checksum_get_modename (void); + ++ ++#define GRUB_TEST_VIDEO_SMALL_N_MODES 6 + extern struct grub_video_mode_info grub_test_video_modes[30]; + + #endif /* ! GRUB_TEST_HEADER */ +diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in +index a149cf9..4bf3b92 100644 +--- a/tests/grub_func_test.in ++++ b/tests/grub_func_test.in +@@ -3,7 +3,7 @@ set -e + + . "@builddir@/grub-core/modinfo.sh" + +-out=`echo all_functional_test | @builddir@/grub-shell` ++out=`echo all_functional_test | @builddir@/grub-shell --timeout=3600` + + if [ "$(echo "$out" | tail -n 1)" != "ALL TESTS PASSED" ]; then + echo "Functional test failure: $out" +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index dee3962..f259bb3 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -411,8 +411,10 @@ elif [ x$boot = xemu ]; then + grubdir="$(mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX")" + mkdir -p "$grubdir/fonts" + mkdir -p "$grubdir/themes" ++ mkdir -p "$grubdir/locale" + cp "@builddir@/"unicode.pf2 "$grubdir/fonts/unicode.pf2" + cp -R "@srcdir@/themes/starfield" "$grubdir/themes/starfield" ++ cp -R "@srcdir@/po/"*.gmo "$grubdir/locale/" + cp "${cfgfile}" "$grubdir/grub.cfg" + cp "${source}" "$grubdir/testcase.cfg" + @builddir@/grub-core/grub-emu -m "$device_map" -d "$grubdir" | tr -d "\r" | do_trim +-- +1.8.2.1 + diff --git a/0424-Speed-up-gfxterm-by-slightly-agglomerating-mallocs.patch b/0424-Speed-up-gfxterm-by-slightly-agglomerating-mallocs.patch new file mode 100644 index 0000000..6056113 --- /dev/null +++ b/0424-Speed-up-gfxterm-by-slightly-agglomerating-mallocs.patch @@ -0,0 +1,210 @@ +From b6fba8115cc492d54f185f37080817b05871785f Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 15:07:13 +0200 +Subject: [PATCH 424/471] Speed-up gfxterm by slightly agglomerating + mallocs. + +--- + ChangeLog | 4 ++++ + grub-core/term/gfxterm.c | 61 ++++++++++++++---------------------------------- + include/grub/unicode.h | 24 +++++++++++++++++++ + 3 files changed, 45 insertions(+), 44 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index a13face..963792e 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-04 Vladimir Serbinenko + ++ Speed-up gfxterm by slightly agglomerating mallocs. ++ ++2013-05-04 Vladimir Serbinenko ++ + More video checks. + + 2013-05-04 Vladimir Serbinenko +diff --git a/grub-core/term/gfxterm.c b/grub-core/term/gfxterm.c +index 54636d7..0cb4037 100644 +--- a/grub-core/term/gfxterm.c ++++ b/grub-core/term/gfxterm.c +@@ -49,7 +49,7 @@ struct grub_dirty_region + struct grub_colored_char + { + /* An Unicode codepoint. */ +- struct grub_unicode_glyph *code; ++ struct grub_unicode_glyph code; + + /* Color values. */ + grub_video_color_t fg_color; +@@ -175,14 +175,8 @@ set_term_color (grub_uint8_t term_color) + static void + clear_char (struct grub_colored_char *c) + { +- if (c->code) +- { +- grub_free (c->code->combining); +- grub_free (c->code); +- } +- c->code = grub_unicode_glyph_from_code (' '); +- if (!c->code) +- grub_errno = GRUB_ERR_NONE; ++ grub_free (c->code.combining); ++ grub_unicode_set_glyph_from_code (&c->code, ' '); + c->fg_color = virtual_screen.fg_color; + c->bg_color = virtual_screen.bg_color; + } +@@ -197,11 +191,7 @@ grub_virtual_screen_free (void) + for (i = 0; + i < virtual_screen.columns * virtual_screen.rows; + i++) +- if (virtual_screen.text_buffer[i].code) +- { +- grub_free (virtual_screen.text_buffer[i].code->combining); +- grub_free (virtual_screen.text_buffer[i].code); +- } ++ grub_free (virtual_screen.text_buffer[i].code.combining); + grub_free (virtual_screen.text_buffer); + } + +@@ -277,7 +267,7 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y, + /* Clear out text buffer. */ + for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++) + { +- virtual_screen.text_buffer[i].code = 0; ++ virtual_screen.text_buffer[i].code.combining = 0; + clear_char (&(virtual_screen.text_buffer[i])); + } + +@@ -418,12 +408,9 @@ grub_gfxterm_term_fini (struct grub_term_output *term __attribute__ ((unused))) + + for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++) + { +- if (virtual_screen.text_buffer[i].code) +- { +- grub_free (virtual_screen.text_buffer[i].code->combining); +- grub_free (virtual_screen.text_buffer[i].code); +- } +- virtual_screen.text_buffer[i].code = 0; ++ grub_free (virtual_screen.text_buffer[i].code.combining); ++ virtual_screen.text_buffer[i].code.combining = 0; ++ virtual_screen.text_buffer[i].code.base = 0; + } + + /* Clear error state. */ +@@ -634,11 +621,11 @@ paint_char (unsigned cx, unsigned cy) + p = (virtual_screen.text_buffer + + cx + (cy * virtual_screen.columns)); + +- if (!p->code) ++ if (!p->code.base) + return; + + /* Get glyph for character. */ +- glyph = grub_font_construct_glyph (virtual_screen.font, p->code); ++ glyph = grub_font_construct_glyph (virtual_screen.font, &p->code); + if (!glyph) + { + grub_errno = GRUB_ERR_NONE; +@@ -817,11 +804,7 @@ scroll_up (void) + + /* Clear first line in text buffer. */ + for (i = 0; i < virtual_screen.columns; i++) +- if (virtual_screen.text_buffer[i].code) +- { +- grub_free (virtual_screen.text_buffer[i].code->combining); +- grub_free (virtual_screen.text_buffer[i].code); +- } ++ grub_free (virtual_screen.text_buffer[i].code.combining); + + /* Scroll text buffer with one line to up. */ + grub_memmove (virtual_screen.text_buffer, +@@ -834,10 +817,7 @@ scroll_up (void) + for (i = virtual_screen.columns * (virtual_screen.rows - 1); + i < virtual_screen.columns * virtual_screen.rows; + i++) +- { +- virtual_screen.text_buffer[i].code = 0; +- clear_char (&(virtual_screen.text_buffer[i])); +- } ++ clear_char (&(virtual_screen.text_buffer[i])); + + virtual_screen.total_scroll++; + } +@@ -897,14 +877,9 @@ grub_gfxterm_putchar (struct grub_term_output *term, + p = (virtual_screen.text_buffer + + virtual_screen.cursor_x + + virtual_screen.cursor_y * virtual_screen.columns); +- if (p->code) +- { +- grub_free (p->code->combining); +- grub_free (p->code); +- } +- p->code = grub_unicode_glyph_dup (c); +- if (!p->code) +- grub_errno = GRUB_ERR_NONE; ++ grub_free (p->code.combining); ++ grub_unicode_set_glyph (&p->code, c); ++ grub_errno = GRUB_ERR_NONE; + p->fg_color = virtual_screen.fg_color; + p->bg_color = virtual_screen.bg_color; + +@@ -916,11 +891,9 @@ grub_gfxterm_putchar (struct grub_term_output *term, + for (i = 1; i < char_width && p + i < + virtual_screen.text_buffer + virtual_screen.columns + * virtual_screen.rows; i++) +- if (p[i].code) + { +- grub_free (p[i].code->combining); +- grub_free (p[i].code); +- p[i].code = NULL; ++ grub_free (p[i].code.combining); ++ p[i].code.base = 0; + } + } + +diff --git a/include/grub/unicode.h b/include/grub/unicode.h +index 5a96a19..3d79c4c 100644 +--- a/include/grub/unicode.h ++++ b/include/grub/unicode.h +@@ -274,6 +274,21 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in) + return out; + } + ++static inline void ++grub_unicode_set_glyph (struct grub_unicode_glyph *out, ++ const struct grub_unicode_glyph *in) ++{ ++ grub_memcpy (out, in, sizeof (*in)); ++ if (in->combining) ++ { ++ out->combining = grub_malloc (in->ncomb * sizeof (out->combining[0])); ++ if (!out->combining) ++ return; ++ grub_memcpy (out->combining, in->combining, ++ in->ncomb * sizeof (out->combining[0])); ++ } ++} ++ + static inline struct grub_unicode_glyph * + grub_unicode_glyph_from_code (grub_uint32_t code) + { +@@ -287,6 +302,15 @@ grub_unicode_glyph_from_code (grub_uint32_t code) + return ret; + } + ++static inline void ++grub_unicode_set_glyph_from_code (struct grub_unicode_glyph *glyph, ++ grub_uint32_t code) ++{ ++ grub_memset (glyph, 0, sizeof (*glyph)); ++ ++ glyph->base = code; ++} ++ + grub_uint32_t + grub_unicode_mirror_code (grub_uint32_t in); + grub_uint32_t +-- +1.8.2.1 + diff --git a/0425-Agglomerate-more-mallocs-to-speed-up-gfxterm.patch b/0425-Agglomerate-more-mallocs-to-speed-up-gfxterm.patch new file mode 100644 index 0000000..d340f36 --- /dev/null +++ b/0425-Agglomerate-more-mallocs-to-speed-up-gfxterm.patch @@ -0,0 +1,1168 @@ +From d2d36cebce2ae1c1ded7debadaf509044554c319 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sat, 4 May 2013 22:23:23 +0200 +Subject: [PATCH 425/471] Agglomerate more mallocs to speed-up gfxterm. + +--- + ChangeLog | 4 + + grub-core/font/font.c | 91 +++++++++++------ + grub-core/gfxmenu/font.c | 7 +- + grub-core/gfxmenu/gui_list.c | 1 + + grub-core/gfxmenu/gui_progress_bar.c | 3 + + grub-core/kern/term.c | 1 - + grub-core/normal/charset.c | 193 +++++++++++++++++------------------ + grub-core/normal/menu_entry.c | 2 +- + grub-core/normal/menu_text.c | 8 +- + grub-core/normal/term.c | 18 ++-- + grub-core/term/gfxterm.c | 19 ++-- + grub-core/tests/video_checksum.c | 10 +- + grub-core/video/fb/fbblit.c | 6 -- + include/grub/emu/export.h | 2 + + include/grub/unicode.h | 76 ++++++++++---- + 15 files changed, 254 insertions(+), 187 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 963792e..57bce50 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-04 Vladimir Serbinenko + ++ Agglomerate more mallocs to speed-up gfxterm. ++ ++2013-05-04 Vladimir Serbinenko ++ + Speed-up gfxterm by slightly agglomerating mallocs. + + 2013-05-04 Vladimir Serbinenko +diff --git a/grub-core/font/font.c b/grub-core/font/font.c +index 4758f6c..50b1799 100644 +--- a/grub-core/font/font.c ++++ b/grub-core/font/font.c +@@ -1064,6 +1064,7 @@ grub_font_get_glyph_with_fallback (grub_font_t font, grub_uint32_t code) + return best_glyph; + } + ++#if 0 + static struct grub_font_glyph * + grub_font_dup_glyph (struct grub_font_glyph *glyph) + { +@@ -1075,6 +1076,7 @@ grub_font_dup_glyph (struct grub_font_glyph *glyph) + + (glyph->width * glyph->height + 7) / 8); + return ret; + } ++#endif + + /* FIXME: suboptimal. */ + static void +@@ -1202,6 +1204,7 @@ blit_comb (const struct grub_unicode_glyph *glyph_id, + signed above_leftx, above_lefty; + signed below_rightx, below_righty; + signed min_devwidth = 0; ++ const struct grub_unicode_combining *comb; + + if (glyph) + glyph->device_width = main_glyph->device_width; +@@ -1222,6 +1225,8 @@ blit_comb (const struct grub_unicode_glyph *glyph_id, + below_rightx = ctx.bounds.x + ctx.bounds.width; + below_righty = ctx.bounds.y; + ++ comb = grub_unicode_get_comb (glyph_id); ++ + for (i = 0; i < glyph_id->ncomb; i++) + { + grub_int16_t space = 0; +@@ -1232,10 +1237,10 @@ blit_comb (const struct grub_unicode_glyph *glyph_id, + continue; + targetx = (ctx.bounds.width - combining_glyphs[i]->width) / 2 + ctx.bounds.x; + /* CGJ is to avoid diacritics reordering. */ +- if (glyph_id->combining[i].code ++ if (comb[i].code + == GRUB_UNICODE_COMBINING_GRAPHEME_JOINER) + continue; +- switch (glyph_id->combining[i].type) ++ switch (comb[i].type) + { + case GRUB_UNICODE_COMB_OVERLAY: + do_blit (combining_glyphs[i], +@@ -1361,7 +1366,7 @@ blit_comb (const struct grub_unicode_glyph *glyph_id, + break; + + case GRUB_UNICODE_COMB_MN: +- switch (glyph_id->combining[i].code) ++ switch (comb[i].code) + { + case GRUB_UNICODE_THAANA_ABAFILI: + case GRUB_UNICODE_THAANA_AABAAFILI: +@@ -1410,17 +1415,14 @@ static struct grub_font_glyph * + grub_font_construct_dry_run (grub_font_t hinted_font, + const struct grub_unicode_glyph *glyph_id, + struct grub_video_signed_rect *bounds, +- struct grub_font_glyph ***combining_glyphs_out, ++ struct grub_font_glyph **combining_glyphs, + int *device_width) + { + struct grub_font_glyph *main_glyph = NULL; +- struct grub_font_glyph **combining_glyphs; + grub_uint32_t desired_attributes = 0; + unsigned i; + grub_uint32_t base = glyph_id->base; +- +- if (combining_glyphs_out) +- *combining_glyphs_out = NULL; ++ const struct grub_unicode_combining *comb; + + if (glyph_id->attributes & GRUB_UNICODE_GLYPH_ATTRIBUTE_RIGHT_JOINED) + desired_attributes |= GRUB_FONT_CODE_RIGHT_JOINED; +@@ -1428,11 +1430,12 @@ grub_font_construct_dry_run (grub_font_t hinted_font, + if (glyph_id->attributes & GRUB_UNICODE_GLYPH_ATTRIBUTE_LEFT_JOINED) + desired_attributes |= GRUB_FONT_CODE_LEFT_JOINED; + ++ comb = grub_unicode_get_comb (glyph_id); + + if (base == 'i' || base == 'j') + { + for (i = 0; i < glyph_id->ncomb; i++) +- if (glyph_id->combining[i].type == GRUB_UNICODE_STACK_ABOVE) ++ if (comb[i].type == GRUB_UNICODE_STACK_ABOVE) + break; + if (i < glyph_id->ncomb && base == 'i') + base = GRUB_UNICODE_DOTLESS_LOWERCASE_I; +@@ -1461,8 +1464,6 @@ grub_font_construct_dry_run (grub_font_t hinted_font, + if (!glyph_id->ncomb && !glyph_id->attributes) + return main_glyph; + +- combining_glyphs = grub_malloc (sizeof (combining_glyphs[0]) +- * glyph_id->ncomb); + if (glyph_id->ncomb && !combining_glyphs) + { + grub_errno = GRUB_ERR_NONE; +@@ -1472,18 +1473,33 @@ grub_font_construct_dry_run (grub_font_t hinted_font, + for (i = 0; i < glyph_id->ncomb; i++) + combining_glyphs[i] + = grub_font_get_glyph_with_fallback (main_glyph->font, +- glyph_id->combining[i].code); ++ comb[i].code); + + blit_comb (glyph_id, NULL, bounds, main_glyph, combining_glyphs, + device_width); +- if (combining_glyphs_out) +- *combining_glyphs_out = combining_glyphs; +- else +- grub_free (combining_glyphs); + + return main_glyph; + } + ++static struct grub_font_glyph **render_combining_glyphs = 0; ++static grub_size_t render_max_comb_glyphs = 0; ++ ++static void ++ensure_comb_space (const struct grub_unicode_glyph *glyph_id) ++{ ++ if (glyph_id->ncomb <= render_max_comb_glyphs) ++ return; ++ ++ render_max_comb_glyphs = 2 * glyph_id->ncomb; ++ if (render_max_comb_glyphs < 8) ++ render_max_comb_glyphs = 8; ++ grub_free (render_combining_glyphs); ++ render_combining_glyphs = grub_malloc (render_max_comb_glyphs ++ * sizeof (render_combining_glyphs[0])); ++ if (!render_combining_glyphs) ++ grub_errno = 0; ++} ++ + int + grub_font_get_constructed_device_width (grub_font_t hinted_font, + const struct grub_unicode_glyph +@@ -1491,8 +1507,11 @@ grub_font_get_constructed_device_width (grub_font_t hinted_font, + { + int ret; + struct grub_font_glyph *main_glyph; ++ ++ ensure_comb_space (glyph_id); ++ + main_glyph = grub_font_construct_dry_run (hinted_font, glyph_id, NULL, +- NULL, &ret); ++ render_combining_glyphs, &ret); + if (!main_glyph) + return unknown_glyph->device_width; + return ret; +@@ -1504,26 +1523,42 @@ grub_font_construct_glyph (grub_font_t hinted_font, + { + struct grub_font_glyph *main_glyph; + struct grub_video_signed_rect bounds; +- struct grub_font_glyph *glyph; +- struct grub_font_glyph **combining_glyphs; ++ static struct grub_font_glyph *glyph = 0; ++ static grub_size_t max_glyph_size = 0; ++ ++ ensure_comb_space (glyph_id); + + main_glyph = grub_font_construct_dry_run (hinted_font, glyph_id, +- &bounds, &combining_glyphs, NULL); ++ &bounds, render_combining_glyphs, ++ NULL); + + if (!main_glyph) +- return grub_font_dup_glyph (unknown_glyph); ++ return unknown_glyph; + +- if (!combining_glyphs) +- return grub_font_dup_glyph (main_glyph); ++ if (!render_combining_glyphs && glyph_id->ncomb) ++ return main_glyph; ++ ++ if (!glyph_id->ncomb && !glyph_id->attributes) ++ return main_glyph; + +- glyph = +- grub_zalloc (sizeof (*glyph) + (bounds.width * bounds.height + 7) / 8); ++ if (max_glyph_size < sizeof (*glyph) + (bounds.width * bounds.height + GRUB_CHAR_BIT - 1) / GRUB_CHAR_BIT) ++ { ++ grub_free (glyph); ++ max_glyph_size = (sizeof (*glyph) + (bounds.width * bounds.height + GRUB_CHAR_BIT - 1) / GRUB_CHAR_BIT) * 2; ++ if (max_glyph_size < 8) ++ max_glyph_size = 8; ++ glyph = grub_malloc (max_glyph_size); ++ } + if (!glyph) + { + grub_errno = GRUB_ERR_NONE; +- return grub_font_dup_glyph (main_glyph); ++ return main_glyph; + } + ++ grub_memset (glyph, 0, sizeof (*glyph) ++ + (bounds.width * bounds.height ++ + GRUB_CHAR_BIT - 1) / GRUB_CHAR_BIT); ++ + glyph->font = main_glyph->font; + glyph->width = bounds.width; + glyph->height = bounds.height; +@@ -1542,9 +1577,7 @@ grub_font_construct_glyph (grub_font_t hinted_font, + (glyph->height + glyph->offset_y) + - (main_glyph->height + main_glyph->offset_y)); + +- blit_comb (glyph_id, glyph, NULL, main_glyph, combining_glyphs, NULL); +- +- grub_free (combining_glyphs); ++ blit_comb (glyph_id, glyph, NULL, main_glyph, render_combining_glyphs, NULL); + + return glyph; + } +diff --git a/grub-core/gfxmenu/font.c b/grub-core/gfxmenu/font.c +index 9c6e2d4..64d5267 100644 +--- a/grub-core/gfxmenu/font.c ++++ b/grub-core/gfxmenu/font.c +@@ -42,7 +42,6 @@ grub_font_draw_string (const char *str, grub_font_t font, + int left_x, int baseline_y) + { + int x; +- struct grub_font_glyph *glyph; + grub_uint32_t *logical; + grub_ssize_t logical_len, visual_len; + struct grub_unicode_glyph *visual, *ptr; +@@ -60,18 +59,18 @@ grub_font_draw_string (const char *str, grub_font_t font, + for (ptr = visual, x = left_x; ptr < visual + visual_len; ptr++) + { + grub_err_t err; ++ struct grub_font_glyph *glyph; + glyph = grub_font_construct_glyph (font, ptr); + if (!glyph) + return grub_errno; + err = grub_font_draw_glyph (glyph, color, x, baseline_y); + x += glyph->device_width; +- grub_free (glyph); + if (err) + return err; + } + + for (ptr = visual; ptr < visual + visual_len; ptr++) +- grub_free (ptr->combining); ++ grub_unicode_destroy_glyph (ptr); + grub_free (visual); + + return GRUB_ERR_NONE; +@@ -104,7 +103,7 @@ grub_font_get_string_width (grub_font_t font, const char *str) + &glyph); + width += grub_font_get_constructed_device_width (font, &glyph); + +- grub_free (glyph.combining); ++ grub_unicode_destroy_glyph (&glyph); + } + grub_free (logical); + +diff --git a/grub-core/gfxmenu/gui_list.c b/grub-core/gfxmenu/gui_list.c +index 1a2a16d..3d227ee 100644 +--- a/grub-core/gfxmenu/gui_list.c ++++ b/grub-core/gfxmenu/gui_list.c +@@ -87,6 +87,7 @@ list_destroy (void *vself) + self->scrollbar_thumb->destroy (self->scrollbar_thumb); + if (self->scrollbar_frame) + self->scrollbar_frame->destroy (self->scrollbar_frame); ++ grub_free (self->scrollbar_thumb_pattern); + grub_free (self); + } + +diff --git a/grub-core/gfxmenu/gui_progress_bar.c b/grub-core/gfxmenu/gui_progress_bar.c +index cb70930..b29efc0 100644 +--- a/grub-core/gfxmenu/gui_progress_bar.c ++++ b/grub-core/gfxmenu/gui_progress_bar.c +@@ -59,6 +59,9 @@ static void + progress_bar_destroy (void *vself) + { + grub_gui_progress_bar_t self = vself; ++ grub_free (self->theme_dir); ++ grub_free (self->template); ++ grub_free (self->id); + grub_gfxmenu_timeout_unregister ((grub_gui_component_t) self); + grub_free (self); + } +diff --git a/grub-core/kern/term.c b/grub-core/kern/term.c +index 66c5971..6eca68b 100644 +--- a/grub-core/kern/term.c ++++ b/grub-core/kern/term.c +@@ -46,7 +46,6 @@ grub_putcode_dumb (grub_uint32_t code, + .variant = 0, + .attributes = 0, + .ncomb = 0, +- .combining = 0, + .estimated_width = 1 + }; + +diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c +index ab3101b..f4268ec 100644 +--- a/grub-core/normal/charset.c ++++ b/grub-core/normal/charset.c +@@ -435,7 +435,6 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, + out->attributes = 0; + out->ncomb = 0; + out->estimated_width = 1; +- out->combining = NULL; + return 1; + } + +@@ -473,25 +472,42 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, + || comb_type == GRUB_UNICODE_COMB_ME + || comb_type == GRUB_UNICODE_COMB_MN) + last_comb_pointer = out->ncomb; +- n = grub_realloc (out->combining, +- sizeof (n[0]) * (out->ncomb + 1)); +- if (!n) ++ ++ if (out->ncomb + 1 <= (int) ARRAY_SIZE (out->combining_inline)) ++ n = out->combining_inline; ++ else if (out->ncomb > (int) ARRAY_SIZE (out->combining_inline)) + { +- grub_errno = GRUB_ERR_NONE; +- continue; ++ n = grub_realloc (out->combining_ptr, ++ sizeof (n[0]) * (out->ncomb + 1)); ++ if (!n) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ continue; ++ } ++ out->combining_ptr = n; ++ } ++ else ++ { ++ n = grub_malloc (sizeof (n[0]) * (out->ncomb + 1)); ++ if (!n) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ continue; ++ } ++ grub_memcpy (n, out->combining_inline, ++ sizeof (out->combining_inline)); ++ out->combining_ptr = n; + } +- out->combining = n; + + for (j = last_comb_pointer; j < out->ncomb; j++) +- if (is_type_after (out->combining[j].type, comb_type)) ++ if (is_type_after (n[j].type, comb_type)) + break; +- grub_memmove (out->combining + j + 1, +- out->combining + j, ++ grub_memmove (n + j + 1, ++ n + j, + (out->ncomb - j) +- * sizeof (out->combining[0])); +- out->combining = n; +- out->combining[j].code = *ptr; +- out->combining[j].type = comb_type; ++ * sizeof (n[0])); ++ n[j].code = *ptr; ++ n[j].type = comb_type; + out->ncomb++; + continue; + } +@@ -503,7 +519,6 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, + out->attributes = 0; + out->ncomb = 0; + out->estimated_width = 1; +- out->combining = NULL; + } + return ptr - in; + } +@@ -511,7 +526,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, + static grub_ssize_t + bidi_line_wrap (struct grub_unicode_glyph *visual_out, + struct grub_unicode_glyph *visual, +- grub_size_t visual_len, unsigned *levels, ++ grub_size_t visual_len, + grub_ssize_t (*getcharwidth) (const struct grub_unicode_glyph *visual, void *getcharwidth_arg), + void *getcharwidth_arg, + grub_size_t maxwidth, grub_size_t startwidth, +@@ -531,7 +546,7 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out, + void revert (unsigned start, unsigned end) + { + struct grub_unicode_glyph t; +- unsigned i, tl; ++ unsigned i; + int a, b; + if (pos) + { +@@ -549,9 +564,6 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out, + pos[visual[start + i].orig_pos].x = a + b - pos[visual[start + i].orig_pos].x; + pos[visual[end - i].orig_pos].x = a + b - pos[visual[end - i].orig_pos].x; + } +- tl = levels[start + i]; +- levels[start + i] = levels[end - i]; +- levels[end - i] = tl; + } + } + +@@ -611,10 +623,10 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out, + unsigned i; + for (i = line_start; i < k; i++) + { +- if (levels[i] > max_level) +- max_level = levels[i]; +- if (levels[i] < min_odd_level && (levels[i] & 1)) +- min_odd_level = levels[i]; ++ if (visual[i].bidi_level > max_level) ++ max_level = visual[i].bidi_level; ++ if (visual[i].bidi_level < min_odd_level && (visual[i].bidi_level & 1)) ++ min_odd_level = visual[i].bidi_level; + } + } + +@@ -627,9 +639,11 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out, + unsigned i; + for (i = line_start; i < k; i++) + { +- if (i != line_start && levels[i] >= j && levels[i-1] < j) ++ if (i != line_start && visual[i].bidi_level >= j ++ && visual[i-1].bidi_level < j) + in = i; +- if (levels[i] >= j && (i + 1 == k || levels[i+1] < j)) ++ if (visual[i].bidi_level >= j && (i + 1 == k ++ || visual[i+1].bidi_level < j)) + revert (in, i); + } + } +@@ -639,10 +653,10 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out, + unsigned i; + for (i = line_start; i < k; i++) + { +- if (is_mirrored (visual[i].base) && levels[i]) ++ if (is_mirrored (visual[i].base) && visual[i].bidi_level) + visual[i].attributes |= GRUB_UNICODE_GLYPH_ATTRIBUTE_MIRROR; + if ((visual[i].attributes & GRUB_UNICODE_GLYPH_ATTRIBUTES_JOIN) +- && levels[i]) ++ && visual[i].bidi_level) + { + int left, right; + left = visual[i].attributes +@@ -763,8 +777,6 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + { + enum grub_bidi_type type = GRUB_BIDI_TYPE_L; + enum override_status {OVERRIDE_NEUTRAL = 0, OVERRIDE_R, OVERRIDE_L}; +- unsigned *levels; +- enum grub_bidi_type *resolved_types; + unsigned base_level; + enum override_status cur_override; + unsigned i; +@@ -808,24 +820,9 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + cur_override = stack_override[stack_depth]; + } + +- levels = grub_malloc (sizeof (levels[0]) * logical_len); +- if (!levels) +- return -1; +- +- resolved_types = grub_malloc (sizeof (resolved_types[0]) * logical_len); +- if (!resolved_types) +- { +- grub_free (levels); +- return -1; +- } +- + visual = grub_malloc (sizeof (visual[0]) * logical_len); + if (!visual) +- { +- grub_free (resolved_types); +- grub_free (levels); +- return -1; +- } ++ return -1; + + for (i = 0; i < logical_len; i++) + { +@@ -930,13 +927,13 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + join_state = JOIN_DEFAULT; + zwj_propagate_to_previous = 1; + +- levels[visual_len] = cur_level; ++ visual[visual_len].bidi_level = cur_level; + if (cur_override != OVERRIDE_NEUTRAL) +- resolved_types[visual_len] = ++ visual[visual_len].bidi_type = + (cur_override == OVERRIDE_L) ? GRUB_BIDI_TYPE_L + : GRUB_BIDI_TYPE_R; + else +- resolved_types[visual_len] = type; ++ visual[visual_len].bidi_type = type; + visual_len++; + } + } +@@ -951,16 +948,16 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + unsigned prev_level, next_level, cur_run_level; + unsigned last_type, last_strong_type; + for (run_end = run_start; run_end < visual_len && +- levels[run_end] == levels[run_start]; run_end++); ++ visual[run_end].bidi_level == visual[run_start].bidi_level; run_end++); + if (run_start == 0) + prev_level = base_level; + else +- prev_level = levels[run_start - 1]; ++ prev_level = visual[run_start - 1].bidi_level; + if (run_end == visual_len) + next_level = base_level; + else +- next_level = levels[run_end]; +- cur_run_level = levels[run_start]; ++ next_level = visual[run_end].bidi_level; ++ cur_run_level = visual[run_start].bidi_level; + if (prev_level & 1) + last_type = GRUB_BIDI_TYPE_R; + else +@@ -968,48 +965,48 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + last_strong_type = last_type; + for (i = run_start; i < run_end; i++) + { +- switch (resolved_types[i]) ++ switch (visual[i].bidi_type) + { + case GRUB_BIDI_TYPE_NSM: +- resolved_types[i] = last_type; ++ visual[i].bidi_type = last_type; + break; + case GRUB_BIDI_TYPE_EN: + if (last_strong_type == GRUB_BIDI_TYPE_AL) +- resolved_types[i] = GRUB_BIDI_TYPE_AN; ++ visual[i].bidi_type = GRUB_BIDI_TYPE_AN; + break; + case GRUB_BIDI_TYPE_L: + case GRUB_BIDI_TYPE_R: +- last_strong_type = resolved_types[i]; ++ last_strong_type = visual[i].bidi_type; + break; + case GRUB_BIDI_TYPE_ES: + if (last_type == GRUB_BIDI_TYPE_EN + && i + 1 < run_end +- && resolved_types[i + 1] == GRUB_BIDI_TYPE_EN) +- resolved_types[i] = GRUB_BIDI_TYPE_EN; ++ && visual[i + 1].bidi_type == GRUB_BIDI_TYPE_EN) ++ visual[i].bidi_type = GRUB_BIDI_TYPE_EN; + else +- resolved_types[i] = GRUB_BIDI_TYPE_ON; ++ visual[i].bidi_type = GRUB_BIDI_TYPE_ON; + break; + case GRUB_BIDI_TYPE_ET: + { + unsigned j; + if (last_type == GRUB_BIDI_TYPE_EN) + { +- resolved_types[i] = GRUB_BIDI_TYPE_EN; ++ visual[i].bidi_type = GRUB_BIDI_TYPE_EN; + break; + } + for (j = i; j < run_end +- && resolved_types[j] == GRUB_BIDI_TYPE_ET; j++); +- if (j != run_end && resolved_types[j] == GRUB_BIDI_TYPE_EN) ++ && visual[j].bidi_type == GRUB_BIDI_TYPE_ET; j++); ++ if (j != run_end && visual[j].bidi_type == GRUB_BIDI_TYPE_EN) + { + for (; i < run_end +- && resolved_types[i] == GRUB_BIDI_TYPE_ET; i++) +- resolved_types[i] = GRUB_BIDI_TYPE_EN; ++ && visual[i].bidi_type == GRUB_BIDI_TYPE_ET; i++) ++ visual[i].bidi_type = GRUB_BIDI_TYPE_EN; + i--; + break; + } + for (; i < run_end +- && resolved_types[i] == GRUB_BIDI_TYPE_ET; i++) +- resolved_types[i] = GRUB_BIDI_TYPE_ON; ++ && visual[i].bidi_type == GRUB_BIDI_TYPE_ET; i++) ++ visual[i].bidi_type = GRUB_BIDI_TYPE_ON; + i--; + break; + } +@@ -1017,33 +1014,33 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + case GRUB_BIDI_TYPE_CS: + if (last_type == GRUB_BIDI_TYPE_EN + && i + 1 < run_end +- && resolved_types[i + 1] == GRUB_BIDI_TYPE_EN) ++ && visual[i + 1].bidi_type == GRUB_BIDI_TYPE_EN) + { +- resolved_types[i] = GRUB_BIDI_TYPE_EN; ++ visual[i].bidi_type = GRUB_BIDI_TYPE_EN; + break; + } + if (last_type == GRUB_BIDI_TYPE_AN + && i + 1 < run_end +- && (resolved_types[i + 1] == GRUB_BIDI_TYPE_AN +- || (resolved_types[i + 1] == GRUB_BIDI_TYPE_EN ++ && (visual[i + 1].bidi_type == GRUB_BIDI_TYPE_AN ++ || (visual[i + 1].bidi_type == GRUB_BIDI_TYPE_EN + && last_strong_type == GRUB_BIDI_TYPE_AL))) + { +- resolved_types[i] = GRUB_BIDI_TYPE_EN; ++ visual[i].bidi_type = GRUB_BIDI_TYPE_EN; + break; + } +- resolved_types[i] = GRUB_BIDI_TYPE_ON; ++ visual[i].bidi_type = GRUB_BIDI_TYPE_ON; + break; + case GRUB_BIDI_TYPE_AL: +- last_strong_type = resolved_types[i]; +- resolved_types[i] = GRUB_BIDI_TYPE_R; ++ last_strong_type = visual[i].bidi_type; ++ visual[i].bidi_type = GRUB_BIDI_TYPE_R; + break; + default: /* Make GCC happy. */ + break; + } +- last_type = resolved_types[i]; +- if (resolved_types[i] == GRUB_BIDI_TYPE_EN ++ last_type = visual[i].bidi_type; ++ if (visual[i].bidi_type == GRUB_BIDI_TYPE_EN + && last_strong_type == GRUB_BIDI_TYPE_L) +- resolved_types[i] = GRUB_BIDI_TYPE_L; ++ visual[i].bidi_type = GRUB_BIDI_TYPE_L; + } + if (prev_level & 1) + last_type = GRUB_BIDI_TYPE_R; +@@ -1054,13 +1051,13 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + unsigned j; + unsigned next_type; + for (j = i; j < run_end && +- (resolved_types[j] == GRUB_BIDI_TYPE_B +- || resolved_types[j] == GRUB_BIDI_TYPE_S +- || resolved_types[j] == GRUB_BIDI_TYPE_WS +- || resolved_types[j] == GRUB_BIDI_TYPE_ON); j++); ++ (visual[j].bidi_type == GRUB_BIDI_TYPE_B ++ || visual[j].bidi_type == GRUB_BIDI_TYPE_S ++ || visual[j].bidi_type == GRUB_BIDI_TYPE_WS ++ || visual[j].bidi_type == GRUB_BIDI_TYPE_ON); j++); + if (j == i) + { +- if (resolved_types[i] == GRUB_BIDI_TYPE_L) ++ if (visual[i].bidi_type == GRUB_BIDI_TYPE_L) + last_type = GRUB_BIDI_TYPE_L; + else + last_type = GRUB_BIDI_TYPE_R; +@@ -1071,39 +1068,39 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + next_type = (next_level & 1) ? GRUB_BIDI_TYPE_R : GRUB_BIDI_TYPE_L; + else + { +- if (resolved_types[j] == GRUB_BIDI_TYPE_L) ++ if (visual[j].bidi_type == GRUB_BIDI_TYPE_L) + next_type = GRUB_BIDI_TYPE_L; + else + next_type = GRUB_BIDI_TYPE_R; + } + if (next_type == last_type) + for (; i < j; i++) +- resolved_types[i] = last_type; ++ visual[i].bidi_type = last_type; + else + for (; i < j; i++) +- resolved_types[i] = (cur_run_level & 1) ? GRUB_BIDI_TYPE_R ++ visual[i].bidi_type = (cur_run_level & 1) ? GRUB_BIDI_TYPE_R + : GRUB_BIDI_TYPE_L; + } + } + + for (i = 0; i < visual_len; i++) + { +- if (!(levels[i] & 1) && resolved_types[i] == GRUB_BIDI_TYPE_R) ++ if (!(visual[i].bidi_level & 1) && visual[i].bidi_type == GRUB_BIDI_TYPE_R) + { +- levels[i]++; ++ visual[i].bidi_level++; + continue; + } +- if (!(levels[i] & 1) && (resolved_types[i] == GRUB_BIDI_TYPE_AN +- || resolved_types[i] == GRUB_BIDI_TYPE_EN)) ++ if (!(visual[i].bidi_level & 1) && (visual[i].bidi_type == GRUB_BIDI_TYPE_AN ++ || visual[i].bidi_type == GRUB_BIDI_TYPE_EN)) + { +- levels[i] += 2; ++ visual[i].bidi_level += 2; + continue; + } +- if ((levels[i] & 1) && (resolved_types[i] == GRUB_BIDI_TYPE_L +- || resolved_types[i] == GRUB_BIDI_TYPE_AN +- || resolved_types[i] == GRUB_BIDI_TYPE_EN)) ++ if ((visual[i].bidi_level & 1) && (visual[i].bidi_type == GRUB_BIDI_TYPE_L ++ || visual[i].bidi_type == GRUB_BIDI_TYPE_AN ++ || visual[i].bidi_type == GRUB_BIDI_TYPE_EN)) + { +- levels[i]++; ++ visual[i].bidi_level++; + continue; + } + } +@@ -1111,16 +1108,14 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, + else + { + for (i = 0; i < visual_len; i++) +- levels[i] = 0; ++ visual[i].bidi_level = 0; + } +- grub_free (resolved_types); + + { + grub_ssize_t ret; +- ret = bidi_line_wrap (visual_out, visual, visual_len, levels, ++ ret = bidi_line_wrap (visual_out, visual, visual_len, + getcharwidth, getcharwidth_arg, maxwidth, startwidth, contchar, + pos, primitive_wrap, log_end); +- grub_free (levels); + grub_free (visual); + return ret; + } +diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c +index 3cc0c01..fae258a 100644 +--- a/grub-core/normal/menu_entry.c ++++ b/grub-core/normal/menu_entry.c +@@ -624,7 +624,7 @@ backward_char (struct screen *screen, int update) + linep->buf + screen->column) + - linep->buf; + +- grub_free (glyph.combining); ++ grub_unicode_destroy_glyph (&glyph); + } + else if (screen->line > 0) + { +diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c +index d7e5641..36f8e73 100644 +--- a/grub-core/normal/menu_text.c ++++ b/grub-core/normal/menu_text.c +@@ -56,10 +56,10 @@ grub_getstringwidth (grub_uint32_t * str, const grub_uint32_t * last_position, + while (str < last_position) + { + struct grub_unicode_glyph glyph; +- glyph.combining = 0; ++ glyph.ncomb = 0; + str += grub_unicode_aglomerate_comb (str, last_position - str, &glyph); + width += grub_term_getcharwidth (term, &glyph); +- grub_free (glyph.combining); ++ grub_unicode_destroy_glyph (&glyph); + } + return width; + } +@@ -259,7 +259,8 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, + len - i, &glyph); + + width = grub_term_getcharwidth (term, &glyph); +- grub_free (glyph.combining); ++ ++ grub_unicode_destroy_glyph (&glyph); + + if (x + width <= (int) (GRUB_TERM_LEFT_BORDER_X + + grub_term_border_width (term) +@@ -284,7 +285,6 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, + .variant = 0, + .attributes = 0, + .ncomb = 0, +- .combining = 0, + .estimated_width = 1 + }; + x += grub_term_getcharwidth (term, &pseudo_glyph); +diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c +index 820156f..83b3bce 100644 +--- a/grub-core/normal/term.c ++++ b/grub-core/normal/term.c +@@ -29,7 +29,7 @@ + struct term_state + { + struct term_state *next; +- const struct grub_unicode_glyph *backlog_glyphs; ++ struct grub_unicode_glyph *backlog_glyphs; + const grub_uint32_t *backlog_ucs4; + int backlog_fixed_tab; + grub_size_t backlog_len; +@@ -228,7 +228,6 @@ grub_puts_terminal (const char *str, struct grub_term_output *term) + .variant = 0, + .attributes = 0, + .ncomb = 0, +- .combining = 0, + .estimated_width = 1, + .base = *str + }; +@@ -422,7 +421,6 @@ putglyph (const struct grub_unicode_glyph *c, struct grub_term_output *term, + .variant = 0, + .attributes = 0, + .ncomb = 0, +- .combining = 0, + .estimated_width = 1 + }; + +@@ -475,7 +473,7 @@ putglyph (const struct grub_unicode_glyph *c, struct grub_term_output *term, + } + } + else +- code = c->combining[i].code; ++ code = grub_unicode_get_comb (c) [i].code; + + grub_ucs4_to_utf8 (&code, 1, u8, sizeof (u8)); + +@@ -506,7 +504,6 @@ putcode_real (grub_uint32_t code, struct grub_term_output *term, int fixed_tab) + .variant = 0, + .attributes = 0, + .ncomb = 0, +- .combining = 0, + .estimated_width = 1 + }; + +@@ -534,7 +531,6 @@ get_maxwidth (struct grub_term_output *term, + .variant = 0, + .attributes = 0, + .ncomb = 0, +- .combining = 0 + }; + return (grub_term_width (term) + - grub_term_getcharwidth (term, &space_glyph) +@@ -615,7 +611,6 @@ print_ucs4_terminal (const grub_uint32_t * str, + .variant = 0, + .attributes = 0, + .ncomb = 0, +- .combining = 0 + }; + c.base = *ptr; + if (pos) +@@ -779,14 +774,14 @@ find_term_state (struct grub_term_output *term) + } + + static int +-put_glyphs_terminal (const struct grub_unicode_glyph *visual, ++put_glyphs_terminal (struct grub_unicode_glyph *visual, + grub_ssize_t visual_len, + int margin_left, int margin_right, + struct grub_term_output *term, + struct term_state *state, int fixed_tab, + grub_uint32_t contchar) + { +- const struct grub_unicode_glyph *visual_ptr; ++ struct grub_unicode_glyph *visual_ptr; + int since_last_nl = 1; + for (visual_ptr = visual; visual_ptr < visual + visual_len; visual_ptr++) + { +@@ -813,7 +808,7 @@ put_glyphs_terminal (const struct grub_unicode_glyph *visual, + grub_term_gotoxy (term, margin_left, + grub_term_getxy (term) & 0xff); + } +- grub_free (visual_ptr->combining); ++ grub_unicode_destroy_glyph (visual_ptr); + } + if (contchar && since_last_nl) + fill_margin (term, margin_right); +@@ -953,7 +948,7 @@ print_ucs4_real (const grub_uint32_t * str, + if (visual_len_show && visual[visual_len_show - 1].base != '\n') + ret++; + for (vptr = visual; vptr < visual + visual_len; vptr++) +- grub_free (vptr->combining); ++ grub_unicode_destroy_glyph (vptr); + grub_free (visual); + } + else +@@ -1030,7 +1025,6 @@ grub_xnputs (const char *str, grub_size_t msg_len) + .variant = 0, + .attributes = 0, + .ncomb = 0, +- .combining = 0, + .estimated_width = 1, + .base = *str + }; +diff --git a/grub-core/term/gfxterm.c b/grub-core/term/gfxterm.c +index 0cb4037..0e5bcd9 100644 +--- a/grub-core/term/gfxterm.c ++++ b/grub-core/term/gfxterm.c +@@ -175,7 +175,7 @@ set_term_color (grub_uint8_t term_color) + static void + clear_char (struct grub_colored_char *c) + { +- grub_free (c->code.combining); ++ grub_unicode_destroy_glyph (&c->code); + grub_unicode_set_glyph_from_code (&c->code, ' '); + c->fg_color = virtual_screen.fg_color; + c->bg_color = virtual_screen.bg_color; +@@ -191,7 +191,7 @@ grub_virtual_screen_free (void) + for (i = 0; + i < virtual_screen.columns * virtual_screen.rows; + i++) +- grub_free (virtual_screen.text_buffer[i].code.combining); ++ grub_unicode_destroy_glyph (&virtual_screen.text_buffer[i].code); + grub_free (virtual_screen.text_buffer); + } + +@@ -267,7 +267,7 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y, + /* Clear out text buffer. */ + for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++) + { +- virtual_screen.text_buffer[i].code.combining = 0; ++ virtual_screen.text_buffer[i].code.ncomb = 0; + clear_char (&(virtual_screen.text_buffer[i])); + } + +@@ -408,8 +408,8 @@ grub_gfxterm_term_fini (struct grub_term_output *term __attribute__ ((unused))) + + for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++) + { +- grub_free (virtual_screen.text_buffer[i].code.combining); +- virtual_screen.text_buffer[i].code.combining = 0; ++ grub_unicode_destroy_glyph (&virtual_screen.text_buffer[i].code); ++ virtual_screen.text_buffer[i].code.ncomb = 0; + virtual_screen.text_buffer[i].code.base = 0; + } + +@@ -651,7 +651,6 @@ paint_char (unsigned cx, unsigned cy) + /* Mark character to be drawn. */ + dirty_region_add (virtual_screen.offset_x + x, virtual_screen.offset_y + y, + width, height); +- grub_free (glyph); + } + + static inline void +@@ -804,8 +803,8 @@ scroll_up (void) + + /* Clear first line in text buffer. */ + for (i = 0; i < virtual_screen.columns; i++) +- grub_free (virtual_screen.text_buffer[i].code.combining); +- ++ grub_unicode_destroy_glyph (&virtual_screen.text_buffer[i].code); ++ + /* Scroll text buffer with one line to up. */ + grub_memmove (virtual_screen.text_buffer, + virtual_screen.text_buffer + virtual_screen.columns, +@@ -877,7 +876,7 @@ grub_gfxterm_putchar (struct grub_term_output *term, + p = (virtual_screen.text_buffer + + virtual_screen.cursor_x + + virtual_screen.cursor_y * virtual_screen.columns); +- grub_free (p->code.combining); ++ grub_unicode_destroy_glyph (&p->code); + grub_unicode_set_glyph (&p->code, c); + grub_errno = GRUB_ERR_NONE; + p->fg_color = virtual_screen.fg_color; +@@ -892,7 +891,7 @@ grub_gfxterm_putchar (struct grub_term_output *term, + virtual_screen.text_buffer + virtual_screen.columns + * virtual_screen.rows; i++) + { +- grub_free (p[i].code.combining); ++ grub_unicode_destroy_glyph (&p[i].code); + p[i].code.base = 0; + } + } +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +index 68c61ff..ec9d33a 100644 +--- a/grub-core/tests/video_checksum.c ++++ b/grub-core/tests/video_checksum.c +@@ -478,6 +478,11 @@ int genfd = -1; + + #include + ++#if defined (GRUB_MACHINE_EMU) && defined (COLLECT_TIME_STATISTICS) ++#include ++#include ++#endif ++ + static void + write_time (void) + { +@@ -486,9 +491,12 @@ write_time (void) + static grub_uint64_t prev; + grub_uint64_t cur; + static int tmrfd = -1; ++ struct tms tm; + if (tmrfd < 0) + tmrfd = open ("time.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); +- cur = grub_get_time_ms (); ++ ++ times (&tm); ++ cur = (tm.tms_utime * 1000ULL) / sysconf(_SC_CLK_TCK); + grub_snprintf (buf, sizeof (buf), "%s_%dx%dx%s:%d: %" PRIuGRUB_UINT64_T " ms\n", + basename, + capt_mode_info.width, +diff --git a/grub-core/video/fb/fbblit.c b/grub-core/video/fb/fbblit.c +index c206ac8..789507e 100644 +--- a/grub-core/video/fb/fbblit.c ++++ b/grub-core/video/fb/fbblit.c +@@ -1085,15 +1085,9 @@ grub_video_fbblit_replace_index_RGBX8888 (struct grub_video_fbblit_info *dst, + { + color = *srcptr++; + +-#ifdef GRUB_CPU_WORDS_BIGENDIAN +- sb = (color >> 0) & 0xFF; +- sg = (color >> 8) & 0xFF; +- sr = (color >> 16) & 0xFF; +-#else + sr = (color >> 0) & 0xFF; + sg = (color >> 8) & 0xFF; + sb = (color >> 16) & 0xFF; +-#endif + + color = grub_video_fb_map_rgb(sr, sg, sb); + *dstptr++ = color & 0xFF; +diff --git a/include/grub/emu/export.h b/include/grub/emu/export.h +index 7f9e4e1..4da9c47 100644 +--- a/include/grub/emu/export.h ++++ b/include/grub/emu/export.h +@@ -5,3 +5,5 @@ void EXPORT_FUNC (write) (void); + void EXPORT_FUNC (ioctl) (void); + void EXPORT_FUNC (__errno_location) (void); + void EXPORT_FUNC (strerror) (void); ++void EXPORT_FUNC (sysconf) (void); ++void EXPORT_FUNC (times) (void); +diff --git a/include/grub/unicode.h b/include/grub/unicode.h +index 3d79c4c..d38ddbf 100644 +--- a/include/grub/unicode.h ++++ b/include/grub/unicode.h +@@ -132,21 +132,33 @@ enum grub_comb_type + GRUB_UNICODE_COMB_MN = 255, + }; + ++struct grub_unicode_combining ++{ ++ grub_uint32_t code:21; ++ enum grub_comb_type type:8; ++}; + /* This structure describes a glyph as opposed to character. */ + struct grub_unicode_glyph + { +- grub_uint32_t base; +- grub_uint16_t variant:9; +- grub_uint8_t attributes:5; +- grub_size_t ncomb; +- grub_size_t orig_pos; +- struct grub_unicode_combining { +- grub_uint32_t code; +- enum grub_comb_type type; +- } *combining; ++ grub_uint32_t base:23; /* minimum: 21 */ ++ grub_uint16_t variant:9; /* minimum: 9 */ ++ ++ grub_uint8_t attributes:5; /* minimum: 5 */ ++ grub_uint8_t bidi_level:6; /* minimum: 6 */ ++ enum grub_bidi_type bidi_type:5; /* minimum: :5 */ ++ ++ unsigned ncomb:8; + /* Hint by unicode subsystem how wide this character usually is. + Real width is determined by font. Set only in UTF-8 stream. */ +- int estimated_width; ++ int estimated_width:8; ++ ++ grub_size_t orig_pos; ++ union ++ { ++ struct grub_unicode_combining combining_inline[sizeof (void *) ++ / sizeof (struct grub_unicode_combining)]; ++ struct grub_unicode_combining *combining_ptr; ++ }; + }; + + #define GRUB_UNICODE_GLYPH_ATTRIBUTE_MIRROR 0x1 +@@ -253,6 +265,24 @@ grub_size_t + grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, + struct grub_unicode_glyph *out); + ++static inline const struct grub_unicode_combining * ++grub_unicode_get_comb (const struct grub_unicode_glyph *in) ++{ ++ if (in->ncomb == 0) ++ return NULL; ++ if (in->ncomb > ARRAY_SIZE (in->combining_inline)) ++ return in->combining_ptr; ++ return in->combining_inline; ++} ++ ++static inline void ++grub_unicode_destroy_glyph (struct grub_unicode_glyph *glyph) ++{ ++ if (glyph->ncomb > ARRAY_SIZE (glyph->combining_inline)) ++ grub_free (glyph->combining_ptr); ++ glyph->ncomb = 0; ++} ++ + static inline struct grub_unicode_glyph * + grub_unicode_glyph_dup (const struct grub_unicode_glyph *in) + { +@@ -260,17 +290,20 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in) + if (!out) + return NULL; + grub_memcpy (out, in, sizeof (*in)); +- if (in->combining) ++ if (in->ncomb > ARRAY_SIZE (out->combining_inline)) + { +- out->combining = grub_malloc (in->ncomb * sizeof (out->combining[0])); +- if (!out->combining) ++ out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); ++ if (!out->combining_ptr) + { + grub_free (out); + return NULL; + } +- grub_memcpy (out->combining, in->combining, +- in->ncomb * sizeof (out->combining[0])); ++ grub_memcpy (out->combining_ptr, in->combining_ptr, ++ in->ncomb * sizeof (out->combining_ptr[0])); + } ++ else ++ grub_memcpy (&out->combining_inline, &in->combining_inline, ++ sizeof (out->combining_inline)); + return out; + } + +@@ -279,14 +312,17 @@ grub_unicode_set_glyph (struct grub_unicode_glyph *out, + const struct grub_unicode_glyph *in) + { + grub_memcpy (out, in, sizeof (*in)); +- if (in->combining) ++ if (in->ncomb > ARRAY_SIZE (out->combining_inline)) + { +- out->combining = grub_malloc (in->ncomb * sizeof (out->combining[0])); +- if (!out->combining) ++ out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); ++ if (!out->combining_ptr) + return; +- grub_memcpy (out->combining, in->combining, +- in->ncomb * sizeof (out->combining[0])); ++ grub_memcpy (out->combining_ptr, in->combining_ptr, ++ in->ncomb * sizeof (out->combining_ptr[0])); + } ++ else ++ grub_memcpy (&out->combining_inline, &in->combining_inline, ++ sizeof (out->combining_inline)); + } + + static inline struct grub_unicode_glyph * +-- +1.8.2.1 + diff --git a/0426-Factor-out-human-size-printing.patch b/0426-Factor-out-human-size-printing.patch new file mode 100644 index 0000000..a77a621 --- /dev/null +++ b/0426-Factor-out-human-size-printing.patch @@ -0,0 +1,133 @@ +From d58051e416c525401a2cd86a0fe7750a7f9c1a62 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Sun, 5 May 2013 11:31:53 +0200 +Subject: [PATCH 426/471] Factor-out human-size printing. + +--- + ChangeLog | 4 ++++ + grub-core/commands/ls.c | 31 +------------------------------ + grub-core/normal/misc.c | 34 ++++++++++++++++++++++++++++++++++ + include/grub/normal.h | 3 +++ + 4 files changed, 42 insertions(+), 30 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 57bce50..c9e6f06 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-05-05 Vladimir Serbinenko ++ ++ Factor-out human-size printing. ++ + 2013-05-04 Vladimir Serbinenko + + Agglomerate more mallocs to speed-up gfxterm. +diff --git a/grub-core/commands/ls.c b/grub-core/commands/ls.c +index 83930aa..6c608f6 100644 +--- a/grub-core/commands/ls.c ++++ b/grub-core/commands/ls.c +@@ -43,8 +43,6 @@ static const struct grub_arg_option options[] = + {0, 0, 0, 0, 0, 0} + }; + +-static const char grub_human_sizes[] = {' ', 'K', 'M', 'G', 'T'}; +- + /* Helper for grub_ls_list_devices. */ + static int + grub_ls_print_devices (const char *name, void *data) +@@ -143,34 +141,7 @@ print_files_long (const char *filename, const struct grub_dirhook_info *info, + if (! ctx->human) + grub_printf ("%-12llu", (unsigned long long) file->size); + else +- { +- grub_uint64_t fsize = file->size * 100ULL; +- grub_uint64_t fsz = file->size; +- int units = 0; +- char buf[20]; +- +- while (fsz / 1024) +- { +- fsize = (fsize + 512) / 1024; +- fsz /= 1024; +- units++; +- } +- +- if (units) +- { +- grub_uint64_t whole, fraction; +- +- whole = grub_divmod64 (fsize, 100, &fraction); +- grub_snprintf (buf, sizeof (buf), +- "%" PRIuGRUB_UINT64_T +- ".%02" PRIuGRUB_UINT64_T "%c", whole, fraction, +- grub_human_sizes[units]); +- grub_printf ("%-12s", buf); +- } +- else +- grub_printf ("%-12llu", (unsigned long long) file->size); +- +- } ++ grub_printf ("%-12s", grub_get_human_size (file->size, 1)); + grub_file_close (file); + grub_free (pathname); + } +diff --git a/grub-core/normal/misc.c b/grub-core/normal/misc.c +index d23de62..1a86e0f 100644 +--- a/grub-core/normal/misc.c ++++ b/grub-core/normal/misc.c +@@ -28,6 +28,40 @@ + #include + #include + ++static const char *grub_human_sizes[] = {N_("B"), N_("KiB"), N_("MiB"), N_("GiB"), N_("TiB")}; ++static const char *grub_human_short_sizes[] = {"", "K", "M", "G", "T"}; ++ ++const char * ++grub_get_human_size (grub_uint64_t size, int sh) ++{ ++ grub_uint64_t fsize = size * 100ULL; ++ grub_uint64_t fsz = size; ++ int units = 0; ++ static char buf[20]; ++ ++ while (fsz / 1024) ++ { ++ fsize = (fsize + 512) / 1024; ++ fsz /= 1024; ++ units++; ++ } ++ ++ if (units) ++ { ++ grub_uint64_t whole, fraction; ++ ++ whole = grub_divmod64 (fsize, 100, &fraction); ++ grub_snprintf (buf, sizeof (buf), ++ "%" PRIuGRUB_UINT64_T ++ ".%02" PRIuGRUB_UINT64_T "%s", whole, fraction, ++ sh ? grub_human_short_sizes[units] : _(grub_human_sizes[units])); ++ } ++ else ++ grub_snprintf (buf, sizeof (buf), "%llu%s", (unsigned long long) size, ++ sh ? grub_human_short_sizes[units] : _(grub_human_sizes[units])); ++ return buf; ++} ++ + /* Print the information on the device NAME. */ + grub_err_t + grub_normal_print_device_info (const char *name) +diff --git a/include/grub/normal.h b/include/grub/normal.h +index 4fcc3da..930b3b9 100644 +--- a/include/grub/normal.h ++++ b/include/grub/normal.h +@@ -150,4 +150,7 @@ grub_dyncmd_get_cmd (grub_command_t cmd); + void + grub_gettext_reread_prefix (const char *val); + ++const char * ++grub_get_human_size (grub_uint64_t size, int sh); ++ + #endif /* ! GRUB_NORMAL_HEADER */ +-- +1.8.2.1 + diff --git a/0427-grub-core-commands-testspeed.c-New-command-testspeed.patch b/0427-grub-core-commands-testspeed.c-New-command-testspeed.patch new file mode 100644 index 0000000..ff787b5 --- /dev/null +++ b/0427-grub-core-commands-testspeed.c-New-command-testspeed.patch @@ -0,0 +1,272 @@ +From 54f2bdbfd75f25d6a109d92b25879dd30e88b227 Mon Sep 17 00:00:00 2001 +From: Bean +Date: Sun, 5 May 2013 18:16:48 +0200 +Subject: [PATCH 427/471] * grub-core/commands/testspeed.c: New command + testspeed. + +--- + ChangeLog | 4 ++ + grub-core/Makefile.core.def | 4 ++ + grub-core/commands/ls.c | 3 +- + grub-core/commands/testspeed.c | 115 +++++++++++++++++++++++++++++++++++++++++ + grub-core/normal/misc.c | 44 +++++++++++----- + include/grub/normal.h | 9 +++- + 6 files changed, 165 insertions(+), 14 deletions(-) + create mode 100644 grub-core/commands/testspeed.c + +diff --git a/ChangeLog b/ChangeLog +index c9e6f06..b79c57a 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-05-05 Bean ++ ++ * grub-core/commands/testspeed.c: New command testspeed. ++ + 2013-05-05 Vladimir Serbinenko + + Factor-out human-size printing. +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 469524f..56a1ec3 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -2019,3 +2019,7 @@ module = { + enable = i386; + }; + ++module = { ++ name = testspeed; ++ common = commands/testspeed.c; ++}; +diff --git a/grub-core/commands/ls.c b/grub-core/commands/ls.c +index 6c608f6..0eaf836 100644 +--- a/grub-core/commands/ls.c ++++ b/grub-core/commands/ls.c +@@ -141,7 +141,8 @@ print_files_long (const char *filename, const struct grub_dirhook_info *info, + if (! ctx->human) + grub_printf ("%-12llu", (unsigned long long) file->size); + else +- grub_printf ("%-12s", grub_get_human_size (file->size, 1)); ++ grub_printf ("%-12s", grub_get_human_size (file->size, ++ GRUB_HUMAN_SIZE_SHORT)); + grub_file_close (file); + grub_free (pathname); + } +diff --git a/grub-core/commands/testspeed.c b/grub-core/commands/testspeed.c +new file mode 100644 +index 0000000..d45fa7c +--- /dev/null ++++ b/grub-core/commands/testspeed.c +@@ -0,0 +1,115 @@ ++/* testspeed.c - Command to test file read speed */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2012 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++#define DEFAULT_BLOCK_SIZE 65536 ++ ++static const struct grub_arg_option options[] = ++ { ++ {"size", 's', 0, N_("Specify size for each read operation"), 0, ARG_TYPE_INT}, ++ {0, 0, 0, 0, 0, 0} ++ }; ++ ++static grub_err_t ++grub_cmd_testspeed (grub_extcmd_context_t ctxt, int argc, char **args) ++{ ++ struct grub_arg_list *state = ctxt->state; ++ grub_uint64_t start; ++ grub_uint64_t end; ++ grub_ssize_t block_size; ++ grub_disk_addr_t total_size; ++ char *buffer; ++ grub_file_t file; ++ grub_uint64_t whole, fraction; ++ ++ if (argc == 0) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); ++ ++ block_size = (state[0].set) ? ++ grub_strtoul (state[0].arg, 0, 0) : DEFAULT_BLOCK_SIZE; ++ ++ if (block_size <= 0) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("invalid block size")); ++ ++ buffer = grub_malloc (block_size); ++ if (buffer == NULL) ++ return grub_errno; ++ ++ file = grub_file_open (args[0]); ++ if (file == NULL) ++ goto quit; ++ ++ total_size = 0; ++ start = grub_get_time_ms (); ++ while (1) ++ { ++ grub_ssize_t size = grub_file_read (file, buffer, block_size); ++ if (size <= 0) ++ break; ++ total_size += size; ++ } ++ end = grub_get_time_ms (); ++ grub_file_close (file); ++ ++ grub_printf_ (N_("File size: %s\n"), ++ grub_get_human_size (total_size, GRUB_HUMAN_SIZE_NORMAL)); ++ whole = grub_divmod64 (end - start, 1000, &fraction); ++ grub_printf_ (N_("Elapsed time: %llu.%03llu s \n"), ++ (unsigned long long) whole, ++ (unsigned long long) fraction); ++ ++ if (end != start) ++ { ++ grub_uint64_t speed = ++ grub_divmod64 (total_size * 100ULL * 1000ULL, end - start, 0); ++ ++ grub_printf_ (N_("Speed: %s \n"), ++ grub_get_human_size (speed, ++ GRUB_HUMAN_SIZE_SPEED)); ++ } ++ ++ quit: ++ grub_free (buffer); ++ ++ return grub_errno; ++} ++ ++static grub_extcmd_t cmd; ++ ++GRUB_MOD_INIT(testspeed) ++{ ++ cmd = grub_register_extcmd ("testspeed", grub_cmd_testspeed, 0, N_("[-s SIZE] FILENAME"), ++ N_("Test file read speed."), ++ options); ++} ++ ++GRUB_MOD_FINI(testspeed) ++{ ++ grub_unregister_extcmd (cmd); ++} +diff --git a/grub-core/normal/misc.c b/grub-core/normal/misc.c +index 1a86e0f..bc6ce17 100644 +--- a/grub-core/normal/misc.c ++++ b/grub-core/normal/misc.c +@@ -28,25 +28,45 @@ + #include + #include + +-static const char *grub_human_sizes[] = {N_("B"), N_("KiB"), N_("MiB"), N_("GiB"), N_("TiB")}; +-static const char *grub_human_short_sizes[] = {"", "K", "M", "G", "T"}; ++static const char *grub_human_sizes[3][6] = ++ { ++ /* This algorithm in reality would work only up to (2^64) / 100 B = 81 PiB. ++ Put here all possible suffixes it can produce so no array bounds check ++ is needed. ++ */ ++ /* TRANSLATORS: that's the list of binary unit prefixes. */ ++ { N_("B"), N_("KiB"), N_("MiB"), N_("GiB"), N_("TiB"), N_("PiB")}, ++ /* TRANSLATORS: that's the list of binary unit prefixes. */ ++ { "", N_("K"), N_("M"), N_("G"), N_("T"), N_("P") }, ++ /* TRANSLATORS: that's the list of binary unit prefixes. */ ++ { N_("B/s"), N_("KiB/s"), N_("MiB/s"), N_("GiB/s"), N_("TiB/s"), N_("PiB/s"), }, ++ }; + + const char * +-grub_get_human_size (grub_uint64_t size, int sh) ++grub_get_human_size (grub_uint64_t size, enum grub_human_size_type type) + { +- grub_uint64_t fsize = size * 100ULL; +- grub_uint64_t fsz = size; +- int units = 0; +- static char buf[20]; ++ grub_uint64_t fsize; ++ unsigned units = 0; ++ static char buf[30]; ++ const char *umsg; + +- while (fsz / 1024) ++ if (type != GRUB_HUMAN_SIZE_SPEED) ++ fsize = size * 100ULL; ++ else ++ fsize = size; ++ ++ /* Since 2^64 / 1024^5 < 102400, this can give at most 5 iterations. ++ So units <=5, so impossible to go past the end of array. ++ */ ++ while (fsize >= 102400) + { + fsize = (fsize + 512) / 1024; +- fsz /= 1024; + units++; + } + +- if (units) ++ umsg = _(grub_human_sizes[type][units]); ++ ++ if (units || type == GRUB_HUMAN_SIZE_SPEED) + { + grub_uint64_t whole, fraction; + +@@ -54,11 +74,11 @@ grub_get_human_size (grub_uint64_t size, int sh) + grub_snprintf (buf, sizeof (buf), + "%" PRIuGRUB_UINT64_T + ".%02" PRIuGRUB_UINT64_T "%s", whole, fraction, +- sh ? grub_human_short_sizes[units] : _(grub_human_sizes[units])); ++ umsg); + } + else + grub_snprintf (buf, sizeof (buf), "%llu%s", (unsigned long long) size, +- sh ? grub_human_short_sizes[units] : _(grub_human_sizes[units])); ++ umsg); + return buf; + } + +diff --git a/include/grub/normal.h b/include/grub/normal.h +index 930b3b9..c32bc96 100644 +--- a/include/grub/normal.h ++++ b/include/grub/normal.h +@@ -150,7 +150,14 @@ grub_dyncmd_get_cmd (grub_command_t cmd); + void + grub_gettext_reread_prefix (const char *val); + ++enum grub_human_size_type ++ { ++ GRUB_HUMAN_SIZE_NORMAL, ++ GRUB_HUMAN_SIZE_SHORT, ++ GRUB_HUMAN_SIZE_SPEED, ++ }; ++ + const char * +-grub_get_human_size (grub_uint64_t size, int sh); ++grub_get_human_size (grub_uint64_t size, enum grub_human_size_type type); + + #endif /* ! GRUB_NORMAL_HEADER */ +-- +1.8.2.1 + diff --git a/0428-Reimplement-grub-reboot-to-not-depend-on-saved_entry.patch b/0428-Reimplement-grub-reboot-to-not-depend-on-saved_entry.patch new file mode 100644 index 0000000..b7d83f4 --- /dev/null +++ b/0428-Reimplement-grub-reboot-to-not-depend-on-saved_entry.patch @@ -0,0 +1,109 @@ +From 1424a23f9d76785da41d3f8ccd9f0658abd062da Mon Sep 17 00:00:00 2001 +From: Andrey Borzenkov +Date: Mon, 6 May 2013 22:13:34 +0400 +Subject: [PATCH 428/471] Reimplement grub-reboot to not depend on + saved_entry. Use next_entry variable for one time boot menu entry. + +--- + ChangeLog | 5 +++++ + util/grub-reboot.in | 17 ++++++----------- + util/grub-set-default.in | 1 + + util/grub.d/00_header.in | 14 +++++++++++++- + 4 files changed, 25 insertions(+), 12 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index b79c57a..16c5404 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-05-06 Andrey Borzenkov ++ ++ Reimplement grub-reboot to not depend on saved_entry. Use next_entry ++ variable for one time boot menu entry. ++ + 2013-05-05 Bean + + * grub-core/commands/testspeed.c: New command testspeed. +diff --git a/util/grub-reboot.in b/util/grub-reboot.in +index 1a91d36..d132e4f 100644 +--- a/util/grub-reboot.in ++++ b/util/grub-reboot.in +@@ -46,8 +46,6 @@ export TEXTDOMAINDIR="@localedir@" + usage () { + gettext_printf "Usage: %s [OPTION] MENU_ENTRY\n" "$self" + gettext "Set the default boot menu entry for GRUB, for the next boot only."; echo +- gettext_printf "This requires setting GRUB_DEFAULT=saved in %s/default/grub.\n" "$sysconfdir" +- echo + print_option_help "-h, --help" "$(gettext "print this message and exit")" + print_option_help "-v, --version" "$(gettext "print the version information and exit")" + dirmsg="$(gettext_printf "expect GRUB images under the directory DIR/%s instead of the %s directory" "@grubdirname@" "$grubdir")" +@@ -129,17 +127,14 @@ fi + + grubdir=`echo "${bootdir}/@grubdirname@" | sed 's,//*,/,g'` + +-prev_saved_entry=`$grub_editenv ${grubdir}/grubenv list | sed -n 's/^saved_entry=//p'` ++# Restore saved_entry if it was set by previous version ++prev_saved_entry=`$grub_editenv ${grubdir}/grubenv list | sed -n 's/^prev_saved_entry=//p'` + if [ "$prev_saved_entry" ]; then +- $grub_editenv ${grubdir}/grubenv set prev_saved_entry="$prev_saved_entry" +-else +- # We need some non-empty value for prev_saved_entry so that GRUB will +- # recognise that grub-reboot has been used and restore the previous +- # saved entry. "0" is the same as an empty value, i.e. the first menu +- # entry. +- $grub_editenv ${grubdir}/grubenv set prev_saved_entry=0 ++ $grub_editenv ${grubdir}/grubenv set saved_entry="$prev_saved_entry" ++ $grub_editenv ${grubdir}/grubenv unset prev_saved_entry + fi +-$grub_editenv ${grubdir}/grubenv set saved_entry="$entry" ++ ++$grub_editenv ${grubdir}/grubenv set next_entry="$entry" + + # Bye. + exit 0 +diff --git a/util/grub-set-default.in b/util/grub-set-default.in +index ea18da1..d607318 100644 +--- a/util/grub-set-default.in ++++ b/util/grub-set-default.in +@@ -130,6 +130,7 @@ fi + grubdir=`echo "${bootdir}/@grubdirname@" | sed 's,//*,/,g'` + + $grub_editenv ${grubdir}/grubenv unset prev_saved_entry ++$grub_editenv ${grubdir}/grubenv unset next_entry + $grub_editenv ${grubdir}/grubenv set saved_entry="$entry" + + # Bye. +diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in +index 3da5d12..2c4bb0a 100644 +--- a/util/grub.d/00_header.in ++++ b/util/grub.d/00_header.in +@@ -51,13 +51,25 @@ if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then + cat < +Date: Tue, 7 May 2013 11:26:15 +0200 +Subject: [PATCH 429/471] * grub-core/font/font.c: Use grub_dprintf for + debug statements rather than printf. + +--- + ChangeLog | 5 +++++ + grub-core/font/font.c | 28 ++++++++++++++-------------- + 2 files changed, 19 insertions(+), 14 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 16c5404..0fa3be0 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-05-07 Vladimir Serbinenko ++ ++ * grub-core/font/font.c: Use grub_dprintf for debug statements rather ++ than printf. ++ + 2013-05-06 Andrey Borzenkov + + Reimplement grub-reboot to not depend on saved_entry. Use next_entry +diff --git a/grub-core/font/font.c b/grub-core/font/font.c +index 50b1799..3a380b9 100644 +--- a/grub-core/font/font.c ++++ b/grub-core/font/font.c +@@ -293,7 +293,7 @@ load_font_index (grub_file_t file, grub_uint32_t sect_length, struct + grub_uint32_t last_code; + + #if FONT_DEBUG >= 2 +- grub_printf ("load_font_index(sect_length=%d)\n", sect_length); ++ grub_dprintf ("font", "load_font_index(sect_length=%d)\n", sect_length); + #endif + + /* Sanity check: ensure section length is divisible by the entry size. */ +@@ -321,7 +321,7 @@ load_font_index (grub_file_t file, grub_uint32_t sect_length, struct + + + #if FONT_DEBUG >= 2 +- grub_printf ("num_chars=%d)\n", font->num_chars); ++ grub_dprintf ("font", "num_chars=%d)\n", font->num_chars); + #endif + + last_code = 0; +@@ -365,7 +365,7 @@ load_font_index (grub_file_t file, grub_uint32_t sect_length, struct + #if FONT_DEBUG >= 5 + /* Print the 1st 10 characters. */ + if (i < 10) +- grub_printf ("c=%d o=%d\n", entry->code, entry->offset); ++ grub_dprintf ("font", "c=%d o=%d\n", entry->code, entry->offset); + #endif + } + +@@ -431,7 +431,7 @@ grub_font_load (const char *filename) + grub_font_t font = 0; + + #if FONT_DEBUG >= 1 +- grub_printf ("add_font(%s)\n", filename); ++ grub_dprintf ("font", "add_font(%s)\n", filename); + #endif + + if (filename[0] == '(' || filename[0] == '/' || filename[0] == '+') +@@ -462,7 +462,7 @@ grub_font_load (const char *filename) + goto fail; + + #if FONT_DEBUG >= 3 +- grub_printf ("file opened\n"); ++ grub_dprintf ("font", "file opened\n"); + #endif + + /* Read the FILE section. It indicates the file format. */ +@@ -470,7 +470,7 @@ grub_font_load (const char *filename) + goto fail; + + #if FONT_DEBUG >= 3 +- grub_printf ("opened FILE section\n"); ++ grub_dprintf ("font", "opened FILE section\n"); + #endif + if (grub_memcmp (section.name, FONT_FORMAT_SECTION_NAMES_FILE, + sizeof (FONT_FORMAT_SECTION_NAMES_FILE) - 1) != 0) +@@ -481,7 +481,7 @@ grub_font_load (const char *filename) + } + + #if FONT_DEBUG >= 3 +- grub_printf ("section name ok\n"); ++ grub_dprintf ("font", "section name ok\n"); + #endif + if (section.length != 4) + { +@@ -492,14 +492,14 @@ grub_font_load (const char *filename) + } + + #if FONT_DEBUG >= 3 +- grub_printf ("section length ok\n"); ++ grub_dprintf ("font", "section length ok\n"); + #endif + /* Check the file format type code. */ + if (grub_file_read (file, magic, 4) != 4) + goto fail; + + #if FONT_DEBUG >= 3 +- grub_printf ("read magic ok\n"); ++ grub_dprintf ("font", "read magic ok\n"); + #endif + + if (grub_memcmp (magic, FONT_FORMAT_PFF2_MAGIC, 4) != 0) +@@ -510,7 +510,7 @@ grub_font_load (const char *filename) + } + + #if FONT_DEBUG >= 3 +- grub_printf ("compare magic ok\n"); ++ grub_dprintf ("font", "compare magic ok\n"); + #endif + + /* Allocate the font object. */ +@@ -522,7 +522,7 @@ grub_font_load (const char *filename) + font->file = file; + + #if FONT_DEBUG >= 3 +- grub_printf ("allocate font ok; loading font info\n"); ++ grub_dprintf ("font", "allocate font ok; loading font info\n"); + #endif + + /* Load the font information. */ +@@ -537,7 +537,7 @@ grub_font_load (const char *filename) + } + + #if FONT_DEBUG >= 2 +- grub_printf ("opened section %c%c%c%c ok\n", ++ grub_dprintf ("font", "opened section %c%c%c%c ok\n", + section.name[0], section.name[1], + section.name[2], section.name[3]); + #endif +@@ -621,7 +621,7 @@ grub_font_load (const char *filename) + { + /* Unhandled section type, simply skip past it. */ + #if FONT_DEBUG >= 3 +- grub_printf ("Unhandled section type, skipping.\n"); ++ grub_dprintf ("font", "Unhandled section type, skipping.\n"); + #endif + grub_off_t section_end = grub_file_tell (file) + section.length; + if ((int) grub_file_seek (file, section_end) == -1) +@@ -636,7 +636,7 @@ grub_font_load (const char *filename) + } + + #if FONT_DEBUG >= 1 +- grub_printf ("Loaded font `%s'.\n" ++ grub_dprintf ("font", "Loaded font `%s'.\n" + "Ascent=%d Descent=%d MaxW=%d MaxH=%d Number of characters=%d.\n", + font->name, + font->ascent, font->descent, +-- +1.8.2.1 + diff --git a/0430-tests-priority_queue_unit_test.cc-New-test.patch b/0430-tests-priority_queue_unit_test.cc-New-test.patch new file mode 100644 index 0000000..81bf7cc --- /dev/null +++ b/0430-tests-priority_queue_unit_test.cc-New-test.patch @@ -0,0 +1,386 @@ +From bcf0809ca0ce82d3f4608ddddfb6996dda99a4f1 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 11:30:48 +0200 +Subject: [PATCH 430/471] * tests/priority_queue_unit_test.cc: New test. + +--- + ChangeLog | 4 ++ + Makefile.util.def | 17 ++++++ + configure.ac | 5 ++ + grub-core/lib/priority_queue.c | 94 ---------------------------------- + include/grub/misc.h | 2 +- + include/grub/priority_queue.h | 8 +++ + include/grub/test.h | 8 +++ + tests/priority_queue_unit_test.cc | 105 ++++++++++++++++++++++++++++++++++++++ + 8 files changed, 148 insertions(+), 95 deletions(-) + create mode 100644 tests/priority_queue_unit_test.cc + +diff --git a/ChangeLog b/ChangeLog +index 0fa3be0..0fe18bb 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ * tests/priority_queue_unit_test.cc: New test. ++ ++2013-05-07 Vladimir Serbinenko ++ + * grub-core/font/font.c: Use grub_dprintf for debug statements rather + than printf. + +diff --git a/Makefile.util.def b/Makefile.util.def +index d0ae67f..086ca12 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -859,6 +859,23 @@ program = { + + program = { + testcase; ++ name = priority_queue_unit_test; ++ common = tests/priority_queue_unit_test.cc; ++ common = tests/lib/unit_test.c; ++ common = grub-core/kern/list.c; ++ common = grub-core/kern/misc.c; ++ common = grub-core/tests/lib/test.c; ++ common = grub-core/lib/priority_queue.c; ++ ldadd = libgrubmods.a; ++ ldadd = libgrubgcry.a; ++ ldadd = libgrubkern.a; ++ ldadd = grub-core/gnulib/libgnu.a; ++ ldadd = '$(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; ++ condition = COND_HAVE_CXX; ++}; ++ ++program = { ++ testcase; + name = cmp_test; + common = tests/cmp_unit_test.c; + common = tests/lib/unit_test.c; +diff --git a/configure.ac b/configure.ac +index 00540e6..6c310f7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -320,12 +320,15 @@ AC_PATH_PROGS(MAKEINFO, makeinfo true) + + AC_PROG_CC + gl_EARLY ++AC_PROG_CXX + AM_PROG_CC_C_O + AM_PROG_AS + + # Must be GCC. + test "x$GCC" = xyes || AC_MSG_ERROR([GCC is required]) + ++AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no) ++ + AC_GNU_SOURCE + AM_GNU_GETTEXT([external]) + AC_SYS_LARGEFILE +@@ -1178,6 +1181,8 @@ AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes]) + AM_CONDITIONAL([COND_ENABLE_CACHE_STATS], [test x$DISK_CACHE_STATS = x1]) + AM_CONDITIONAL([COND_ENABLE_BOOT_TIME_STATS], [test x$BOOT_TIME_STATS = x1]) + ++AM_CONDITIONAL([COND_HAVE_CXX], [test x$HAVE_CXX = xyes]) ++ + AM_CONDITIONAL([COND_HAVE_ASM_USCORE], [test x$HAVE_ASM_USCORE = x1]) + AM_CONDITIONAL([COND_CYGWIN], [test x$host_os = xcygwin]) + AM_CONDITIONAL([COND_STARFIELD], [test "x$starfield_excuse" = x]) +diff --git a/grub-core/lib/priority_queue.c b/grub-core/lib/priority_queue.c +index a790910..659be0b 100644 +--- a/grub-core/lib/priority_queue.c ++++ b/grub-core/lib/priority_queue.c +@@ -16,37 +16,12 @@ + * along with GRUB. If not, see . + */ + +-#ifndef TEST + #include + #include + #include + + GRUB_MOD_LICENSE ("GPLv3+"); + +-#else +-#include +-#include +-#include +- +-#include +- +-using namespace std; +- +-typedef size_t grub_size_t; +-typedef int (*grub_comparator_t) (const void *a, const void *b); +-typedef unsigned char grub_uint8_t; +-#define grub_malloc malloc +-#define grub_memcpy memcpy +-#define grub_realloc realloc +-#define grub_free free +- +-typedef enum +- { +- GRUB_ERR_NONE, +- grub_errno +- } grub_err_t; +-#endif +- + struct grub_priority_queue + { + grub_size_t elsize; +@@ -56,10 +31,6 @@ struct grub_priority_queue + void *els; + }; + +-#ifdef TEST +-typedef struct grub_priority_queue *grub_priority_queue_t; +-#endif +- + static inline void * + element (struct grub_priority_queue *pq, grub_size_t k) + { +@@ -189,69 +160,4 @@ grub_priority_queue_pop (grub_priority_queue_t pq) + } + } + +-#ifdef TEST +- +-static int +-compar (const void *a_, const void *b_) +-{ +- int a = *(int *) a_; +- int b = *(int *) b_; +- if (a < b) +- return -1; +- if (a > b) +- return +1; +- return 0; +-} + +-int +-main (void) +-{ +- priority_queue pq; +- grub_priority_queue_t pq2; +- int counter; +- int s = 0; +- pq2 = grub_priority_queue_new (sizeof (int), compar); +- if (!pq2) +- return 1; +- srand (1); +- +- for (counter = 0; counter < 1000000; counter++) +- { +- int op = rand () % 10; +- if (s && *(int *) grub_priority_queue_top (pq2) != pq.top ()) +- { +- printf ("Error at %d\n", counter); +- return 2; +- } +- if (op < 3 && s) +- { +- grub_priority_queue_pop (pq2); +- pq.pop (); +- s--; +- } +- else +- { +- int v = rand (); +- int e; +- pq.push (v); +- e = grub_priority_queue_push (pq2, &v); +- if (e) +- return 3; +- s++; +- } +- } +- while (s) +- { +- if (*(int *) grub_priority_queue_top (pq2) != pq.top ()) +- { +- printf ("Error at the end. %d elements remaining.\n", s); +- return 4; +- } +- grub_priority_queue_pop (pq2); +- pq.pop (); +- s--; +- } +- printf ("All tests passed successfully\n"); +- return 0; +-} +-#endif +diff --git a/include/grub/misc.h b/include/grub/misc.h +index c191c1f..9d7f212 100644 +--- a/include/grub/misc.h ++++ b/include/grub/misc.h +@@ -392,7 +392,7 @@ void EXPORT_FUNC (__deregister_frame_info) (void); + static inline char * + grub_memchr (const void *p, int c, grub_size_t len) + { +- const char *s = p; ++ const char *s = (const char *) p; + const char *e = s + len; + + for (; s < e; s++) +diff --git a/include/grub/priority_queue.h b/include/grub/priority_queue.h +index a5d98c8..64cbc45 100644 +--- a/include/grub/priority_queue.h ++++ b/include/grub/priority_queue.h +@@ -22,6 +22,10 @@ + #include + #include + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + struct grub_priority_queue; + typedef struct grub_priority_queue *grub_priority_queue_t; + typedef int (*grub_comparator_t) (const void *a, const void *b); +@@ -33,4 +37,8 @@ void *grub_priority_queue_top (grub_priority_queue_t pq); + void grub_priority_queue_pop (grub_priority_queue_t pq); + grub_err_t grub_priority_queue_push (grub_priority_queue_t pq, const void *el); + ++#ifdef __cplusplus ++} ++#endif ++ + #endif +diff --git a/include/grub/test.h b/include/grub/test.h +index cc4e4a8..8df85d0 100644 +--- a/include/grub/test.h ++++ b/include/grub/test.h +@@ -28,6 +28,10 @@ + #include + #include + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + struct grub_test + { + /* The next test. */ +@@ -108,4 +112,8 @@ grub_video_checksum_get_modename (void); + #define GRUB_TEST_VIDEO_SMALL_N_MODES 6 + extern struct grub_video_mode_info grub_test_video_modes[30]; + ++#ifdef __cplusplus ++} ++#endif ++ + #endif /* ! GRUB_TEST_HEADER */ +diff --git a/tests/priority_queue_unit_test.cc b/tests/priority_queue_unit_test.cc +new file mode 100644 +index 0000000..bb0060e +--- /dev/null ++++ b/tests/priority_queue_unit_test.cc +@@ -0,0 +1,105 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++ ++using namespace std; ++ ++static int ++compar (const void *a_, const void *b_) ++{ ++ int a = *(int *) a_; ++ int b = *(int *) b_; ++ if (a < b) ++ return -1; ++ if (a > b) ++ return +1; ++ return 0; ++} ++ ++static void ++priority_queue_test (void) ++{ ++ priority_queue pq; ++ grub_priority_queue_t pq2; ++ int counter; ++ int s = 0; ++ pq2 = grub_priority_queue_new (sizeof (int), compar); ++ if (!pq2) ++ { ++ grub_test_assert (0, ++ "priority queue: queue creating failed\n"); ++ return; ++ } ++ srand (1); ++ ++ for (counter = 0; counter < 1000000; counter++) ++ { ++ int op = rand () % 10; ++ if (s && *(int *) grub_priority_queue_top (pq2) != pq.top ()) ++ { ++ printf ("Error at %d\n", counter); ++ grub_test_assert (0, ++ "priority queue: error at %d\n", counter); ++ return; ++ } ++ if (op < 3 && s) ++ { ++ grub_priority_queue_pop (pq2); ++ pq.pop (); ++ s--; ++ } ++ else ++ { ++ int v = rand (); ++ pq.push (v); ++ if (grub_priority_queue_push (pq2, &v) != 0) ++ { ++ grub_test_assert (0, ++ "priority queue: push failed"); ++ return; ++ } ++ s++; ++ } ++ } ++ while (s) ++ { ++ if (*(int *) grub_priority_queue_top (pq2) != pq.top ()) ++ { ++ grub_test_assert (0, ++ "priority queue: Error at the end. %d elements remaining.\n", s); ++ return; ++ } ++ grub_priority_queue_pop (pq2); ++ pq.pop (); ++ s--; ++ } ++ printf ("priority_queue: passed successfully\n"); ++} ++ ++GRUB_UNIT_TEST ("priority_queue_unit_test", priority_queue_test); +-- +1.8.2.1 + diff --git a/0431-grub-core-video-readers-jpeg.c-Use-grub_dprintf-for-.patch b/0431-grub-core-video-readers-jpeg.c-Use-grub_dprintf-for-.patch new file mode 100644 index 0000000..466f593 --- /dev/null +++ b/0431-grub-core-video-readers-jpeg.c-Use-grub_dprintf-for-.patch @@ -0,0 +1,79 @@ +From 830ca107511b53803fbefa89b7c7af0b06c4e337 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 11:37:11 +0200 +Subject: [PATCH 431/471] * grub-core/video/readers/jpeg.c: Use + grub_dprintf for debug statements rather than printf. * + grub-core/video/readers/tga.c: Likewise. + +--- + ChangeLog | 6 ++++++ + grub-core/video/readers/jpeg.c | 4 +--- + grub-core/video/readers/tga.c | 6 ++---- + 3 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 0fe18bb..04a2f00 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,11 @@ + 2013-05-07 Vladimir Serbinenko + ++ * grub-core/video/readers/jpeg.c: Use grub_dprintf for debug statements ++ rather than printf. ++ * grub-core/video/readers/tga.c: Likewise. ++ ++2013-05-07 Vladimir Serbinenko ++ + * tests/priority_queue_unit_test.cc: New test. + + 2013-05-07 Vladimir Serbinenko +diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c +index 33f28c3..0067b7d 100644 +--- a/grub-core/video/readers/jpeg.c ++++ b/grub-core/video/readers/jpeg.c +@@ -693,9 +693,7 @@ grub_jpeg_decode_jpeg (struct grub_jpeg_data *data) + if (grub_errno) + break; + +-#ifdef JPEG_DEBUG +- grub_printf ("jpeg marker: %x\n", marker); +-#endif ++ grub_dprintf ("jpeg", "jpeg marker: %x\n", marker); + + switch (marker) + { +diff --git a/grub-core/video/readers/tga.c b/grub-core/video/readers/tga.c +index 84be68a..5aa4c7d 100644 +--- a/grub-core/video/readers/tga.c ++++ b/grub-core/video/readers/tga.c +@@ -29,8 +29,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); + /* Uncomment following define to enable TGA debug. */ + //#define TGA_DEBUG + ++#define dump_int_field(x) grub_dprintf ("tga", #x " = %d (0x%04x)\n", x, x); + #if defined(TGA_DEBUG) +-#define dump_int_field(x) grub_printf( #x " = %d (0x%04x)\n", x, x); + static grub_command_t cmd; + #endif + +@@ -347,8 +347,7 @@ grub_video_reader_tga (struct grub_video_bitmap **bitmap, + return grub_errno; + } + +-#if defined(TGA_DEBUG) +- grub_printf("tga: header\n"); ++ grub_dprintf("tga", "tga: header\n"); + dump_int_field(header.id_length); + dump_int_field(header.color_map_type); + dump_int_field(header.image_type); +@@ -361,7 +360,6 @@ grub_video_reader_tga (struct grub_video_bitmap **bitmap, + dump_int_field(header.image_height); + dump_int_field(header.image_bpp); + dump_int_field(header.image_descriptor); +-#endif + + /* Check that bitmap encoding is supported. */ + switch (header.image_type) +-- +1.8.2.1 + diff --git a/0432-grub-core-loader-linux.c-Use-grub_dprintf-for-debug-.patch b/0432-grub-core-loader-linux.c-Use-grub_dprintf-for-debug-.patch new file mode 100644 index 0000000..d9d7e4f --- /dev/null +++ b/0432-grub-core-loader-linux.c-Use-grub_dprintf-for-debug-.patch @@ -0,0 +1,42 @@ +From 8e042532c805c9e850eaa92c5713c461b4f4e36c Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 11:38:49 +0200 +Subject: [PATCH 432/471] * grub-core/loader/linux.c: Use grub_dprintf + for debug statements rather than printf. + +--- + ChangeLog | 5 +++++ + grub-core/loader/linux.c | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 04a2f00..fc647b8 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-07 Vladimir Serbinenko + ++ * grub-core/loader/linux.c: Use grub_dprintf for debug statements ++ rather than printf. ++ ++2013-05-07 Vladimir Serbinenko ++ + * grub-core/video/readers/jpeg.c: Use grub_dprintf for debug statements + rather than printf. + * grub-core/video/readers/tga.c: Likewise. +diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c +index cbe3c53..af067a5 100644 +--- a/grub-core/loader/linux.c ++++ b/grub-core/loader/linux.c +@@ -126,7 +126,7 @@ insert_dir (const char *name, struct dir **root, + n->name = grub_strndup (cb, ce - cb); + if (ptr) + { +- grub_printf ("Creating directory %s, %s\n", name, ce); ++ grub_dprintf ("linux", "Creating directory %s, %s\n", name, ce); + ptr = make_header (ptr, name, ce - name, + 040777, 0); + } +-- +1.8.2.1 + diff --git a/0433-Mark-few-forgotten-strings-for-translation.patch b/0433-Mark-few-forgotten-strings-for-translation.patch new file mode 100644 index 0000000..962724c --- /dev/null +++ b/0433-Mark-few-forgotten-strings-for-translation.patch @@ -0,0 +1,121 @@ +From c061433a9a81b4114e4ed2b9c5c7784917b5e0d4 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 11:41:47 +0200 +Subject: [PATCH 433/471] Mark few forgotten strings for translation. + +--- + ChangeLog | 4 ++++ + grub-core/commands/acpihalt.c | 4 ++-- + grub-core/commands/nativedisk.c | 2 +- + grub-core/loader/i386/pc/freedos.c | 2 +- + grub-core/normal/misc.c | 4 +++- + util/grub-render-label.c | 6 +++--- + 6 files changed, 14 insertions(+), 8 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index fc647b8..9c8a14a 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ Mark few forgotten strings for translation. ++ ++2013-05-07 Vladimir Serbinenko ++ + * grub-core/loader/linux.c: Use grub_dprintf for debug statements + rather than printf. + +diff --git a/grub-core/commands/acpihalt.c b/grub-core/commands/acpihalt.c +index a8014de..6f156fd 100644 +--- a/grub-core/commands/acpihalt.c ++++ b/grub-core/commands/acpihalt.c +@@ -311,13 +311,13 @@ main (int argc, char **argv) + buf = malloc (len); + if (!buf) + { +- printf ("Couldn't malloc buffer\n"); ++ printf (_("error: %s.\n"), _("out of memory")); + fclose (f); + return 2; + } + if (fread (buf, 1, len, f) != len) + { +- printf ("Read failed\n"); ++ printf (_("cannot read `%s': %s"), strerror (errno)); + free (buf); + fclose (f); + return 2; +diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c +index 453faad..71d7bc4 100644 +--- a/grub-core/commands/nativedisk.c ++++ b/grub-core/commands/nativedisk.c +@@ -301,7 +301,7 @@ static grub_command_t cmd; + + GRUB_MOD_INIT(nativedisk) + { +- cmd = grub_register_command ("nativedisk", grub_cmd_nativedisk, "[MODULE1 MODULE2 ...]", ++ cmd = grub_register_command ("nativedisk", grub_cmd_nativedisk, N_("[MODULE1 MODULE2 ...]"), + N_("Switch to native disk drivers. If no modules are specified default set (pata,ahci,usbms,ohci,uhci,ehci) is used")); + } + +diff --git a/grub-core/loader/i386/pc/freedos.c b/grub-core/loader/i386/pc/freedos.c +index e685c6e..478f3c5 100644 +--- a/grub-core/loader/i386/pc/freedos.c ++++ b/grub-core/loader/i386/pc/freedos.c +@@ -145,7 +145,7 @@ grub_cmd_freedos (grub_command_t cmd __attribute__ ((unused)), + if (kernelsyssize > GRUB_FREEDOS_MAX_SIZE) + { + grub_error (GRUB_ERR_BAD_OS, +- N_("file `%s' is too large"), argv[0]); ++ N_("the size of `%s' is too large"), argv[0]); + goto fail; + } + +diff --git a/grub-core/normal/misc.c b/grub-core/normal/misc.c +index bc6ce17..34d505e 100644 +--- a/grub-core/normal/misc.c ++++ b/grub-core/normal/misc.c +@@ -181,7 +181,9 @@ grub_normal_print_device_info (const char *name) + else + grub_printf (_(" - Total size %llu%sKiB"), + (unsigned long long) (grub_disk_get_size (dev->disk) >> 1), +- (grub_disk_get_size (dev->disk) & 1) ? ".5" : ""); ++ /* TRANSLATORS: Replace dot with appropriate decimal separator for ++ your language. */ ++ (grub_disk_get_size (dev->disk) & 1) ? _(".5") : ""); + + grub_device_close (dev); + } +diff --git a/util/grub-render-label.c b/util/grub-render-label.c +index 32d3774..1b28ab7 100644 +--- a/util/grub-render-label.c ++++ b/util/grub-render-label.c +@@ -55,7 +55,7 @@ static struct argp_option options[] = { + {"bgcolor", 'b', N_("COLOR"), 0, + N_("use COLOR for background"), 0}, + {"text", 't', N_("STR"), 0, +- N_("supply the string."), 0}, ++ N_("set the label to render."), 0}, + {"output", 'o', N_("FILE"), 0, + N_("set output filename. Default is STDOUT"), 0}, + {"font", 'f', N_("FILE"), 0, +@@ -89,13 +89,13 @@ argp_parser (int key, char *arg, struct argp_state *state) + case 'b': + err = grub_video_parse_color (arg, &arguments->bgcolor); + if (err) +- grub_util_error (_("Invalud color `%s'"), arg); ++ grub_util_error (_("invalid color specification `%s'"), arg); + break; + + case 'c': + err = grub_video_parse_color (arg, &arguments->fgcolor); + if (err) +- grub_util_error (_("Invalud color `%s'"), arg); ++ grub_util_error (_("invalid color specification `%s'"), arg); + break; + + case 'f': +-- +1.8.2.1 + diff --git a/0434-Simplify-few-strings.patch b/0434-Simplify-few-strings.patch new file mode 100644 index 0000000..16d4bb4 --- /dev/null +++ b/0434-Simplify-few-strings.patch @@ -0,0 +1,80 @@ +From 10b1a434c45df97992777369eed86901e33481fb Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 11:44:15 +0200 +Subject: [PATCH 434/471] Simplify few strings. + +--- + ChangeLog | 4 ++++ + grub-core/fs/zfs/zfscrypt.c | 4 ++-- + grub-core/lib/relocator.c | 3 ++- + grub-core/loader/machoXX.c | 4 ++-- + 4 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 9c8a14a..92af2dd 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ Simplify few strings. ++ ++2013-05-07 Vladimir Serbinenko ++ + Mark few forgotten strings for translation. + + 2013-05-07 Vladimir Serbinenko +diff --git a/grub-core/fs/zfs/zfscrypt.c b/grub-core/fs/zfs/zfscrypt.c +index 4ea53b8..d5f9dcd 100644 +--- a/grub-core/fs/zfs/zfscrypt.c ++++ b/grub-core/fs/zfs/zfscrypt.c +@@ -263,8 +263,8 @@ algo_decrypt (grub_crypto_cipher_handle_t cipher, grub_uint64_t algo, + return grub_gcm_decrypt (cipher, out, in, psize, mac_out, nonce, + 15 - l, m); + default: +- return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "algorithm %" +- PRIuGRUB_UINT64_T " is not supported yet", algo); ++ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "algorithm %lld is not supported yet", ++ (long long) algo); + } + } + +diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c +index e085514..b86a6c0 100644 +--- a/grub-core/lib/relocator.c ++++ b/grub-core/lib/relocator.c +@@ -599,7 +599,8 @@ malloc_in_range (struct grub_relocator *rel, + do + { + if (p->magic != GRUB_MM_FREE_MAGIC) +- grub_fatal (__FILE__":%d free magic broken at %p (0x%x)\n", ++ grub_fatal ("%s:%d free magic broken at %p (0x%x)\n", ++ __FILE__, + __LINE__, p, p->magic); + if (p == (grub_mm_header_t) (r + 1)) + { +diff --git a/grub-core/loader/machoXX.c b/grub-core/loader/machoXX.c +index 3a382b3..95c3fe5 100644 +--- a/grub-core/loader/machoXX.c ++++ b/grub-core/loader/machoXX.c +@@ -55,7 +55,7 @@ SUFFIX (grub_macho_parse) (grub_macho_t macho, const char *filename) + + if (head.macho.magic != GRUB_MACHO_MAGIC) + { +- grub_error (GRUB_ERR_BAD_OS, "invalid Mach-O " XX "-bit header"); ++ grub_error (GRUB_ERR_BAD_OS, "invalid Mach-O header"); + macho->offsetXX = -1; + return; + } +@@ -154,7 +154,7 @@ grub_macho_cmds_iterate (grub_macho_t macho, + } + + if (! macho->cmdsXX) +- return grub_error (GRUB_ERR_BAD_OS, "couldn't find " XX "-bit Mach-O"); ++ return grub_error (GRUB_ERR_BAD_OS, "couldn't find Mach-O commands"); + hdrs = macho->cmdsXX; + for (i = 0; i < macho->ncmdsXX; i++) + { +-- +1.8.2.1 + diff --git a/0435-autogen.sh-Exclude-unused-libgcrypt-files-from-trans.patch b/0435-autogen.sh-Exclude-unused-libgcrypt-files-from-trans.patch new file mode 100644 index 0000000..3200c82 --- /dev/null +++ b/0435-autogen.sh-Exclude-unused-libgcrypt-files-from-trans.patch @@ -0,0 +1,41 @@ +From 56b79f793db3488f8efa3bc345cd71b179c03c29 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 11:45:47 +0200 +Subject: [PATCH 435/471] * autogen.sh: Exclude unused libgcrypt files + from translation. + +--- + ChangeLog | 4 ++++ + autogen.sh | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 92af2dd..d6a68b7 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ * autogen.sh: Exclude unused libgcrypt files from translation. ++ ++2013-05-07 Vladimir Serbinenko ++ + Simplify few strings. + + 2013-05-07 Vladimir Serbinenko +diff --git a/autogen.sh b/autogen.sh +index 00fdafc..60ae5db 100755 +--- a/autogen.sh ++++ b/autogen.sh +@@ -6,7 +6,7 @@ export LC_CTYPE=C + export LC_COLLATE=C + unset LC_ALL + +-find . -iname '*.[ch]' -not -ipath './grub-core/lib/libgcrypt-grub/*' -not -ipath './build-aux/*' |sort > po/POTFILES.in ++find . -iname '*.[ch]' -not -ipath './grub-core/lib/libgcrypt-grub/*' -not -ipath './build-aux/*' -not -ipath './grub-core/lib/libgcrypt/src/misc.c' -not -ipath './grub-core/lib/libgcrypt/src/global.c' -not -ipath './grub-core/lib/libgcrypt/src/secmem.c' |sort > po/POTFILES.in + + autogen --version >/dev/null || exit 1 + +-- +1.8.2.1 + diff --git a/0436-tests-gettext_strings_test.in-A-test-to-check-for-st.patch b/0436-tests-gettext_strings_test.in-A-test-to-check-for-st.patch new file mode 100644 index 0000000..8ad1b54 --- /dev/null +++ b/0436-tests-gettext_strings_test.in-A-test-to-check-for-st.patch @@ -0,0 +1,5070 @@ +From 15b71387d288ad65299daf19a43c6f0d3de1305b Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 11:47:30 +0200 +Subject: [PATCH 436/471] * tests/gettext_strings_test.in: A test to + check for strings not marked for translation. + +--- + ChangeLog | 5 + + Makefile.util.def | 6 + + po/exclude.pot | 4988 +++++++++++++++++++++++++++++++++++++++++ + tests/gettext_strings_test.in | 20 + + 4 files changed, 5019 insertions(+) + create mode 100644 po/exclude.pot + create mode 100644 tests/gettext_strings_test.in + +diff --git a/ChangeLog b/ChangeLog +index d6a68b7..67b4c6f 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-07 Vladimir Serbinenko + ++ * tests/gettext_strings_test.in: A test to check for strings not ++ marked for translation. ++ ++2013-05-07 Vladimir Serbinenko ++ + * autogen.sh: Exclude unused libgcrypt files from translation. + + 2013-05-07 Vladimir Serbinenko +diff --git a/Makefile.util.def b/Makefile.util.def +index 086ca12..5888314 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -547,6 +547,12 @@ script = { + + script = { + testcase; ++ name = gettext_strings_test; ++ common = tests/gettext_strings_test.in; ++}; ++ ++script = { ++ testcase; + name = pata_test; + common = tests/pata_test.in; + }; +diff --git a/po/exclude.pot b/po/exclude.pot +new file mode 100644 +index 0000000..341c45e +--- /dev/null ++++ b/po/exclude.pot +@@ -0,0 +1,4988 @@ ++# SOME DESCRIPTIVE TITLE. ++# Copyright (C) YEAR Free Software Foundation, Inc. ++# FIRST AUTHOR , YEAR. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"PO-Revision-Date: 2013-05-07 00:07+0200\n" ++"Last-Translator: FULL NAME \n" ++"Language-Team: LANGUAGE \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=CHARSET\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++msgid "GPLv3+" ++msgstr "" ++ ++#: grub-core/bus/usb/serial/common.c:62 ++#, c-format ++msgid "usb%d" ++msgstr "" ++ ++#: grub-core/commands/acpi.c:373 ++msgid "RSDT" ++msgstr "" ++ ++#: grub-core/commands/acpi.c:427 ++msgid "XSDT" ++msgstr "" ++ ++#: grub-core/commands/acpi.c:539 ++msgid "facp" ++msgstr "" ++ ++#: grub-core/commands/acpi.c:558 grub-core/commands/acpi.c:559 ++msgid "dsdt" ++msgstr "" ++ ++#: grub-core/commands/acpi.c:678 grub-core/commands/acpihalt.c:371 ++msgid "DSDT" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:218 ++msgid "_S5_" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:218 ++msgid "\\_S5_" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:302 grub-core/kern/emu/hostfs.c:112 ++#: grub-core/lib/reed_solomon.c:428 grub-core/lib/reed_solomon.c:445 ++#: util/grub-editenv.c:151 util/grub-editenv.c:156 util/grub-fstest.c:309 ++#: util/grub-fstest.c:561 util/grub-mkpasswd-pbkdf2.c:176 ++#: util/grub-mount.c:477 util/grub-setup.c:734 util/misc.c:111 util/misc.c:135 ++msgid "rb" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:359 include/grub/acpi.h:61 ++msgid "FACP" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:376 ++msgid "SSDT" ++msgstr "" ++ ++#: grub-core/commands/arc/lsdev.c:33 grub-core/commands/cacheinfo.c:43 ++#: grub-core/commands/xnu_uuid.c:90 grub-core/font/font_cmd.c:56 ++#: grub-core/fs/zfs/zfsinfo.c:402 grub-core/gettext/gettext.c:492 ++#: grub-core/hello/hello.c:36 grub-core/lib/arg.c:147 ++#: grub-core/lib/hexdump.c:63 grub-core/loader/ia64/efi/linux.c:123 ++#: grub-core/loader/ia64/efi/linux.c:130 grub-core/net/bootp.c:381 ++#: grub-core/net/bootp.c:417 grub-core/net/dns.c:628 grub-core/net/dns.c:644 ++#: grub-core/net/net.c:1086 util/grub-mkfont.c:770 util/grub-mkimage.c:1967 ++#: util/grub-mkrelpath.c:99 util/ieee1275/grub-ofpathname.c:46 ++#: util/ieee1275/grub-ofpathname.c:51 ++#, c-format ++msgid "%s\n" ++msgstr "" ++ ++#: grub-core/commands/blocklist.c:46 grub-core/commands/minicmd.c:162 ++#: grub-core/disk/geli.c:427 grub-core/disk/luks.c:334 ++#: grub-core/disk/lvm.c:496 grub-core/normal/completion.c:172 ++msgid "," ++msgstr "" ++ ++#: grub-core/commands/blocklist.c:48 ++#, c-format ++msgid "%llu" ++msgstr "" ++ ++#: grub-core/commands/blocklist.c:50 ++#, c-format ++msgid "+%u" ++msgstr "" ++ ++#: grub-core/commands/blocklist.c:52 ++#, c-format ++msgid "[%u-%u]" ++msgstr "" ++ ++#: grub-core/commands/cacheinfo.c:37 ++#, c-format ++msgid "(%lu.%lu%%)\n" ++msgstr "" ++ ++#: grub-core/commands/cat.c:66 grub-core/commands/minicmd.c:59 ++#: grub-core/commands/read.c:52 grub-core/normal/auth.c:188 ++#: util/spkmodem-recv.c:101 ++#, c-format ++msgid "%c" ++msgstr "" ++ ++msgid "\n" ++msgstr "" ++ ++#: grub-core/commands/cat.c:75 grub-core/commands/minicmd.c:63 ++#, c-format ++msgid "<%x>" ++msgstr "" ++ ++#: grub-core/commands/configfile.c:38 ++msgid "extract_entries_" ++msgstr "" ++ ++#: grub-core/commands/echo.c:116 grub-core/commands/parttool.c:131 ++#: grub-core/commands/videoinfo.c:54 grub-core/disk/cryptodisk.c:1029 ++#: grub-core/fs/zfs/zfsinfo.c:38 grub-core/kern/emu/misc.c:74 ++#: grub-core/kern/emu/misc.c:90 grub-core/kern/emu/misc.c:105 ++#: grub-core/lib/arg.c:145 grub-core/normal/cmdline.c:367 ++#: grub-core/normal/cmdline.c:474 grub-core/normal/completion.c:137 ++#: grub-core/normal/completion.c:348 grub-core/normal/completion.c:358 ++#: grub-core/normal/completion.c:364 grub-core/normal/completion.c:366 ++#: grub-core/normal/completion.c:380 grub-core/normal/completion.c:451 ++#: grub-core/normal/misc.c:97 grub-core/normal/misc.c:102 ++#: grub-core/normal/misc.c:130 grub-core/normal/misc.c:145 ++#: grub-core/script/execute.c:309 util/grub-probe.c:515 util/grub-probe.c:524 ++#: util/grub-probe.c:533 ++#, c-format ++msgid " " ++msgstr "" ++ ++#: grub-core/commands/efi/efifwsetup.c:41 ++#: grub-core/commands/efi/efifwsetup.c:47 ++msgid "OsIndications" ++msgstr "" ++ ++#: grub-core/commands/efi/efifwsetup.c:66 ++msgid "OsIndicationsSupported" ++msgstr "" ++ ++#: grub-core/commands/efi/fixvideo.c:39 ++msgid "Intel 945GM" ++msgstr "" ++ ++#: grub-core/commands/efi/fixvideo.c:40 ++msgid "Intel 965GM" ++msgstr "" ++ ++#: grub-core/commands/hashsum.c:46 grub-core/commands/verify.c:127 ++msgid "sha1" ++msgstr "" ++ ++#: grub-core/commands/hashsum.c:47 grub-core/commands/verify.c:126 ++msgid "md5" ++msgstr "" ++ ++#: grub-core/commands/hashsum.c:124 grub-core/commands/ls.c:125 ++#: util/grub-mount.c:304 util/misc.c:82 ++#, c-format ++msgid "%s/%s" ++msgstr "" ++ ++#: grub-core/commands/hashsum.c:249 grub-core/disk/geli.c:192 ++#: grub-core/loader/i386/xnu.c:767 util/grub-probe.c:721 ++#, c-format ++msgid "%02x" ++msgstr "" ++ ++#: grub-core/commands/hashsum.c:250 ++#, c-format ++msgid " %s\n" ++msgstr "" ++ ++#: grub-core/commands/help.c:51 ++#, c-format ++msgid "%s %s" ++msgstr "" ++ ++#: grub-core/commands/help.c:126 grub-core/normal/menu.c:682 ++#: grub-core/normal/menu.c:694 grub-core/normal/menu_entry.c:1128 ++msgid "" ++"\n" ++"\n" ++msgstr "" ++ ++#: grub-core/commands/help.c:132 ++#, c-format ++msgid "" ++"%s %s %s\n" ++"%s\n" ++msgstr "" ++ ++#: grub-core/commands/hexdump.c:53 ++msgid "(mem)" ++msgstr "" ++ ++#: grub-core/commands/i386/cmosdump.c:38 ++#, c-format ++msgid "%02x: " ++msgstr "" ++ ++#: grub-core/commands/i386/cmosdump.c:44 grub-core/commands/testload.c:129 ++#: grub-core/fs/reiserfs.c:306 grub-core/fs/reiserfs.c:334 ++#: grub-core/lib/hexdump.c:42 ++#, c-format ++msgid "%02x " ++msgstr "" ++ ++#: grub-core/commands/i386/cpuid.c:34 grub-core/efiemu/i386/coredetect.c:24 ++#: grub-core/efiemu/runtime/efiemu.c:187 grub-core/gdb/i386/idt.c:53 ++#: grub-core/loader/i386/xnu.c:145 grub-core/loader/i386/xnu.c:155 ++#: grub-core/video/i386/pc/vbe.c:63 grub-core/video/i386/pc/vbe.c:67 ++#: include/grub/i386/io.h:31 include/grub/i386/io.h:40 ++#: include/grub/i386/io.h:49 include/grub/i386/tsc.h:52 ++#: include/grub/i386/tsc.h:73 include/grub/i386/tsc.h:96 ++msgid "=a" ++msgstr "" ++ ++#: grub-core/commands/i386/cpuid.c:35 grub-core/efiemu/i386/coredetect.c:25 ++#: grub-core/net/tftp.c:347 grub-core/net/tftp.c:348 grub-core/net/tftp.c:349 ++#: grub-core/normal/menu.c:188 grub-core/script/execute.c:1051 ++#: grub-core/video/i386/pc/vbe.c:64 ++msgid "0" ++msgstr "" ++ ++#: grub-core/commands/i386/cpuid.c:76 grub-core/efiemu/i386/coredetect.c:41 ++msgid "i" ++msgstr "" ++ ++#: grub-core/commands/i386/cpuid.c:98 ++msgid "[-l]" ++msgstr "" ++ ++#: grub-core/commands/i386/pc/halt.c:118 ++msgid "[-n]" ++msgstr "" ++ ++#: grub-core/commands/iorw.c:50 ++msgid "in" ++msgstr "" ++ ++#: grub-core/commands/iorw.c:67 grub-core/commands/memrw.c:44 ++#: grub-core/commands/setpci.c:124 ++msgid "XXXXXXXX" ++msgstr "" ++ ++#: grub-core/commands/iorw.c:68 grub-core/commands/memrw.c:67 ++#: grub-core/commands/setpci.c:125 ++#, c-format ++msgid "%x" ++msgstr "" ++ ++#: grub-core/commands/iorw.c:72 grub-core/commands/memrw.c:71 ++#, c-format ++msgid "0x%x\n" ++msgstr "" ++ ++#: grub-core/commands/iorw.c:92 ++msgid "out" ++msgstr "" ++ ++#: grub-core/commands/keylayouts.c:214 ++#, c-format ++msgid "%s/layouts/%s.gkb" ++msgstr "" ++ ++#: grub-core/commands/keystatus.c:104 ++msgid "[--shift] [--ctrl] [--alt]" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:127 grub-core/commands/legacycfg.c:712 ++#: grub-core/commands/legacycfg.c:717 grub-core/commands/legacycfg.c:724 ++msgid "legacy" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:203 ++msgid "extract_legacy_entries_" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:204 ++msgid "legacy_" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:251 ++msgid "--no-mem-option" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:262 ++msgid "--type=linux" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:263 ++msgid "--type=biglinux" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:271 ++msgid "--type=multiboot" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:279 ++msgid "--type=freebsd" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:287 ++msgid "--type=openbsd" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:295 ++msgid "--type=netbsd" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:380 ++msgid "adXXXXXXXXXXXXsXXXXXXXXXXXXYYY" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:384 ++#, c-format ++msgid "ad%ds%d%c" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:387 ++#, c-format ++msgid "ad%ds%d" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:390 ++#, c-format ++msgid "ad%d" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:409 ++msgid "wdXXXXXXXXXXXXY" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:417 ++msgid "-r" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:424 ++#, c-format ++msgid "wd%d%c" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:512 grub-core/loader/multiboot.c:290 ++msgid "--nounzip" ++msgstr "" ++ ++#: grub-core/commands/legacycfg.c:645 ++msgid "--md5" ++msgstr "" ++ ++#: grub-core/commands/loadenv.c:154 grub-core/kern/corecmd.c:43 ++#: util/grub-editenv.c:190 ++#, c-format ++msgid "%s=%s\n" ++msgstr "" ++ ++#: grub-core/commands/ls.c:55 grub-core/kern/corecmd.c:95 ++#, c-format ++msgid "(%s) " ++msgstr "" ++ ++#: grub-core/commands/ls.c:75 grub-core/commands/terminal.c:55 ++#: grub-core/commands/terminal.c:59 grub-core/commands/terminal.c:78 ++#: grub-core/disk/cryptodisk.c:756 grub-core/disk/cryptodisk.c:758 ++#: grub-core/disk/cryptodisk.c:760 grub-core/disk/cryptodisk.c:762 ++#: grub-core/disk/cryptodisk.c:764 grub-core/disk/cryptodisk.c:766 ++#: grub-core/disk/cryptodisk.c:773 grub-core/disk/diskfilter.c:365 ++#: grub-core/net/net.c:1128 util/grub-probe.c:89 util/grub-probe.c:310 ++#, c-format ++msgid "%s " ++msgstr "" ++ ++#: grub-core/commands/ls.c:102 grub-core/kern/corecmd.c:105 ++#, c-format ++msgid "%s%s " ++msgstr "" ++ ++#: grub-core/commands/ls.c:102 grub-core/commands/ls.c:168 ++#: grub-core/commands/test.c:116 grub-core/commands/wildcard.c:451 ++#: grub-core/disk/ieee1275/ofdisk.c:240 grub-core/fs/iso9660.c:624 ++#: grub-core/fs/iso9660.c:640 grub-core/fs/zfs/zfs.c:2950 ++#: grub-core/gfxmenu/gui_string_util.c:129 ++#: grub-core/gfxmenu/gui_string_util.c:203 grub-core/kern/corecmd.c:105 ++#: grub-core/kern/emu/hostfs.c:53 grub-core/kern/fs.c:73 ++#: grub-core/kern/fs.c:97 grub-core/kern/ieee1275/cmain.c:65 ++#: grub-core/kern/ieee1275/mmap.c:35 grub-core/kern/ieee1275/openfw.c:156 ++#: grub-core/loader/xnu.c:241 grub-core/loader/xnu.c:252 ++#: grub-core/loader/xnu.c:1209 grub-core/normal/completion.c:312 ++#: include/grub/emu/misc.h:37 include/grub/emu/misc.h:39 ++#: util/grub-editenv.c:36 util/grub-fstest.c:288 util/grub-fstest.c:290 ++#: util/grub-mount.c:183 ++msgid "/" ++msgstr "" ++ ++#: grub-core/commands/ls.c:123 grub-core/commands/menuentry.c:100 ++#: grub-core/commands/wildcard.c:310 grub-core/kern/main.c:169 ++#: grub-core/kern/main.c:173 grub-core/net/drivers/ieee1275/ofnet.c:46 ++#: util/grub-menulst2cfg.c:106 ++#, c-format ++msgid "%s%s" ++msgstr "" ++ ++#: grub-core/commands/ls.c:142 ++#, c-format ++msgid "%-12llu" ++msgstr "" ++ ++#: grub-core/commands/ls.c:144 grub-core/commands/ls.c:150 ++#, c-format ++msgid "%-12s" ++msgstr "" ++ ++#: grub-core/commands/ls.c:168 ++#, c-format ++msgid "%s%s\n" ++msgstr "" ++ ++#: grub-core/commands/memrw.c:50 ++msgid "read_" ++msgstr "" ++ ++#: grub-core/commands/memrw.c:91 ++msgid "write_" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:59 ++msgid "f1" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:60 ++msgid "f2" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:61 ++msgid "f3" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:62 ++msgid "f4" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:63 ++msgid "f5" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:64 ++msgid "f6" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:65 ++msgid "f7" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:66 ++msgid "f8" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:67 ++msgid "f9" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:68 ++msgid "f10" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:69 ++msgid "f11" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:70 ++msgid "f12" ++msgstr "" ++ ++#: grub-core/commands/menuentry.c:247 ++msgid "'\\''" ++msgstr "" ++ ++#: grub-core/commands/nativedisk.c:37 ++msgid "ehcipata" ++msgstr "" ++ ++#: grub-core/commands/nativedisk.c:143 ++#, c-format ++msgid "(%s)/%s" ++msgstr "" ++ ++#: grub-core/commands/nativedisk.c:226 grub-core/commands/parttool.c:190 ++#: grub-core/efiemu/main.c:239 grub-core/kern/dl.c:721 ++#: grub-core/normal/autofs.c:73 grub-core/normal/completion.c:146 ++#: grub-core/normal/crypto.c:89 grub-core/normal/dyncmd.c:103 ++#: grub-core/normal/term.c:325 ++#, c-format ++msgid "%s/" ++msgstr "" ++ ++#: grub-core/commands/nativedisk.c:226 grub-core/commands/parttool.c:190 ++#: grub-core/efiemu/main.c:239 grub-core/kern/dl.c:721 ++#: grub-core/kern/main.c:186 grub-core/kern/main.c:187 ++#: grub-core/kern/main.c:188 grub-core/kern/main.c:189 ++#: grub-core/loader/xnu.c:949 grub-core/loader/xnu.c:1253 ++#: grub-core/loader/xnu.c:1259 grub-core/normal/autofs.c:73 ++#: grub-core/normal/crypto.c:89 grub-core/normal/dyncmd.c:103 ++#: grub-core/normal/term.c:325 util/grub-editenv.c:296 ++msgid "-" ++msgstr "" ++ ++#: grub-core/commands/nativedisk.c:226 grub-core/kern/dl.c:721 ++#, c-format ++msgid "/%s.mod" ++msgstr "" ++ ++#: grub-core/commands/parttool.c:34 grub-core/lib/pbkdf2.c:26 ++#: grub-core/parttool/msdospart.c:32 ++msgid "GPLv2+" ++msgstr "" ++ ++#: grub-core/commands/parttool.c:118 ++msgid "+/-" ++msgstr "" ++ ++#: grub-core/commands/parttool.c:191 ++msgid "/parttool.lst" ++msgstr "" ++ ++#: grub-core/commands/password_pbkdf2.c:95 ++#: grub-core/commands/password_pbkdf2.c:96 ++#: grub-core/commands/password_pbkdf2.c:99 ++msgid "grub.pbkdf2.sha512." ++msgstr "" ++ ++#: grub-core/commands/pcidump.c:65 ++#, c-format ++msgid "%08x " ++msgstr "" ++ ++#: grub-core/commands/search.c:80 grub-core/kern/main.c:198 ++#, c-format ++msgid "(%s)%s" ++msgstr "" ++ ++#: grub-core/commands/search.c:160 grub-core/normal/cmdline.c:204 ++#, c-format ++msgid " %s" ++msgstr "" ++ ++#: grub-core/commands/search.c:179 grub-core/disk/efi/efidisk.c:855 ++#: grub-core/kern/device.c:123 grub-core/normal/completion.c:114 ++#: util/grub-fstest.c:755 util/grub-mount.c:579 util/grub-probe.c:269 ++#, c-format ++msgid "%s,%s" ++msgstr "" ++ ++#: grub-core/commands/search_file.c:3 ++msgid "search.file" ++msgstr "" ++ ++#: grub-core/commands/search_label.c:3 ++msgid "search.fs_label" ++msgstr "" ++ ++#: grub-core/commands/search_uuid.c:3 ++msgid "search.fs_uuid" ++msgstr "" ++ ++#: grub-core/commands/search_wrap.c:164 ++msgid "--hint-" ++msgstr "" ++#: util/grub-mkpasswd-pbkdf2.c:146 ++#, c-format ++msgid "" ++"\n" ++"%s" ++msgstr "" ++ ++#: util/grub-mkpasswd-pbkdf2.c:176 ++msgid "/dev/urandom" ++msgstr "" ++ ++#: util/grub-mkpasswd-pbkdf2.c:223 util/grub-mkpasswd-pbkdf2.c:225 ++msgid "grub.pbkdf2.sha512.XXXXXXXXXXXXXXXXXXX.S.S" ++msgstr "" ++ ++#: util/grub-mkpasswd-pbkdf2.c:227 ++#, c-format ++msgid "grub.pbkdf2.sha512.%d.%s.%s" ++msgstr "" ++ ++#: util/grub-probe.c:250 ++#, c-format ++msgid "ata%d" ++msgstr "" ++ ++#: util/grub-probe.c:256 ++#, c-format ++msgid "ahci%d" ++msgstr "" ++ ++#: util/grub-probe.c:296 ++#, c-format ++msgid "lvm " ++msgstr "" ++ ++#: util/grub-probe.c:300 ++#, c-format ++msgid "ldm " ++msgstr "" ++ ++#: util/grub-probe.c:308 ++#, c-format ++msgid "diskfilter " ++msgstr "" ++ ++#: util/grub-probe.c:313 ++#, c-format ++msgid "raid5rec " ++msgstr "" ++ ++#: util/grub-probe.c:315 ++#, c-format ++msgid "raid6rec " ++msgstr "" ++ ++#: util/grub-probe.c:421 ++msgid "false\n" ++msgstr "" ++ ++#: util/grub-probe.c:429 ++msgid "true\n" ++msgstr "" ++ ++#: util/grub-probe.c:504 ++#, c-format ++msgid "--hint-ieee1275='" ++msgstr "" ++ ++#: util/grub-probe.c:513 ++#, c-format ++msgid "--hint-bios=" ++msgstr "" ++ ++#: util/grub-probe.c:522 ++#, c-format ++msgid "--hint-efi=" ++msgstr "" ++ ++#: util/grub-probe.c:531 ++#, c-format ++msgid "--hint-baremetal=" ++msgstr "" ++ ++#: util/grub-probe.c:542 ++#, c-format ++msgid "--hint='" ++msgstr "" ++ ++#: util/grub-probe.c:740 ++msgid "" ++"(fs|fs_uuid|fs_label|drive|device|partmap|abstraction|cryptodisk_uuid|" ++"msdos_parttype)" ++msgstr "" ++ ++#: util/grub-probe.c:791 ++msgid "fs_uuid" ++msgstr "" ++ ++#: util/grub-probe.c:793 ++msgid "fs_label" ++msgstr "" ++ ++#: util/grub-probe.c:795 ++msgid "drive" ++msgstr "" ++ ++#: util/grub-probe.c:801 ++msgid "abstraction" ++msgstr "" ++ ++#: util/grub-probe.c:803 ++msgid "cryptodisk_uuid" ++msgstr "" ++ ++#: util/grub-probe.c:805 ++msgid "msdos_parttype" ++msgstr "" ++ ++#: util/grub-probe.c:807 ++msgid "hints_string" ++msgstr "" ++ ++#: util/grub-probe.c:809 ++msgid "bios_hints" ++msgstr "" ++ ++#: util/grub-probe.c:811 ++msgid "ieee1275_hints" ++msgstr "" ++ ++#: util/grub-probe.c:813 ++msgid "baremetal_hints" ++msgstr "" ++ ++#: util/grub-probe.c:815 ++msgid "efi_hints" ++msgstr "" ++ ++#: util/grub-probe.c:817 ++msgid "arc_hints" ++msgstr "" ++ ++#: util/grub-probe.c:819 ++msgid "compatibility_hint" ++msgstr "" ++ ++#: util/grub-probe.c:821 ++msgid "zero_check" ++msgstr "" ++ ++#: util/grub-render-label.c:273 ++#, c-format ++msgid "(host)/%s" ++msgstr "" ++ ++#: util/grub-setup.c:87 ++msgid "core.img" ++msgstr "" ++ ++#: util/grub-setup.c:147 util/grub-setup.c:173 ++#, c-format ++msgid ",%u,%u>" ++msgstr "" ++ ++#: util/grub-setup.c:665 ++msgid "dump.img" ++msgstr "" ++ ++#: util/grub-setup.c:672 ++msgid "dump2.img" ++msgstr "" ++ ++#: util/grub-setup.c:896 ++msgid "r+b" ++msgstr "" ++ ++#: util/ieee1275/grub-ofpathname.c:44 ++msgid "--version" ++msgstr "" ++ ++#: util/resolve.c:148 util/resolve.c:170 ++msgid ".mod" ++msgstr "" ++ ++#: util/resolve.c:175 ++#, c-format ++msgid "%s.mod" ++msgstr "" ++ ++#: util/spkmodem-recv.c:90 ++#, c-format ++msgid "%d %d %d @%d\n" ++msgstr "" ++ ++#: util/spkmodem-recv.c:99 ++#, c-format ++msgid "<%c, %x>" ++msgstr "" ++ ++#: util/grub-mkimage.c:764 ++msgid "moddep.lst" ++msgstr "" ++ ++#: util/grub-mkimage.c:766 ++msgid "kernel.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:973 ++msgid "xz_decompress.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:976 ++msgid "lzma_decompress.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:979 ++msgid "none_decompress.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:1079 ++msgid "pxeboot.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:1101 util/grub-mkimage.c:1380 ++msgid "diskboot.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:1158 ++msgid "PE" ++msgstr "" ++ ++#: util/grub-mkimage.c:1263 ++msgid ".data" ++msgstr "" ++ ++#: util/grub-mkimage.c:1275 ++msgid ".bss" ++msgstr "" ++ ++#: util/grub-mkimage.c:1289 ++msgid "mods" ++msgstr "" ++ ++#: util/grub-mkimage.c:1300 ++msgid ".reloc" ++msgstr "" ++ ++#: util/grub-mkimage.c:1321 util/grub-setup.c:86 ++msgid "boot.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:1435 ++msgid "fwstart_fuloong2f.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:1440 ++msgid "fwstart.img" ++msgstr "" ++ ++#: util/grub-mkimage.c:1766 ++msgid "(xz|none|auto)" ++msgstr "" ++ ++#: util/grub-mkimage.c:1798 ++#, c-format ++msgid "" ++"%s\n" ++"%s %s" ++msgstr "" ++ ++ ++#: util/grub-mkimage.c:113 util/grub-mkimage.c:114 ++msgid "i386-coreboot" ++msgstr "" ++ ++#: util/grub-mkimage.c:132 util/grub-mkimage.c:133 ++msgid "i386-multiboot" ++msgstr "" ++ ++#: util/grub-mkimage.c:151 util/grub-mkimage.c:152 util/grub-mkimage.c:167 ++msgid "i386-pc" ++msgstr "" ++ ++#: util/grub-mkimage.c:168 ++msgid "i386-pc-pxe" ++msgstr "" ++ ++#: util/grub-mkimage.c:183 util/grub-mkimage.c:184 ++msgid "i386-efi" ++msgstr "" ++ ++#: util/grub-mkimage.c:199 util/grub-mkimage.c:200 ++msgid "i386-ieee1275" ++msgstr "" ++ ++#: util/grub-mkimage.c:218 util/grub-mkimage.c:219 ++msgid "i386-qemu" ++msgstr "" ++ ++#: util/grub-mkimage.c:233 util/grub-mkimage.c:234 ++msgid "x86_64-efi" ++msgstr "" ++ ++#: util/grub-mkimage.c:249 util/grub-mkimage.c:267 util/grub-mkimage.c:285 ++msgid "mipsel-loongson" ++msgstr "" ++ ++#: util/grub-mkimage.c:250 ++msgid "mipsel-yeeloong-flash" ++msgstr "" ++ ++#: util/grub-mkimage.c:268 ++msgid "mipsel-fuloong2f-flash" ++msgstr "" ++ ++#: util/grub-mkimage.c:286 ++msgid "mipsel-loongson-elf" ++msgstr "" ++ ++#: util/grub-mkimage.c:286 ++msgid "mipsel-yeeloong-elf" ++msgstr "" ++ ++#: util/grub-mkimage.c:287 ++msgid "mipsel-fuloong2f-elf" ++msgstr "" ++ ++#: util/grub-mkimage.c:287 ++msgid "mipsel-fuloong2e-elf" ++msgstr "" ++ ++#: util/grub-mkimage.c:288 ++msgid "mipsel-fuloong-elf" ++msgstr "" ++ ++#: util/grub-mkimage.c:305 util/grub-mkimage.c:306 ++msgid "powerpc-ieee1275" ++msgstr "" ++ ++#: util/grub-mkimage.c:324 util/grub-mkimage.c:339 util/grub-mkimage.c:354 ++msgid "sparc64-ieee1275" ++msgstr "" ++ ++#: util/grub-mkimage.c:325 ++msgid "sparc64-ieee1275-raw" ++msgstr "" ++ ++#: util/grub-mkimage.c:340 ++msgid "sparc64-ieee1275-cdcore" ++msgstr "" ++ ++#: util/grub-mkimage.c:355 ++msgid "sparc64-ieee1275-aout" ++msgstr "" ++ ++#: util/grub-mkimage.c:369 util/grub-mkimage.c:370 ++msgid "ia64-efi" ++msgstr "" ++ ++#: util/grub-mkimage.c:385 util/grub-mkimage.c:386 ++msgid "mips-arc" ++msgstr "" ++ ++#: util/grub-mkimage.c:403 util/grub-mkimage.c:404 ++msgid "mipsel-arc" ++msgstr "" ++ ++#: util/grub-mkimage.c:421 util/grub-mkimage.c:457 ++msgid "mipsel-qemu_mips" ++msgstr "" ++ ++#: util/grub-mkimage.c:422 ++msgid "mipsel-qemu_mips-elf" ++msgstr "" ++ ++#: util/grub-mkimage.c:439 util/grub-mkimage.c:475 ++msgid "mips-qemu_mips" ++msgstr "" ++ ++#: util/grub-mkimage.c:440 ++msgid "mips-qemu_mips-flash" ++msgstr "" ++ ++#: util/grub-mkimage.c:458 ++msgid "mipsel-qemu_mips-flash" ++msgstr "" ++ ++#: util/grub-mkimage.c:476 ++msgid "mips-qemu_mips-elf" ++msgstr "" ++ ++ ++#: grub-core/commands/terminal.c:85 grub-core/commands/terminal.c:145 ++msgid "--append" ++msgstr "" ++ ++#: grub-core/commands/terminal.c:86 grub-core/commands/terminal.c:166 ++msgid "--remove" ++msgstr "" ++ ++#: grub-core/commands/terminal.c:99 grub-core/commands/terminal.c:105 ++#: grub-core/commands/terminal.c:116 grub-core/commands/terminal.c:151 ++#: grub-core/commands/terminal.c:172 grub-core/commands/terminal.c:192 ++#: grub-core/commands/terminal.c:212 grub-core/loader/i386/linux.c:552 ++msgid "ofconsole" ++msgstr "" ++ ++#: grub-core/commands/terminal.c:129 grub-core/commands/terminal.c:130 ++msgid "serial_usb" ++msgstr "" ++ ++#: grub-core/commands/test.c:168 ++msgid "=" ++msgstr "" ++ ++#: grub-core/commands/test.c:169 ++msgid "==" ++msgstr "" ++ ++#: grub-core/commands/test.c:177 ++msgid "!=" ++msgstr "" ++ ++#: grub-core/commands/test.c:186 grub-core/fs/reiserfs.c:569 ++#: grub-core/kern/emu/argp_common.c:38 util/grub-editenv.c:66 ++msgid "<" ++msgstr "" ++ ++#: grub-core/commands/test.c:194 ++msgid "<=" ++msgstr "" ++ ++#: grub-core/commands/test.c:210 ++msgid ">=" ++msgstr "" ++ ++#: grub-core/commands/test.c:219 ++msgid "-eq" ++msgstr "" ++ ++#: grub-core/commands/test.c:227 ++msgid "-ge" ++msgstr "" ++ ++#: grub-core/commands/test.c:235 ++msgid "-gt" ++msgstr "" ++ ++#: grub-core/commands/test.c:243 ++msgid "-le" ++msgstr "" ++ ++#: grub-core/commands/test.c:251 ++msgid "-lt" ++msgstr "" ++ ++#: grub-core/commands/test.c:259 ++msgid "-ne" ++msgstr "" ++ ++#: grub-core/commands/test.c:269 grub-core/commands/test.c:283 ++msgid "-pgt" ++msgstr "" ++ ++#: grub-core/commands/test.c:270 ++msgid "-plt" ++msgstr "" ++ ++#: grub-core/commands/test.c:295 grub-core/commands/test.c:311 ++msgid "-nt" ++msgstr "" ++ ++#: grub-core/commands/test.c:296 ++msgid "-ot" ++msgstr "" ++ ++#: grub-core/commands/test.c:330 util/grub-fstest.c:492 util/grub-mount.c:422 ++msgid "-d" ++msgstr "" ++ ++#: grub-core/commands/test.c:338 ++msgid "-e" ++msgstr "" ++ ++#: grub-core/commands/test.c:346 ++msgid "-f" ++msgstr "" ++ ++#: grub-core/commands/test.c:355 util/grub-mount.c:552 ++msgid "-s" ++msgstr "" ++ ++#: grub-core/commands/test.c:369 ++msgid "-n" ++msgstr "" ++ ++#: grub-core/commands/test.c:376 ++msgid "-z" ++msgstr "" ++ ++#: grub-core/commands/test.c:387 grub-core/normal/completion.c:120 ++#: grub-core/normal/completion.c:178 util/grub-mkimagexx.c:349 ++msgid ")" ++msgstr "" ++ ++#: grub-core/commands/test.c:393 ++msgid "(" ++msgstr "" ++ ++#: grub-core/commands/test.c:400 grub-core/script/execute.c:917 ++msgid "!" ++msgstr "" ++ ++#: grub-core/commands/test.c:406 util/grub-fstest.c:408 util/grub-mount.c:383 ++msgid "-a" ++msgstr "" ++ ++#: grub-core/commands/test.c:411 ++msgid "-o" ++msgstr "" ++ ++#: grub-core/commands/test.c:432 ++msgid "]" ++msgstr "" ++ ++#: grub-core/commands/verify.c:128 ++msgid "ripemd160" ++msgstr "" ++ ++#: grub-core/commands/verify.c:130 ++msgid "sha384" ++msgstr "" ++ ++#: grub-core/commands/verify.c:132 ++msgid "sha224" ++msgstr "" ++ ++#: grub-core/commands/verify.c:142 grub-core/commands/verify.c:143 ++msgid "rsa" ++msgstr "" ++ ++#: grub-core/commands/verify.c:144 ++msgid "dsa" ++msgstr "" ++ ++#: grub-core/commands/verify.c:258 ++msgid "™" ++msgstr "" ++ ++#: grub-core/commands/verify.c:531 ++msgid "gcry_dsa" ++msgstr "" ++ ++#: grub-core/commands/verify.c:587 ++#, c-format ++msgid "%02x%02x " ++msgstr "" ++ ++#: grub-core/commands/verify.c:696 ++msgid "verified_read" ++msgstr "" ++ ++#: grub-core/commands/verify.c:714 grub-core/commands/verify.c:718 ++msgid ".sig" ++msgstr "" ++ ++#: grub-core/commands/verify.c:771 grub-core/commands/verify.c:836 ++msgid "enforce" ++msgstr "" ++ ++#: grub-core/commands/verify.c:771 grub-core/commands/verify.c:836 ++#: grub-core/term/serial.c:217 ++msgid "no" ++msgstr "" ++ ++#: grub-core/commands/videoinfo.c:48 ++msgid " " ++msgstr "" ++ ++#: grub-core/commands/videoinfo.c:52 grub-core/script/execute.c:254 ++#: grub-core/script/execute.c:296 ++msgid "*" ++msgstr "" ++ ++#: grub-core/commands/videoinfo.c:55 ++#, c-format ++msgid " 0x%03x " ++msgstr "" ++ ++#: grub-core/commands/videoinfo.c:57 ++#, c-format ++msgid "%4d x %4d x %2d (%4d) " ++msgstr "" ++ ++#: grub-core/commands/videotest.c:56 grub-core/loader/i386/linux.c:48 ++#: grub-core/loader/i386/xnu.c:41 grub-core/loader/multiboot.c:57 ++#: grub-core/loader/multiboot.c:212 grub-core/term/gfxterm.c:36 ++#: grub-core/video/video.c:437 util/grub-mkimage.c:1907 ++msgid "auto" ++msgstr "" ++ ++#: grub-core/commands/videotest.c:82 grub-core/commands/videotest.c:83 ++#: grub-core/commands/videotest.c:84 grub-core/gfxmenu/gui_label.c:261 ++#: grub-core/gfxmenu/gui_list.c:594 grub-core/gfxmenu/gui_progress_bar.c:391 ++#: grub-core/gfxmenu/view.c:74 ++msgid "Unknown Regular 16" ++msgstr "" ++ ++#: grub-core/commands/videotest.c:85 ++msgid "Fixed 20" ++msgstr "" ++ ++#: grub-core/commands/wildcard.c:234 util/grub-probe.c:387 ++#, c-format ++msgid "(%s)" ++msgstr "" ++ ++#: grub-core/commands/wildcard.c:301 grub-core/fs/affs.c:421 ++#: grub-core/fs/hfsplus.c:829 grub-core/fs/iso9660.c:557 ++#: grub-core/fs/iso9660.c:731 grub-core/fs/reiserfs.c:938 ++#: grub-core/fs/squash4.c:536 grub-core/fs/udf.c:886 grub-core/fs/xfs.c:522 ++#: grub-core/gfxmenu/gui_string_util.c:98 grub-core/normal/completion.c:142 ++#: util/grub-fstest.c:286 ++msgid ".." ++msgstr "" ++ ++#: grub-core/commands/xnu_uuid.c:51 ++msgid "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ++msgstr "" ++ ++#: grub-core/commands/xnu_uuid.c:59 util/grub-fstest.c:463 ++msgid "-l" ++msgstr "" ++ ++#: grub-core/commands/xnu_uuid.c:75 grub-core/fs/jfs.c:924 ++#: grub-core/fs/nilfs2.c:1135 ++#, c-format ++msgid "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x" ++msgstr "" ++ ++#: grub-core/disk/ahci.c:968 ++msgid ", %x, %x (%" ++msgstr "" ++ ++#: grub-core/disk/ahci.c:969 grub-core/fs/btrfs.c:720 ++#: grub-core/fs/zfs/zfs.c:1307 ++msgid ")\n" ++msgstr "" ++ ++#: grub-core/disk/arc/arcdisk.c:117 ++msgid "partition(0)" ++msgstr "" ++ ++#: grub-core/disk/arc/arcdisk.c:119 ++msgid "partition(10)" ++msgstr "" ++ ++#: grub-core/disk/arc/arcdisk.c:166 ++msgid "arc/" ++msgstr "" ++ ++#: grub-core/disk/ata.c:426 grub-core/disk/scsi.c:445 ++#: grub-core/loader/xnu.c:576 ++#, c-format ++msgid "%s%d" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:467 ++#, c-format ++msgid "crypto%lu" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:483 grub-core/disk/cryptodisk.c:486 ++msgid "cryptouuid/" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:753 ++#, c-format ++msgid "cryptodisk %s " ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1006 grub-core/disk/cryptodisk.c:1026 ++msgid "luks_mount " ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1037 ++msgid "-ecb" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1040 ++msgid "-cbc" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1043 ++msgid "-pcbc" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1046 ++msgid "-xts" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1049 ++msgid "-lrw" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1056 ++msgid "-null" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1059 ++msgid "-plain" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1062 ++msgid "-plain64" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1065 ++msgid "-benbi" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1068 ++msgid "-essiv:" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:1089 grub-core/disk/cryptodisk.c:1101 ++msgid "luks_script" ++msgstr "" ++ ++#: grub-core/disk/diskfilter.c:118 grub-core/disk/diskfilter.c:431 ++msgid "md" ++msgstr "" ++ ++#: grub-core/disk/diskfilter.c:119 grub-core/disk/diskfilter.c:432 ++#: grub-core/disk/lvm.c:369 grub-core/disk/lvm.c:374 grub-core/disk/lvm.c:375 ++#: util/grub-probe.c:295 ++msgid "lvm/" ++msgstr "" ++ ++#: grub-core/disk/diskfilter.c:120 grub-core/disk/diskfilter.c:433 ++#: util/grub-probe.c:299 ++msgid "ldm/" ++msgstr "" ++ ++#: grub-core/disk/diskfilter.c:396 grub-core/disk/diskfilter.c:398 ++msgid "mduuid/" ++msgstr "" ++ ++#: grub-core/disk/diskfilter.c:688 ++msgid "raid6rec" ++msgstr "" ++ ++#: grub-core/disk/diskfilter.c:698 ++msgid "raid5rec" ++msgstr "" ++ ++#: grub-core/disk/diskfilter.c:892 ++#, c-format ++msgid "%s_%d" ++msgstr "" ++ ++#: grub-core/disk/diskfilter.c:978 ++#, c-format ++msgid "md/%s" ++msgstr "" ++ ++#: grub-core/disk/dmraid_nvidia.c:173 ++msgid "dmraid_nv" ++msgstr "" ++ ++#: grub-core/disk/efi/efidisk.c:419 grub-core/disk/i386/pc/biosdisk.c:284 ++#: util/grub-probe.c:192 util/grub-probe.c:221 ++#, c-format ++msgid "hd%d" ++msgstr "" ++ ++#: grub-core/disk/efi/efidisk.c:428 grub-core/disk/i386/pc/biosdisk.c:284 ++#: util/grub-probe.c:198 util/grub-probe.c:227 ++#, c-format ++msgid "fd%d" ++msgstr "" ++ ++#: grub-core/disk/efi/efidisk.c:436 ++#, c-format ++msgid "cd%d" ++msgstr "" ++ ++#: grub-core/disk/efi/efidisk.c:718 ++msgid "XdXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/disk/efi/efidisk.c:729 ++#, c-format ++msgid "d%d" ++msgstr "" ++ ++#: grub-core/disk/geli.c:103 ++msgid "GEOM::ELI" ++msgstr "" ++ ++#: grub-core/disk/geli.c:127 ++msgid "des" ++msgstr "" ++ ++#: grub-core/disk/geli.c:128 ++msgid "3des" ++msgstr "" ++ ++#: grub-core/disk/geli.c:129 ++msgid "blowfish" ++msgstr "" ++ ++#: grub-core/disk/geli.c:130 ++msgid "cast5" ++msgstr "" ++ ++#: grub-core/disk/geli.c:132 grub-core/disk/geli.c:135 ++msgid "aes" ++msgstr "" ++ ++#: grub-core/disk/geli.c:134 ++msgid "camellia128" ++msgstr "" ++ ++#: grub-core/disk/i386/pc/biosdisk.c:281 ++msgid "cd" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/nand.c:84 grub-core/disk/ieee1275/nand.c:85 ++msgid "nand/" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/nand.c:105 grub-core/disk/ieee1275/ofdisk.c:597 ++msgid "block-size" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/nand.c:173 ++msgid "pio-read" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/ofdisk.c:162 ++msgid "vscsi" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/ofdisk.c:182 ++msgid "vscsi-report-luns" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/ofdisk.c:205 ++msgid "/disk@%" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/ofdisk.c:215 grub-core/disk/ieee1275/ofdisk.c:235 ++#: grub-core/disk/ieee1275/ofdisk.c:370 grub-core/kern/ieee1275/openfw.c:422 ++msgid "block" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/ofdisk.c:281 ++msgid "sdmmc" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/ofdisk.c:292 grub-core/disk/ieee1275/ofdisk.c:295 ++#: grub-core/disk/ieee1275/ofdisk.c:347 grub-core/disk/ieee1275/ofdisk.c:350 ++#: grub-core/kern/ieee1275/openfw.c:482 grub-core/kern/ieee1275/openfw.c:492 ++#: grub-core/term/ieee1275/serial.c:233 grub-core/term/ieee1275/serial.c:238 ++#: grub-core/term/serial.c:156 grub-core/term/serial.c:158 ++#: util/grub-probe.c:500 util/grub-probe.c:502 util/grub-probe.c:617 ++#: util/grub-probe.c:619 ++msgid "ieee1275/" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/ofdisk.c:541 grub-core/kern/ieee1275/init.c:115 ++#: grub-core/net/drivers/ieee1275/ofnet.c:207 ++msgid "network" ++msgstr "" ++ ++#: grub-core/disk/ldm.c:53 ++msgid "VBLK" ++msgstr "" ++ ++#: grub-core/disk/ldm.c:89 ++msgid "PRIVHEAD" ++msgstr "" ++ ++#: grub-core/disk/ldm.c:362 ++#, c-format ++msgid "ldm/%s/%s" ++msgstr "" ++ ++#: grub-core/disk/ldm.c:1004 ++msgid "Volume5" ++msgstr "" ++ ++#: grub-core/disk/luks.c:40 ++msgid "LUKSº¾" ++msgstr "" ++ ++#: grub-core/disk/luks.c:150 ++msgid "ecb" ++msgstr "" ++ ++#: grub-core/disk/luks.c:156 grub-core/disk/luks.c:218 ++msgid "plain" ++msgstr "" ++ ++#: grub-core/disk/luks.c:162 grub-core/disk/luks.c:165 ++msgid "cbc-" ++msgstr "" ++ ++#: grub-core/disk/luks.c:167 grub-core/disk/luks.c:170 ++msgid "pcbc-" ++msgstr "" ++ ++#: grub-core/disk/luks.c:172 grub-core/disk/luks.c:175 ++msgid "xts-" ++msgstr "" ++ ++#: grub-core/disk/luks.c:197 grub-core/disk/luks.c:200 ++msgid "lrw-" ++msgstr "" ++ ++#: grub-core/disk/luks.c:220 ++msgid "plain64" ++msgstr "" ++ ++#: grub-core/disk/luks.c:222 ++msgid "benbi" ++msgstr "" ++ ++#: grub-core/disk/luks.c:233 ++msgid "null" ++msgstr "" ++ ++#: grub-core/disk/luks.c:235 ++msgid "essiv:" ++msgstr "" ++ ++#: grub-core/disk/luks.c:40 ++msgid "LUKSº¾" ++msgstr "" ++ ++#: grub-core/disk/mdraid_linux.c:250 ++#, c-format ++msgid "md%d" ++msgstr "" ++ ++#: grub-core/disk/mdraid_linux.c:263 ++msgid "mdraid09_be" ++msgstr "" ++ ++#: grub-core/disk/memdisk.c:49 ++msgid "mdsk" ++msgstr "" ++ ++#: grub-core/disk/scsi.c:459 ++#, c-format ++msgid "%s%d%c" ++msgstr "" ++ ++#: grub-core/efiemu/i386/coredetect.c:43 grub-core/efiemu/i386/coredetect.c:50 ++#: grub-core/efiemu/i386/coredetect.c:55 grub-core/efiemu/i386/coredetect.c:58 ++msgid "efiemu32.o" ++msgstr "" ++ ++#: grub-core/efiemu/i386/coredetect.c:58 ++msgid "efiemu64.o" ++msgstr "" ++ ++#: grub-core/efiemu/i386/pc/cfgtables.c:63 ++msgid "_SM_" ++msgstr "" ++ ++#: grub-core/efiemu/loadcore.c:166 grub-core/efiemu/runtime/efiemu.c:52 ++msgid ".text-physical" ++msgstr "" ++ ++#: grub-core/efiemu/main.c:239 ++#, c-format ++msgid "/%s" ++msgstr "" ++ ++#: grub-core/efiemu/pnvram.c:129 grub-core/efiemu/pnvram.c:130 ++#: grub-core/efiemu/pnvram.c:133 ++msgid "EfiEmu.pnvram." ++msgstr "" ++ ++#: grub-core/efiemu/runtime/efiemu.c:50 ++msgid "_text-physical, _text-physical" ++msgstr "" ++ ++#: grub-core/efiemu/runtime/efiemu.c:116 ++msgid "EFIEMULOG" ++msgstr "" ++ ++#: grub-core/fs/affs.c:205 ++msgid "DOS" ++msgstr "" ++ ++#: grub-core/fs/bfs.c:1096 ++msgid "be:volume_id" ++msgstr "" ++ ++#: grub-core/fs/bfs.c:1099 ++msgid "%016" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:34 ++msgid "_BHRfS_M" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:414 grub-core/fs/btrfs.c:446 grub-core/fs/btrfs.c:499 ++msgid " %x %" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:663 grub-core/loader/i386/pc/plan9.c:211 ++msgid " %" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:663 ++msgid " \n" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:718 grub-core/fs/btrfs.c:813 grub-core/fs/btrfs.c:1074 ++msgid "+0x%" ++msgstr "" ++ ++#: grub-core/fs/cpio.c:36 ++msgid "070707" ++msgstr "" ++ ++#: grub-core/fs/cpio.c:53 grub-core/loader/linux.c:66 ++msgid "070701" ++msgstr "" ++ ++#: grub-core/fs/cpio.c:54 ++msgid "070702" ++msgstr "" ++ ++#: grub-core/fs/cpio.c:76 ++msgid "qÇ" ++msgstr "" ++ ++#: grub-core/fs/cpio.c:78 ++msgid "Çq" ++msgstr "" ++ ++#: grub-core/fs/cpio.c:96 ++msgid "ustar" ++msgstr "" ++ ++#: grub-core/fs/cpio.c:246 grub-core/loader/linux.c:193 ++#: grub-core/loader/linux.c:214 grub-core/loader/linux.c:268 ++#: grub-core/loader/linux.c:290 ++msgid "TRAILER!!!" ++msgstr "" ++ ++#: grub-core/fs/fat.c:245 ++msgid "EXFAT " ++msgstr "" ++ ++#: grub-core/fs/fat.c:1164 ++#, c-format ++msgid "%04x-%04x" ++msgstr "" ++ ++#: grub-core/fs/hfsplus.c:1145 grub-core/fs/ntfs.c:1233 ++#: grub-core/fs/zfs/zfs.c:3484 ++#, c-format ++msgid "%016llx" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:287 ++msgid "ST" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:291 ++msgid "CE" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:352 ++msgid "ER" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:402 ++msgid "SP" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:458 grub-core/fs/udf.c:96 ++msgid "CD001" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:549 ++msgid "NM" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:586 ++msgid "PX" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:608 ++msgid "SL" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:632 ++msgid "./" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:636 ++msgid "../" ++msgstr "" ++ ++#: grub-core/fs/jfs.c:364 ++msgid "JFS1" ++msgstr "" ++ ++#: grub-core/fs/minix.c:670 ++msgid "minix3_be" ++msgstr "" ++ ++#: grub-core/fs/minix.c:672 ++msgid "minix2_be" ++msgstr "" ++ ++#: grub-core/fs/minix.c:674 ++msgid "minix_be" ++msgstr "" ++ ++#: grub-core/fs/ntfs.c:483 ++msgid "ntfscomp" ++msgstr "" ++ ++#: grub-core/fs/ntfs.c:757 ++msgid "/??/" ++msgstr "" ++ ++#: grub-core/fs/ntfs.c:894 ++msgid "INDX" ++msgstr "" ++ ++#: grub-core/fs/ntfs.c:938 grub-core/loader/i386/pc/chainloader.c:93 ++msgid "NTFS" ++msgstr "" ++ ++#: grub-core/fs/ntfs.c:1167 ++msgid "/$Volume" ++msgstr "" ++ ++#: grub-core/fs/reiserfs.c:57 ++msgid "ReIsEr" ++msgstr "" ++ ++#: grub-core/fs/reiserfs.c:58 ++msgid "ReIsErLB" ++msgstr "" ++ ++#: grub-core/fs/romfs.c:32 ++msgid "-rom1fs-" ++msgstr "" ++ ++#: grub-core/fs/sfs.c:377 ++msgid "SFS" ++msgstr "" ++ ++#: grub-core/fs/udf.c:94 ++msgid "BEA01" ++msgstr "" ++ ++#: grub-core/fs/udf.c:95 ++msgid "BOOT2" ++msgstr "" ++ ++#: grub-core/fs/udf.c:97 ++msgid "CDW02" ++msgstr "" ++ ++#: grub-core/fs/udf.c:98 ++msgid "NSR02" ++msgstr "" ++ ++#: grub-core/fs/udf.c:99 ++msgid "NSR03" ++msgstr "" ++ ++#: grub-core/fs/udf.c:100 ++msgid "TEA01" ++msgstr "" ++ ++#: grub-core/fs/ufs.c:798 ++#, c-format ++msgid "%08x%08x" ++msgstr "" ++ ++#: grub-core/fs/ufs.c:847 ++msgid "ufs1_be" ++msgstr "" ++ ++#: grub-core/fs/xfs.c:271 ++msgid "IN" ++msgstr "" ++ ++#: grub-core/fs/xfs.c:325 ++msgid "BMAP" ++msgstr "" ++ ++#: grub-core/fs/xfs.c:674 ++msgid "XFSB" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:60 ++msgid "bootfs" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:318 grub-core/fs/zfs/zfs.c:367 ++#: grub-core/gfxmenu/gui_list.c:432 grub-core/gfxmenu/gui_list.c:443 ++msgid "inherit" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:319 grub-core/fs/zfs/zfs.c:368 ++msgid "on" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:320 grub-core/fs/zfs/zfs.c:369 ++#: grub-core/loader/ia64/efi/linux.c:429 ++msgid "off" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:321 ++msgid "lzjb" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:322 ++msgid "empty" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:323 ++msgid "gzip-1" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:324 ++msgid "gzip-2" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:325 ++msgid "gzip-3" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:326 ++msgid "gzip-4" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:327 ++msgid "gzip-5" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:328 ++msgid "gzip-6" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:329 ++msgid "gzip-7" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:330 ++msgid "gzip-8" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:331 ++msgid "gzip-9" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:332 ++msgid "zle" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:371 ++msgid "gang_header" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:372 ++msgid "zilog" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:373 ++msgid "fletcher2" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:374 ++msgid "fletcher4" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:375 grub-core/lib/xzembed/xz_dec_stream.c:445 ++msgid "SHA256" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:376 ++msgid "zilog2" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:377 ++msgid "SHA256+MAC" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:623 grub-core/loader/i386/xnu.c:776 ++msgid "guid" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:631 ++msgid "ashift" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:677 ++msgid "nparity" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:1305 ++msgid "+%u (%" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:1305 ++msgid ", %" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:1306 ++msgid ") -> (0x%" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:1306 grub-core/kern/mm.c:594 ++msgid ", 0x%" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:1637 ++msgid "zfscrypt" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:2464 ++msgid "casesensitivity" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:3940 grub-core/script/execute.c:255 ++#: grub-core/script/execute.c:317 ++msgid "@" ++msgstr "" ++ ++#: grub-core/gdb/cstub.c:281 grub-core/gdb/cstub.c:293 ++#: grub-core/gdb/cstub.c:299 grub-core/gdb/cstub.c:327 ++msgid "OK" ++msgstr "" ++ ++#: grub-core/gdb/cstub.c:315 ++msgid "E01" ++msgstr "" ++ ++#: grub-core/gdb/cstub.c:332 ++msgid "E02" ++msgstr "" ++ ++#: grub-core/gdb/i386/idt.c:64 grub-core/gdb/i386/idt.c:65 ++#: grub-core/gdb/i386/idt.c:71 ++msgid "m" ++msgstr "" ++ ++#: grub-core/gettext/gettext.c:353 ++#, c-format ++msgid "%s%s/%s.mo" ++msgstr "" ++ ++#: grub-core/gettext/gettext.c:364 ++#, c-format ++msgid "%s%s/%s.mo.gz" ++msgstr "" ++ ++#: grub-core/gettext/gettext.c:375 ++#, c-format ++msgid "%s%s/%s.gmo" ++msgstr "" ++ ++#: grub-core/gettext/gettext.c:403 ++msgid "/locale" ++msgstr "" ++ ++#: grub-core/gfxmenu/gfxmenu.c:78 ++#, c-format ++msgid "%s/themes/%s" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_box.c:83 grub-core/gfxmenu/gui_canvas.c:75 ++#: grub-core/gfxmenu/gui_circular_progress.c:71 ++#: grub-core/gfxmenu/gui_image.c:65 grub-core/gfxmenu/gui_label.c:79 ++#: grub-core/gfxmenu/gui_list.c:157 grub-core/gfxmenu/gui_progress_bar.c:79 ++msgid "component" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_box.c:84 grub-core/gfxmenu/gui_canvas.c:76 ++#: grub-core/gfxmenu/gui_util.c:44 grub-core/gfxmenu/gui_util.c:82 ++#: grub-core/gfxmenu/theme_loader.c:503 ++msgid "container" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_circular_progress.c:237 ++msgid "deg" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_circular_progress.c:249 ++msgid "num_ticks" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_circular_progress.c:253 ++msgid "start_angle" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_circular_progress.c:257 ++msgid "ticks_disappear" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_circular_progress.c:261 ++msgid "center_bitmap" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_circular_progress.c:267 ++msgid "tick_bitmap" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_circular_progress.c:273 ++#: grub-core/gfxmenu/gui_image.c:210 grub-core/gfxmenu/gui_list.c:520 ++#: grub-core/gfxmenu/gui_progress_bar.c:339 ++#: grub-core/gfxmenu/theme_loader.c:458 ++msgid "theme_dir" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_label.c:30 ++msgid "center" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_label.c:164 grub-core/hook/datehook.c:81 ++#: grub-core/kern/emu/hostdisk.c:713 grub-core/kern/ieee1275/openfw.c:509 ++#: grub-core/kern/partition.c:265 grub-core/normal/menu.c:111 ++#: grub-core/script/execute.c:801 grub-core/script/execute.c:956 ++#: grub-core/script/execute.c:1004 grub-core/term/tparm.c:544 ++#, c-format ++msgid "%d" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_label.c:182 ++msgid "@KEYMAP_LONG@" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_label.c:186 ++msgid "@KEYMAP_MIDDLE@" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_label.c:190 ++msgid "@KEYMAP_SHORT@" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_label.c:205 ++msgid "align" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_label.c:217 grub-core/gfxmenu/gui_list.c:484 ++msgid "visible" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:401 grub-core/gfxmenu/gui_list.c:403 ++msgid "Typical OS" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:426 ++msgid "item_font" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:430 ++msgid "selected_item_font" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:437 ++msgid "item_color" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:441 ++msgid "selected_item_color" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:454 ++msgid "icon_width" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:461 ++msgid "icon_height" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:468 ++msgid "item_height" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:472 ++msgid "item_padding" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:476 ++msgid "item_icon_space" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:480 ++msgid "item_spacing" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:488 ++msgid "menu_pixmap_style" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:494 ++msgid "selected_item_pixmap_style" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:500 ++msgid "scrollbar_frame" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:506 ++msgid "scrollbar_thumb" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:512 ++msgid "scrollbar_width" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_list.c:516 ++msgid "scrollbar" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:259 ++msgid "XXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:289 ++msgid "@TIMEOUT_NOTIFICATION_LONG@" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:292 ++msgid "@TIMEOUT_NOTIFICATION_MIDDLE@" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:297 ++msgid "@TIMEOUT_NOTIFICATION_SHORT@" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:309 ++msgid "text_color" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:313 ++msgid "border_color" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:317 ++msgid "bg_color" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:321 ++msgid "fg_color" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:325 ++msgid "bar_style" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_progress_bar.c:332 ++msgid "highlight_style" ++msgstr "" ++ ++#: grub-core/gfxmenu/icon_manager.c:32 grub-core/video/readers/png.c:948 ++msgid ".png" ++msgstr "" ++ ++#: grub-core/gfxmenu/icon_manager.c:201 ++msgid "icons/" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:126 ++msgid "title-font" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:128 ++msgid "message-font" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:130 ++msgid "terminal-font" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:137 ++msgid "title-color" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:139 ++msgid "message-color" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:141 ++msgid "message-bg-color" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:143 ++msgid "desktop-image" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:172 ++msgid "desktop-color" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:174 ++msgid "terminal-box" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:181 ++msgid "title-text" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:418 ++msgid "image" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:422 ++msgid "vbox" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:426 ++msgid "hbox" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:430 ++msgid "canvas" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:434 ++msgid "progress_bar" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:438 ++msgid "circular_progress" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:442 ++msgid "boot_menu" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:459 ++msgid "theme_path" ++msgstr "" ++ ++#: grub-core/gfxmenu/theme_loader.c:552 ++msgid "top" ++msgstr "" ++ ++#: grub-core/gfxmenu/view.c:82 ++msgid "Fixed 10" ++msgstr "" ++ ++#: grub-core/gfxmenu/widget-box.c:38 ++msgid "nw" ++msgstr "" ++ ++#: grub-core/gfxmenu/widget-box.c:38 ++msgid "ne" ++msgstr "" ++ ++#: grub-core/gfxmenu/widget-box.c:38 ++msgid "se" ++msgstr "" ++ ++#: grub-core/gfxmenu/widget-box.c:38 ++msgid "sw" ++msgstr "" ++ ++#: grub-core/gfxmenu/widget-box.c:40 ++msgid "n" ++msgstr "" ++ ++#: grub-core/gfxmenu/widget-box.c:40 ++msgid "e" ++msgstr "" ++ ++#: grub-core/gfxmenu/widget-box.c:40 ++msgid "s" ++msgstr "" ++ ++#: grub-core/gfxmenu/widget-box.c:40 util/grub-menulst2cfg.c:61 ++msgid "w" ++msgstr "" ++ ++#: grub-core/hook/datehook.c:31 ++msgid "YEAR" ++msgstr "" ++ ++#: grub-core/hook/datehook.c:32 ++msgid "MONTH" ++msgstr "" ++ ++#: grub-core/hook/datehook.c:33 ++msgid "DAY" ++msgstr "" ++ ++#: grub-core/hook/datehook.c:34 ++msgid "HOUR" ++msgstr "" ++ ++#: grub-core/hook/datehook.c:35 ++msgid "MINUTE" ++msgstr "" ++ ++#: grub-core/hook/datehook.c:36 ++msgid "SECOND" ++msgstr "" ++ ++#: grub-core/hook/datehook.c:37 ++msgid "WEEKDAY" ++msgstr "" ++ ++#: grub-core/io/lzopio.c:30 ++msgid "‰LZO" ++msgstr "" ++ ++#: grub-core/kern/dl.c:412 ++msgid "grub_mod_init" ++msgstr "" ++ ++#: grub-core/kern/dl.c:414 ++msgid "grub_mod_fini" ++msgstr "" ++ ++#: grub-core/kern/dl.c:457 ++msgid ".module_license" ++msgstr "" ++ ++#: grub-core/kern/dl.c:459 ++msgid "LICENSE=GPLv3" ++msgstr "" ++ ++#: grub-core/kern/dl.c:460 ++msgid "LICENSE=GPLv3+" ++msgstr "" ++ ++#: grub-core/kern/dl.c:461 ++msgid "LICENSE=GPLv2+" ++msgstr "" ++ ++#: grub-core/kern/dl.c:481 ++msgid ".modname" ++msgstr "" ++ ++#: grub-core/kern/dl.c:508 ++msgid ".moddeps" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:147 ++msgid "/dev/.devfsd" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:460 ++msgid "linear" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:539 ++msgid "part" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:561 util/grub-mkimagexx.c:131 ++msgid "start" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:579 grub-core/kern/emu/hostdisk.c:581 ++#: grub-core/kern/emu/hostdisk.c:877 ++msgid "/dev/" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:694 ++msgid "/disc" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:697 ++#, c-format ++msgid "part%d" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:699 grub-core/kern/emu/hostdisk.c:700 ++msgid "/dev/disk/by-id/" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:703 ++#, c-format ++msgid "-part%d" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:708 ++#, c-format ++msgid "p%d" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:833 grub-core/kern/emu/hostdisk.c:834 ++#: grub-core/kern/emu/hostdisk.c:835 grub-core/kern/emu/hostdisk.c:1347 ++#: grub-core/kern/emu/hostdisk.c:1348 grub-core/kern/emu/hostdisk.c:1349 ++msgid "hostdisk/" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:954 grub-core/kern/emu/hostdisk.c:961 ++#: grub-core/kern/emu/hostdisk.c:1003 ++msgid "kern.geom.debugflags" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:1250 grub-core/kern/emu/hostdisk.c:1257 ++#: grub-core/kern/emu/hostdisk.c:1265 grub-core/kern/emu/hostdisk.c:1310 ++#, c-format ++msgid "%s:%d: %s" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:1335 include/grub/util/lvm.h:26 ++msgid "/dev/mapper/" ++msgstr "" ++ ++#: grub-core/kern/emu/misc.c:78 grub-core/kern/emu/misc.c:94 ++#: grub-core/kern/emu/misc.c:109 ++#, c-format ++msgid ".\n" ++msgstr "" ++ ++#: grub-core/kern/i386/coreboot/mmap.c:29 ++msgid "LBIO" ++msgstr "" ++ ++#: grub-core/kern/i386/pc/init.c:91 ++#, c-format ++msgid "%cd%u" ++msgstr "" ++ ++#: grub-core/kern/i386/pc/init.c:97 grub-core/kern/i386/pc/init.c:101 ++#, c-format ++msgid ",%u" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:66 grub-core/term/ieee1275/console.c:107 ++msgid "/options" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:67 ++msgid "/openprom" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:76 grub-core/kern/ieee1275/cmain.c:77 ++msgid "SmartFirmware(tm)" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:82 ++msgid "OLPC" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:87 ++msgid "Emulated PC" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:90 ++msgid "IBM" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:101 ++msgid "PowerBook3,3" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:111 grub-core/kern/ieee1275/cmain.c:112 ++#: grub-core/kern/ieee1275/cmain.c:113 ++msgid "MacRISC" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:145 ++msgid "1.0" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:146 ++msgid "1.1" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:147 ++msgid "1.2" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:148 ++msgid "1.3" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:189 ++msgid "/rom/boot-rom" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:190 ++msgid "/boot-rom" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:193 grub-core/kern/ieee1275/cmain.c:194 ++msgid "PPC Open Hack'Ware" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/cmain.c:208 ++msgid "/chosen" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/ieee1275.c:581 ++msgid "color!" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/mmap.c:45 ++msgid "/memory" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/openfw.c:169 ++msgid "/aliases" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/openfw.c:410 ++#, c-format ++msgid "\\%s" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/openfw.c:483 ++msgid ",XXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/openfw.c:509 ++msgid "XXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/kern/mips/dl.c:254 ++msgid "__gnu_local_gp" ++msgstr "" ++ ++#: grub-core/kern/misc.c:172 ++#, c-format ++msgid "%s:%d: " ++msgstr "" ++ ++#: grub-core/kern/misc.c:919 ++msgid "0x" ++msgstr "" ++ ++#: grub-core/kern/misc.c:1018 ++msgid "(null)" ++msgstr "" ++ ++#: grub-core/lib/backtrace.c:47 ++#, c-format ++msgid "%p" ++msgstr "" ++ ++#: grub-core/lib/crc64.c:100 grub-core/lib/xzembed/xz_dec_stream.c:444 ++msgid "CRC64" ++msgstr "" ++ ++#: grub-core/lib/crypto.c:450 ++msgid "/dev/tty" ++msgstr "" ++ ++#: grub-core/lib/crypto.c:450 ++msgid "w+c" ++msgstr "" ++ ++#: grub-core/lib/i386/backtrace.c:60 grub-core/lib/i386/backtrace.c:63 ++msgid "grub_backtrace_pointer" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/cmos.c:41 ++msgid "m5819" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/datetime.c:37 ++msgid "rtc" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/datetime.c:87 ++msgid "get-time" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/datetime.c:139 ++msgid "set-time" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/halt.c:28 ++msgid "power-off" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/halt.c:29 ++msgid "shut-down" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/halt.c:30 ++msgid "poweroff" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/reboot.c:25 ++msgid "reset-all" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/cmos.c:41 ++msgid "m5819" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/datetime.c:37 ++msgid "rtc" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/datetime.c:87 ++msgid "get-time" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/datetime.c:139 ++msgid "set-time" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/halt.c:28 ++msgid "power-off" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/halt.c:29 ++msgid "shut-down" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/halt.c:30 ++msgid "poweroff" ++msgstr "" ++ ++#: grub-core/lib/ieee1275/reboot.c:25 ++msgid "reset-all" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:32 grub-core/lib/posix_wrap/wctype.h:42 ++msgid "xdigit" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:39 ++msgid "alnum" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:39 ++msgid "cntrl" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:39 ++msgid "lower" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:40 ++msgid "alpha" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:40 ++msgid "digit" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:41 ++msgid "print" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:41 ++msgid "upper" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:41 ++msgid "blank" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:42 ++msgid "graph" ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/wctype.h:42 ++msgid "punct" ++msgstr "" ++ ++#: grub-core/lib/reed_solomon.c:64 grub-core/lib/reed_solomon.c:65 ++#: grub-core/lib/reed_solomon.c:66 grub-core/lib/reed_solomon.c:67 ++#: grub-core/lib/reed_solomon.c:68 grub-core/lib/reed_solomon.c:69 ++#: grub-core/lib/reed_solomon.c:70 grub-core/lib/reed_solomon.c:71 ++#: grub-core/lib/reed_solomon.c:72 grub-core/lib/reed_solomon.c:73 ++#: include/grub/mips/loongson/kernel.h:31 ++#: include/grub/mips/loongson/memory.h:46 ++#: include/grub/mips/loongson/memory.h:47 include/grub/mips/loongson/time.h:25 ++#: include/grub/mips/qemu_mips/memory.h:33 include/grub/mips/time.h:29 ++#: util/grub-mkimage.c:1253 util/grub-mkimage.c:1564 ++msgid ".text" ++msgstr "" ++ ++#: grub-core/lib/reed_solomon.c:428 ++msgid "tst.bin" ++msgstr "" ++ ++#: grub-core/lib/reed_solomon.c:441 grub-core/lib/reed_solomon.c:445 ++msgid "tst_rs.bin" ++msgstr "" ++ ++#: grub-core/lib/reed_solomon.c:441 grub-core/lib/reed_solomon.c:460 ++#: grub-core/lib/reed_solomon.c:465 util/grub-editenv.c:121 ++#: util/grub-editenv.c:209 util/grub-fstest.c:202 util/grub-glue-efi.c:199 ++#: util/grub-mkfont.c:782 util/grub-mkfont.c:819 util/grub-mkfont.c:843 ++#: util/grub-mkimage.c:1975 util/grub-render-label.c:257 util/grub-setup.c:665 ++#: util/grub-setup.c:672 ++msgid "wb" ++msgstr "" ++ ++#: grub-core/lib/reed_solomon.c:460 ++msgid "tst_dam.bin" ++msgstr "" ++ ++#: grub-core/lib/reed_solomon.c:465 ++msgid "tst_rec.bin" ++msgstr "" ++ ++#: grub-core/loader/efi/appleloader.c:142 ++msgid "Core Duo/Solo" ++msgstr "" ++ ++#: grub-core/loader/efi/appleloader.c:143 ++msgid "Mac Pro" ++msgstr "" ++ ++#: grub-core/loader/efi/appleloader.c:144 ++msgid "MBP" ++msgstr "" ++ ++#: grub-core/loader/efi/appleloader.c:145 ++msgid "MBA" ++msgstr "" ++ ++#: grub-core/loader/efi/appleloader.c:146 ++msgid "MB NV" ++msgstr "" ++ ++#: grub-core/loader/efi/appleloader.c:147 ++msgid "MB NV2" ++msgstr "" ++ ++#: grub-core/loader/efi/appleloader.c:148 ++msgid "MBP2011" ++msgstr "" ++ ++#: grub-core/loader/efi/appleloader.c:149 ++msgid "MBP2012" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:135 ++msgid "wdXY" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:428 grub-core/loader/i386/bsd.c:429 ++msgid "/boot/zfs/zpool.cache" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:1606 grub-core/loader/i386/bsd.c:1609 ++#: grub-core/loader/i386/bsd.c:1700 grub-core/loader/i386/bsd.c:1708 ++#: grub-core/loader/i386/bsd.c:1710 ++msgid "com" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:1735 ++msgid "pc" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:1825 ++#, c-format ++msgid "kFreeBSD.%s" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:1892 ++msgid "type=" ++msgstr "" ++ ++#: grub-core/loader/i386/bsdXX.c:369 ++msgid "_DYNAMIC" ++msgstr "" ++ ++#: grub-core/loader/i386/bsdXX.c:604 ++msgid "rd_root_image" ++msgstr "" ++ ++#: grub-core/loader/i386/bsdXX.c:606 ++msgid "rd_root_size" ++msgstr "" ++ ++#: grub-core/loader/i386/linux.c:550 grub-core/term/i386/pc/vga_text.c:256 ++#: grub-core/term/i386/pc/vga_text.c:281 ++msgid "vga_text" ++msgstr "" ++ ++#: grub-core/loader/i386/linux.c:900 grub-core/loader/i386/pc/linux.c:244 ++msgid "vga=" ++msgstr "" ++ ++#: grub-core/loader/i386/linux.c:913 grub-core/loader/i386/pc/linux.c:252 ++msgid "ext" ++msgstr "" ++ ++#: grub-core/loader/i386/linux.c:915 grub-core/loader/i386/pc/linux.c:254 ++msgid "ask" ++msgstr "" ++ ++#: grub-core/loader/i386/linux.c:985 grub-core/loader/i386/pc/linux.c:264 ++msgid "mem=" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/chainloader.c:104 ++msgid "FAT12" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/chainloader.c:105 ++msgid "FAT16" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/chainloader.c:106 ++msgid "FAT32" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/chainloader.c:256 ++msgid "--force" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/chainloader.c:263 ++msgid "--bpb" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/linux.c:235 ++msgid "bzImage" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/linux.c:235 ++msgid "zImage" ++msgstr "" ++ ++#: include/grub/util/lvm.h:28 ++msgid "/dev/linux_lvm/" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:110 ++msgid "root_dataset" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:111 ++msgid "sync_bplist" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:112 ++msgid "errlog_scrub" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:113 ++msgid "errlog_last" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:114 ++msgid "spares" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:115 ++msgid "deflate" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:116 ++msgid "history" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:117 ++msgid "pool_props" ++msgstr "" ++ ++#: include/grub/zfs/dmu.h:118 ++msgid "l2cache" ++msgstr "" ++ ++#: include/grub/zfs/zfs_znode.h:29 ++msgid "ROOT" ++msgstr "" ++ ++#: include/grub/zfs/zfs_znode.h:30 ++msgid "VERSION" ++msgstr "" ++ ++#: include/grub/zfs/zfs_znode.h:31 ++msgid "SA_ATTRS" ++msgstr "" ++ ++#: util/grub-editenv.c:106 util/grub-setup.c:1117 ++msgid "\v" ++msgstr "" ++ ++#: util/grub-editenv.c:120 ++#, c-format ++msgid "%s.new" ++msgstr "" ++ ++#: util/grub-fstest.c:547 util/grub-mount.c:463 ++msgid "prompt" ++msgstr "" ++ ++#: util/grub-fstest.c:666 ++msgid "cp" ++msgstr "" ++ ++#: util/grub-fstest.c:747 util/grub-mount.c:571 ++msgid "loop0" ++msgstr "" ++ ++#: util/grub-fstest.c:747 util/grub-mount.c:571 ++msgid "md0" ++msgstr "" ++ ++#: util/grub-mkfont.c:981 ++msgid "ascii-bitmaps" ++msgstr "" ++ ++#: util/grub-mkfont.c:982 ++msgid "width-spec" ++msgstr "" ++ ++#: util/grub-mkfont.c:1003 ++msgid "no-hinting" ++msgstr "" ++ ++#: util/grub-mkfont.c:1004 ++msgid "no-bitmap" ++msgstr "" ++ ++#: util/grub-mkimage.c:574 ++msgid "PowerPC" ++msgstr "" ++ ++#: util/grub-mkimage.c:1878 ++msgid "(memdisk)/boot/grub" ++msgstr "" ++ ++#: util/grub-mkimage.c:1896 ++msgid "xz" ++msgstr "" ++ ++#: util/misc.c:312 ++msgid "PHYSICALDRIVE" ++msgstr "" ++ ++#: grub-core/term/ns8250.c:268 ++#, c-format ++msgid "com%d" ++msgstr "" ++ ++#: grub-core/term/ns8250.c:315 grub-core/term/serial.c:190 ++#, c-format ++msgid "port%lx" ++msgstr "" ++ ++#: grub-core/term/serial.c:183 ++#, c-format ++msgid "com%ld" ++msgstr "" ++ ++#: grub-core/term/serial.c:199 grub-core/term/serial.c:268 ++msgid "com0" ++msgstr "" ++ ++#: grub-core/term/serial.c:219 ++msgid "odd" ++msgstr "" ++ ++#: grub-core/term/serial.c:221 ++msgid "even" ++msgstr "" ++ ++#: grub-core/term/serial.c:230 ++msgid "1" ++msgstr "" ++ ++#: grub-core/term/serial.c:232 ++msgid "2" ++msgstr "" ++ ++#: grub-core/term/serial.c:234 ++msgid "1.5" ++msgstr "" ++ ++#: grub-core/term/serial.c:269 ++msgid "com2" ++msgstr "" ++ ++#: grub-core/term/serial.c:270 ++msgid "com1" ++msgstr "" ++ ++#: grub-core/term/serial.c:295 ++#, c-format ++msgid "serial_%s" ++msgstr "" ++ ++#: grub-core/term/serial.c:338 grub-core/term/serial.c:339 ++#: grub-core/term/serial.c:343 grub-core/term/serial.c:344 ++#: grub-core/term/serial.c:347 grub-core/term/serial.c:348 ++msgid "serial_*" ++msgstr "" ++ ++#: grub-core/term/usb_keyboard.c:217 ++#, c-format ++msgid "usb_keyboard%d" ++msgstr "" ++ ++#: grub-core/video/efi_gop.c:308 ++msgid "agp-internal-edid" ++msgstr "" ++ ++#: grub-core/video/efi_uga.c:134 ++msgid "VMEM" ++msgstr "" ++ ++#: grub-core/video/efi_uga.c:134 ++msgid "MMIO" ++msgstr "" ++ ++#: grub-core/video/ieee1275.c:74 ++msgid "display" ++msgstr "" ++ ++#: grub-core/video/readers/jpeg.c:802 ++msgid ".jpg" ++msgstr "" ++ ++#: grub-core/video/readers/jpeg.c:808 ++msgid ".jpeg" ++msgstr "" ++ ++#: grub-core/video/readers/tga.c:477 ++msgid ".tga" ++msgstr "" ++ ++#: grub-core/video/video.c:516 grub-core/video/video.c:545 ++msgid "keep" ++msgstr "" ++ ++#: grub-core/video/video.c:517 ++msgid "keep," ++msgstr "" ++ ++#: grub-core/video/video.c:518 ++msgid "keep;" ++msgstr "" ++ ++#: include/grub/acpi.h:27 ++msgid "RSD PTR " ++msgstr "" ++ ++#: include/grub/acpi.h:76 ++msgid "APIC" ++msgstr "" ++ ++#: include/grub/dl.h:82 ++msgid ", _" ++msgstr "" ++ ++#: include/grub/dl.h:113 include/grub/dl.h:121 include/grub/dl.h:128 ++msgid "LICENSE=" ++msgstr "" ++ ++#: include/grub/dl.h:129 ++msgid "\\license" ++msgstr "" ++ ++#: include/grub/efi/api.h:465 include/grub/types.h:78 include/grub/types.h:96 ++#: include/grub/types.h:97 ++msgid "lx" ++msgstr "" ++ ++#: include/grub/elf.h:117 ++msgid "ELF" ++msgstr "" ++ ++#: include/grub/elf.h:968 ++msgid "SUNW Solaris" ++msgstr "" ++ ++#: include/grub/elf.h:971 ++msgid "GNU" ++msgstr "" ++ ++#: include/grub/emu/misc.h:42 ++msgid "/device.map" ++msgstr "" ++ ++#: include/grub/fontformat.h:23 ++msgid "PFF2" ++msgstr "" ++ ++#: include/grub/fontformat.h:26 ++msgid "PTSZ" ++msgstr "" ++ ++#: include/grub/fontformat.h:27 ++msgid "WEIG" ++msgstr "" ++ ++#: include/grub/fontformat.h:28 ++msgid "MAXW" ++msgstr "" ++ ++#: include/grub/fontformat.h:29 ++msgid "MAXH" ++msgstr "" ++ ++#: include/grub/fontformat.h:30 ++msgid "ASCE" ++msgstr "" ++ ++#: include/grub/fontformat.h:31 ++msgid "DESC" ++msgstr "" ++ ++#: include/grub/fontformat.h:32 ++msgid "CHIX" ++msgstr "" ++ ++#: include/grub/fontformat.h:33 ++msgid "DATA" ++msgstr "" ++ ++#: include/grub/fontformat.h:34 ++msgid "FAMI" ++msgstr "" ++ ++#: include/grub/fontformat.h:35 ++msgid "SLAN" ++msgstr "" ++ ++#: include/grub/gcrypt/gcrypt.h:55 ++msgid "@VERSION@" ++msgstr "" ++ ++#: include/grub/gui.h:32 ++msgid "__timeout__" ++msgstr "" ++ ++#: include/grub/i386/bsd.h:48 ++msgid "elf kernel" ++msgstr "" ++ ++#: include/grub/i386/bsd.h:49 ++msgid "elf64 kernel" ++msgstr "" ++ ++#: include/grub/i386/bsd.h:50 ++msgid "elf module" ++msgstr "" ++ ++#: include/grub/i386/bsd.h:51 ++msgid "elf obj module" ++msgstr "" ++ ++#: include/grub/i386/pc/pxe.h:166 ++msgid "PXENV+" ++msgstr "" ++ ++#: include/grub/i386/pc/pxe.h:193 ++msgid "!PXE" ++msgstr "" ++ ++#: include/grub/keyboard_layouts.h:22 ++msgid "GRUBLAYO" ++msgstr "" ++ ++#: grub-core/video/sm712.c:263 ++#, c-format ++msgid " {-1, 0x%x, 0x5},\n" ++msgstr "" ++ ++#: grub-core/video/sm712.c:248 ++#, c-format ++msgid " {1, 0x%x, 0x%x},\n" ++msgstr "" ++ ++#: grub-core/video/sm712.c:250 ++#, c-format ++msgid " .byte 0x%02x, 0x%02x\n" ++msgstr "" ++ ++#: include/grub/types.h:74 include/grub/types.h:113 include/grub/types.h:114 ++msgid "x" ++msgstr "" ++ ++#: include/grub/types.h:75 include/grub/types.h:115 ++msgid "u" ++msgstr "" ++ ++#: include/grub/types.h:79 include/grub/types.h:98 ++msgid "lu" ++msgstr "" ++ ++#: include/grub/types.h:82 include/grub/types.h:101 include/grub/types.h:102 ++msgid "llx" ++msgstr "" ++ ++#: include/grub/types.h:83 include/grub/types.h:103 ++msgid "llu" ++msgstr "" ++ ++#: include/grub/types.h:99 ++msgid "ld" ++msgstr "" ++ ++#: include/grub/types.h:104 ++msgid "lld" ++msgstr "" ++ ++#: util/grub-fstest.c:363 ++#, c-format ++msgid "%08x\n" ++msgstr "" ++ ++#: util/grub-fstest.c:387 util/grub-fstest.c:488 util/grub-mount.c:363 ++#: util/grub-mount.c:418 ++#, c-format ++msgid "loop%d" ++msgstr "" ++ ++#: util/grub-fstest.c:391 util/grub-mount.c:367 ++#, c-format ++msgid "(host)%s" ++msgstr "" ++ ++#: util/grub-menulst2cfg.c:95 util/grub-menulst2cfg.c:112 ++#, c-format ++msgid "" ++"}\n" ++"\n" ++msgstr "" ++ ++#: util/grub-menulst2cfg.c:99 ++#, c-format ++msgid "menuentry '%s' {\n" ++msgstr "" ++ ++#: util/grub-mkfont.c:159 util/grub-mkfont.c:1203 ++#, c-format ++msgid ": %s\n" ++msgstr "" ++ ++#: util/grub-mkfont.c:171 ++#, c-format ++msgid "%x\n" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:181 grub-core/loader/i386/xnu.c:186 ++#: include/grub/i386/tsc.h:45 include/grub/i386/tsc.h:48 ++#: include/grub/i386/tsc.h:127 include/grub/i386/tsc.h:133 ++msgid "%rax" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:459 ++msgid "device-properties" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:658 ++msgid "firmware-revision" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:668 ++msgid "firmware-vendor" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:679 ++msgid "firmware-abi" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:682 grub-core/loader/i386/xnu.c:687 ++msgid "EFI32" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:689 ++msgid "EFI64" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:693 ++msgid "platform" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:698 ++msgid "FSBFrequency" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:720 ++msgid "configuration-table" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:761 ++#, c-format ++msgid "%08x-%04x-%04x-%02x%02x-" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:786 grub-core/loader/i386/xnu.c:820 ++msgid "table" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:804 ++msgid "alias" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:817 ++msgid "runtime-services" ++msgstr "" ++ ++#: grub-core/loader/ia64/efi/linux.c:343 ++msgid "b" ++msgstr "" ++ ++#: grub-core/loader/ia64/efi/linux.c:522 include/grub/lib/cmdline.h:25 ++msgid "BOOT_IMAGE=" ++msgstr "" ++ ++#: grub-core/loader/ia64/efi/linux.c:539 ++msgid "BOOT_IMAGE" ++msgstr "" ++ ++#: grub-core/loader/linux.c:164 ++msgid "newc:" ++msgstr "" ++ ++#: grub-core/loader/macho32.c:18 ++msgid "32" ++msgstr "" ++ ++#: grub-core/loader/macho64.c:18 ++msgid "64" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:46 ++msgid "machtype=lemote-yeeloong-2f-8.9inches" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:47 ++msgid "machtype=lemote-fuloong-2f-box" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:48 ++msgid "machtype=lemote-fuloong-2e-unknown" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:280 grub-core/loader/mips/linux.c:357 ++#: grub-core/loader/mips/linux.c:466 ++msgid "rd_start=0xXXXXXXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:281 grub-core/loader/mips/linux.c:362 ++msgid "rd_size=0xXXXXXXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:286 grub-core/loader/mips/linux.c:374 ++msgid "memsize=XXXXXXXXXXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:287 grub-core/loader/mips/linux.c:380 ++msgid "highmemsize=XXXXXXXXXXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:288 grub-core/loader/mips/linux.c:387 ++msgid "busclock=XXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:289 grub-core/loader/mips/linux.c:392 ++msgid "cpuclock=XXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:375 ++#, c-format ++msgid "memsize=%lld" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:381 ++#, c-format ++msgid "highmemsize=%lld" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:388 ++#, c-format ++msgid "busclock=%d" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:393 ++#, c-format ++msgid "cpuclock=%d" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:456 ++msgid "%s rd_start=0x%" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:457 ++msgid " rd_size=0x%" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:466 ++#, c-format ++msgid "rd_start=0x%llx" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:473 ++msgid "rd_size=0xXXXXXXXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:473 ++#, c-format ++msgid "rd_size=0x%llx" ++msgstr "" ++ ++#: grub-core/loader/multiboot.c:207 ++#, c-format ++msgid "%dx%dx%d,%dx%d,auto" ++msgstr "" ++ ++#: grub-core/loader/multiboot.c:210 ++#, c-format ++msgid "%dx%d,auto" ++msgstr "" ++ ++#: grub-core/loader/sparc64/ieee1275/linux.c:454 ++msgid "/virtual-memory" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:222 grub-core/loader/xnu.c:568 ++msgid "memory-map" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:229 ++msgid "DeviceTree" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:617 ++msgid "/Contents/" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:748 ++msgid "Driver-" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:867 ++msgid "DriversPackage-" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:907 ++msgid "RAMDisk" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:961 ++msgid "OSBundleRequired" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:964 ++msgid "CFBundleExecutable" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:998 ++msgid "key" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1000 grub-core/net/bootp.c:373 ++msgid "string" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1002 ++msgid "/key" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1043 ++msgid ".kext" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1128 ++msgid "Contents" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1133 ++msgid "Plugins" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1139 ++msgid "MacOS" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1143 ++msgid "Info.plist" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1204 grub-core/loader/xnu.c:1207 ++msgid "/MacOS/" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1283 ++msgid "console,root,local-root,network-root" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1344 grub-core/loader/xnu.c:1345 ++#: grub-core/loader/xnu.c:1348 ++msgid "XNU.DeviceTree." ++msgstr "" ++ ++#: grub-core/net/bootp.c:40 ++msgid "net_" ++msgstr "" ++ ++#: grub-core/net/bootp.c:40 include/grub/dl.h:82 include/grub/symbol.h:34 ++msgid "_" ++msgstr "" ++ ++#: grub-core/net/bootp.c:43 ++#, c-format ++msgid "net_%s_%s" ++msgstr "" ++ ++#: grub-core/net/bootp.c:102 ++msgid ":default" ++msgstr "" ++ ++#: grub-core/net/bootp.c:109 ++#, c-format ++msgid "%s:default" ++msgstr "" ++ ++#: grub-core/net/bootp.c:127 ++msgid "hostname" ++msgstr "" ++ ++#: grub-core/net/bootp.c:131 ++msgid "domain" ++msgstr "" ++ ++#: grub-core/net/bootp.c:135 ++msgid "rootpath" ++msgstr "" ++ ++#: grub-core/net/bootp.c:139 ++msgid "extensionspath" ++msgstr "" ++ ++#: grub-core/net/bootp.c:183 ++msgid ":gw" ++msgstr "" ++ ++#: grub-core/net/bootp.c:190 ++#, c-format ++msgid "%s:gw" ++msgstr "" ++ ++#: grub-core/net/bootp.c:200 ++msgid "boot_file" ++msgstr "" ++ ++#: grub-core/net/bootp.c:206 grub-core/net/net.c:713 ++#, c-format ++msgid "%d.%d.%d.%d" ++msgstr "" ++ ++#: grub-core/net/bootp.c:216 ++#, c-format ++msgid "tftp,%d.%d.%d.%d" ++msgstr "" ++ ++#: grub-core/net/bootp.c:226 ++msgid "dhcp_server_name" ++msgstr "" ++ ++#: grub-core/net/bootp.c:235 ++#, c-format ++msgid "tftp,%s" ++msgstr "" ++ ++#: grub-core/net/bootp.c:277 ++#, c-format ++msgid "%s:dhcp" ++msgstr "" ++ ++#: grub-core/net/bootp.c:294 ++msgid ":dhcp_tmp" ++msgstr "" ++ ++#: grub-core/net/bootp.c:387 ++msgid "number" ++msgstr "" ++ ++#: grub-core/net/bootp.c:394 ++#, c-format ++msgid "%llu\n" ++msgstr "" ++ ++#: grub-core/net/bootp.c:398 ++#, c-format ++msgid "%lld\n" ++msgstr "" ++ ++#: grub-core/net/bootp.c:460 ++#, c-format ++msgid "%s:dhcp_tmp" ++msgstr "" ++ ++#: grub-core/net/drivers/arc/arcnet.c:89 ++#, c-format ++msgid "<%lu>" ++msgstr "" ++ ++#: grub-core/net/drivers/efi/efinet.c:205 ++#, c-format ++msgid "efinet%d" ++msgstr "" ++ ++#: grub-core/net/drivers/emu/emunet.c:104 ++msgid "/dev/net/tun" ++msgstr "" ++ ++#: grub-core/net/drivers/ieee1275/ofnet.c:43 ++#: grub-core/net/drivers/ieee1275/ofnet.c:47 ++msgid ":speed=auto,duplex=auto,1.1.1.1,dummy,1.1.1.1,1.1.1.1,5,5,1.1.1.1,512" ++msgstr "" ++ ++#: grub-core/net/drivers/ieee1275/ofnet.c:135 ++msgid "bootp-response" ++msgstr "" ++ ++#: grub-core/net/drivers/ieee1275/ofnet.c:136 ++msgid "dhcp-response" ++msgstr "" ++ ++#: grub-core/net/drivers/ieee1275/ofnet.c:137 ++msgid "bootpreply-packet" ++msgstr "" ++ ++#: grub-core/net/drivers/ieee1275/ofnet.c:266 ++msgid "alloc-mem" ++msgstr "" ++ ++#: grub-core/net/drivers/ieee1275/ofnet.c:291 ++#, c-format ++msgid "ofnet_%s" ++msgstr "" ++ ++#: grub-core/net/http.c:103 grub-core/net/http.c:109 ++msgid "HTTP/1.1 " ++msgstr "" ++ ++#: grub-core/net/http.c:133 grub-core/net/http.c:136 ++msgid "Content-Length: " ++msgstr "" ++ ++#: grub-core/net/http.c:141 grub-core/net/http.c:142 ++msgid "Transfer-Encoding: chunked" ++msgstr "" ++ ++#: grub-core/net/http.c:317 grub-core/net/http.c:330 grub-core/net/http.c:336 ++msgid "GET " ++msgstr "" ++ ++#: grub-core/net/http.c:319 grub-core/net/http.c:349 grub-core/net/http.c:355 ++#: grub-core/net/http.c:356 ++msgid "" ++" HTTP/1.1\r\n" ++"Host: " ++msgstr "" ++ ++#: grub-core/net/http.c:321 grub-core/net/http.c:370 grub-core/net/http.c:377 ++#: grub-core/net/http.c:378 ++msgid "" ++"\r\n" ++"User-Agent: " ++msgstr "" ++ ++#: grub-core/net/http.c:322 grub-core/net/http.c:370 grub-core/net/http.c:377 ++#: grub-core/net/http.c:378 grub-core/net/http.c:392 ++msgid "\r\n" ++msgstr "" ++ ++#: grub-core/net/http.c:323 grub-core/net/http.c:383 ++msgid "" ++"Range: bytes=XXXXXXXXXXXXXXXXXXXX-\r\n" ++"\r\n" ++msgstr "" ++ ++#: grub-core/net/http.c:386 ++msgid "Range: bytes=%" ++msgstr "" ++ ++#: grub-core/net/http.c:386 ++msgid "" ++"-\r\n" ++"\r\n" ++msgstr "" ++ ++#: grub-core/net/icmp6.c:416 ++msgid ":XXXXXXXXXXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/net/icmp6.c:417 ++#, c-format ++msgid "%s:%d" ++msgstr "" ++ ++#: grub-core/net/net.c:230 grub-core/net/net.c:238 ++msgid ":slaac" ++msgstr "" ++ ++#: grub-core/net/net.c:253 grub-core/net/net.c:276 ++msgid ":link" ++msgstr "" ++ ++#: grub-core/net/net.c:822 ++msgid "net__mac" ++msgstr "" ++ ++#: grub-core/net/net.c:825 ++#, c-format ++msgid "net_%s_mac" ++msgstr "" ++ ++#: grub-core/net/net.c:835 ++msgid "net__ip" ++msgstr "" ++ ++#: grub-core/net/net.c:838 ++#, c-format ++msgid "net_%s_ip" ++msgstr "" ++ ++#: grub-core/net/net.c:908 ++#, c-format ++msgid "%s:local" ++msgstr "" ++ ++#: grub-core/net/net.c:1054 ++msgid "gw" ++msgstr "" ++ ++#: grub-core/net/net.c:1091 ++#, c-format ++msgid "%d.%d.%d.%d/%d " ++msgstr "" ++ ++#: grub-core/net/net.c:1184 grub-core/net/net.c:1188 ++msgid "pxe:" ++msgstr "" ++ ++#: grub-core/net/tftp.c:180 grub-core/net/tftp.c:181 grub-core/net/tftp.c:343 ++#: grub-core/net/tftp.c:344 grub-core/net/tftp.c:345 ++msgid "tsize" ++msgstr "" ++ ++#: grub-core/net/tftp.c:183 grub-core/net/tftp.c:184 grub-core/net/tftp.c:335 ++#: grub-core/net/tftp.c:336 grub-core/net/tftp.c:337 ++msgid "blksize" ++msgstr "" ++ ++#: grub-core/net/tftp.c:331 grub-core/net/tftp.c:332 grub-core/net/tftp.c:333 ++msgid "octet" ++msgstr "" ++ ++#: grub-core/net/tftp.c:339 grub-core/net/tftp.c:340 grub-core/net/tftp.c:341 ++msgid "1024" ++msgstr "" ++ ++#: grub-core/net/tftp.c:431 grub-core/net/tftp.c:437 ++msgid "closed" ++msgstr "" ++ ++#: grub-core/normal/auth.c:178 ++msgid "\b" ++msgstr "" ++ ++#: grub-core/normal/autofs.c:74 ++msgid "/fs.lst" ++msgstr "" ++ ++#: grub-core/normal/completion.c:133 ++msgid "\" " ++msgstr "" ++ ++#: grub-core/normal/completion.c:135 util/grub-probe.c:506 ++#: util/grub-probe.c:544 ++#, c-format ++msgid "' " ++msgstr "" ++ ++#: grub-core/normal/completion.c:337 ++msgid "- " ++msgstr "" ++ ++#: grub-core/normal/completion.c:348 ++msgid "-u" ++msgstr "" ++ ++#: grub-core/normal/completion.c:364 util/ieee1275/grub-ofpathname.c:39 ++msgid "--help" ++msgstr "" ++ ++#: grub-core/normal/completion.c:366 ++msgid "--usage" ++msgstr "" ++ ++#: grub-core/normal/crypto.c:90 ++msgid "/crypto.lst" ++msgstr "" ++ ++#: grub-core/normal/dyncmd.c:104 ++msgid "/command.lst" ++msgstr "" ++ ++#: grub-core/normal/main.c:363 ++#, c-format ++msgid "%s/grub.cfg" ++msgstr "" ++ ++#: grub-core/normal/main.c:516 ++msgid "feature_chainloader_bpb" ++msgstr "" ++ ++#: grub-core/normal/main.c:516 ++msgid "feature_ntldr" ++msgstr "" ++ ++#: grub-core/normal/main.c:516 ++msgid "feature_platform_search_hint" ++msgstr "" ++ ++#: grub-core/normal/main.c:517 ++msgid "feature_default_font_path" ++msgstr "" ++ ++#: grub-core/normal/main.c:517 ++msgid "feature_all_video_module" ++msgstr "" ++ ++#: grub-core/normal/main.c:518 ++msgid "feature_menuentry_id" ++msgstr "" ++ ++#: grub-core/normal/main.c:518 ++msgid "feature_menuentry_options" ++msgstr "" ++ ++#: grub-core/normal/main.c:518 ++msgid "feature_200_final" ++msgstr "" ++ ++#: grub-core/normal/main.c:519 ++msgid "feature_nativedisk_cmd" ++msgstr "" ++ ++#: grub-core/normal/main.c:568 ++msgid "white/black" ++msgstr "" ++ ++#: grub-core/normal/main.c:569 ++msgid "black/white" ++msgstr "" ++ ++#: grub-core/normal/term.c:326 ++msgid "/terminal.lst" ++msgstr "" ++ ++#: grub-core/partmap/amiga.c:34 ++msgid "RDSK" ++msgstr "" ++ ++#: grub-core/partmap/amiga.c:51 ++msgid "PART" ++msgstr "" ++ ++#: grub-core/term/at_keyboard.c:642 grub-core/term/at_keyboard.c:654 ++msgid "at_keyboard" ++msgstr "" ++ ++#: grub-core/term/efi/serial.c:170 grub-core/term/efi/serial.c:173 ++msgid "efiXXXXXXXXXXXXXXXXXXXX" ++msgstr "" ++ ++#: grub-core/term/efi/serial.c:174 ++#, c-format ++msgid "efi%d" ++msgstr "" ++ ++#: grub-core/term/emu/console.c:166 ++msgid "vt100-color" ++msgstr "" ++ ++#: grub-core/term/i386/pc/vga_text.c:254 grub-core/term/i386/pc/vga_text.c:279 ++msgid "mda_text" ++msgstr "" ++ ++#: grub-core/term/ieee1275/console.c:152 ++msgid "cursor-on" ++msgstr "" ++ ++#: grub-core/term/ieee1275/console.c:154 ++msgid "cursor-off" ++msgstr "" ++ ++#: grub-core/term/ieee1275/console.c:179 ++msgid "output-device output" ++msgstr "" ++ ++#: grub-core/term/ieee1275/console.c:255 ++msgid "dumb" ++msgstr "" ++ ++#: grub-core/term/ieee1275/console.c:257 ++msgid "ieee1275-nocursor" ++msgstr "" ++ ++#: grub-core/term/ieee1275/console.c:259 ++msgid "ieee1275" ++msgstr "" ++ ++#: grub-core/term/ieee1275/escc.c:229 ++#, c-format ++msgid "escc-ch-%c" ++msgstr "" ++ ++#: grub-core/term/ieee1275/escc.c:250 ++msgid "mac-io" ++msgstr "" ++ ++#: grub-core/term/ieee1275/escc.c:269 ++msgid "escc" ++msgstr "" ++ ++#: grub-core/term/morse.c:126 ++msgid "audio" ++msgstr "" ++ ++#: include/grub/lvm.h:32 ++msgid "LABELONE" ++msgstr "" ++ ++#: include/grub/lvm.h:33 ++msgid "LVM2 001" ++msgstr "" ++ ++#: include/grub/macho.h:127 ++msgid "complzss" ++msgstr "" ++ ++#: include/grub/net.h:459 ++msgid "XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX" ++msgstr "" ++ ++#: include/grub/net.h:466 ++msgid "XX:XX:XX:XX:XX:XX" ++msgstr "" ++ ++#: include/grub/symbol.h:44 ++msgid "function" ++msgstr "" ++ ++#: include/grub/symbol.h:45 ++msgid "object" ++msgstr "" ++ ++#: grub-core/lib/adler32.c:84 ++msgid "ADLER32" ++msgstr "" ++ ++#: grub-core/lib/arg.c:123 ++msgid "-h, " ++msgstr "" ++ ++#: grub-core/lib/arg.c:125 ++msgid "-u, " ++msgstr "" ++ ++#: grub-core/lib/arg.c:127 ++msgid " " ++msgstr "" ++ ++#: grub-core/lib/arg.c:131 grub-core/normal/completion.c:376 ++#, c-format ++msgid "--%s" ++msgstr "" ++ ++#: grub-core/lib/arg.c:136 ++#, c-format ++msgid "=%s" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:55 ++msgid "ACPI_20" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:56 grub-core/loader/i386/xnu.c:644 ++#: grub-core/loader/i386/xnu.c:645 grub-core/loader/i386/xnu.c:649 ++#: grub-core/loader/i386/xnu.c:650 ++msgid "ACPI" ++msgstr "" ++ ++#: grub-core/net/net.c:1132 ++msgid "gw " ++msgstr "" ++ ++#: grub-core/kern/rescue_reader.c:40 ++msgid "> " ++msgstr "" ++ ++#: grub-core/kern/rescue_reader.c:40 ++msgid "grub rescue> " ++msgstr "" ++ ++#: grub-core/term/arc/console.c:87 grub-core/term/arc/console.c:88 ++#: grub-core/term/arc/console.c:89 grub-core/term/arc/console.c:91 ++msgid "line" ++msgstr "" ++ ++#: grub-core/term/arc/console.c:120 ++msgid "ConsoleOut" ++msgstr "" ++ ++#: grub-core/term/arc/console.c:206 grub-core/term/serial.c:252 ++#: grub-core/term/serial.c:334 ++msgid "vt100" ++msgstr "" ++ ++#: grub-core/term/arc/console.c:208 ++msgid "arc" ++msgstr "" ++ ++#: grub-core/parttool/msdospart.c:88 ++msgid "hidden" ++msgstr "" ++ ++#: grub-core/loader/xnu.c:1422 grub-core/term/gfxterm.c:1153 ++msgid "stretch" ++msgstr "" ++ ++#: grub-core/loader/machoXX.c:326 grub-core/loader/machoXX.c:328 ++#: grub-core/loader/machoXX.c:329 grub-core/loader/machoXX.c:331 ++#: grub-core/loader/machoXX.c:333 ++msgid "Darwin Kernel Version " ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:267 ++#, c-format ++msgid "sdB%u" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:270 ++#, c-format ++msgid "fd%u" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:290 ++msgid "sdZ0" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:296 grub-core/loader/i386/pc/plan9.c:299 ++#: grub-core/loader/i386/pc/plan9.c:308 grub-core/loader/i386/pc/plan9.c:311 ++msgid "ata0" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:300 grub-core/loader/i386/pc/plan9.c:313 ++#, c-format ++msgid "sd%c%d" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:320 ++#, c-format ++msgid "sd0%u" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:331 grub-core/loader/i386/pc/plan9.c:346 ++#: grub-core/loader/i386/pc/plan9.c:347 ++msgid "part=" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:416 ++#, c-format ++msgid "%s!%s!%s" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:419 ++#, c-format ++msgid "%s!%s" ++msgstr "" ++ ++#: grub-core/commands/wildcard.c:83 ++msgid "*.\\|+{}[]?" ++msgstr "" ++ ++#: grub-core/disk/dmraid_nvidia.c:71 ++msgid "NVIDIA" ++msgstr "" ++ ++#: grub-core/commands/sleep.c:45 ++#, c-format ++msgid "%d " ++msgstr "" ++ ++#: grub-core/commands/verify.c:258 ++msgid "™" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:576 ++msgid " sectors from sector 0x%" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:577 grub-core/disk/cryptodisk.c:626 ++msgid " with offset of %" ++msgstr "" ++ ++#: grub-core/disk/cryptodisk.c:625 ++msgid " sectors to sector 0x%" ++msgstr "" ++ ++#: grub-core/disk/geli.c:469 ++msgid "" ++msgstr "" ++ ++#: grub-core/disk/luks.c:40 ++msgid "LUKSº¾" ++msgstr "" ++ ++#: grub-core/font/font.c:450 grub-core/font/font.c:454 ++msgid "/fonts/" ++msgstr "" ++ ++#: grub-core/font/font.c:450 grub-core/font/font.c:456 ++msgid ".pf2" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfsinfo.c:117 ++msgid "path" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfsinfo.c:389 ++#, c-format ++msgid "zfs-bootfs=%s/%llu%s%s%s%s%s%s" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfsinfo.c:391 ++msgid ",bootpath=\"" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfsinfo.c:393 grub-core/fs/zfs/zfsinfo.c:396 ++msgid "\"" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfsinfo.c:394 ++msgid ",diskdevid=\"" ++msgstr "" ++ ++#: grub-core/gdb/cstub.c:26 ++msgid "0123456789abcdef" ++msgstr "" ++ ++#: grub-core/lib/i386/halt.c:26 ++msgid "Shutdown" ++msgstr "" ++ ++#: grub-core/lib/minilzo/lzoconf.h:48 ++msgid "2.05" ++msgstr "" ++ ++#: grub-core/lib/minilzo/lzoconf.h:49 ++msgid "Apr 23 2011" ++msgstr "" ++ ++#: grub-core/lib/minilzo/lzoconf.h:80 grub-core/lib/minilzo/lzoconf.h:233 ++#: grub-core/lib/minilzo/minilzo.h:68 include/grub/gcrypt/gcrypt.h:44 ++msgid "C" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:611 grub-core/loader/i386/bsd.c:613 ++#: grub-core/loader/i386/bsd.c:657 grub-core/loader/i386/bsd.c:659 ++msgid "kFreeBSD." ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:939 grub-core/loader/i386/linux.c:497 ++#: grub-core/loader/i386/xnu.c:870 grub-core/loader/multiboot.c:106 ++#: grub-core/term/gfxterm.c:378 ++#, c-format ++msgid "%s;" ++msgstr "" ++ ++#: grub-core/loader/i386/linux.c:966 ++#, c-format ++msgid "%ux%ux%u,%ux%u" ++msgstr "" ++ ++ ++#: grub-core/loader/i386/pc/plan9.c:119 ++msgid "linuxswap" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:146 grub-core/partmap/plan.c:46 ++#: grub-core/partmap/plan.c:55 ++msgid "part " ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:196 ++#, c-format ++msgid "%s.%d" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:457 grub-core/loader/i386/pc/plan9.c:479 ++msgid "bootfile=" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:149 ++msgid "ineIntel" ++msgstr "" ++ ++#: grub-core/loader/i386/xnu.c:159 ++msgid "GenuineIntel" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:50 ++msgid "800x600" ++msgstr "" ++ ++#: util/misc.c:151 ++#, c-format ++msgid " bytes at offset 0x%llx" ++msgstr "" ++ ++#: util/misc.c:165 ++msgid " bytes" ++msgstr "" ++ ++#: include/grub/lib/envblk.h:22 ++msgid "# GRUB Environment Block\n" ++msgstr "" ++ ++#: include/grub/lib/envblk.h:23 ++msgid "grubenv" ++msgstr "" ++ ++#: grub-core/normal/misc.c:120 ++msgid "ext*" ++msgstr "" ++ ++#: grub-core/partmap/msdos.c:74 ++msgid "ÔA õ" ++msgstr "" ++ ++#: grub-core/partmap/msdos.c:80 ++msgid "ØA õ" ++msgstr "" ++ ++#: grub-core/partmap/msdos.c:86 ++msgid "HP Backup and Recovery Manager (?)" ++msgstr "" ++ ++#: grub-core/partmap/msdos.c:87 ++msgid "pŠ]F5Å“®=†ý±U>à" ++msgstr "" ++ ++#: grub-core/partmap/msdos.c:94 ++msgid "ycgl" ++msgstr "" ++ ++#: grub-core/partmap/msdos.c:100 ++msgid "Acer registration utility (?)" ++msgstr "" ++ ++#: grub-core/partmap/msdos.c:101 ++msgid "GREGRegDone.Tag" ++msgstr "" ++ ++#: grub-core/script/execute.c:253 grub-core/script/execute.c:289 ++msgid "#" ++msgstr "" ++ ++#: grub-core/script/execute.c:292 grub-core/script/execute.c:489 ++#, c-format ++msgid "%u" ++msgstr "" ++ ++#: grub-core/script/execute.c:693 ++msgid "{" ++msgstr "" ++ ++#: grub-core/script/execute.c:705 ++msgid "}" ++msgstr "" ++ ++#: grub-core/term/usb_keyboard.c:410 ++#, c-format ++msgid " report: 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n" ++msgstr "" ++ ++#: grub-core/loader/i386/pc/plan9.c:47 ++msgid "ZORT 0\r\n" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:486 ++#, c-format ++msgid " %-18s %-18s%14s%14s\n" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:495 ++#, c-format ++msgid " %-18s" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:502 ++#, c-format ++msgid " 0x%08x" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:510 ++#, c-format ++msgid " 0x%08x\n" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:552 ++#, c-format ++msgid " %-18s%14s%14s%14s\n" ++msgstr "" ++ ++#: grub-core/loader/i386/bsd.c:556 ++#, c-format ++msgid " %-18s 0x%08x 0x%08x 0x%08x" ++msgstr "" ++ ++#: grub-core/loader/mips/linux.c:271 grub-core/loader/mips/linux.c:324 ++#: grub-core/loader/mips/linux.c:328 ++msgid "a0" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:719 grub-core/fs/btrfs.c:814 ++msgid " (%d stripes (%d substripes) of %" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:815 ++msgid ") stripe %" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:816 ++msgid " maps to 0x%" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:824 ++msgid " for laddr 0x%" ++msgstr "" ++ ++#: grub-core/fs/btrfs.c:1671 grub-core/fs/ext2.c:961 ++#: grub-core/fs/reiserfs.c:1363 grub-core/fs/xfs.c:881 ++#, c-format ++msgid "%04x%04x-%04x-%04x-%04x-%04x%04x%04x" ++msgstr "" ++ ++#: grub-core/lib/arg.c:109 grub-core/net/net.c:1169 ++#, c-format ++msgid "%s %s %s\n" ++msgstr "" ++ ++#: grub-core/lib/arg.c:121 ++#, c-format ++msgid "-%c%c " ++msgstr "" ++ ++#: grub-core/lib/arg.c:159 ++#, c-format ++msgid "" ++"%s\n" ++"\n" ++msgstr "" ++ ++#: grub-core/normal/menu.c:680 grub-core/normal/menu_entry.c:1126 ++#: util/grub-menulst2cfg.c:106 ++msgid " " ++msgstr "" ++ ++#: grub-core/normal/menu.c:692 ++msgid "" ++"\n" ++" " ++msgstr "" ++ ++#: grub-core/normal/menu.c:708 ++msgid "" ++"\n" ++" " ++msgstr "" ++ ++#: grub-core/normal/menu_entry.c:1052 ++msgid "" ++"\n" ++" " ++msgstr "" ++ ++#: grub-core/normal/misc.c:76 ++msgid ".%02" ++msgstr "" ++ ++#: grub-core/normal/misc.c:80 ++#, c-format ++msgid "%llu%s" ++msgstr "" ++ ++#: grub-core/normal/misc.c:95 ++msgid "\t" ++msgstr "" ++ ++#: grub-core/normal/main.c:573 ++msgid "y" ++msgstr "" ++ ++#: grub-core/normal/menu.c:300 grub-core/normal/menu.c:572 ++msgid "fallback" ++msgstr "" ++ ++#: grub-core/net/net.c:737 ++#, c-format ++msgid "%02x:" ++msgstr "" ++ ++#: grub-core/net/net.c:1105 ++#, c-format ++msgid "%s/%d " ++msgstr "" ++ ++#: grub-core/net/net.c:1152 ++#, c-format ++msgid "%s %s\n" ++msgstr "" ++ ++#: grub-core/net/net.c:234 grub-core/net/net.c:272 grub-core/net/net.c:696 ++#: grub-core/net/net.c:703 ++msgid ":" ++msgstr "" ++ ++#: grub-core/net/ip.c:427 grub-core/net/ip.c:685 ++msgid ", expected %" ++msgstr "" ++ ++#: grub-core/disk/geli.c:151 ++#, c-format ++msgid " keysize=%d\n" ++msgstr "" ++ ++#: grub-core/disk/scsi.c:619 ++#, c-format ++msgid ", blocksize=%u\n" ++msgstr "" ++ ++#: grub-core/fs/iso9660.c:1045 ++#, c-format ++msgid "%c%c%c%c-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:1492 ++msgid "big-endian gang\n" ++msgstr "" ++ ++#: grub-core/fs/zfs/zfs.c:1660 ++msgid ", %p) for txg %" ++msgstr "" ++ ++#: include/grub/lvm.h:65 ++msgid " LVM2 x[5A%r0N*>" ++msgstr "" ++ ++#: grub-core/video/sm712.c:267 ++#, c-format ++msgid " .byte 0x%04x, 0x00\n" ++msgstr "" ++ ++#: grub-core/kern/efi/mm.c:429 ++#, c-format ++msgid "MD: t=%x, p=%llx, v=%llx, n=%llx, a=%llx\n" ++msgstr "" ++ ++#: grub-core/kern/mm.c:402 ++#, c-format ++msgid "%s:%d: q=%p, q->size=0x%x, q->magic=0x%x\n" ++msgstr "" ++ ++#: grub-core/kern/mm.c:501 grub-core/kern/mm.c:529 ++#, c-format ++msgid "F:%p:%u:%p\n" ++msgstr "" ++ ++#: grub-core/kern/mm.c:516 ++#, c-format ++msgid "called at line %u\n" ++msgstr "" ++ ++#: grub-core/kern/mm.c:533 ++#, c-format ++msgid "A:%p:%u\n" ++msgstr "" ++ ++#: grub-core/kern/mm.c:548 ++msgid "%s:%d: malloc (0x%" ++msgstr "" ++ ++#: grub-core/kern/mm.c:548 grub-core/kern/mm.c:561 grub-core/kern/mm.c:580 ++#: grub-core/kern/mm.c:595 ++msgid ") = " ++msgstr "" ++ ++#: grub-core/kern/mm.c:551 grub-core/kern/mm.c:564 grub-core/kern/mm.c:583 ++#: grub-core/kern/mm.c:598 ++#, c-format ++msgid "%p\n" ++msgstr "" ++ ++#: grub-core/kern/mm.c:561 ++msgid "%s:%d: zalloc (0x%" ++msgstr "" ++ ++#: grub-core/kern/mm.c:572 ++#, c-format ++msgid "%s:%d: free (%p)\n" ++msgstr "" ++ ++#: grub-core/kern/mm.c:580 ++msgid "%s:%d: realloc (%p, 0x%" ++msgstr "" ++ ++#: grub-core/kern/mm.c:594 ++msgid "%s:%d: memalign (0x%" ++msgstr "" ++ ++#: grub-core/lib/hexdump.c:49 grub-core/normal/menu_entry.c:1023 ++msgid " " ++msgstr "" ++ ++#: grub-core/lib/hexdump.c:71 ++msgid "*\n" ++msgstr "" ++ ++#: grub-core/lib/i386/backtrace.c:38 ++#, c-format ++msgid "%p: " ++msgstr "" ++ ++#: grub-core/lib/i386/backtrace.c:40 ++msgid " (" ++msgstr "" ++ ++#: grub-core/lib/i386/backtrace.c:42 ++#, c-format ++msgid "%p," ++msgstr "" ++ ++#: grub-core/lib/i386/backtrace.c:43 ++#, c-format ++msgid "%p)\n" ++msgstr "" ++ ++#: grub-core/net/net.c:738 ++msgid "XX:" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:131 ++msgid "_start" ++msgstr "" ++ ++#: grub-core/gfxmenu/gui_circular_progress.c:240 ++msgid "°" ++msgstr "" ++ ++#: grub-core/kern/emu/argp_common.c:33 util/grub-editenv.c:61 ++#: util/grub-fstest.c:531 util/grub-mount.c:449 ++#, c-format ++msgid "%s (%s) %s\n" ++msgstr "" ++ ++#: grub-core/video/sm712.c:252 grub-core/video/sm712.c:266 ++#, c-format ++msgid "FAIL\n" ++msgstr "" ++ ++#: grub-core/lib/hexdump.c:34 ++#, c-format ++msgid "%08lx " ++msgstr "" ++ ++#: grub-core/lib/backtrace.c:41 ++msgid "%s.%x+%" ++msgstr "" ++ ++#: grub-core/commands/minicmd.c:113 ++#, c-format ++msgid "%x%x " ++msgstr "" ++ ++#: grub-core/commands/minicmd.c:158 ++#, c-format ++msgid "%s\t%d\t\t" ++msgstr "" ++ ++#: grub-core/disk/arc/arcdisk.c:238 grub-core/disk/arc/arcdisk.c:275 ++#, c-format ++msgid " failed: %ld\n" ++msgstr "" ++ ++#: grub-core/lib/xzembed/xz_stream.h:35 ++msgid "ý7zXZ" ++msgstr "" ++ ++#: grub-core/lib/xzembed/xz_stream.h:38 ++msgid "YZ" ++msgstr "" ++ ++#: grub-core/font/font.c:197 ++msgid "" ++msgstr "" ++ ++#: grub-core/font/font.c:635 ++msgid "Unknown" ++msgstr "" ++ ++#: grub-core/lib/crypto.c:83 grub-core/lib/libgcrypt_wrap/mem.c:99 ++msgid "gcrypt" ++msgstr "" ++ ++#: grub-core/lib/crypto.c:85 ++msgid "gcrypt error: " ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:217 ++msgid "\\" ++msgstr "" ++ ++#: grub-core/commands/minicmd.c:85 ++#, c-format ++msgid "%s (%d%c)\t%s\n" ++msgstr "" ++ ++#: grub-core/commands/probe.c:77 grub-core/commands/probe.c:91 ++#: util/grub-mkimage.c:1905 ++msgid "none" ++msgstr "" ++ ++#: grub-core/lib/libgcrypt_wrap/mem.c:101 ++msgid "gcrypt: " ++msgstr "" ++ ++#: grub-core/lib/libgcrypt_wrap/mem.c:113 ++msgid "gcrypt bug: " ++msgstr "" ++ ++#: grub-core/lib/posix_wrap/assert.h:30 ++#, c-format ++msgid "Assertion failed at %s:%d\n" ++msgstr "" ++ ++#: include/grub/list.h:42 ++msgid "bad type cast between incompatible grub types" ++msgstr "" ++ ++#: grub-core/kern/mm.c:117 ++#, c-format ++msgid "Using memory for heap: start=%p, end=%p\n" ++msgstr "" ++ ++#: grub-core/loader/efi/chainloader.c:263 ++msgid "file path: " ++msgstr "" ++ ++#: grub-core/net/net.c:720 ++#, c-format ++msgid "Unknown address type %d" ++msgstr "" ++ ++#: grub-core/normal/misc.c:164 ++#, c-format ++msgid ", UUID %s" ++msgstr "" ++ ++#: grub-core/video/readers/jpeg.c:817 ++msgid "Tests loading of JPEG bitmap." ++msgstr "" ++ ++#: grub-core/video/readers/png.c:959 ++msgid "Tests loading of PNG bitmap." ++msgstr "" ++ ++#: grub-core/video/readers/tga.c:485 ++msgid "Tests loading of TGA bitmap." ++msgstr "" ++ ++#: util/grub-mkimagexx.c:107 ++#, c-format ++msgid "undefined symbol %s" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:112 ++#, c-format ++msgid "section %d does not exist" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:348 ++msgid "trampoline offset too big (%" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:395 ++#, c-format ++msgid " at the offset 0x%llx" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:412 ++#, c-format ++msgid "unknown architecture type %d" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:502 ++msgid "too many fixup entries" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:584 ++msgid "can't add fixup entry for R_X86_64_32(S)" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:639 ++#, c-format ++msgid "unknown machine type 0x%x" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:828 ++msgid "invalid ELF header" ++msgstr "" ++ ++#: util/grub-mkimagexx.c:946 ++msgid "start symbol is not defined" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:132 grub-core/commands/acpihalt.c:284 ++#, c-format ++msgid "Unknown opcode 0x%x\n" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:176 ++#, c-format ++msgid "Unexpected extended opcode: 0x%x\n" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:226 ++#, c-format ++msgid "Unknown opcode in _S5: 0x%x\n" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:245 ++#, c-format ++msgid "Unknown data type in _S5: 0x%x\n" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:301 ++#, c-format ++msgid "Usage: %s FILE\n" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:305 ++#, c-format ++msgid "Couldn't open file\n" ++msgstr "" ++ ++#: grub-core/commands/acpihalt.c:326 ++#, c-format ++msgid "Sleep type = %d\n" ++msgstr "" ++ ++#: grub-core/loader/sparc64/ieee1275/linux.c:456 ++msgid "Cannot find /virtual-memory node.\n" ++msgstr "" ++ ++#: grub-core/loader/sparc64/ieee1275/linux.c:462 ++msgid "Cannot find /virtual-memory/translations size.\n" ++msgstr "" ++ ++#: grub-core/loader/sparc64/ieee1275/linux.c:469 ++msgid "Cannot allocate translations buffer.\n" ++msgstr "" ++ ++#: grub-core/loader/sparc64/ieee1275/linux.c:475 ++msgid "Cannot fetch /virtual-memory/translations property.\n" ++msgstr "" ++ ++#: grub-core/mmap/efi/mmap.c:87 ++#, c-format ++msgid "Unknown memory type %d, considering reserved\n" ++msgstr "" ++ ++#: grub-core/gdb/cstub.c:215 ++#, c-format ++msgid "Unhandled exception 0x%x at " ++msgstr "" ++ ++#: grub-core/gfxmenu/view.c:476 ++#, c-format ++msgid "Booting '%s'" ++msgstr "" ++ ++#: grub-core/gfxmenu/view.c:494 ++#, c-format ++msgid "Falling back to '%s'" ++msgstr "" ++ ++#: grub-core/disk/ieee1275/ofdisk.c:524 grub-core/kern/ieee1275/init.c:98 ++msgid "/chosen/bootpath property missing!\n" ++msgstr "" ++ ++#: grub-core/commands/videotest.c:95 grub-core/commands/videotest.c:100 ++msgid "The quick brown fox jumped over the lazy dog." ++msgstr "" ++ ++#: grub-core/commands/videotest.c:122 ++msgid "Unicode test: happy☺ £ 5.00 ¡τäu! ℤ⊆â„" ++msgstr "" ++ ++#: grub-core/kern/i386/multiboot_mmap.c:51 ++#, c-format ++msgid "" ++"WARNING: Memory map size exceeds limit (0x%x > 0x%x); it will be truncated\n" ++msgstr "" ++ ++#: grub-core/kern/main.c:261 ++msgid "" ++"Welcome to GRUB!\n" ++"\n" ++msgstr "" ++ ++#: grub-core/kern/misc.c:1105 ++msgid "" ++"\n" ++"Aborted." ++msgstr "" ++ ++#: grub-core/kern/misc.c:1111 ++msgid " Press any key to exit." ++msgstr "" ++ ++#: grub-core/kern/err.c:131 ++msgid "assert: error stack overflow detected!\n" ++msgstr "" ++ ++#: grub-core/kern/ieee1275/init.c:202 ++msgid "Warning: attempt to claim over our own code!\n" ++msgstr "" ++ ++#: grub-core/lib/arg.c:177 ++#, c-format ++msgid "" ++"\n" ++"Report bugs to <%s>.\n" ++msgstr "" ++ ++#: grub-core/lib/i386/backtrace.c:48 ++#, c-format ++msgid "Invalid stack frame at %p (%p)\n" ++msgstr "" ++ ++#: grub-core/kern/efi/mm.c:511 ++msgid "printing memory map\n" ++msgstr "" ++ ++#: grub-core/bus/emu/pci.c:58 ++#, c-format ++msgid "mapping 0x%x failed (error %d)\n" ++msgstr "" ++ ++#: grub-core/bus/usb/ehci.c:1572 ++#, c-format ++msgid "%s: prev not found, queues are corrupt\n" ++msgstr "" ++ ++#: grub-core/commands/boottime.c:46 ++#, c-format ++msgid "%3d.%03ds %2d.%03ds %s:%d %s\n" ++msgstr "" ++ ++#: grub-core/commands/date.c:49 ++#, c-format ++msgid "%d-%02d-%02d %02d:%02d:%02d %s\n" ++msgstr "" ++ ++#: grub-core/commands/i386/pc/drivemap.c:195 ++#, c-format ++msgid "%cD #%-3u (0x%02x) %cd%d\n" ++msgstr "" ++ ++#: grub-core/commands/i386/pc/drivemap.c:259 ++msgid "Swapping" ++msgstr "" ++ ++#: grub-core/commands/i386/pc/drivemap.c:259 ++msgid "Mapping" ++msgstr "" ++ ++#: grub-core/kern/rescue_parser.c:71 ++msgid "Try `help' for usage\n" ++msgstr "" ++ ++#: grub-core/kern/rescue_reader.c:81 ++msgid "Entering rescue mode...\n" ++msgstr "" ++ ++#: grub-core/kern/corecmd.c:153 ++#, c-format ++msgid "(%s): Filesystem is %s.\n" ++msgstr "" ++ ++#: grub-core/kern/corecmd.c:154 ++msgid "unknown" ++msgstr "" ++ ++#: grub-core/commands/ls.c:157 ++#, c-format ++msgid " %d-%02d-%02d %02d:%02d:%02d %-11s " ++msgstr "" ++ ++#: grub-core/commands/ls.c:163 ++#, c-format ++msgid " %04d%02d%02d%02d%02d%02d " ++msgstr "" ++ ++#: grub-core/commands/testload.c:72 ++#, c-format ++msgid "Reading %s sequentially" ++msgstr "" ++ ++#: grub-core/commands/testload.c:76 grub-core/commands/testload.c:101 ++#: grub-core/commands/testload.c:140 ++msgid " Done.\n" ++msgstr "" ++ ++#: grub-core/commands/testload.c:79 ++#, c-format ++msgid "Reading %s sequentially again" ++msgstr "" ++ ++#: grub-core/commands/testload.c:96 grub-core/commands/testload.c:125 ++#, c-format ++msgid "" ++"\n" ++"Differs in %lld\n" ++msgstr "" ++ ++#: grub-core/commands/testload.c:104 ++#, c-format ++msgid "Reading %s backwards" ++msgstr "" ++ ++#: grub-core/commands/keylayouts.c:177 ++#, c-format ++msgid "Unknown key 0x%x detected\n" ++msgstr "" ++ ++#: grub-core/commands/videotest.c:203 ++#, c-format ++msgid "color %d: %08x\n" ++msgstr "" ++ ++#: grub-core/kern/efi/mm.c:196 ++msgid "Trying to terminate EFI services again\n" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:639 ++#, c-format ++msgid "cannot get disk label of `%s'" ++msgstr "" ++ ++#: grub-core/term/at_keyboard.c:370 ++msgid "No supported scancode set found\n" ++msgstr "" ++ ++#: grub-core/term/usb_keyboard.c:402 ++#, c-format ++msgid "%s failed. Stopped\n" ++msgstr "" ++ ++#: util/grub-setup.c:343 ++#, c-format ++msgid "guessing the root device failed, because of `%s'" ++msgstr "" ++ ++#: grub-core/commands/keylayouts.c:177 ++#, c-format ++msgid "Unknown key 0x%x detected\n" ++msgstr "" ++ ++#: grub-core/commands/videotest.c:203 ++#, c-format ++msgid "color %d: %08x\n" ++msgstr "" ++ ++#: grub-core/kern/efi/mm.c:196 ++msgid "Trying to terminate EFI services again\n" ++msgstr "" ++ ++#: grub-core/kern/emu/hostdisk.c:639 ++#, c-format ++msgid "cannot get disk label of `%s'" ++msgstr "" ++ ++#: grub-core/term/at_keyboard.c:370 ++msgid "No supported scancode set found\n" ++msgstr "" ++ ++#: grub-core/term/usb_keyboard.c:402 ++#, c-format ++msgid "%s failed. Stopped\n" ++msgstr "" ++ ++#: util/grub-setup.c:343 ++#, c-format ++msgid "guessing the root device failed, because of `%s'" ++msgstr "" +diff --git a/tests/gettext_strings_test.in b/tests/gettext_strings_test.in +new file mode 100644 +index 0000000..ffbb73d +--- /dev/null ++++ b/tests/gettext_strings_test.in +@@ -0,0 +1,20 @@ ++#!/bin/sh ++ ++cd '@srcdir@' ++ ++tdir="$(mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX")" ++ ++xgettext -f po/POTFILES.in -L C -o "$tdir/"skip.pot -x po/grub.pot --keyword=grub_util_info --keyword=grub_dprintf:1,2 --keyword=grub_register_command --keyword=grub_register_extcmd --keyword=grub_efiemu_resolve_symbol --keyword=grub_efiemu_register_symbol --keyword=grub_dl_load --keyword=grub_crypto_lookup_md_by_name --keyword=grub_crypto_lookup_cipher_by_name --keyword=grub_efiemu_resolve_symbol --keyword=alias --keyword=grub_ieee1275_get_property:2 --keyword=grub_ieee1275_find_device --keyword=grub_ieee1275_get_integer_property:2 --keyword=INIT_IEEE1275_COMMON:2 --keyword=grub_boot_time --keyword=grub_env_get --keyword=grub_env_set --keyword=grub_register_variable_hook --keyword=grub_fatal --keyword=__asm__ --keyword=volatile --keyword=__volatile__ --keyword=grub_error:2 --from-code=iso-8859-1 ++xgettext -f po/POTFILES.in -L C -o "$tdir/"skip2.pot -x po/grub.pot --keyword=volatile:2 --keyword=__volatile__:2 --keyword=grub_dprintf:2 --from-code=iso-8859-1 ++xgettext -f po/POTFILES.in -L C -o "$tdir/"skip3.pot -x po/grub.pot --keyword=volatile:3 --keyword=__volatile__:3 --from-code=iso-8859-1 ++ ++cat po/POTFILES.in | xargs grep -hE -o "( | ){\"[a-z0-9\-]*\",[[:space:]]*('.'|[0-9]|-[0-9])," |sed "s,[[:space:]]*{\",,g;s,\"\,[[:space:]]*\('.'\|[0-9]\|-[0-9]\)\,,,g" | awk '{ print "msgid \"" $0 "\"\nmsgstr \"\"" ; }' > "$tdir/"opts.pot ++cat po/POTFILES.in | xargs grep -hE -o "[[:space:]]*\.name[[:space:]]*=[[:space:]]*\"[a-zA-Z0-9 ()]*\"" |sed "s,[[:space:]]*\.name[[:space:]]*=[[:space:]]*\",,g;s,\",,g" | awk '{ print "msgid \"" $0 "\"\nmsgstr \"\"" ; }' > "$tdir/"name.pot ++ ++out="$(cat po/POTFILES.in | grep -v '\(colors.c\|lsefisystab.c\|lsefimmap.c\|lssal.c\|hdparm.c\|sendkey.c\|lsacpi.c\|lspci.c\|usbtest.c\|legacy_parse.c\|/libgcrypt/\|hfs.c\|/efi\.c$\|gnulib\|tests/\|util/ieee1275/ofpath.c\|minilzo.c\|terminfo.c\|setpci.c\|bin2h.c\|cb_timestamps.c\|grub-pe2elf.c\|getroot.c\|arc/init.c\|color.c\|grub-mklayout.c\|gentrigtables.c\|lzodefs.h\|lsefi.c\|cbls.c\|/zfs\.h$\|grub-macho2img.c\|lvm.c\|efidisk.c\|grub-mkfont.c\|reiserfs.c\|LzmaEnc.c\)' | xgettext -f - -L C -o - -x po/grub.pot -x "$tdir/"skip.pot -x "$tdir/"skip2.pot -x "$tdir/"skip3.pot -x "$tdir/"opts.pot -x "$tdir/"name.pot -x po/exclude.pot -a --from-code=iso-8859-1)" ++rm -rf "$tdir" ++if [ x"$out" != x ]; then ++ echo "$out" ++ exit 1; ++fi ++ +-- +1.8.2.1 + diff --git a/0437-New-variables-net_default_-to-determine-MAC-IP-of-de.patch b/0437-New-variables-net_default_-to-determine-MAC-IP-of-de.patch new file mode 100644 index 0000000..0930526 --- /dev/null +++ b/0437-New-variables-net_default_-to-determine-MAC-IP-of-de.patch @@ -0,0 +1,136 @@ +From 95329b0fbbbd6c7258c275a27ed904bdae11caad Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 12:05:36 +0200 +Subject: [PATCH 437/471] New variables 'net_default_*' to determine + MAC/IP of default interface. + +--- + ChangeLog | 4 +++ + grub-core/net/bootp.c | 3 +++ + grub-core/net/net.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++- + 3 files changed, 75 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 67b4c6f..cbd5d97 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ New variables 'net_default_*' to determine MAC/IP of default interface. ++ ++2013-05-07 Vladimir Serbinenko ++ + * tests/gettext_strings_test.in: A test to check for strings not + marked for translation. + +diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c +index 33f860a..c8ef4d6 100644 +--- a/grub-core/net/bootp.c ++++ b/grub-core/net/bootp.c +@@ -211,6 +211,9 @@ grub_net_configure_by_dhcp_ack (const char *name, + grub_print_error (); + } + ++ if (is_def) ++ grub_env_set ("net_default_interface", name); ++ + if (device && !*device && bp->server_ip) + { + *device = grub_xasprintf ("tftp,%d.%d.%d.%d", +diff --git a/grub-core/net/net.c b/grub-core/net/net.c +index aebbe4b..8ea6906 100644 +--- a/grub-core/net/net.c ++++ b/grub-core/net/net.c +@@ -1,6 +1,6 @@ + /* + * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2010,2011 Free Software Foundation, Inc. ++ * Copyright (C) 2010,2011,2012,2013 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -813,6 +813,69 @@ defserver_get_env (struct grub_env_var *var __attribute__ ((unused)), + return grub_net_default_server ? : ""; + } + ++static const char * ++defip_get_env (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val __attribute__ ((unused))) ++{ ++ const char *intf = grub_env_get ("net_default_interface"); ++ const char *ret = NULL; ++ if (intf) ++ { ++ char *buf = grub_xasprintf ("net_%s_ip", intf); ++ if (buf) ++ ret = grub_env_get (buf); ++ grub_free (buf); ++ } ++ return ret; ++} ++ ++static char * ++defip_set_env (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val) ++{ ++ const char *intf = grub_env_get ("net_default_interface"); ++ if (intf) ++ { ++ char *buf = grub_xasprintf ("net_%s_ip", intf); ++ if (buf) ++ grub_env_set (buf, val); ++ grub_free (buf); ++ } ++ return NULL; ++} ++ ++ ++static const char * ++defmac_get_env (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val __attribute__ ((unused))) ++{ ++ const char *intf = grub_env_get ("net_default_interface"); ++ const char *ret = NULL; ++ if (intf) ++ { ++ char *buf = grub_xasprintf ("net_%s_mac", intf); ++ if (buf) ++ ret = grub_env_get (buf); ++ grub_free (buf); ++ } ++ return ret; ++} ++ ++static char * ++defmac_set_env (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val) ++{ ++ const char *intf = grub_env_get ("net_default_interface"); ++ if (intf) ++ { ++ char *buf = grub_xasprintf ("net_%s_mac", intf); ++ if (buf) ++ grub_env_set (buf, val); ++ grub_free (buf); ++ } ++ return NULL; ++} ++ + + static void + grub_net_network_level_interface_register (struct grub_net_network_level_interface *inter) +@@ -1560,6 +1623,10 @@ GRUB_MOD_INIT(net) + defserver_set_env); + grub_register_variable_hook ("pxe_default_server", defserver_get_env, + defserver_set_env); ++ grub_register_variable_hook ("net_default_ip", defip_get_env, ++ defip_set_env); ++ grub_register_variable_hook ("net_default_mac", defmac_get_env, ++ defmac_set_env); + + cmd_addaddr = grub_register_command ("net_add_addr", grub_cmd_addaddr, + /* TRANSLATORS: HWADDRESS stands for +-- +1.8.2.1 + diff --git a/0438-grub-core-tests-setjmp_test.c-New-test.patch b/0438-grub-core-tests-setjmp_test.c-New-test.patch new file mode 100644 index 0000000..803da09 --- /dev/null +++ b/0438-grub-core-tests-setjmp_test.c-New-test.patch @@ -0,0 +1,138 @@ +From 7a17fdeafeca824d9dec7c2a57e8f958d58b45eb Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 12:28:59 +0200 +Subject: [PATCH 438/471] * grub-core/tests/setjmp_test.c: New test. + +--- + ChangeLog | 4 ++ + grub-core/Makefile.core.def | 5 +++ + grub-core/tests/lib/functional_test.c | 1 + + grub-core/tests/setjmp_test.c | 74 +++++++++++++++++++++++++++++++++++ + 4 files changed, 84 insertions(+) + create mode 100644 grub-core/tests/setjmp_test.c + +diff --git a/ChangeLog b/ChangeLog +index cbd5d97..aeb61cd 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ * grub-core/tests/setjmp_test.c: New test. ++ ++2013-05-07 Vladimir Serbinenko ++ + New variables 'net_default_*' to determine MAC/IP of default interface. + + 2013-05-07 Vladimir Serbinenko +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 56a1ec3..7dc106e 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1743,6 +1743,11 @@ module = { + }; + + module = { ++ name = setjmp_test; ++ common = tests/setjmp_test.c; ++}; ++ ++module = { + name = videotest_checksum; + common = tests/videotest_checksum.c; + }; +diff --git a/grub-core/tests/lib/functional_test.c b/grub-core/tests/lib/functional_test.c +index 957354e..8f66fe3 100644 +--- a/grub-core/tests/lib/functional_test.c ++++ b/grub-core/tests/lib/functional_test.c +@@ -56,6 +56,7 @@ grub_functional_all_tests (grub_extcmd_context_t ctxt __attribute__ ((unused)), + grub_dl_load ("exfctest"); + grub_dl_load ("videotest_checksum"); + grub_dl_load ("gfxterm_menu"); ++ grub_dl_load ("setjmp_test"); + + FOR_LIST_ELEMENTS (test, grub_test_list) + ok = !grub_test_run (test) && ok; +diff --git a/grub-core/tests/setjmp_test.c b/grub-core/tests/setjmp_test.c +new file mode 100644 +index 0000000..29aab25 +--- /dev/null ++++ b/grub-core/tests/setjmp_test.c +@@ -0,0 +1,74 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static grub_jmp_buf jmp_point; ++static int expected, ctr; ++ ++static void ++jmp0 (void) ++{ ++ grub_longjmp (jmp_point, 0); ++} ++ ++static void ++jmp1 (void) ++{ ++ grub_longjmp (jmp_point, 1); ++} ++ ++static void ++jmp2 (void) ++{ ++ grub_longjmp (jmp_point, 2); ++} ++ ++static void ++setjmp_test (void) ++{ ++ int val; ++ ++ expected = 0; ++ val = grub_setjmp (jmp_point); ++ ++ grub_test_assert (val == expected, "setjmp returned %d instead of %d", ++ val, expected); ++ switch (ctr++) ++ { ++ case 0: ++ expected = 1; ++ jmp0 (); ++ case 1: ++ expected = 1; ++ jmp1 (); ++ case 2: ++ expected = 2; ++ jmp2 (); ++ case 3: ++ return; ++ } ++ grub_test_assert (0, "setjmp didn't return enough times"); ++} ++ ++/* Register example_test method as a functional test. */ ++GRUB_FUNCTIONAL_TEST (setjmp_test, setjmp_test); +-- +1.8.2.1 + diff --git a/0439-Menu-color-test.patch b/0439-Menu-color-test.patch new file mode 100644 index 0000000..1c90871 --- /dev/null +++ b/0439-Menu-color-test.patch @@ -0,0 +1,152 @@ +From 6a9def44c8d873b143c12e572c80575bdd4b8f00 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 14:38:29 +0200 +Subject: [PATCH 439/471] Menu color test. + +--- + ChangeLog | 4 +++ + grub-core/tests/checksums.h | 62 +++++++++++++++++++++++++++++++++++++++- + grub-core/tests/gfxterm_menu.c | 2 ++ + grub-core/tests/video_checksum.c | 3 +- + include/grub/test.h | 4 ++- + 5 files changed, 72 insertions(+), 3 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index aeb61cd..b7b3777 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ Menu color test. ++ ++2013-05-07 Vladimir Serbinenko ++ + * grub-core/tests/setjmp_test.c: New test. + + 2013-05-07 Vladimir Serbinenko +diff --git a/grub-core/tests/checksums.h b/grub-core/tests/checksums.h +index ac677bb..aa4ae99 100644 +--- a/grub-core/tests/checksums.h ++++ b/grub-core/tests/checksums.h +@@ -36,7 +36,7 @@ + { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x1e1a41fe, 0x237e53c4, 0x1e1a41fe, 0xd5890062, 0x7180f3ea, 0x6be1ad05, 0x6be1ad05, 0x6be1ad05, 0x680e4253, 0x680e4253, 0x680e4253, 0xed2cabb8, 0xed2cabb8, 0xed2cabb8, 0xef4a3312, 0xd5890062, 0xd5890062, }, 18 }, + { "gfxmenu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xcfa0e627, 0x8b7088da, 0xcfa0e627, 0xcd807142, 0xdc37dab7, 0x3886aa8f, 0x3886aa8f, 0x3886aa8f, 0xedbc0794, 0xedbc0794, 0xedbc0794, 0x427d9139, 0x427d9139, 0x427d9139, 0x59c36f00, 0xcd807142, 0xcd807142, }, 18 }, + { "gfxmenu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x64807934, 0x85d684c9, 0x64807934, 0x61726a79, 0x71c38b, 0x33c86a46, 0x33c86a46, 0x33c86a46, 0xe549629b, 0xe549629b, 0xe549629b, 0xc30c9588, 0xc30c9588, 0xc30c9588, 0xaa4593fe, 0x61726a79, 0x61726a79, }, 18 }, +- { "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x9792b643, 0x1d769dd8, 0x9386dd8c, 0x9792b643, 0x3d74bd2f, 0x4411e313, 0xcbff8eae, 0xcbff8eae, 0xcbff8eae, 0x7e7b418b, 0x7e7b418b, 0x7e7b418b, 0xbaa0dd46, 0xbaa0dd46, 0xbaa0dd46, 0xc9cbf769, 0x3d74bd2f, 0x3d74bd2f, }, 19 }, ++ { "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x9792b643, 0x1d769dd8, 0x9792b643, 0x3d74bd2f, 0x4411e313, 0xcbff8eae, 0xcbff8eae, 0xcbff8eae, 0x7e7b418b, 0x7e7b418b, 0x7e7b418b, 0xbaa0dd46, 0xbaa0dd46, 0xbaa0dd46, 0xc9cbf769, 0x3d74bd2f, 0x3d74bd2f, }, 18 }, + { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbdb8f583, 0x1e27b76, 0xbdb8f583, 0x91be6e17, 0xf93a81be, 0x8632932e, 0x8632932e, 0x8632932e, 0xa297894, 0xa297894, 0xa297894, 0x66f16747, 0x66f16747, 0x66f16747, 0x5387d57f, 0x91be6e17, 0x91be6e17, }, 18 }, + { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbe72e1cb, 0x4943add3, 0xbe72e1cb, 0xa207f983, 0x58397d1d, 0x809530c5, 0x809530c5, 0x809530c5, 0x8b80ad8a, 0x8b80ad8a, 0x8b80ad8a, 0x425ad0af, 0x425ad0af, 0x425ad0af, 0xf83ee7aa, 0xa207f983, 0xa207f983, }, 18 }, + { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xbc064047, 0x9e12d9ac, 0xbc064047, 0xf9bdce43, 0x7184c3f8, 0xc8fd1102, 0xc8fd1102, 0xc8fd1102, 0x81f910a3, 0x81f910a3, 0x81f910a3, 0xdb64e608, 0xdb64e608, 0xdb64e608, 0x724366e5, 0xf9bdce43, 0xf9bdce43, }, 18 }, +@@ -328,6 +328,66 @@ + { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x97582aea, 0x106653a, 0x97582aea, 0x51457020, 0x9813a416, 0x9813a416, 0x6fbc18ae, 0x6fbc18ae, 0x6fbc18ae, 0x64491c01, 0x64491c01, 0x64491c01, 0x704bde98, 0x704bde98, 0x704bde98, 0x9813a416, 0x51457020, 0x51457020, 0x9813a416, }, 20 }, + { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x964f65ea, 0x34ae6fb6, 0x964f65ea, 0x13c154da, 0x5fcf013d, 0x5fcf013d, 0xa4ebbaa6, 0xa4ebbaa6, 0xa4ebbaa6, 0x55a8bfbb, 0x55a8bfbb, 0x55a8bfbb, 0x1257bc3c, 0x1257bc3c, 0x1257bc3c, 0x5fcf013d, 0x13c154da, 0x13c154da, 0x5fcf013d, }, 20 }, + { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x75e6834a, 0x28165e16, 0x75e6834a, 0x75ad9a21, 0xdd28f52b, 0xdd28f52b, 0x6ae4a429, 0x6ae4a429, 0x6ae4a429, 0x17f2e3ed, 0x17f2e3ed, 0x17f2e3ed, 0x74c03dc7, 0x74c03dc7, 0x74c03dc7, 0xdd28f52b, 0x75ad9a21, 0x75ad9a21, 0xdd28f52b, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x5cf3c4a7, 0x94eb1d70, 0x5cf3c4a7, 0x5e6250e4, 0x59c36f00, 0x59c36f00, 0xd9b250a8, 0xd9b250a8, 0xd9b250a8, 0x85a0504a, 0x85a0504a, 0x85a0504a, 0xc0ec64d4, 0xc0ec64d4, 0xc0ec64d4, 0x59c36f00, 0x5e6250e4, 0x5e6250e4, 0x59c36f00, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xcf628ae2, 0xd8fd317b, 0xcf628ae2, 0x7b7418a9, 0xaa4593fe, 0xaa4593fe, 0x1f6005c4, 0x1f6005c4, 0x1f6005c4, 0xc5e7aaff, 0xc5e7aaff, 0xc5e7aaff, 0xf9ebbab6, 0xf9ebbab6, 0xf9ebbab6, 0xaa4593fe, 0x7b7418a9, 0x7b7418a9, 0xaa4593fe, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x7dd5389a, 0x916306b6, 0x7dd5389a, 0x6f3ea6a4, 0xc9cbf769, 0xc9cbf769, 0x38e2544b, 0x38e2544b, 0x38e2544b, 0xc0b7365, 0xc0b7365, 0xc0b7365, 0x2e6f1bee, 0x2e6f1bee, 0x2e6f1bee, 0xc9cbf769, 0x6f3ea6a4, 0x6f3ea6a4, 0xc9cbf769, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xaa0df0af, 0x5ffeda28, 0xaa0df0af, 0xd27f25fe, 0x9813a416, 0x9813a416, 0xe30e3d0b, 0xe30e3d0b, 0xe30e3d0b, 0xe8fb39a4, 0xe8fb39a4, 0xe8fb39a4, 0xfcf9fb3d, 0xfcf9fb3d, 0xfcf9fb3d, 0x9813a416, 0xd27f25fe, 0xd27f25fe, 0x9813a416, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xdb0cf5b5, 0x4c948c1, 0xdb0cf5b5, 0x67c135cd, 0x5fcf013d, 0x5fcf013d, 0xafc78d19, 0xafc78d19, 0xafc78d19, 0x5e848804, 0x5e848804, 0x5e848804, 0x197b8b83, 0x197b8b83, 0x197b8b83, 0x5fcf013d, 0x67c135cd, 0x67c135cd, 0x5fcf013d, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xa9bbe611, 0x46471f0a, 0xa9bbe611, 0xeca63699, 0xdd28f52b, 0xdd28f52b, 0x9bb2ba8d, 0x9bb2ba8d, 0x9bb2ba8d, 0xe6a4fd49, 0xe6a4fd49, 0xe6a4fd49, 0x85962363, 0x85962363, 0x85962363, 0xdd28f52b, 0xeca63699, 0xeca63699, 0xdd28f52b, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x5cf3c4a7, 0x94eb1d70, 0x5cf3c4a7, 0x5e6250e4, 0x59c36f00, 0x59c36f00, 0xd9b250a8, 0xd9b250a8, 0xd9b250a8, 0x85a0504a, 0x85a0504a, 0x85a0504a, 0xc0ec64d4, 0xc0ec64d4, 0xc0ec64d4, 0x59c36f00, 0x5e6250e4, 0x5e6250e4, 0x59c36f00, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xcf628ae2, 0xd8fd317b, 0xcf628ae2, 0x7b7418a9, 0xaa4593fe, 0xaa4593fe, 0x1f6005c4, 0x1f6005c4, 0x1f6005c4, 0xc5e7aaff, 0xc5e7aaff, 0xc5e7aaff, 0xf9ebbab6, 0xf9ebbab6, 0xf9ebbab6, 0xaa4593fe, 0x7b7418a9, 0x7b7418a9, 0xaa4593fe, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x7dd5389a, 0x916306b6, 0x7dd5389a, 0x6f3ea6a4, 0xc9cbf769, 0xc9cbf769, 0x38e2544b, 0x38e2544b, 0x38e2544b, 0xc0b7365, 0xc0b7365, 0xc0b7365, 0x2e6f1bee, 0x2e6f1bee, 0x2e6f1bee, 0xc9cbf769, 0x6f3ea6a4, 0x6f3ea6a4, 0xc9cbf769, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xf7a6bbc0, 0xa71c6a6a, 0xf7a6bbc0, 0x2c00e54, 0x5387d57f, 0x5387d57f, 0x9a524c3, 0x9a524c3, 0x9a524c3, 0x2ac4e2c9, 0x2ac4e2c9, 0x2ac4e2c9, 0x829fa704, 0x829fa704, 0x829fa704, 0x5387d57f, 0x2c00e54, 0x2c00e54, 0x5387d57f, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x336ec267, 0x367fad6f, 0x336ec267, 0xf645cfe7, 0xf83ee7aa, 0xf83ee7aa, 0xf286d882, 0xf286d882, 0xf286d882, 0x36b15363, 0x36b15363, 0x36b15363, 0xf9af0071, 0xf9af0071, 0xf9af0071, 0xf83ee7aa, 0xf645cfe7, 0xf645cfe7, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x2c87bcd6, 0x36e5ec5f, 0x2c87bcd6, 0xc87d72f9, 0x724366e5, 0x724366e5, 0x46a60453, 0x46a60453, 0x46a60453, 0xa556cc35, 0xa556cc35, 0xa556cc35, 0x1b14594d, 0x1b14594d, 0x1b14594d, 0x724366e5, 0xc87d72f9, 0xc87d72f9, 0x724366e5, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xf34510a5, 0x6bf8e58f, 0xf34510a5, 0xd44e115c, 0x5387d57f, 0x5387d57f, 0xf35640b5, 0xf35640b5, 0xf35640b5, 0xd831fbc, 0xd831fbc, 0xd831fbc, 0x57b868f, 0x57b868f, 0x57b868f, 0x5387d57f, 0xd44e115c, 0xd44e115c, 0x5387d57f, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd50edb2e, 0xed2be670, 0xd50edb2e, 0xab5fbf82, 0xf83ee7aa, 0xf83ee7aa, 0x9d8f9101, 0x9d8f9101, 0x9d8f9101, 0xd3d9c88c, 0xd3d9c88c, 0xd3d9c88c, 0x3905b345, 0x3905b345, 0x3905b345, 0xf83ee7aa, 0xab5fbf82, 0xab5fbf82, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x12b2c01b, 0x838f2386, 0x12b2c01b, 0xcc209686, 0x724366e5, 0x724366e5, 0x2fc9378e, 0x2fc9378e, 0x2fc9378e, 0xee502664, 0xee502664, 0xee502664, 0x6a05ad2c, 0x6a05ad2c, 0x6a05ad2c, 0x724366e5, 0xcc209686, 0xcc209686, 0x724366e5, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xbd1e8fde, 0xe7baf68c, 0xbd1e8fde, 0xf81e08b0, 0x1c955882, 0x1c955882, 0xcf34908a, 0xcf34908a, 0xcf34908a, 0x4d627f3a, 0x4d627f3a, 0x4d627f3a, 0x828afa46, 0x828afa46, 0x828afa46, 0x1c955882, 0xf81e08b0, 0xf81e08b0, 0x1c955882, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xeacfb81e, 0x63c43df, 0xeacfb81e, 0xb7b61016, 0x4d266f7a, 0x4d266f7a, 0xe07e5e3f, 0xe07e5e3f, 0xe07e5e3f, 0xac2b0d79, 0xac2b0d79, 0xac2b0d79, 0x8e8abf87, 0x8e8abf87, 0x8e8abf87, 0x4d266f7a, 0xb7b61016, 0xb7b61016, 0x4d266f7a, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xfd37e5b2, 0xfe28c531, 0xfd37e5b2, 0xdbb7d339, 0x1ed9d731, 0x1ed9d731, 0x1976c7dc, 0x1976c7dc, 0x1976c7dc, 0xad778754, 0xad778754, 0xad778754, 0xa05b9b17, 0xa05b9b17, 0xa05b9b17, 0x1ed9d731, 0xdbb7d339, 0xdbb7d339, 0x1ed9d731, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x7e970e8f, 0x2e2ddf25, 0x7e970e8f, 0x2f4a6620, 0x5387d57f, 0x5387d57f, 0x3bb33ccf, 0x3bb33ccf, 0x3bb33ccf, 0x18d2fac5, 0x18d2fac5, 0x18d2fac5, 0xb089bf08, 0xb089bf08, 0xb089bf08, 0x5387d57f, 0x2f4a6620, 0x2f4a6620, 0x5387d57f, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xb8a2e5df, 0xbdb38ad7, 0xb8a2e5df, 0x8002db7c, 0xf83ee7aa, 0xf83ee7aa, 0xc1252296, 0xc1252296, 0xc1252296, 0x512a977, 0x512a977, 0x512a977, 0xca0cfa65, 0xca0cfa65, 0xca0cfa65, 0xf83ee7aa, 0x8002db7c, 0x8002db7c, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x9b5f3db9, 0x813d6d30, 0x9b5f3db9, 0x181c309c, 0x724366e5, 0x724366e5, 0x4b2cfbfc, 0x4b2cfbfc, 0x4b2cfbfc, 0xa8dc339a, 0xa8dc339a, 0xa8dc339a, 0x169ea6e2, 0x169ea6e2, 0x169ea6e2, 0x724366e5, 0x181c309c, 0x181c309c, 0x724366e5, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xe2b12f83, 0x7a0cdaa9, 0xe2b12f83, 0xaf70144a, 0x5387d57f, 0x5387d57f, 0xc2ca0f0b, 0xc2ca0f0b, 0xc2ca0f0b, 0x3c1f5002, 0x3c1f5002, 0x3c1f5002, 0x34e7c931, 0x34e7c931, 0x34e7c931, 0x5387d57f, 0xaf70144a, 0xaf70144a, 0x5387d57f, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xcc7f1afa, 0xf45a27a4, 0xcc7f1afa, 0xed3bbe5b, 0xf83ee7aa, 0xf83ee7aa, 0xb7cca9d4, 0xb7cca9d4, 0xb7cca9d4, 0xf99af059, 0xf99af059, 0xf99af059, 0x13468b90, 0x13468b90, 0x13468b90, 0xf83ee7aa, 0xed3bbe5b, 0xed3bbe5b, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x5c3aa415, 0xcd074788, 0x5c3aa415, 0xc18dd60, 0x724366e5, 0x724366e5, 0x6b991528, 0x6b991528, 0x6b991528, 0xaa0004c2, 0xaa0004c2, 0xaa0004c2, 0x2e558f8a, 0x2e558f8a, 0x2e558f8a, 0x724366e5, 0xc18dd60, 0xc18dd60, 0x724366e5, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xa53a6439, 0xff9e1d6b, 0xa53a6439, 0x50714ec2, 0x1c955882, 0x1c955882, 0x4ad2fbd7, 0x4ad2fbd7, 0x4ad2fbd7, 0xc8841467, 0xc8841467, 0xc8841467, 0x76c911b, 0x76c911b, 0x76c911b, 0x1c955882, 0x50714ec2, 0x50714ec2, 0x1c955882, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xd93e9fad, 0x35cd646c, 0xd93e9fad, 0xb5499771, 0x4d266f7a, 0x4d266f7a, 0x65922dd6, 0x65922dd6, 0x65922dd6, 0x29c77e90, 0x29c77e90, 0x29c77e90, 0xb66cc6e, 0xb66cc6e, 0xb66cc6e, 0x4d266f7a, 0xb5499771, 0xb5499771, 0x4d266f7a, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd555d094, 0xd64af017, 0xd555d094, 0xffdaa0c9, 0x1ed9d731, 0x1ed9d731, 0x3538bf56, 0x3538bf56, 0x3538bf56, 0x8139ffde, 0x8139ffde, 0x8139ffde, 0x8c15e39d, 0x8c15e39d, 0x8c15e39d, 0x1ed9d731, 0xffdaa0c9, 0xffdaa0c9, 0x1ed9d731, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x579012d2, 0xa2633855, 0x579012d2, 0x1b8a22e1, 0x9813a416, 0x9813a416, 0x4e6d1775, 0x4e6d1775, 0x4e6d1775, 0x459813da, 0x459813da, 0x459813da, 0x519ad143, 0x519ad143, 0x519ad143, 0x9813a416, 0x1b8a22e1, 0x1b8a22e1, 0x9813a416, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xd0e01f27, 0xf25a253, 0xd0e01f27, 0x345a8b55, 0x5fcf013d, 0x5fcf013d, 0x7d7b66d1, 0x7d7b66d1, 0x7d7b66d1, 0x8c3863cc, 0x8c3863cc, 0x8c3863cc, 0xcbc7604b, 0xcbc7604b, 0xcbc7604b, 0x5fcf013d, 0x345a8b55, 0x345a8b55, 0x5fcf013d, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x8afabe5a, 0x65064741, 0x8afabe5a, 0xc2abbdb0, 0xdd28f52b, 0xdd28f52b, 0x762c541c, 0x762c541c, 0x762c541c, 0xb3a13d8, 0xb3a13d8, 0xb3a13d8, 0x6808cdf2, 0x6808cdf2, 0x6808cdf2, 0xdd28f52b, 0xc2abbdb0, 0xc2abbdb0, 0xdd28f52b, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7e8663fd, 0xb69eba2a, 0x7e8663fd, 0xf10bac5f, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xf10bac5f, 0xf10bac5f, 0x59c36f00, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x1dc170f, 0x1643ac96, 0x1dc170f, 0x218c75e1, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0x218c75e1, 0x218c75e1, 0xaa4593fe, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf8ec494, 0xe338fab8, 0xf8ec494, 0x78b294ad, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x78b294ad, 0x78b294ad, 0xc9cbf769, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x7c5fb1db, 0x89ac9b5c, 0x7c5fb1db, 0xd6bcbd37, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0xd6bcbd37, 0xd6bcbd37, 0x9813a416, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x2c17ec5e, 0xf3d2512a, 0x2c17ec5e, 0xc24c3b8e, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0xc24c3b8e, 0xc24c3b8e, 0x5fcf013d, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x962fd585, 0x79d32c9e, 0x962fd585, 0x4acac797, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0x4acac797, 0x4acac797, 0xdd28f52b, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x7e8663fd, 0xb69eba2a, 0x7e8663fd, 0xf10bac5f, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xf10bac5f, 0xf10bac5f, 0x59c36f00, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x1dc170f, 0x1643ac96, 0x1dc170f, 0x218c75e1, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0x218c75e1, 0x218c75e1, 0xaa4593fe, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xf8ec494, 0xe338fab8, 0xf8ec494, 0x78b294ad, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x78b294ad, 0x78b294ad, 0xc9cbf769, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x451af230, 0x15a0239a, 0x451af230, 0x8fa4a0e3, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0x8fa4a0e3, 0x8fa4a0e3, 0x5387d57f, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x626e4125, 0x677f2e2d, 0x626e4125, 0x1739712c, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0x1739712c, 0x1739712c, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x24d014be, 0x3eb24437, 0x24d014be, 0xa4cf9a3c, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0xa4cf9a3c, 0xa4cf9a3c, 0x724366e5, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xfc4a546f, 0x64f7a145, 0xfc4a546f, 0xf9e32ee9, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0xf9e32ee9, 0xf9e32ee9, 0x5387d57f, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd61baafd, 0xee3e97a3, 0xd61baafd, 0x8ee7986d, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0x8ee7986d, 0x8ee7986d, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x6822467e, 0xf91fa5e3, 0x6822467e, 0xc7c3650b, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0xc7c3650b, 0xc7c3650b, 0x724366e5, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x50ace7c2, 0xa089e90, 0x50ace7c2, 0x1a5ebad4, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0x1a5ebad4, 0x1a5ebad4, 0x1c955882, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x179140a7, 0xfb62bb66, 0x179140a7, 0xf545d06d, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0xf545d06d, 0xf545d06d, 0x4d266f7a, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x679bf29f, 0x6484d21c, 0x679bf29f, 0x653f204e, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0x653f204e, 0x653f204e, 0x1ed9d731, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x4fce7a63, 0x1f74abc9, 0x4fce7a63, 0x21cbf58b, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0x21cbf58b, 0x21cbf58b, 0x5387d57f, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xc49c3074, 0xc18d5f7c, 0xc49c3074, 0x4c40335e, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0x4c40335e, 0x4c40335e, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x877bea63, 0x9d19baea, 0x877bea63, 0x60dda7eb, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x60dda7eb, 0x60dda7eb, 0x724366e5, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xadddaf19, 0x35605a33, 0xadddaf19, 0xc2beefaf, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0xc2beefaf, 0xc2beefaf, 0x5387d57f, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x44a04df, 0x3c6f3981, 0x44a04df, 0x3a3f642, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0x3a3f642, 0x3a3f642, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xb9287527, 0x281596ba, 0xb9287527, 0x987979ba, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0x987979ba, 0x987979ba, 0x724366e5, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x63bc909f, 0x3918e9cd, 0x63bc909f, 0x9905601c, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0x9905601c, 0x9905601c, 0x1c955882, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x134e846f, 0xffbd7fae, 0x134e846f, 0xc094b471, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0xc094b471, 0xc094b471, 0x4d266f7a, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd9dd0da7, 0xdac22d24, 0xd9dd0da7, 0xd77699a0, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0xd77699a0, 0xd77699a0, 0x1ed9d731, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x6bb5fb50, 0x9e46d1d7, 0x6bb5fb50, 0xf53e12de, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0xf53e12de, 0xf53e12de, 0x9813a416, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb2497aec, 0x6d8cc798, 0xb2497aec, 0x465f936, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0x465f936, 0x465f936, 0x5fcf013d, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x404f2a96, 0xafb3d38d, 0x404f2a96, 0x91e6ebe6, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0x91e6ebe6, 0x91e6ebe6, 0xdd28f52b, }, 20 }, + { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, }, 5 }, + { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, }, 5 }, + { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, }, 5 }, +diff --git a/grub-core/tests/gfxterm_menu.c b/grub-core/tests/gfxterm_menu.c +index 030ec33..8fd5eed 100644 +--- a/grub-core/tests/gfxterm_menu.c ++++ b/grub-core/tests/gfxterm_menu.c +@@ -86,6 +86,8 @@ struct + { "gfxterm_quot", "lang", "en@quot" }, + { "gfxterm_piglatin", "lang", "en@piglatin" }, + { "gfxterm_ch", "lang", "de_CH" }, ++ { "gfxterm_red", "menu_color_normal", "red/blue" }, ++ { "gfxterm_high", "menu_color_highlight", "blue/red" }, + }; + + +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +index ec9d33a..76cc182 100644 +--- a/grub-core/tests/video_checksum.c ++++ b/grub-core/tests/video_checksum.c +@@ -696,7 +696,8 @@ grub_video_checksum (const char *basename_in) + capt_mode_info.reserved_field_pos, + capt_mode_info.reserved_mask_size, + capt_mode_info.width, +- capt_mode_info.height, get_modename ()); ++ capt_mode_info.height, ++ grub_video_checksum_get_modename ()); + + write (genfd, " { \"", 5); + write (genfd, basename_in, grub_strlen (basename_in)); +diff --git a/include/grub/test.h b/include/grub/test.h +index 8df85d0..ced47b2 100644 +--- a/include/grub/test.h ++++ b/include/grub/test.h +@@ -110,7 +110,9 @@ grub_video_checksum_get_modename (void); + + + #define GRUB_TEST_VIDEO_SMALL_N_MODES 6 +-extern struct grub_video_mode_info grub_test_video_modes[30]; ++#define GRUB_TEST_VIDEO_ALL_N_MODES 30 ++ ++extern struct grub_video_mode_info grub_test_video_modes[GRUB_TEST_VIDEO_ALL_N_MODES]; + + #ifdef __cplusplus + } +-- +1.8.2.1 + diff --git a/0440-grub-core-commands-videoinfo.c-Use-paletted-rather-t.patch b/0440-grub-core-commands-videoinfo.c-Use-paletted-rather-t.patch new file mode 100644 index 0000000..b9d1d67 --- /dev/null +++ b/0440-grub-core-commands-videoinfo.c-Use-paletted-rather-t.patch @@ -0,0 +1,46 @@ +From 06e77f951e1d316bab1e799b1fed741e59d25ce9 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 14:44:05 +0200 +Subject: [PATCH 440/471] * grub-core/commands/videoinfo.c: Use + "paletted" rather than "packed pixel". + +--- + ChangeLog | 5 +++++ + grub-core/commands/videoinfo.c | 6 +++--- + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index b7b3777..8b77759 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-07 Vladimir Serbinenko + ++ * grub-core/commands/videoinfo.c: Use "paletted" rather than "packed ++ pixel". ++ ++2013-05-07 Vladimir Serbinenko ++ + Menu color test. + + 2013-05-07 Vladimir Serbinenko +diff --git a/grub-core/commands/videoinfo.c b/grub-core/commands/videoinfo.c +index 7a75c9d..4be8107 100644 +--- a/grub-core/commands/videoinfo.c ++++ b/grub-core/commands/videoinfo.c +@@ -73,9 +73,9 @@ hook (const struct grub_video_mode_info *info, void *hook_arg) + info->blue_field_pos, + info->reserved_field_pos); + if (info->mode_type & GRUB_VIDEO_MODE_TYPE_INDEX_COLOR) +- /* TRANSLATORS: In "packed pixel" mode you write the index of the color +- in the palette. Synonyms include "paletted color". */ +- grub_xputs (_("Packed pixel ")); ++ /* TRANSLATORS: In "paletted color" mode you write the index of the color ++ in the palette. Synonyms include "packed pixel". */ ++ grub_xputs (_("Paletted ")); + if (info->mode_type & GRUB_VIDEO_MODE_TYPE_YUV) + grub_xputs (_("YUV ")); + if (info->mode_type & GRUB_VIDEO_MODE_TYPE_PLANAR) +-- +1.8.2.1 + diff --git a/0441-Compressed-HFS-support.patch b/0441-Compressed-HFS-support.patch new file mode 100644 index 0000000..9822900 --- /dev/null +++ b/0441-Compressed-HFS-support.patch @@ -0,0 +1,1049 @@ +From 14aa7e045965ce95779e17e20503191f8f6bc160 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 15:46:17 +0200 +Subject: [PATCH 441/471] Compressed HFS+ support. + +--- + ChangeLog | 4 + + Makefile.util.def | 1 + + grub-core/Makefile.core.def | 5 + + grub-core/fs/hfsplus.c | 272 +++++++++++++-------------------------- + grub-core/fs/hfspluscomp.c | 302 ++++++++++++++++++++++++++++++++++++++++++++ + include/grub/hfsplus.h | 217 +++++++++++++++++++++++++++++++ + 6 files changed, 618 insertions(+), 183 deletions(-) + create mode 100644 grub-core/fs/hfspluscomp.c + create mode 100644 include/grub/hfsplus.h + +diff --git a/ChangeLog b/ChangeLog +index 8b77759..0430249 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ Compressed HFS+ support. ++ ++2013-05-07 Vladimir Serbinenko ++ + * grub-core/commands/videoinfo.c: Use "paletted" rather than "packed + pixel". + +diff --git a/Makefile.util.def b/Makefile.util.def +index 5888314..dc621db 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -85,6 +85,7 @@ library = { + common = grub-core/fs/fshelp.c; + common = grub-core/fs/hfs.c; + common = grub-core/fs/hfsplus.c; ++ common = grub-core/fs/hfspluscomp.c; + common = grub-core/fs/iso9660.c; + common = grub-core/fs/jfs.c; + common = grub-core/fs/minix.c; +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 7dc106e..bb62dce 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1186,6 +1186,11 @@ module = { + }; + + module = { ++ name = hfspluscomp; ++ common = fs/hfspluscomp.c; ++}; ++ ++module = { + name = iso9660; + common = fs/iso9660.c; + }; +diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c +index a507c0f..7905624 100644 +--- a/grub-core/fs/hfsplus.c ++++ b/grub-core/fs/hfsplus.c +@@ -19,6 +19,7 @@ + + /* HFS+ is documented at http://developer.apple.com/technotes/tn/tn1150.html */ + ++#define grub_fshelp_node grub_hfsplus_file + #include + #include + #include +@@ -29,6 +30,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -36,42 +38,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #define GRUB_HFSPLUSX_MAGIC 0x4858 + #define GRUB_HFSPLUS_SBLOCK 2 + +-/* A HFS+ extent. */ +-struct grub_hfsplus_extent +-{ +- /* The first block of a file on disk. */ +- grub_uint32_t start; +- /* The amount of blocks described by this extent. */ +- grub_uint32_t count; +-} __attribute__ ((packed)); +- +-/* The descriptor of a fork. */ +-struct grub_hfsplus_forkdata +-{ +- grub_uint64_t size; +- grub_uint32_t clumpsize; +- grub_uint32_t blocks; +- struct grub_hfsplus_extent extents[8]; +-} __attribute__ ((packed)); +- +-/* The HFS+ Volume Header. */ +-struct grub_hfsplus_volheader +-{ +- grub_uint16_t magic; +- grub_uint16_t version; +- grub_uint32_t attributes; +- grub_uint8_t unused1[12]; +- grub_uint32_t utime; +- grub_uint8_t unused2[16]; +- grub_uint32_t blksize; +- grub_uint8_t unused3[60]; +- grub_uint64_t num_serial; +- struct grub_hfsplus_forkdata allocations_file; +- struct grub_hfsplus_forkdata extents_file; +- struct grub_hfsplus_forkdata catalog_file; +- struct grub_hfsplus_forkdata attrib_file; +- struct grub_hfsplus_forkdata startup_file; +-} __attribute__ ((packed)); + + /* The type of node. */ + enum grub_hfsplus_btnode_type +@@ -82,16 +48,6 @@ enum grub_hfsplus_btnode_type + GRUB_HFSPLUS_BTNODE_TYPE_MAP = 2, + }; + +-struct grub_hfsplus_btnode +-{ +- grub_uint32_t next; +- grub_uint32_t prev; +- grub_int8_t type; +- grub_uint8_t height; +- grub_uint16_t count; +- grub_uint16_t unused; +-} __attribute__ ((packed)); +- + /* The header of a HFS+ B+ Tree. */ + struct grub_hfsplus_btheader + { +@@ -111,35 +67,6 @@ struct grub_hfsplus_btheader + grub_uint32_t attributes; + } __attribute__ ((packed)); + +-/* The on disk layout of a catalog key. */ +-struct grub_hfsplus_catkey +-{ +- grub_uint16_t keylen; +- grub_uint32_t parent; +- grub_uint16_t namelen; +- grub_uint16_t name[30]; +-} __attribute__ ((packed)); +- +-/* The on disk layout of an extent overflow file key. */ +-struct grub_hfsplus_extkey +-{ +- grub_uint16_t keylen; +- grub_uint8_t type; +- grub_uint8_t unused; +- grub_uint32_t fileid; +- grub_uint32_t start; +-} __attribute__ ((packed)); +- +-struct grub_hfsplus_key +-{ +- union +- { +- struct grub_hfsplus_extkey extkey; +- struct grub_hfsplus_catkey catkey; +- grub_uint16_t keylen; +- }; +-} __attribute__ ((packed)); +- + struct grub_hfsplus_catfile + { + grub_uint16_t type; +@@ -162,9 +89,13 @@ struct grub_hfsplus_catfile + #define GRUB_HFSPLUS_FILEMODE_SYMLINK 0120000 + + /* Some pre-defined file IDs. */ +-#define GRUB_HFSPLUS_FILEID_ROOTDIR 2 +-#define GRUB_HFSPLUS_FILEID_OVERFLOW 3 +-#define GRUB_HFSPLUS_FILEID_CATALOG 4 ++enum ++ { ++ GRUB_HFSPLUS_FILEID_ROOTDIR = 2, ++ GRUB_HFSPLUS_FILEID_OVERFLOW = 3, ++ GRUB_HFSPLUS_FILEID_CATALOG = 4, ++ GRUB_HFSPLUS_FILEID_ATTR = 8 ++ }; + + enum grub_hfsplus_filetype + { +@@ -177,98 +108,15 @@ enum grub_hfsplus_filetype + #define GRUB_HFSPLUSX_BINARYCOMPARE 0xBC + #define GRUB_HFSPLUSX_CASEFOLDING 0xCF + +-/* Internal representation of a catalog key. */ +-struct grub_hfsplus_catkey_internal +-{ +- grub_uint32_t parent; +- const grub_uint16_t *name; +- grub_size_t namelen; +-}; +- +-/* Internal representation of an extent overflow key. */ +-struct grub_hfsplus_extkey_internal +-{ +- grub_uint32_t fileid; +- grub_uint8_t type; +- grub_uint32_t start; +-}; +- +-struct grub_hfsplus_key_internal +-{ +- union +- { +- struct grub_hfsplus_extkey_internal extkey; +- struct grub_hfsplus_catkey_internal catkey; +- }; +-}; +- +- +- +-struct grub_fshelp_node +-{ +- struct grub_hfsplus_data *data; +- struct grub_hfsplus_extent extents[8]; +- grub_uint64_t size; +- grub_uint32_t fileid; +- grub_int32_t mtime; +-}; +- +-struct grub_hfsplus_btree +-{ +- grub_uint32_t root; +- grub_size_t nodesize; +- +- /* Catalog file node. */ +- struct grub_fshelp_node file; +-}; +- +-/* Information about a "mounted" HFS+ filesystem. */ +-struct grub_hfsplus_data +-{ +- struct grub_hfsplus_volheader volheader; +- grub_disk_t disk; +- +- unsigned int log2blksize; +- +- struct grub_hfsplus_btree catalog_tree; +- struct grub_hfsplus_btree extoverflow_tree; +- +- struct grub_fshelp_node dirroot; +- struct grub_fshelp_node opened_file; +- +- /* This is the offset into the physical disk for an embedded HFS+ +- filesystem (one inside a plain HFS wrapper). */ +- grub_disk_addr_t embedded_offset; +- int case_sensitive; +-}; +- + static grub_dl_t my_mod; + + +-/* Return the offset of the record with the index INDEX, in the node +- NODE which is part of the B+ tree BTREE. */ +-static inline grub_off_t +-grub_hfsplus_btree_recoffset (struct grub_hfsplus_btree *btree, +- struct grub_hfsplus_btnode *node, int index) +-{ +- char *cnode = (char *) node; +- void *recptr; +- recptr = (&cnode[btree->nodesize - index * sizeof (grub_uint16_t) - 2]); +- return grub_be_to_cpu16 (grub_get_unaligned16 (recptr)); +-} +- +-/* Return a pointer to the record with the index INDEX, in the node +- NODE which is part of the B+ tree BTREE. */ +-static inline struct grub_hfsplus_key * +-grub_hfsplus_btree_recptr (struct grub_hfsplus_btree *btree, +- struct grub_hfsplus_btnode *node, int index) +-{ +- char *cnode = (char *) node; +- grub_off_t offset; +- offset = grub_hfsplus_btree_recoffset (btree, node, index); +- return (struct grub_hfsplus_key *) &cnode[offset]; +-} + ++grub_err_t (*grub_hfsplus_open_compressed) (struct grub_fshelp_node *node); ++grub_ssize_t (*grub_hfsplus_read_compressed) (struct grub_hfsplus_file *node, ++ grub_off_t pos, ++ grub_size_t len, ++ char *buf); + + /* Find the extent that points to FILEBLOCK. If it is not in one of + the 8 extents described by EXTENT, return -1. In that case set +@@ -292,14 +140,6 @@ grub_hfsplus_find_block (struct grub_hfsplus_extent *extent, + return 0xffffffffffffffffULL; + } + +-static grub_err_t +-grub_hfsplus_btree_search (struct grub_hfsplus_btree *btree, +- struct grub_hfsplus_key_internal *key, +- int (*compare_keys) (struct grub_hfsplus_key *keya, +- struct grub_hfsplus_key_internal *keyb), +- struct grub_hfsplus_btnode **matchnode, +- grub_off_t *keyoffset); +- + static int grub_hfsplus_cmp_extkey (struct grub_hfsplus_key *keya, + struct grub_hfsplus_key_internal *keyb); + +@@ -310,7 +150,8 @@ grub_hfsplus_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) + { + struct grub_hfsplus_btnode *nnode = 0; + grub_disk_addr_t blksleft = fileblock; +- struct grub_hfsplus_extent *extents = &node->extents[0]; ++ struct grub_hfsplus_extent *extents = node->compressed ++ ? &node->resource_extents[0] : &node->extents[0]; + + while (1) + { +@@ -344,10 +185,11 @@ grub_hfsplus_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) + extoverflow.extkey.fileid = node->fileid; + extoverflow.extkey.type = 0; + extoverflow.extkey.start = fileblock - blksleft; +- ++ extoverflow.extkey.type = node->compressed ? 0xff : 0; + if (grub_hfsplus_btree_search (&node->data->extoverflow_tree, + &extoverflow, +- grub_hfsplus_cmp_extkey, &nnode, &ptr)) ++ grub_hfsplus_cmp_extkey, &nnode, &ptr) ++ || !nnode) + { + grub_error (GRUB_ERR_READ_ERROR, + "no block found for the file id 0x%x and the block offset 0x%x", +@@ -373,7 +215,7 @@ grub_hfsplus_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) + + /* Read LEN bytes from the file described by DATA starting with byte + POS. Return the amount of read bytes in READ. */ +-static grub_ssize_t ++grub_ssize_t + grub_hfsplus_read_file (grub_fshelp_node_t node, + grub_disk_read_hook_t read_hook, void *read_hook_data, + grub_off_t pos, grub_size_t len, char *buf) +@@ -460,15 +302,27 @@ grub_hfsplus_mount (grub_disk_t disk) + /* Make a new node for the catalog tree. */ + data->catalog_tree.file.data = data; + data->catalog_tree.file.fileid = GRUB_HFSPLUS_FILEID_CATALOG; ++ data->catalog_tree.file.compressed = 0; + grub_memcpy (&data->catalog_tree.file.extents, + data->volheader.catalog_file.extents, + sizeof data->volheader.catalog_file.extents); + data->catalog_tree.file.size = + grub_be_to_cpu64 (data->volheader.catalog_file.size); + ++ data->attr_tree.file.data = data; ++ data->attr_tree.file.fileid = GRUB_HFSPLUS_FILEID_ATTR; ++ grub_memcpy (&data->attr_tree.file.extents, ++ data->volheader.attr_file.extents, ++ sizeof data->volheader.attr_file.extents); ++ ++ data->attr_tree.file.size = ++ grub_be_to_cpu64 (data->volheader.attr_file.size); ++ data->attr_tree.file.compressed = 0; ++ + /* Make a new node for the extent overflow file. */ + data->extoverflow_tree.file.data = data; + data->extoverflow_tree.file.fileid = GRUB_HFSPLUS_FILEID_OVERFLOW; ++ data->extoverflow_tree.file.compressed = 0; + grub_memcpy (&data->extoverflow_tree.file.extents, + data->volheader.extents_file.extents, + sizeof data->volheader.catalog_file.extents); +@@ -501,6 +355,20 @@ grub_hfsplus_mount (grub_disk_t disk) + data->extoverflow_tree.root = grub_be_to_cpu32 (header.root); + data->extoverflow_tree.nodesize = grub_be_to_cpu16 (header.nodesize); + ++ if (grub_hfsplus_read_file (&data->attr_tree.file, 0, 0, ++ sizeof (struct grub_hfsplus_btnode), ++ sizeof (header), (char *) &header) <= 0) ++ { ++ grub_errno = 0; ++ data->attr_tree.root = 0; ++ data->attr_tree.nodesize = 0; ++ } ++ else ++ { ++ data->attr_tree.root = grub_be_to_cpu32 (header.root); ++ data->attr_tree.nodesize = grub_be_to_cpu16 (header.nodesize); ++ } ++ + data->dirroot.data = data; + data->dirroot.fileid = GRUB_HFSPLUS_FILEID_ROOTDIR; + +@@ -586,6 +454,12 @@ grub_hfsplus_cmp_extkey (struct grub_hfsplus_key *keya, + return 1; + if (extkey_a->type < extkey_b->type) + return -1; ++ ++ if (extkey_a->type > extkey_b->type) ++ return +1; ++ ++ if (extkey_a->type < extkey_b->type) ++ return -1; + + akey = grub_be_to_cpu32 (extkey_a->start); + if (akey > extkey_b->start) +@@ -668,7 +542,7 @@ grub_hfsplus_btree_iterate_node (struct grub_hfsplus_btree *btree, + keys using the function COMPARE_KEYS. When a match is found, + return the node in MATCHNODE and a pointer to the data in this node + in KEYOFFSET. MATCHNODE should be freed by the caller. */ +-static grub_err_t ++grub_err_t + grub_hfsplus_btree_search (struct grub_hfsplus_btree *btree, + struct grub_hfsplus_key_internal *key, + int (*compare_keys) (struct grub_hfsplus_key *keya, +@@ -683,6 +557,12 @@ grub_hfsplus_btree_search (struct grub_hfsplus_btree *btree, + grub_uint64_t save_node; + grub_uint64_t node_count = 0; + ++ if (!btree->nodesize) ++ { ++ *matchnode = 0; ++ return 0; ++ } ++ + node = grub_malloc (btree->nodesize); + if (! node) + return grub_errno; +@@ -760,7 +640,7 @@ grub_hfsplus_btree_search (struct grub_hfsplus_btree *btree, + { + *matchnode = 0; + grub_free (node); +- return 1; ++ return 0; + } + } + } +@@ -872,11 +752,17 @@ list_nodes (void *record, void *hook_arg) + if (!node) + return 1; + node->data = ctx->dir->data; ++ node->compressed = 0; ++ node->cbuf = 0; ++ node->compress_index = 0; + + grub_memcpy (node->extents, fileinfo->data.extents, + sizeof (node->extents)); ++ grub_memcpy (node->resource_extents, fileinfo->resource.extents, ++ sizeof (node->resource_extents)); + node->mtime = grub_be_to_cpu32 (fileinfo->mtime) - 2082844800; + node->size = grub_be_to_cpu64 (fileinfo->data.size); ++ node->resource_size = grub_be_to_cpu64 (fileinfo->resource.size); + node->fileid = grub_be_to_cpu32 (fileinfo->fileid); + + ctx->ret = ctx->hook (filename, type, node, ctx->hook_data); +@@ -919,7 +805,8 @@ grub_hfsplus_iterate_dir (grub_fshelp_node_t dir, + + /* First lookup the first entry. */ + if (grub_hfsplus_btree_search (&dir->data->catalog_tree, &intern, +- grub_hfsplus_cmp_catkey, &node, &ptr)) ++ grub_hfsplus_cmp_catkey, &node, &ptr) ++ || !node) + return 0; + + /* Iterate over all entries in this directory. */ +@@ -950,6 +837,14 @@ grub_hfsplus_open (struct grub_file *file, const char *name) + if (grub_errno) + goto fail; + ++ if (grub_hfsplus_open_compressed) ++ { ++ grub_err_t err; ++ err = grub_hfsplus_open_compressed (fdiro); ++ if (err) ++ goto fail; ++ } ++ + file->size = fdiro->size; + data->opened_file = *fdiro; + grub_free (fdiro); +@@ -973,7 +868,13 @@ grub_hfsplus_open (struct grub_file *file, const char *name) + static grub_err_t + grub_hfsplus_close (grub_file_t file) + { +- grub_free (file->data); ++ struct grub_hfsplus_data *data = ++ (struct grub_hfsplus_data *) file->data; ++ ++ grub_free (data->opened_file.cbuf); ++ grub_free (data->opened_file.compress_index); ++ ++ grub_free (data); + + grub_dl_unref (my_mod); + +@@ -987,6 +888,10 @@ grub_hfsplus_read (grub_file_t file, char *buf, grub_size_t len) + struct grub_hfsplus_data *data = + (struct grub_hfsplus_data *) file->data; + ++ if (grub_hfsplus_read_compressed && data->opened_file.compressed) ++ return grub_hfsplus_read_compressed (&data->opened_file, ++ file->offset, len, buf); ++ + return grub_hfsplus_read_file (&data->opened_file, + file->read_hook, file->read_hook_data, + file->offset, len, buf); +@@ -1076,7 +981,8 @@ grub_hfsplus_label (grub_device_t device, char **label) + + /* First lookup the first entry. */ + if (grub_hfsplus_btree_search (&data->catalog_tree, &intern, +- grub_hfsplus_cmp_catkey_id, &node, &ptr)) ++ grub_hfsplus_cmp_catkey_id, &node, &ptr) ++ || !node) + { + grub_free (data); + return 0; +diff --git a/grub-core/fs/hfspluscomp.c b/grub-core/fs/hfspluscomp.c +new file mode 100644 +index 0000000..b343441 +--- /dev/null ++++ b/grub-core/fs/hfspluscomp.c +@@ -0,0 +1,302 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2012 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++/* HFS+ is documented at http://developer.apple.com/technotes/tn/tn1150.html */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++/* big-endian. */ ++struct grub_hfsplus_compress_header1 ++{ ++ grub_uint32_t header_size; ++ grub_uint32_t end_descriptor_offset; ++ grub_uint32_t total_compressed_size_including_seek_blocks_and_header2; ++ grub_uint32_t value_0x32; ++ grub_uint8_t unused[0xf0]; ++} __attribute__ ((packed)); ++ ++/* big-endian. */ ++struct grub_hfsplus_compress_header2 ++{ ++ grub_uint32_t total_compressed_size_including_seek_blocks; ++} __attribute__ ((packed)); ++ ++/* little-endian. */ ++struct grub_hfsplus_compress_header3 ++{ ++ grub_uint32_t num_chunks; ++} __attribute__ ((packed)); ++ ++/* little-endian. */ ++struct grub_hfsplus_compress_block_descriptor ++{ ++ grub_uint32_t offset; ++ grub_uint32_t size; ++}; ++ ++struct grub_hfsplus_compress_end_descriptor ++{ ++ grub_uint8_t always_the_same[50]; ++} __attribute__ ((packed)); ++ ++struct grub_hfsplus_attr_header ++{ ++ grub_uint8_t unused[3]; ++ grub_uint8_t type; ++ grub_uint32_t unknown[1]; ++ grub_uint64_t size; ++} __attribute__ ((packed)); ++ ++struct grub_hfsplus_compress_attr ++{ ++ grub_uint32_t magic; ++ grub_uint32_t type; ++ grub_uint32_t uncompressed_inline_size; ++ grub_uint32_t always_0; ++}; ++ ++enum ++ { ++ HFSPLUS_COMPRESSION_INLINE = 3, ++ HFSPLUS_COMPRESSION_RESOURCE = 4 ++ }; ++ ++static int ++grub_hfsplus_cmp_attrkey (struct grub_hfsplus_key *keya, ++ struct grub_hfsplus_key_internal *keyb) ++{ ++ struct grub_hfsplus_attrkey *attrkey_a = &keya->attrkey; ++ struct grub_hfsplus_attrkey_internal *attrkey_b = &keyb->attrkey; ++ grub_uint32_t aparent = grub_be_to_cpu32 (attrkey_a->cnid); ++ grub_size_t len; ++ int diff; ++ ++ if (aparent > attrkey_b->cnid) ++ return 1; ++ if (aparent < attrkey_b->cnid) ++ return -1; ++ ++ len = grub_be_to_cpu16 (attrkey_a->namelen); ++ if (len > attrkey_b->namelen) ++ len = attrkey_b->namelen; ++ /* Since it's big-endian memcmp gives the same result as manually comparing ++ uint16_t but may be faster. */ ++ diff = grub_memcmp (attrkey_a->name, attrkey_b->name, ++ len * sizeof (attrkey_a->name[0])); ++ if (diff == 0) ++ diff = grub_be_to_cpu16 (attrkey_a->namelen) - attrkey_b->namelen; ++ return diff; ++} ++ ++#define HFSPLUS_COMPRESS_BLOCK_SIZE 65536 ++ ++static grub_ssize_t ++hfsplus_read_compressed_real (struct grub_hfsplus_file *node, ++ grub_off_t pos, grub_size_t len, char *buf) ++{ ++ char *tmp_buf = 0; ++ grub_size_t len0 = len; ++ ++ if (node->compressed == 1) ++ { ++ grub_memcpy (buf, node->cbuf + pos, len); ++ return len; ++ } ++ ++ while (len) ++ { ++ grub_uint32_t block = pos / HFSPLUS_COMPRESS_BLOCK_SIZE; ++ grub_size_t curlen = HFSPLUS_COMPRESS_BLOCK_SIZE ++ - (pos % HFSPLUS_COMPRESS_BLOCK_SIZE); ++ ++ if (curlen > len) ++ curlen = len; ++ ++ if (node->cbuf_block != block) ++ { ++ grub_uint32_t sz = grub_le_to_cpu32 (node->compress_index[block].size); ++ grub_size_t ts; ++ if (!tmp_buf) ++ tmp_buf = grub_malloc (HFSPLUS_COMPRESS_BLOCK_SIZE); ++ if (!tmp_buf) ++ return -1; ++ if (grub_hfsplus_read_file (node, 0, 0, ++ grub_le_to_cpu32 (node->compress_index[block].start) + 0x104, ++ sz, tmp_buf) ++ != (grub_ssize_t) sz) ++ { ++ grub_free (tmp_buf); ++ return -1; ++ } ++ ts = HFSPLUS_COMPRESS_BLOCK_SIZE; ++ if (ts > node->size - (pos & ~(HFSPLUS_COMPRESS_BLOCK_SIZE))) ++ ts = node->size - (pos & ~(HFSPLUS_COMPRESS_BLOCK_SIZE)); ++ if (grub_zlib_decompress (tmp_buf, sz, 0, ++ node->cbuf, ts) < 0) ++ { ++ grub_free (tmp_buf); ++ return -1; ++ } ++ node->cbuf_block = block; ++ } ++ grub_memcpy (buf, node->cbuf + (pos % HFSPLUS_COMPRESS_BLOCK_SIZE), ++ curlen); ++ buf += curlen; ++ pos += curlen; ++ len -= curlen; ++ } ++ grub_free (tmp_buf); ++ return len0; ++} ++ ++static grub_err_t ++hfsplus_open_compressed_real (struct grub_hfsplus_file *node) ++{ ++ grub_err_t err; ++ struct grub_hfsplus_btnode *attr_node; ++ grub_off_t attr_off; ++ struct grub_hfsplus_key_internal key; ++ struct grub_hfsplus_attr_header *attr_head; ++ struct grub_hfsplus_compress_attr *cmp_head; ++#define c grub_cpu_to_be16_compile_time ++ const grub_uint16_t compress_attr_name[] = ++ { ++ c('c'), c('o'), c('m'), c('.'), c('a'), c('p'), c('p'), c('l'), c('e'), ++ c('.'), c('d'), c('e'), c('c'), c('m'), c('p'), c('f'), c('s') }; ++#undef c ++ if (node->size) ++ return 0; ++ ++ key.attrkey.cnid = node->fileid; ++ key.attrkey.namelen = sizeof (compress_attr_name) / sizeof (compress_attr_name[0]); ++ key.attrkey.name = compress_attr_name; ++ ++ err = grub_hfsplus_btree_search (&node->data->attr_tree, &key, ++ grub_hfsplus_cmp_attrkey, ++ &attr_node, &attr_off); ++ if (err || !attr_node) ++ { ++ grub_errno = 0; ++ return 0; ++ } ++ ++ attr_head = (struct grub_hfsplus_attr_header *) ++ ((char *) grub_hfsplus_btree_recptr (&node->data->attr_tree, ++ attr_node, attr_off) ++ + sizeof (struct grub_hfsplus_attrkey) + sizeof (compress_attr_name)); ++ if (attr_head->type != 0x10 ++ || !(attr_head->size & grub_cpu_to_be64_compile_time(~0xfULL))) ++ { ++ grub_free (attr_node); ++ return 0; ++ } ++ cmp_head = (struct grub_hfsplus_compress_attr *) (attr_head + 1); ++ if (cmp_head->magic != grub_cpu_to_be32_compile_time (0x66706d63)) ++ { ++ grub_free (attr_node); ++ return 0; ++ } ++ node->size = grub_le_to_cpu32 (cmp_head->uncompressed_inline_size); ++ ++ if (cmp_head->type == grub_cpu_to_le32_compile_time (HFSPLUS_COMPRESSION_RESOURCE)) ++ { ++ grub_uint32_t index_size; ++ node->compressed = 2; ++ ++ if (grub_hfsplus_read_file (node, 0, 0, ++ 0x104, sizeof (index_size), ++ (char *) &index_size) ++ != 4) ++ { ++ node->compressed = 0; ++ grub_free (attr_node); ++ grub_errno = 0; ++ return 0; ++ } ++ node->compress_index_size = grub_le_to_cpu32 (index_size); ++ node->compress_index = grub_malloc (node->compress_index_size ++ * sizeof (node->compress_index[0])); ++ if (!node->compress_index) ++ { ++ node->compressed = 0; ++ grub_free (attr_node); ++ return grub_errno; ++ } ++ if (grub_hfsplus_read_file (node, 0, 0, ++ 0x104 + sizeof (index_size), ++ node->compress_index_size ++ * sizeof (node->compress_index[0]), ++ (char *) node->compress_index) ++ != (grub_ssize_t) (node->compress_index_size ++ * sizeof (node->compress_index[0]))) ++ { ++ node->compressed = 0; ++ grub_free (attr_node); ++ grub_free (node->compress_index); ++ grub_errno = 0; ++ return 0; ++ } ++ ++ node->cbuf_block = -1; ++ ++ node->cbuf = grub_malloc (HFSPLUS_COMPRESS_BLOCK_SIZE); ++ grub_free (attr_node); ++ if (!node->cbuf) ++ { ++ node->compressed = 0; ++ grub_free (node->compress_index); ++ return grub_errno; ++ } ++ return 0; ++ } ++ if (cmp_head->type != HFSPLUS_COMPRESSION_INLINE) ++ { ++ grub_free (attr_node); ++ return 0; ++ } ++ ++ node->cbuf = grub_malloc (node->size); ++ if (!node->cbuf) ++ return grub_errno; ++ ++ if (grub_zlib_decompress ((char *) (cmp_head + 1), ++ grub_cpu_to_be64 (attr_head->size) ++ - sizeof (*cmp_head), 0, ++ node->cbuf, node->size) < 0) ++ return grub_errno; ++ node->compressed = 1; ++ return 0; ++} ++ ++GRUB_MOD_INIT(hfspluscomp) ++{ ++ grub_hfsplus_open_compressed = hfsplus_open_compressed_real; ++ grub_hfsplus_read_compressed = hfsplus_read_compressed_real; ++} ++ ++GRUB_MOD_FINI(hfspluscomp) ++{ ++ grub_hfsplus_open_compressed = 0; ++ grub_hfsplus_read_compressed = 0; ++} +diff --git a/include/grub/hfsplus.h b/include/grub/hfsplus.h +new file mode 100644 +index 0000000..0defd35 +--- /dev/null ++++ b/include/grub/hfsplus.h +@@ -0,0 +1,217 @@ ++ ++#include ++#include ++ ++/* A HFS+ extent. */ ++struct grub_hfsplus_extent ++{ ++ /* The first block of a file on disk. */ ++ grub_uint32_t start; ++ /* The amount of blocks described by this extent. */ ++ grub_uint32_t count; ++} __attribute__ ((packed)); ++ ++/* The descriptor of a fork. */ ++struct grub_hfsplus_forkdata ++{ ++ grub_uint64_t size; ++ grub_uint32_t clumpsize; ++ grub_uint32_t blocks; ++ struct grub_hfsplus_extent extents[8]; ++} __attribute__ ((packed)); ++ ++/* The HFS+ Volume Header. */ ++struct grub_hfsplus_volheader ++{ ++ grub_uint16_t magic; ++ grub_uint16_t version; ++ grub_uint32_t attributes; ++ grub_uint8_t unused1[12]; ++ grub_uint32_t utime; ++ grub_uint8_t unused2[16]; ++ grub_uint32_t blksize; ++ grub_uint8_t unused3[60]; ++ grub_uint64_t num_serial; ++ struct grub_hfsplus_forkdata allocations_file; ++ struct grub_hfsplus_forkdata extents_file; ++ struct grub_hfsplus_forkdata catalog_file; ++ struct grub_hfsplus_forkdata attr_file; ++ struct grub_hfsplus_forkdata startup_file; ++} __attribute__ ((packed)); ++ ++struct grub_hfsplus_compress_index ++{ ++ grub_uint32_t start; ++ grub_uint32_t size; ++}; ++ ++struct grub_hfsplus_file ++{ ++ struct grub_hfsplus_data *data; ++ struct grub_hfsplus_extent extents[8]; ++ struct grub_hfsplus_extent resource_extents[8]; ++ grub_uint64_t size; ++ grub_uint64_t resource_size; ++ grub_uint32_t fileid; ++ grub_int32_t mtime; ++ int compressed; ++ char *cbuf; ++ struct grub_hfsplus_compress_index *compress_index; ++ grub_uint32_t cbuf_block; ++ grub_uint32_t compress_index_size; ++}; ++ ++struct grub_hfsplus_btree ++{ ++ grub_uint32_t root; ++ grub_size_t nodesize; ++ ++ /* Catalog file node. */ ++ struct grub_hfsplus_file file; ++}; ++ ++/* Information about a "mounted" HFS+ filesystem. */ ++struct grub_hfsplus_data ++{ ++ struct grub_hfsplus_volheader volheader; ++ grub_disk_t disk; ++ ++ unsigned int log2blksize; ++ ++ struct grub_hfsplus_btree catalog_tree; ++ struct grub_hfsplus_btree extoverflow_tree; ++ struct grub_hfsplus_btree attr_tree; ++ ++ struct grub_hfsplus_file dirroot; ++ struct grub_hfsplus_file opened_file; ++ ++ /* This is the offset into the physical disk for an embedded HFS+ ++ filesystem (one inside a plain HFS wrapper). */ ++ grub_disk_addr_t embedded_offset; ++ int case_sensitive; ++}; ++ ++/* Internal representation of a catalog key. */ ++struct grub_hfsplus_catkey_internal ++{ ++ grub_uint32_t parent; ++ const grub_uint16_t *name; ++ grub_size_t namelen; ++}; ++ ++/* Internal representation of an extent overflow key. */ ++struct grub_hfsplus_extkey_internal ++{ ++ grub_uint32_t fileid; ++ grub_uint32_t start; ++ grub_uint8_t type; ++}; ++ ++struct grub_hfsplus_attrkey ++{ ++ grub_uint16_t keylen; ++ grub_uint16_t unknown1[1]; ++ grub_uint32_t cnid; ++ grub_uint16_t unknown2[2]; ++ grub_uint16_t namelen; ++ grub_uint16_t name[0]; ++} __attribute__ ((packed)); ++ ++struct grub_hfsplus_attrkey_internal ++{ ++ grub_uint32_t cnid; ++ const grub_uint16_t *name; ++ grub_size_t namelen; ++}; ++ ++struct grub_hfsplus_key_internal ++{ ++ union ++ { ++ struct grub_hfsplus_extkey_internal extkey; ++ struct grub_hfsplus_catkey_internal catkey; ++ struct grub_hfsplus_attrkey_internal attrkey; ++ }; ++}; ++ ++/* The on disk layout of a catalog key. */ ++struct grub_hfsplus_catkey ++{ ++ grub_uint16_t keylen; ++ grub_uint32_t parent; ++ grub_uint16_t namelen; ++ grub_uint16_t name[30]; ++} __attribute__ ((packed)); ++ ++/* The on disk layout of an extent overflow file key. */ ++struct grub_hfsplus_extkey ++{ ++ grub_uint16_t keylen; ++ grub_uint8_t type; ++ grub_uint8_t unused; ++ grub_uint32_t fileid; ++ grub_uint32_t start; ++} __attribute__ ((packed)); ++ ++struct grub_hfsplus_key ++{ ++ union ++ { ++ struct grub_hfsplus_extkey extkey; ++ struct grub_hfsplus_catkey catkey; ++ struct grub_hfsplus_attrkey attrkey; ++ grub_uint16_t keylen; ++ }; ++} __attribute__ ((packed)); ++ ++struct grub_hfsplus_btnode ++{ ++ grub_uint32_t next; ++ grub_uint32_t prev; ++ grub_int8_t type; ++ grub_uint8_t height; ++ grub_uint16_t count; ++ grub_uint16_t unused; ++} __attribute__ ((packed)); ++ ++/* Return the offset of the record with the index INDEX, in the node ++ NODE which is part of the B+ tree BTREE. */ ++static inline grub_off_t ++grub_hfsplus_btree_recoffset (struct grub_hfsplus_btree *btree, ++ struct grub_hfsplus_btnode *node, int index) ++{ ++ char *cnode = (char *) node; ++ void *recptr; ++ recptr = (&cnode[btree->nodesize - index * sizeof (grub_uint16_t) - 2]); ++ return grub_be_to_cpu16 (grub_get_unaligned16 (recptr)); ++} ++ ++/* Return a pointer to the record with the index INDEX, in the node ++ NODE which is part of the B+ tree BTREE. */ ++static inline struct grub_hfsplus_key * ++grub_hfsplus_btree_recptr (struct grub_hfsplus_btree *btree, ++ struct grub_hfsplus_btnode *node, int index) ++{ ++ char *cnode = (char *) node; ++ grub_off_t offset; ++ offset = grub_hfsplus_btree_recoffset (btree, node, index); ++ return (struct grub_hfsplus_key *) &cnode[offset]; ++} ++ ++extern grub_err_t (*grub_hfsplus_open_compressed) (struct grub_hfsplus_file *node); ++extern grub_ssize_t (*grub_hfsplus_read_compressed) (struct grub_hfsplus_file *node, ++ grub_off_t pos, ++ grub_size_t len, ++ char *buf); ++ ++grub_ssize_t ++grub_hfsplus_read_file (struct grub_hfsplus_file *node, ++ grub_disk_read_hook_t read_hook, void *read_hook_data, ++ grub_off_t pos, grub_size_t len, char *buf); ++grub_err_t ++grub_hfsplus_btree_search (struct grub_hfsplus_btree *btree, ++ struct grub_hfsplus_key_internal *key, ++ int (*compare_keys) (struct grub_hfsplus_key *keya, ++ struct grub_hfsplus_key_internal *keyb), ++ struct grub_hfsplus_btnode **matchnode, ++ grub_off_t *keyoffset); +-- +1.8.2.1 + diff --git a/0342-Don-t-say-GNU-Linux-in-generated-menus.patch b/0442-Don-t-say-GNU-Linux-in-generated-menus.patch similarity index 90% rename from 0342-Don-t-say-GNU-Linux-in-generated-menus.patch rename to 0442-Don-t-say-GNU-Linux-in-generated-menus.patch index afde264..c973df7 100644 --- a/0342-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0442-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ -From 75261365c2601a2e98dae5b872de61930546bac7 Mon Sep 17 00:00:00 2001 +From ef989ba63d43f7a44bc89d685cffd024eb18d273 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 342/364] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 442/471] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- @@ -41,5 +41,5 @@ index 6651cbc..4372c0c 100644 fi -- -1.8.1.4 +1.8.2.1 diff --git a/0343-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0443-Migrate-PPC-from-Yaboot-to-Grub2.patch similarity index 95% rename from 0343-Migrate-PPC-from-Yaboot-to-Grub2.patch rename to 0443-Migrate-PPC-from-Yaboot-to-Grub2.patch index f8ba45f..cfb993d 100644 --- a/0343-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0443-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ -From 5c27f1d4e94b5649aba55d1aa53a4c154949005c Mon Sep 17 00:00:00 2001 +From 6605a6cdb0f92ddd2ed2bcd6ae55bd3b19d0d9c7 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 343/364] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 443/471] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. @@ -12,10 +12,10 @@ maximum screen size so that text is not overwritten. create mode 100644 util/grub.d/20_ppc_terminfo.in diff --git a/Makefile.util.def b/Makefile.util.def -index 4fa37bc..2f3bf5f 100644 +index dc621db..4614705 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -442,6 +442,13 @@ script = { +@@ -444,6 +444,13 @@ script = { }; script = { @@ -150,5 +150,5 @@ index 0000000..10d6658 + terminfo -g ${X}x${Y} ${TERMINAL} +EOF -- -1.8.1.4 +1.8.2.1 diff --git a/0344-Add-fw_path-variable-revised.patch b/0444-Add-fw_path-variable-revised.patch similarity index 91% rename from 0344-Add-fw_path-variable-revised.patch rename to 0444-Add-fw_path-variable-revised.patch index f4b069a..6d33292 100644 --- a/0344-Add-fw_path-variable-revised.patch +++ b/0444-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ -From 3198c6026265f42d043e61587579ea590fcd2ad4 Mon Sep 17 00:00:00 2001 +From dfb57206eb4beaa16b99e3dc69221d351b29c7c3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 344/364] Add fw_path variable (revised) +Subject: [PATCH 444/471] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the @@ -48,10 +48,10 @@ index 19dc988..8ab7794 100644 if (!device && fwdevice) device = fwdevice; diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 9aaa3b2..ea8cd53 100644 +index ffc2cd2..a1d5589 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c -@@ -346,7 +346,30 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), +@@ -355,7 +355,30 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), /* Guess the config filename. It is necessary to make CONFIG static, so that it won't get broken by longjmp. */ char *config; @@ -84,5 +84,5 @@ index 9aaa3b2..ea8cd53 100644 prefix = grub_env_get ("prefix"); if (prefix) -- -1.8.1.4 +1.8.2.1 diff --git a/0345-Don-t-set-boot-device-on-ppc-ieee1275.patch b/0445-Don-t-set-boot-device-on-ppc-ieee1275.patch similarity index 87% rename from 0345-Don-t-set-boot-device-on-ppc-ieee1275.patch rename to 0445-Don-t-set-boot-device-on-ppc-ieee1275.patch index c8c8f2e..5c3cada 100644 --- a/0345-Don-t-set-boot-device-on-ppc-ieee1275.patch +++ b/0445-Don-t-set-boot-device-on-ppc-ieee1275.patch @@ -1,7 +1,7 @@ -From 8aa77af6f9aad0d8a5b50a0670f85668ad489022 Mon Sep 17 00:00:00 2001 +From 01d4ed9c65da7fa95ec6c7ef952bc50064db2235 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 25 May 2012 14:57:38 -0400 -Subject: [PATCH 345/364] Don't set boot device on ppc-ieee1275 +Subject: [PATCH 445/471] Don't set boot device on ppc-ieee1275 This started with the problem that powerkvm doesn't have /dev/nvram and so there is no way to set boot-device. @@ -10,10 +10,10 @@ there is no way to set boot-device. 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/util/grub-install.in b/util/grub-install.in -index 271e447..c9f66c7 100644 +index 3dbd5da..c8f3a30 100644 --- a/util/grub-install.in +++ b/util/grub-install.in -@@ -777,14 +777,16 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ] +@@ -733,14 +733,16 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ] } fi @@ -39,5 +39,5 @@ index 271e447..c9f66c7 100644 elif [ x"${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = xmips-arc ]; then dvhtool -d "${install_device}" --unix-to-vh "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" grub -- -1.8.1.4 +1.8.2.1 diff --git a/0346-Add-support-for-linuxefi.patch b/0446-Add-support-for-linuxefi.patch similarity index 98% rename from 0346-Add-support-for-linuxefi.patch rename to 0446-Add-support-for-linuxefi.patch index 9e34dbd..ea05456 100644 --- a/0346-Add-support-for-linuxefi.patch +++ b/0446-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ -From b9ec45bae44866fe0aff006d645d7b89efa4bc2f Mon Sep 17 00:00:00 2001 +From 9f8104db535a8d2f9ef42824669431bdd86b3fe8 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 346/364] Add support for linuxefi +Subject: [PATCH 446/471] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + @@ -13,10 +13,10 @@ Subject: [PATCH 346/364] Add support for linuxefi create mode 100644 grub-core/loader/i386/efi/linux.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 8f36ea0..ca09eed 100644 +index bb62dce..def6606 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -1521,6 +1521,14 @@ module = { +@@ -1534,6 +1534,14 @@ module = { }; module = { @@ -478,5 +478,5 @@ index 9d064c8..c29c5af 100644 /* Boot parameters for Linux based on 2.6.12. This is used by the setup -- -1.8.1.4 +1.8.2.1 diff --git a/0347-Add-support-for-crappy-cd-craparino.patch b/0447-Add-support-for-crappy-cd-craparino.patch similarity index 80% rename from 0347-Add-support-for-crappy-cd-craparino.patch rename to 0447-Add-support-for-crappy-cd-craparino.patch index bd509a4..8bf61e8 100644 --- a/0347-Add-support-for-crappy-cd-craparino.patch +++ b/0447-Add-support-for-crappy-cd-craparino.patch @@ -1,17 +1,17 @@ -From 3a38d333bfdcdca7546b7c005453cd02a78c8423 Mon Sep 17 00:00:00 2001 +From abd3c20d447a3c3ed28b9e73b59b5862d3eddf2d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 347/364] Add support for crappy cd craparino +Subject: [PATCH 447/471] Add support for crappy cd craparino --- grub-core/disk/efi/efidisk.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/grub-core/disk/efi/efidisk.c b/grub-core/disk/efi/efidisk.c -index e168d07..3a006ab 100644 +index ebd906e..08c303e 100644 --- a/grub-core/disk/efi/efidisk.c +++ b/grub-core/disk/efi/efidisk.c -@@ -794,6 +794,16 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle) +@@ -799,6 +799,16 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle) if (! ldp) return 0; @@ -29,5 +29,5 @@ index e168d07..3a006ab 100644 && (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)) -- -1.8.1.4 +1.8.2.1 diff --git a/0348-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0448-Use-linuxefi-and-initrdefi-where-appropriate.patch similarity index 91% rename from 0348-Use-linuxefi-and-initrdefi-where-appropriate.patch rename to 0448-Use-linuxefi-and-initrdefi-where-appropriate.patch index a81eab9..890691c 100644 --- a/0348-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0448-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ -From 2398a5d9dbf6b095513d3a469d2711ca25f85311 Mon Sep 17 00:00:00 2001 +From a24ad28eaa52ea635643bf26456d731d18e208d5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 348/364] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 448/471] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- @@ -46,5 +46,5 @@ index 368f609..4807d84 100644 sed "s/^/$submenu_indentation/" << EOF } -- -1.8.1.4 +1.8.2.1 diff --git a/0349-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0449-Don-t-allow-insmod-when-secure-boot-is-enabled.patch similarity index 93% rename from 0349-Don-t-allow-insmod-when-secure-boot-is-enabled.patch rename to 0449-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 084991b..9d45139 100644 --- a/0349-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0449-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ -From 16841c32f8cdb8ded3ac7bb2e2a4eb2fcfe9d93f Mon Sep 17 00:00:00 2001 +From 29c89e27805f7a6a22bce11ed9bb430e19c972a9 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 349/364] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 449/471] Don't allow insmod when secure boot is enabled. Hi, @@ -23,7 +23,7 @@ moves the check into grub_dl_load_file. 3 files changed, 46 insertions(+) diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index c6d9ec9..570be12 100644 +index 6c086ad..5521463 100644 --- a/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c @@ -42,6 +42,10 @@ @@ -37,7 +37,7 @@ index c6d9ec9..570be12 100644 #pragma GCC diagnostic ignored "-Wcast-align" -@@ -673,6 +677,19 @@ grub_dl_load_file (const char *filename) +@@ -665,6 +669,19 @@ grub_dl_load_file (const char *filename) void *core = 0; grub_dl_t mod = 0; @@ -109,5 +109,5 @@ index 9370fd5..a000c38 100644 EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); -- -1.8.1.4 +1.8.2.1 diff --git a/0351-Pass-x-hex-hex-straight-through-unmolested.patch b/0450-Pass-x-hex-hex-straight-through-unmolested.patch similarity index 96% rename from 0351-Pass-x-hex-hex-straight-through-unmolested.patch rename to 0450-Pass-x-hex-hex-straight-through-unmolested.patch index e2ea5c3..d6decc0 100644 --- a/0351-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0450-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ -From a20c29e7b8c9b92fc8919968a2382737d6662695 Mon Sep 17 00:00:00 2001 +From 33749fa51f00213bab2a1db2b79a9539c8980731 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 351/364] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 450/471] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- @@ -104,7 +104,7 @@ index a702e64..c8605a7 100644 *buf++ = *c; diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index a1dcc34..686e1fa 100644 +index 9babbee..2b75169 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -52,6 +52,12 @@ static struct grub_script_scope *scope = 0; @@ -179,5 +179,5 @@ index a1dcc34..686e1fa 100644 case '$': if (escaped) -- -1.8.1.4 +1.8.2.1 diff --git a/0352-Fix-crash-on-http.patch b/0451-Fix-crash-on-http.patch similarity index 87% rename from 0352-Fix-crash-on-http.patch rename to 0451-Fix-crash-on-http.patch index fc2273f..755d17f 100644 --- a/0352-Fix-crash-on-http.patch +++ b/0451-Fix-crash-on-http.patch @@ -1,7 +1,7 @@ -From 8f9b02e937baf68c322b5798b59fbe4617712133 Mon Sep 17 00:00:00 2001 +From 6de9229ed963a2a06821ec1f588f7cc37307c946 Mon Sep 17 00:00:00 2001 From: Gustavo Luiz Duarte Date: Tue, 25 Sep 2012 18:40:55 -0400 -Subject: [PATCH 352/364] Fix crash on http +Subject: [PATCH 451/471] Fix crash on http Don't free file->data on receiving FIN flag since it is used all over without checking. http_close() will be called later to free that memory. @@ -24,5 +24,5 @@ index 4684f8b..ef9538c 100644 if (!data->sock) { -- -1.8.1.4 +1.8.2.1 diff --git a/0353-Issue-separate-DNS-queries-for-ipv4-and-ipv6.patch b/0452-Issue-separate-DNS-queries-for-ipv4-and-ipv6.patch similarity index 98% rename from 0353-Issue-separate-DNS-queries-for-ipv4-and-ipv6.patch rename to 0452-Issue-separate-DNS-queries-for-ipv4-and-ipv6.patch index c3d8234..bd26205 100644 --- a/0353-Issue-separate-DNS-queries-for-ipv4-and-ipv6.patch +++ b/0452-Issue-separate-DNS-queries-for-ipv4-and-ipv6.patch @@ -1,7 +1,7 @@ -From 90e4864ecae8cc40d1f9562556a866d15ddc491f Mon Sep 17 00:00:00 2001 +From 590290e07fe45f5fee7cd15e507fe90e54046732 Mon Sep 17 00:00:00 2001 From: Gustavo Luiz Duarte Date: Fri, 28 Sep 2012 19:42:07 -0400 -Subject: [PATCH 353/364] Issue separate DNS queries for ipv4 and ipv6 +Subject: [PATCH 452/471] Issue separate DNS queries for ipv4 and ipv6 Adding multiple questions on a single DNS query is not supportted by most DNS servers. This patch issues two separate DNS queries @@ -226,5 +226,5 @@ index 1bd7af2..e677246 100644 grub_net_dns_lookup (const char *name, const struct grub_net_network_level_address *servers, -- -1.8.1.4 +1.8.2.1 diff --git a/0354-IBM-client-architecture-CAS-reboot-support.patch b/0453-IBM-client-architecture-CAS-reboot-support.patch similarity index 94% rename from 0354-IBM-client-architecture-CAS-reboot-support.patch rename to 0453-IBM-client-architecture-CAS-reboot-support.patch index bdb73df..a7d0478 100644 --- a/0354-IBM-client-architecture-CAS-reboot-support.patch +++ b/0453-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ -From 057b6211bfba83caa9af3276fbbf8902cd1082a2 Mon Sep 17 00:00:00 2001 +From fdc81da57166837eaf7c3d76b5f865ee7dd5c594 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 354/364] IBM client architecture (CAS) reboot support +Subject: [PATCH 453/471] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. @@ -96,7 +96,7 @@ index 07c90f7..09e9e57 100644 +} + diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index ea8cd53..1f14826 100644 +index a1d5589..77b4720 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -32,6 +32,9 @@ @@ -109,7 +109,7 @@ index ea8cd53..1f14826 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -302,6 +305,22 @@ grub_normal_execute (const char *config, int nested, int batch) +@@ -311,6 +314,22 @@ grub_normal_execute (const char *config, int nested, int batch) { menu = read_config_file (config); @@ -133,7 +133,7 @@ index ea8cd53..1f14826 100644 grub_errno = GRUB_ERR_NONE; } diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index 686e1fa..7dcdab7 100644 +index 2b75169..b6becd7 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -27,6 +27,9 @@ @@ -146,7 +146,7 @@ index 686e1fa..7dcdab7 100644 /* Max digits for a char is 3 (0xFF is 255), similarly for an int it is sizeof (int) * 3, and one extra for a possible -ve sign. */ -@@ -872,6 +875,10 @@ grub_script_execute_sourcecode (const char *source, int argc, char **args) +@@ -901,6 +904,10 @@ grub_script_execute_sourcecode (const char *source, int argc, char **args) old_scope = scope; scope = &new_scope; @@ -171,5 +171,5 @@ index 1b240d3..eabbe9b 100644 #define FOR_IEEE1275_DEVALIASES(alias) for (grub_ieee1275_devalias_init_iterator (&(alias)); grub_ieee1275_devalias_next (&(alias));) -- -1.8.1.4 +1.8.2.1 diff --git a/0356-Add-vlan-tag-support.patch b/0454-Add-vlan-tag-support.patch similarity index 98% rename from 0356-Add-vlan-tag-support.patch rename to 0454-Add-vlan-tag-support.patch index b9dc8cd..514e8ec 100644 --- a/0356-Add-vlan-tag-support.patch +++ b/0454-Add-vlan-tag-support.patch @@ -1,7 +1,7 @@ -From d898f409ae3c0d09ec244f2a113c67ca8b4b8079 Mon Sep 17 00:00:00 2001 +From de04741fe79fc4d2c65a9ea5f4d9ef40bd36ae21 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 30 Oct 2012 15:19:39 -0200 -Subject: [PATCH 356/364] Add vlan-tag support +Subject: [PATCH 454/471] Add vlan-tag support This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link but @@ -182,5 +182,5 @@ index e677246..fe29b16 100644 + #endif /* ! GRUB_NET_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0357-Add-X-option-to-printf-functions.patch b/0455-Add-X-option-to-printf-functions.patch similarity index 92% rename from 0357-Add-X-option-to-printf-functions.patch rename to 0455-Add-X-option-to-printf-functions.patch index 68c9afb..c2420a8 100644 --- a/0357-Add-X-option-to-printf-functions.patch +++ b/0455-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ -From f1673a4b7079d134fa966da37adf409ea42efe8c Mon Sep 17 00:00:00 2001 +From 2a71d2434b01daaafa64cd340ea441def459d880 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 357/364] Add %X option to printf functions. +Subject: [PATCH 455/471] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- @@ -54,5 +54,5 @@ index 94b88a3..d5ca312 100644 unsig = 1; /* Fall through. */ -- -1.8.1.4 +1.8.2.1 diff --git a/0358-DHCP-client-ID-and-UUID-options-added.patch b/0456-DHCP-client-ID-and-UUID-options-added.patch similarity index 92% rename from 0358-DHCP-client-ID-and-UUID-options-added.patch rename to 0456-DHCP-client-ID-and-UUID-options-added.patch index b463d62..18f2658 100644 --- a/0358-DHCP-client-ID-and-UUID-options-added.patch +++ b/0456-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ -From 555f1022f967f98c541617df6b34ca272504d97b Mon Sep 17 00:00:00 2001 +From af13434ca0de9ef01b5f77fb85d5b3ac6c3d1d91 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 358/364] DHCP client ID and UUID options added. +Subject: [PATCH 456/471] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 52 +++++++++++++++++++++++++++++++++++++++++++-------- @@ -9,7 +9,7 @@ Subject: [PATCH 358/364] DHCP client ID and UUID options added. 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 33f860a..de34966 100644 +index c8ef4d6..af3cb62 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c @@ -51,6 +51,14 @@ set_env_limn_ro (const char *intername, const char *suffix, @@ -77,7 +77,7 @@ index 33f860a..de34966 100644 /* If you need any other options please contact GRUB development team. */ } -@@ -299,14 +343,6 @@ grub_net_process_dhcp (struct grub_net_buff *nb, +@@ -302,14 +346,6 @@ grub_net_process_dhcp (struct grub_net_buff *nb, } } @@ -106,5 +106,5 @@ index fe29b16..36ac906 100644 }; -- -1.8.1.4 +1.8.2.1 diff --git a/0359-Search-for-specific-config-file-for-netboot.patch b/0457-Search-for-specific-config-file-for-netboot.patch similarity index 95% rename from 0359-Search-for-specific-config-file-for-netboot.patch rename to 0457-Search-for-specific-config-file-for-netboot.patch index 6d44326..5279bd6 100644 --- a/0359-Search-for-specific-config-file-for-netboot.patch +++ b/0457-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ -From 773d8cadb15a4bea164863268068e2f421b8324c Mon Sep 17 00:00:00 2001 +From f746bbc8a74f7a2d3bf14752fa14a9f50b35d38f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 359/364] Search for specific config file for netboot +Subject: [PATCH 457/471] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: @@ -22,10 +22,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=873406 3 files changed, 135 insertions(+), 4 deletions(-) diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index aebbe4b..9a601d7 100644 +index 8ea6906..b7d749d 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c -@@ -1548,6 +1548,124 @@ grub_net_restore_hw (void) +@@ -1611,6 +1611,124 @@ grub_net_restore_hw (void) return GRUB_ERR_NONE; } @@ -151,7 +151,7 @@ index aebbe4b..9a601d7 100644 static grub_command_t cmd_addaddr, cmd_deladdr, cmd_addroute, cmd_delroute; diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 1f14826..b40d987 100644 +index 77b4720..48bb708 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -32,6 +32,7 @@ @@ -162,7 +162,7 @@ index 1f14826..b40d987 100644 #ifdef GRUB_MACHINE_IEEE1275 #include #endif -@@ -392,10 +393,19 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), +@@ -401,10 +402,19 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), prefix = grub_env_get ("prefix"); if (prefix) @@ -199,5 +199,5 @@ index 36ac906..c7d5ce0 100644 + #endif /* ! GRUB_NET_HEADER */ -- -1.8.1.4 +1.8.2.1 diff --git a/0360-Add-bootpath-device-to-the-list.patch b/0458-Add-bootpath-device-to-the-list.patch similarity index 91% rename from 0360-Add-bootpath-device-to-the-list.patch rename to 0458-Add-bootpath-device-to-the-list.patch index bef6989..283e69e 100644 --- a/0360-Add-bootpath-device-to-the-list.patch +++ b/0458-Add-bootpath-device-to-the-list.patch @@ -1,7 +1,7 @@ -From 68cae0b32cf36c7a8ccd0b2344afdb8ad5f9c473 Mon Sep 17 00:00:00 2001 +From a2780be06f7de35a0dd4cc19a68b151176707ae7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Fri, 14 Dec 2012 20:10:21 -0200 -Subject: [PATCH 360/364] Add bootpath device to the list +Subject: [PATCH 458/471] Add bootpath device to the list When scanning the devices, always check (and add) the bootpath device if it isn't in the device list. @@ -10,7 +10,7 @@ isn't in the device list. 1 file changed, 32 insertions(+) diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c -index ec92c4d..f056466 100644 +index 2a31ecd..a940771 100644 --- a/grub-core/disk/ieee1275/ofdisk.c +++ b/grub-core/disk/ieee1275/ofdisk.c @@ -229,6 +229,10 @@ dev_iterate (const struct grub_ieee1275_devalias *alias) @@ -60,5 +60,5 @@ index ec92c4d..f056466 100644 static int -- -1.8.1.4 +1.8.2.1 diff --git a/0361-add-GRUB_DISABLE_SUBMENU-option.patch b/0459-add-GRUB_DISABLE_SUBMENU-option.patch similarity index 95% rename from 0361-add-GRUB_DISABLE_SUBMENU-option.patch rename to 0459-add-GRUB_DISABLE_SUBMENU-option.patch index ff84415..718ec9f 100644 --- a/0361-add-GRUB_DISABLE_SUBMENU-option.patch +++ b/0459-add-GRUB_DISABLE_SUBMENU-option.patch @@ -1,7 +1,7 @@ -From 226913e340f31cb8c2d98d09cb4186f1825cffe5 Mon Sep 17 00:00:00 2001 +From 08d16ac5e3849e2c0b73aa57adc745dbc3a73aad Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Thu, 7 Feb 2013 11:53:41 -0500 -Subject: [PATCH 361/364] add GRUB_DISABLE_SUBMENU option +Subject: [PATCH 459/471] add GRUB_DISABLE_SUBMENU option This patch adds the ability to disable the grub2 submenus from /etc/default/grub @@ -74,5 +74,5 @@ index 4807d84..d7ea670 100644 echo "$title_correction_code" -- -1.8.1.4 +1.8.2.1 diff --git a/0362-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0460-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch similarity index 96% rename from 0362-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch rename to 0460-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 05dbb8a..c7b055f 100644 --- a/0362-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0460-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ -From f46a9b399b30b4883cb472f096e9b2d666a29ee5 Mon Sep 17 00:00:00 2001 +From 86e2916cbfa955b04b86b19bb92a29be42368d39 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 362/364] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 460/471] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec @@ -21,10 +21,10 @@ Signed-off-by: Peter Jones create mode 100644 grub-core/commands/blscfg.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index ca09eed..ef4754f 100644 +index def6606..08089de 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -645,6 +645,14 @@ module = { +@@ -653,6 +653,14 @@ module = { }; module = { @@ -247,5 +247,5 @@ index 0000000..4274aca + grub_unregister_extcmd (cmd); +} -- -1.8.1.4 +1.8.2.1 diff --git a/0363-Move-bash-completion-script-922997.patch b/0461-Move-bash-completion-script-922997.patch similarity index 85% rename from 0363-Move-bash-completion-script-922997.patch rename to 0461-Move-bash-completion-script-922997.patch index 62402cb..f48b567 100644 --- a/0363-Move-bash-completion-script-922997.patch +++ b/0461-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ -From 03be782b24b462cfaa4a3fb5db0584b62b515bee Mon Sep 17 00:00:00 2001 +From 17f4b0bf7a491395a97beb8df4261fb76a755d16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 363/364] Move bash completion script (#922997) +Subject: [PATCH 461/471] Move bash completion script (#922997) Apparently these go in a new place now. --- @@ -22,5 +22,5 @@ index 136287c..0bcdb06 100644 $(bash_completion_script): $(bash_completion_source) $(top_builddir)/config.status -- -1.8.1.4 +1.8.2.1 diff --git a/0462-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0462-for-ppc-reset-console-display-attr-when-clear-screen.patch new file mode 100644 index 0000000..1f2aae3 --- /dev/null +++ b/0462-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -0,0 +1,27 @@ +From bc2c9699fa4a023894b7a72b649ebf39caab2882 Mon Sep 17 00:00:00 2001 +From: Paulo Flabiano Smorigo +Date: Wed, 24 Apr 2013 10:51:48 -0300 +Subject: [PATCH 462/471] for ppc, reset console display attr when clear screen + +This should fix this bugzilla: +https://bugzilla.redhat.com/show_bug.cgi?id=908519 +--- + grub-core/term/terminfo.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c +index a46bb4b..fee475b 100644 +--- a/grub-core/term/terminfo.c ++++ b/grub-core/term/terminfo.c +@@ -151,7 +151,7 @@ grub_terminfo_set_current (struct grub_term_output *term, + /* Clear the screen. Using serial console, screen(1) only recognizes the + * ANSI escape sequence. Using video console, Apple Open Firmware + * (version 3.1.1) only recognizes the literal ^L. So use both. */ +- data->cls = grub_strdup (" \e[2J"); ++ data->cls = grub_strdup (" \e[2J\e[m"); + data->reverse_video_on = grub_strdup ("\e[7m"); + data->reverse_video_off = grub_strdup ("\e[m"); + if (grub_strcmp ("ieee1275", str) == 0) +-- +1.8.2.1 + diff --git a/0463-grub-core-term-efi-console.c-Fix-compile-error.patch b/0463-grub-core-term-efi-console.c-Fix-compile-error.patch new file mode 100644 index 0000000..a3962f9 --- /dev/null +++ b/0463-grub-core-term-efi-console.c-Fix-compile-error.patch @@ -0,0 +1,41 @@ +From f7c5895ae7757d790c3c0efea514523775b50c66 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 7 May 2013 20:40:00 +0200 +Subject: [PATCH 463/471] * grub-core/term/efi/console.c: Fix compile + error. + +--- + ChangeLog | 4 ++++ + grub-core/term/efi/console.c | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 0430249..5b0b357 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-07 Vladimir Serbinenko + ++ * grub-core/term/efi/console.c: Fix compile error. ++ ++2013-05-07 Vladimir Serbinenko ++ + Compressed HFS+ support. + + 2013-05-07 Vladimir Serbinenko +diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c +index 2d6c6f9..9f76d23 100644 +--- a/grub-core/term/efi/console.c ++++ b/grub-core/term/efi/console.c +@@ -86,7 +86,7 @@ grub_console_putchar (struct grub_term_output *term __attribute__ ((unused)), + j = 1; + for (i = 0; i < c->ncomb; i++) + if (c->base < 0xffff) +- str[j++] = c->combining[i].code; ++ str[j++] = grub_unicode_get_comb (c)[i].code; + str[j] = 0; + + /* Should this test be cached? */ +-- +1.8.2.1 + diff --git a/0002-configure.ac-Don-t-use-extended-registers-on-x86_64.patch b/0464-configure.ac-Don-t-use-extended-registers-on-x86_64.patch similarity index 55% rename from 0002-configure.ac-Don-t-use-extended-registers-on-x86_64.patch rename to 0464-configure.ac-Don-t-use-extended-registers-on-x86_64.patch index 34330dc..6a546d5 100644 --- a/0002-configure.ac-Don-t-use-extended-registers-on-x86_64.patch +++ b/0464-configure.ac-Don-t-use-extended-registers-on-x86_64.patch @@ -1,14 +1,29 @@ -From ebef39797bef17e7a28678f4b8370e6b63e10cc4 Mon Sep 17 00:00:00 2001 +From 71cc19c0677fb7fb073d930dd0bdbbadf1c5ff66 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 7 May 2013 20:42:05 +0200 -Subject: [PATCH 2/5] * configure.ac: Don't use extended registers on - x86_64. Reported by: Peter Jones. +Subject: [PATCH 464/471] * configure.ac: Don't use extended registers + on x86_64. Reported by: Peter Jones. --- ChangeLog | 5 +++++ configure.ac | 2 ++ 2 files changed, 7 insertions(+) +diff --git a/ChangeLog b/ChangeLog +index 5b0b357..db874e5 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,10 @@ + 2013-05-07 Vladimir Serbinenko + ++ * configure.ac: Don't use extended registers on x86_64. ++ Reported by: Peter Jones. ++ ++2013-05-07 Vladimir Serbinenko ++ + * grub-core/term/efi/console.c: Fix compile error. + + 2013-05-07 Vladimir Serbinenko diff --git a/configure.ac b/configure.ac index 6c310f7..80549b0 100644 --- a/configure.ac diff --git a/0003-configure.ac-Don-t-disable-extended-registers-on-emu.patch b/0465-configure.ac-Don-t-disable-extended-registers-on-emu.patch similarity index 60% rename from 0003-configure.ac-Don-t-disable-extended-registers-on-emu.patch rename to 0465-configure.ac-Don-t-disable-extended-registers-on-emu.patch index b98c9a5..df2fb04 100644 --- a/0003-configure.ac-Don-t-disable-extended-registers-on-emu.patch +++ b/0465-configure.ac-Don-t-disable-extended-registers-on-emu.patch @@ -1,14 +1,26 @@ -From 780556c3e1047acbcdfa588980f52c73d9aae89a Mon Sep 17 00:00:00 2001 +From 69c5d972c80f796e61cdc3f6cdd88c227070872e Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 8 May 2013 11:01:11 +0200 -Subject: [PATCH 3/5] * configure.ac: Don't disable extended registers on - emu. +Subject: [PATCH 465/471] * configure.ac: Don't disable extended + registers on emu. --- ChangeLog | 4 ++++ configure.ac | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) +diff --git a/ChangeLog b/ChangeLog +index db874e5..39dc051 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,7 @@ ++2013-05-08 Vladimir Serbinenko ++ ++ * configure.ac: Don't disable extended registers on emu. ++ + 2013-05-07 Vladimir Serbinenko + + * configure.ac: Don't use extended registers on x86_64. diff --git a/configure.ac b/configure.ac index 80549b0..fa0e00a 100644 --- a/configure.ac diff --git a/0004-conf-Makefile.common-Poison-float-and-double-on-non-.patch b/0466-conf-Makefile.common-Poison-float-and-double-on-non-.patch similarity index 68% rename from 0004-conf-Makefile.common-Poison-float-and-double-on-non-.patch rename to 0466-conf-Makefile.common-Poison-float-and-double-on-non-.patch index df0a7f2..0995478 100644 --- a/0004-conf-Makefile.common-Poison-float-and-double-on-non-.patch +++ b/0466-conf-Makefile.common-Poison-float-and-double-on-non-.patch @@ -1,8 +1,8 @@ -From 5c6c289a6a6c939e7fb3f4a7ba8a737794875a44 Mon Sep 17 00:00:00 2001 +From 922c5f5bac2699f8fb4273e9e542fc8cb416535a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 8 May 2013 11:05:37 +0200 -Subject: [PATCH 4/5] * conf/Makefile.common: Poison float and double on - non-emu. +Subject: [PATCH 466/471] * conf/Makefile.common: Poison float and + double on non-emu. --- ChangeLog | 4 ++++ @@ -10,6 +10,20 @@ Subject: [PATCH 4/5] * conf/Makefile.common: Poison float and double on util/import_gcry.py | 6 ++++++ 3 files changed, 15 insertions(+) +diff --git a/ChangeLog b/ChangeLog +index 39dc051..0da7177 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,9 @@ + 2013-05-08 Vladimir Serbinenko + ++ * conf/Makefile.common: Poison float and double on non-emu. ++ ++2013-05-08 Vladimir Serbinenko ++ + * configure.ac: Don't disable extended registers on emu. + + 2013-05-07 Vladimir Serbinenko diff --git a/conf/Makefile.common b/conf/Makefile.common index c185a55..ca1cb17 100644 --- a/conf/Makefile.common diff --git a/0467-Progressively-skip-menu-elements-on-small-terminals-.patch b/0467-Progressively-skip-menu-elements-on-small-terminals-.patch new file mode 100644 index 0000000..66ea820 --- /dev/null +++ b/0467-Progressively-skip-menu-elements-on-small-terminals-.patch @@ -0,0 +1,2059 @@ +From d75dd78fc6e1f57f4c5f46ce38360cfa7a6f33b8 Mon Sep 17 00:00:00 2001 +From: Vladimir 'phcoder' Serbinenko +Date: Tue, 14 May 2013 08:57:18 +0200 +Subject: [PATCH 467/471] Progressively skip menu elements on small + terminals rather than crashing. + +Conflicts: + ChangeLog + grub-core/tests/checksums.h +--- + ChangeLog | 5 + + grub-core/normal/main.c | 17 +- + grub-core/normal/menu_entry.c | 203 +++++----- + grub-core/normal/menu_text.c | 350 +++++++++++------- + grub-core/normal/term.c | 53 +-- + grub-core/tests/checksums.h | 780 +++++++++++++++++++-------------------- + grub-core/tests/video_checksum.c | 2 +- + include/grub/normal.h | 18 +- + include/grub/term.h | 20 - + include/grub/unicode.h | 1 + + 10 files changed, 774 insertions(+), 675 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 0da7177..f71864b 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,8 @@ ++2013-05-14 Vladimir Serbinenko ++ ++ Progressively skip menu elements on small terminals rather ++ than crashing. ++ + 2013-05-08 Vladimir Serbinenko + + * conf/Makefile.common: Poison float and double on non-emu. +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 48bb708..70f6162 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -239,7 +239,8 @@ read_config_file (const char *config) + + /* Initialize the screen. */ + void +-grub_normal_init_page (struct grub_term_output *term) ++grub_normal_init_page (struct grub_term_output *term, ++ int y) + { + grub_ssize_t msg_len; + int posx; +@@ -264,8 +265,10 @@ grub_normal_init_page (struct grub_term_output *term) + } + + posx = grub_getstringwidth (unicode_msg, last_position, term); +- posx = (grub_term_width (term) - posx) / 2; +- grub_term_gotoxy (term, posx, 1); ++ posx = ((int) grub_term_width (term) - posx) / 2; ++ if (posx < 0) ++ posx = 0; ++ grub_term_gotoxy (term, posx, y); + + grub_print_ucs4 (unicode_msg, last_position, 0, 0, term); + grub_putcode ('\n', term); +@@ -457,10 +460,14 @@ grub_normal_reader_init (int nested) + + FOR_ACTIVE_TERM_OUTPUTS(term) + { +- grub_normal_init_page (term); ++ grub_normal_init_page (term, 1); + grub_term_setcursor (term, 1); + +- grub_print_message_indented (msg_formatted, 3, STANDARD_MARGIN, term); ++ if (grub_term_width (term) > 3 + STANDARD_MARGIN + 20) ++ grub_print_message_indented (msg_formatted, 3, STANDARD_MARGIN, term); ++ else ++ grub_print_message_indented (msg_formatted, 0, 0, term); ++ grub_putcode ('\n', term); + grub_putcode ('\n', term); + grub_putcode ('\n', term); + } +diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c +index fae258a..a26a506 100644 +--- a/grub-core/normal/menu_entry.c ++++ b/grub-core/normal/menu_entry.c +@@ -50,8 +50,7 @@ struct per_term_screen + { + struct grub_term_output *term; + int y_line_start; +- /* Number of entries. */ +- int num_entries; ++ struct grub_term_screen_geometry geo; + }; + + struct screen +@@ -118,22 +117,13 @@ ensure_space (struct line *linep, int extra) + return 1; + } + +-/* The max column number of an entry. The last "-1" is for a +- continuation marker. */ +-static inline int +-grub_term_entry_width (struct grub_term_output *term) +-{ +- return grub_term_border_width (term) - GRUB_TERM_MARGIN * 2 - 2; +-} +- +- + /* Return the number of lines occupied by this line on the screen. */ + static int + get_logical_num_lines (struct line *linep, struct per_term_screen *term_screen) + { + return (grub_getstringwidth (linep->buf, linep->buf + linep->len, + term_screen->term) +- / grub_term_entry_width (term_screen->term)) + 1; ++ / term_screen->geo.entry_width) + 1; + } + + static void +@@ -156,10 +146,28 @@ print_empty_line (int y, struct per_term_screen *term_screen) + int i; + + grub_term_gotoxy (term_screen->term, +- GRUB_TERM_LEFT_BORDER_X + GRUB_TERM_MARGIN + 1, +- y + GRUB_TERM_FIRST_ENTRY_Y); ++ term_screen->geo.first_entry_x, ++ y + term_screen->geo.first_entry_y); + +- for (i = 0; i < grub_term_entry_width (term_screen->term) + 1; i++) ++ for (i = 0; i < term_screen->geo.entry_width + 1; i++) ++ grub_putcode (' ', term_screen->term); ++} ++ ++static void ++print_updown (int upflag, int downflag, struct per_term_screen *term_screen) ++{ ++ grub_term_gotoxy (term_screen->term, term_screen->geo.first_entry_x ++ + term_screen->geo.entry_width + 1 ++ + term_screen->geo.border, ++ term_screen->geo.first_entry_y); ++ ++ if (upflag && downflag) ++ grub_putcode (GRUB_UNICODE_UPDOWNARROW, term_screen->term); ++ else if (upflag) ++ grub_putcode (GRUB_UNICODE_UPARROW, term_screen->term); ++ else if (downflag) ++ grub_putcode (GRUB_UNICODE_DOWNARROW, term_screen->term); ++ else + grub_putcode (' ', term_screen->term); + } + +@@ -167,9 +175,10 @@ print_empty_line (int y, struct per_term_screen *term_screen) + static void + print_up (int flag, struct per_term_screen *term_screen) + { +- grub_term_gotoxy (term_screen->term, GRUB_TERM_LEFT_BORDER_X +- + grub_term_border_width (term_screen->term), +- GRUB_TERM_FIRST_ENTRY_Y); ++ grub_term_gotoxy (term_screen->term, term_screen->geo.first_entry_x ++ + term_screen->geo.entry_width + 1 ++ + term_screen->geo.border, ++ term_screen->geo.first_entry_y); + + if (flag) + grub_putcode (GRUB_UNICODE_UPARROW, term_screen->term); +@@ -181,10 +190,11 @@ print_up (int flag, struct per_term_screen *term_screen) + static void + print_down (int flag, struct per_term_screen *term_screen) + { +- grub_term_gotoxy (term_screen->term, GRUB_TERM_LEFT_BORDER_X +- + grub_term_border_width (term_screen->term), +- GRUB_TERM_TOP_BORDER_Y +- + term_screen->num_entries); ++ grub_term_gotoxy (term_screen->term, term_screen->geo.first_entry_x ++ + term_screen->geo.entry_width + 1 ++ + term_screen->geo.border, ++ term_screen->geo.first_entry_y ++ + term_screen->geo.num_entries - 1); + + if (flag) + grub_putcode (GRUB_UNICODE_DOWNARROW, term_screen->term); +@@ -210,17 +220,20 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, + for (i = 0; i < screen->line; i++, linep++) + y += get_logical_num_lines (linep, term_screen); + linep = screen->lines + screen->line; +- y += grub_getstringwidth (linep->buf, linep->buf + screen->column, +- term_screen->term) / grub_term_entry_width (term_screen->term); +- ++ int t = grub_getstringwidth (linep->buf, linep->buf + screen->column, ++ term_screen->term); ++ y += t / term_screen->geo.entry_width; ++ if (t % term_screen->geo.entry_width == 0 ++ && t != 0 && screen->column == linep->len) ++ y--; + /* Check if scrolling is necessary. */ +- if (y < 0 || y >= term_screen->num_entries) ++ if (y < 0 || y >= term_screen->geo.num_entries) + { + int delta; + if (y < 0) + delta = -y; + else +- delta = term_screen->num_entries - 1 - y; ++ delta = term_screen->geo.num_entries - 1 - y; + term_screen->y_line_start += delta; + + region_start = 0; +@@ -265,24 +278,22 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, + if (i == region_start || linep == screen->lines + screen->line + || (i > region_start && mode == ALL_LINES)) + { +- grub_term_gotoxy (term_screen->term, GRUB_TERM_LEFT_BORDER_X +- + GRUB_TERM_MARGIN + 1, (y < 0 ? 0 : y) +- + GRUB_TERM_FIRST_ENTRY_Y); ++ grub_term_gotoxy (term_screen->term, term_screen->geo.first_entry_x, ++ (y < 0 ? 0 : y) ++ + term_screen->geo.first_entry_y); + + grub_print_ucs4_menu (linep->buf, + linep->buf + linep->len, +- GRUB_TERM_LEFT_BORDER_X +- + GRUB_TERM_MARGIN + 1, +- GRUB_TERM_MARGIN +- + GRUB_TERM_SCROLL_WIDTH, ++ term_screen->geo.first_entry_x, ++ term_screen->geo.right_margin, + term_screen->term, + (y < 0) ? -y : 0, +- term_screen->num_entries ++ term_screen->geo.num_entries + - ((y > 0) ? y : 0), '\\', + *pos); + } + y += get_logical_num_lines (linep, term_screen); +- if (y >= term_screen->num_entries) ++ if (y >= term_screen->geo.num_entries) + { + if (i + 1 < screen->num_lines) + down_flag = 1; +@@ -292,16 +303,25 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, + i++; + + if (mode == ALL_LINES && i == screen->num_lines) +- for (; y < term_screen->num_entries; y++) ++ for (; y < term_screen->geo.num_entries; y++) + print_empty_line (y, term_screen); + } +- while (y < term_screen->num_entries); ++ while (y < term_screen->geo.num_entries); + + /* Draw up and down arrows. */ +- if (up) +- print_up (up_flag, term_screen); +- if (down) +- print_down (down_flag, term_screen); ++ ++ if (term_screen->geo.num_entries == 1) ++ { ++ if (up || down) ++ print_updown (up_flag, down_flag, term_screen); ++ } ++ else ++ { ++ if (up) ++ print_up (up_flag, term_screen); ++ if (down) ++ print_down (down_flag, term_screen); ++ } + } + + /* Place the cursor. */ +@@ -318,15 +338,13 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, + y += get_logical_num_lines (screen->lines + i, term_screen); + if (cpos >= &(screen->lines[screen->line].pos[term_screen - screen->terms])[0]) + grub_term_gotoxy (term_screen->term, +- cpos->x + GRUB_TERM_LEFT_BORDER_X +- + GRUB_TERM_MARGIN + 1, ++ cpos->x + term_screen->geo.first_entry_x, + cpos->y + y +- + GRUB_TERM_FIRST_ENTRY_Y); ++ + term_screen->geo.first_entry_y); + else + grub_term_gotoxy (term_screen->term, +- GRUB_TERM_LEFT_BORDER_X +- + GRUB_TERM_MARGIN + 1, +- y + GRUB_TERM_FIRST_ENTRY_Y); ++ term_screen->geo.first_entry_x, ++ y + term_screen->geo.first_entry_y); + + } + +@@ -1003,57 +1021,58 @@ complete (struct screen *screen, int continuous, int update) + if (restore) + for (i = 0; i < screen->nterms; i++) + { ++ int width = grub_term_width (screen->terms[i].term) - 2; ++ if (width > 15) ++ width -= 6; + int num_sections = ((completion_buffer.len +- + grub_term_width (screen->terms[i].term) +- - 8 - 1) +- / (grub_term_width (screen->terms[i].term) +- - 8)); ++ + width - 1) ++ / width); + grub_uint32_t *endp; + grub_uint16_t pos; + grub_uint32_t *p = ucs4; + + pos = grub_term_getxy (screen->terms[i].term); +- grub_term_gotoxy (screen->terms[i].term, 0, +- grub_term_height (screen->terms[i].term) - 3); + + screen->completion_shown = 1; + + grub_term_gotoxy (screen->terms[i].term, 0, +- grub_term_height (screen->terms[i].term) - 3); +- grub_puts_terminal (" ", screen->terms[i].term); +- switch (completion_type) ++ screen->terms[i].geo.timeout_y); ++ if (screen->terms[i].geo.timeout_lines >= 2) + { +- case GRUB_COMPLETION_TYPE_COMMAND: +- grub_puts_terminal (_("Possible commands are:"), +- screen->terms[i].term); +- break; +- case GRUB_COMPLETION_TYPE_DEVICE: +- grub_puts_terminal (_("Possible devices are:"), +- screen->terms[i].term); +- break; +- case GRUB_COMPLETION_TYPE_FILE: +- grub_puts_terminal (_("Possible files are:"), +- screen->terms[i].term); +- break; +- case GRUB_COMPLETION_TYPE_PARTITION: +- grub_puts_terminal (_("Possible partitions are:"), +- screen->terms[i].term); +- break; +- case GRUB_COMPLETION_TYPE_ARGUMENT: +- grub_puts_terminal (_("Possible arguments are:"), +- screen->terms[i].term); +- break; +- default: +- grub_puts_terminal (_("Possible things are:"), +- screen->terms[i].term); +- break; ++ grub_puts_terminal (" ", screen->terms[i].term); ++ switch (completion_type) ++ { ++ case GRUB_COMPLETION_TYPE_COMMAND: ++ grub_puts_terminal (_("Possible commands are:"), ++ screen->terms[i].term); ++ break; ++ case GRUB_COMPLETION_TYPE_DEVICE: ++ grub_puts_terminal (_("Possible devices are:"), ++ screen->terms[i].term); ++ break; ++ case GRUB_COMPLETION_TYPE_FILE: ++ grub_puts_terminal (_("Possible files are:"), ++ screen->terms[i].term); ++ break; ++ case GRUB_COMPLETION_TYPE_PARTITION: ++ grub_puts_terminal (_("Possible partitions are:"), ++ screen->terms[i].term); ++ break; ++ case GRUB_COMPLETION_TYPE_ARGUMENT: ++ grub_puts_terminal (_("Possible arguments are:"), ++ screen->terms[i].term); ++ break; ++ default: ++ grub_puts_terminal (_("Possible things are:"), ++ screen->terms[i].term); ++ break; ++ } ++ ++ grub_puts_terminal ("\n ", screen->terms[i].term); + } + +- grub_puts_terminal ("\n ", screen->terms[i].term); +- +- p += (count % num_sections) +- * (grub_term_width (screen->terms[i].term) - 8); +- endp = p + (grub_term_width (screen->terms[i].term) - 8); ++ p += (count % num_sections) * width; ++ endp = p + width; + + if (p != ucs4) + grub_putcode (GRUB_UNICODE_LEFTARROW, screen->terms[i].term); +@@ -1087,17 +1106,19 @@ static void + clear_completions (struct per_term_screen *term_screen) + { + grub_uint16_t pos; +- unsigned i, j; ++ unsigned j; ++ int i; + + pos = grub_term_getxy (term_screen->term); + grub_term_gotoxy (term_screen->term, 0, +- grub_term_height (term_screen->term) - 3); ++ term_screen->geo.timeout_y); + +- for (i = 0; i < 2; i++) ++ for (i = 0; i < term_screen->geo.timeout_lines; i++) + { + for (j = 0; j < grub_term_width (term_screen->term) - 1; j++) + grub_putcode (' ', term_screen->term); +- grub_putcode ('\n', term_screen->term); ++ if (i + 1 < term_screen->geo.timeout_lines) ++ grub_putcode ('\n', term_screen->term); + } + + grub_term_gotoxy (term_screen->term, pos >> 8, pos & 0xFF); +@@ -1249,7 +1270,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) + } + /* Draw the screen. */ + for (i = 0; i < screen->nterms; i++) +- grub_menu_init_page (0, 1, &screen->terms[i].num_entries, ++ grub_menu_init_page (0, 1, &screen->terms[i].geo, + screen->terms[i].term); + update_screen_all (screen, 0, 0, 1, 1, ALL_LINES); + for (i = 0; i < screen->nterms; i++) +diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c +index 36f8e73..b6ec32a 100644 +--- a/grub-core/normal/menu_text.c ++++ b/grub-core/normal/menu_text.c +@@ -34,17 +34,21 @@ static grub_uint8_t grub_color_menu_highlight; + struct menu_viewer_data + { + int first, offset; +- /* The number of entries shown at a time. */ +- int num_entries; ++ struct grub_term_screen_geometry geo; ++ enum { ++ TIMEOUT_UNKNOWN, ++ TIMEOUT_NORMAL, ++ TIMEOUT_TERSE, ++ TIMEOUT_TERSE_NO_MARGIN ++ } timeout_msg; + grub_menu_t menu; + struct grub_term_output *term; + }; + + static inline int +-grub_term_cursor_x (struct grub_term_output *term) ++grub_term_cursor_x (const struct grub_term_screen_geometry *geo) + { +- return (GRUB_TERM_LEFT_BORDER_X + grub_term_border_width (term) +- - GRUB_TERM_MARGIN - 1); ++ return (geo->first_entry_x + geo->entry_width); + } + + grub_ssize_t +@@ -83,15 +87,14 @@ grub_print_message_indented_real (const char *msg, int margin_left, + (grub_uint8_t *) msg, -1, 0); + + last_position = unicode_msg + msg_len; +- *last_position++ = '\n'; + *last_position = 0; + + if (dry_run) + ret = grub_ucs4_count_lines (unicode_msg, last_position, margin_left, + margin_right, term); + else +- grub_print_ucs4 (unicode_msg, last_position, margin_left, +- margin_right, term); ++ grub_print_ucs4_menu (unicode_msg, last_position, margin_left, ++ margin_right, term, 0, -1, 0, 0); + + grub_free (unicode_msg); + +@@ -106,39 +109,38 @@ grub_print_message_indented (const char *msg, int margin_left, int margin_right, + } + + static void +-draw_border (struct grub_term_output *term, int num_entries) ++draw_border (struct grub_term_output *term, const struct grub_term_screen_geometry *geo) + { +- unsigned i; ++ int i; + + grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); + +- grub_term_gotoxy (term, GRUB_TERM_MARGIN, GRUB_TERM_TOP_BORDER_Y); ++ grub_term_gotoxy (term, geo->first_entry_x - 1, geo->first_entry_y - 1); + grub_putcode (GRUB_UNICODE_CORNER_UL, term); +- for (i = 0; i < (unsigned) grub_term_border_width (term) - 2; i++) ++ for (i = 0; i < geo->entry_width + 1; i++) + grub_putcode (GRUB_UNICODE_HLINE, term); + grub_putcode (GRUB_UNICODE_CORNER_UR, term); + +- for (i = 0; i < (unsigned) num_entries; i++) ++ for (i = 0; i < geo->num_entries; i++) + { +- grub_term_gotoxy (term, GRUB_TERM_MARGIN, GRUB_TERM_TOP_BORDER_Y + i + 1); ++ grub_term_gotoxy (term, geo->first_entry_x - 1, geo->first_entry_y + i); + grub_putcode (GRUB_UNICODE_VLINE, term); +- grub_term_gotoxy (term, GRUB_TERM_MARGIN + grub_term_border_width (term) +- - 1, +- GRUB_TERM_TOP_BORDER_Y + i + 1); ++ grub_term_gotoxy (term, geo->first_entry_x + geo->entry_width + 1, ++ geo->first_entry_y + i); + grub_putcode (GRUB_UNICODE_VLINE, term); + } + +- grub_term_gotoxy (term, GRUB_TERM_MARGIN, +- GRUB_TERM_TOP_BORDER_Y + num_entries + 1); ++ grub_term_gotoxy (term, geo->first_entry_x - 1, ++ geo->first_entry_y - 1 + geo->num_entries + 1); + grub_putcode (GRUB_UNICODE_CORNER_LL, term); +- for (i = 0; i < (unsigned) grub_term_border_width (term) - 2; i++) ++ for (i = 0; i < geo->entry_width + 1; i++) + grub_putcode (GRUB_UNICODE_HLINE, term); + grub_putcode (GRUB_UNICODE_CORNER_LR, term); + + grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); + +- grub_term_gotoxy (term, GRUB_TERM_MARGIN, +- (GRUB_TERM_TOP_BORDER_Y + num_entries ++ grub_term_gotoxy (term, geo->first_entry_x - 1, ++ (geo->first_entry_y - 1 + geo->num_entries + + GRUB_TERM_MARGIN + 1)); + } + +@@ -150,10 +152,6 @@ print_message (int nested, int edit, struct grub_term_output *term, int dry_run) + + if (edit) + { +- if(dry_run) +- ret++; +- else +- grub_putcode ('\n', term); + ret += grub_print_message_indented_real (_("Minimum Emacs-like screen editing is \ + supported. TAB lists completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2 for a \ + command-line or ESC to discard edits and return to the GRUB menu."), +@@ -170,10 +168,6 @@ command-line or ESC to discard edits and return to the GRUB menu."), + GRUB_UNICODE_DOWNARROW); + if (!msg_translated) + return 0; +- if(dry_run) +- ret++; +- else +- grub_putcode ('\n', term); + ret += grub_print_message_indented_real (msg_translated, STANDARD_MARGIN, + STANDARD_MARGIN, term, dry_run); + +@@ -201,9 +195,8 @@ command-line or ESC to discard edits and return to the GRUB menu."), + + static void + print_entry (int y, int highlight, grub_menu_entry_t entry, +- struct grub_term_output *term) ++ const struct menu_viewer_data *data) + { +- int x; + const char *title; + grub_size_t title_len; + grub_ssize_t len; +@@ -231,78 +224,34 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, + old_color_highlight = grub_term_highlight_color; + grub_term_normal_color = grub_color_menu_normal; + grub_term_highlight_color = grub_color_menu_highlight; +- grub_term_setcolorstate (term, highlight ++ grub_term_setcolorstate (data->term, highlight + ? GRUB_TERM_COLOR_HIGHLIGHT + : GRUB_TERM_COLOR_NORMAL); + +- grub_term_gotoxy (term, GRUB_TERM_LEFT_BORDER_X + GRUB_TERM_MARGIN, y); +- +- int last_printed = 0; ++ grub_term_gotoxy (data->term, data->geo.first_entry_x, y); + + for (i = 0; i < len; i++) + if (unicode_title[i] == '\n' || unicode_title[i] == '\b' + || unicode_title[i] == '\r' || unicode_title[i] == '\e') + unicode_title[i] = ' '; + +- for (x = GRUB_TERM_LEFT_BORDER_X + GRUB_TERM_MARGIN + 2, i = 0; +- x < (int) (GRUB_TERM_LEFT_BORDER_X + grub_term_border_width (term) +- - GRUB_TERM_MARGIN);) +- { +- if (i < len +- && x <= (int) (GRUB_TERM_LEFT_BORDER_X + grub_term_border_width (term) +- - GRUB_TERM_MARGIN - 1)) +- { +- grub_ssize_t width; +- struct grub_unicode_glyph glyph; +- +- i += grub_unicode_aglomerate_comb (unicode_title + i, +- len - i, &glyph); +- +- width = grub_term_getcharwidth (term, &glyph); +- +- grub_unicode_destroy_glyph (&glyph); ++ if (data->geo.num_entries > 1) ++ grub_putcode (highlight ? '*' : ' ', data->term); + +- if (x + width <= (int) (GRUB_TERM_LEFT_BORDER_X +- + grub_term_border_width (term) +- - GRUB_TERM_MARGIN - 1)) +- last_printed = i; +- x += width; +- } +- else +- break; +- } +- +- grub_putcode (highlight ? '*' : ' ', term); +- +- grub_print_ucs4 (unicode_title, +- unicode_title + last_printed, 0, 0, term); +- +- if (last_printed != len) +- { +- grub_putcode (GRUB_UNICODE_RIGHTARROW, term); +- struct grub_unicode_glyph pseudo_glyph = { +- .base = GRUB_UNICODE_RIGHTARROW, +- .variant = 0, +- .attributes = 0, +- .ncomb = 0, +- .estimated_width = 1 +- }; +- x += grub_term_getcharwidth (term, &pseudo_glyph); +- } ++ grub_print_ucs4_menu (unicode_title, ++ unicode_title + len, ++ 0, ++ data->geo.right_margin, ++ data->term, 0, 1, ++ GRUB_UNICODE_RIGHTARROW, 0); + +- for (; x < (int) (GRUB_TERM_LEFT_BORDER_X + grub_term_border_width (term) +- - GRUB_TERM_MARGIN); x++) +- grub_putcode (' ', term); +- +- grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); +- grub_putcode (' ', term); +- +- grub_term_gotoxy (term, grub_term_cursor_x (term), y); ++ grub_term_setcolorstate (data->term, GRUB_TERM_COLOR_NORMAL); ++ grub_term_gotoxy (data->term, grub_term_cursor_x (&data->geo), y); + + grub_term_normal_color = old_color_normal; + grub_term_highlight_color = old_color_highlight; + +- grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); ++ grub_term_setcolorstate (data->term, GRUB_TERM_COLOR_NORMAL); + grub_free (unicode_title); + } + +@@ -313,49 +262,120 @@ print_entries (grub_menu_t menu, const struct menu_viewer_data *data) + int i; + + grub_term_gotoxy (data->term, +- GRUB_TERM_LEFT_BORDER_X + grub_term_border_width (data->term), +- GRUB_TERM_FIRST_ENTRY_Y); +- +- if (data->first) +- grub_putcode (GRUB_UNICODE_UPARROW, data->term); +- else +- grub_putcode (' ', data->term); ++ data->geo.first_entry_x + data->geo.entry_width ++ + data->geo.border + 1, ++ data->geo.first_entry_y); + ++ if (data->geo.num_entries != 1) ++ { ++ if (data->first) ++ grub_putcode (GRUB_UNICODE_UPARROW, data->term); ++ else ++ grub_putcode (' ', data->term); ++ } + e = grub_menu_get_entry (menu, data->first); + +- for (i = 0; i < data->num_entries; i++) ++ for (i = 0; i < data->geo.num_entries; i++) + { +- print_entry (GRUB_TERM_FIRST_ENTRY_Y + i, data->offset == i, +- e, data->term); ++ print_entry (data->geo.first_entry_y + i, data->offset == i, ++ e, data); + if (e) + e = e->next; + } + +- grub_term_gotoxy (data->term, GRUB_TERM_LEFT_BORDER_X +- + grub_term_border_width (data->term), +- GRUB_TERM_TOP_BORDER_Y + data->num_entries); +- +- if (e) +- grub_putcode (GRUB_UNICODE_DOWNARROW, data->term); ++ grub_term_gotoxy (data->term, data->geo.first_entry_x + data->geo.entry_width ++ + data->geo.border + 1, ++ data->geo.first_entry_y + data->geo.num_entries - 1); ++ if (data->geo.num_entries == 1) ++ { ++ if (data->first && e) ++ grub_putcode (GRUB_UNICODE_UPDOWNARROW, data->term); ++ else if (data->first) ++ grub_putcode (GRUB_UNICODE_UPARROW, data->term); ++ else if (e) ++ grub_putcode (GRUB_UNICODE_DOWNARROW, data->term); ++ else ++ grub_putcode (' ', data->term); ++ } + else +- grub_putcode (' ', data->term); ++ { ++ if (e) ++ grub_putcode (GRUB_UNICODE_DOWNARROW, data->term); ++ else ++ grub_putcode (' ', data->term); ++ } + +- grub_term_gotoxy (data->term, grub_term_cursor_x (data->term), +- GRUB_TERM_FIRST_ENTRY_Y + data->offset); ++ grub_term_gotoxy (data->term, grub_term_cursor_x (&data->geo), ++ data->geo.first_entry_y + data->offset); + } + + /* Initialize the screen. If NESTED is non-zero, assume that this menu + is run from another menu or a command-line. If EDIT is non-zero, show + a message for the menu entry editor. */ + void +-grub_menu_init_page (int nested, int edit, int *num_entries, ++grub_menu_init_page (int nested, int edit, ++ struct grub_term_screen_geometry *geo, + struct grub_term_output *term) + { + grub_uint8_t old_color_normal, old_color_highlight; ++ int msg_num_lines; ++ int bottom_message = 1; ++ int empty_lines = 1; ++ int version_msg = 1; ++ ++ geo->border = 1; ++ geo->first_entry_x = 1 /* margin */ + 1 /* border */; ++ geo->entry_width = grub_term_width (term) - 5; ++ ++ geo->first_entry_y = 2 /* two empty lines*/ ++ + 1 /* GNU GRUB version text */ + 1 /* top border */; ++ ++ geo->timeout_lines = 2; + + /* 3 lines for timeout message and bottom margin. 2 lines for the border. */ +- *num_entries = grub_term_height (term) - GRUB_TERM_TOP_BORDER_Y +- - (print_message (nested, edit, term, 1) + 3) - 2; ++ geo->num_entries = grub_term_height (term) - geo->first_entry_y ++ - 1 /* bottom border */ ++ - 1 /* empty line before info message*/ ++ - geo->timeout_lines /* timeout */ ++ - 1 /* empty final line */; ++ msg_num_lines = print_message (nested, edit, term, 1); ++ if (geo->num_entries - msg_num_lines < 3 ++ || geo->entry_width < 10) ++ { ++ geo->num_entries += 4; ++ geo->first_entry_y -= 2; ++ empty_lines = 0; ++ geo->first_entry_x -= 1; ++ geo->entry_width += 1; ++ } ++ if (geo->num_entries - msg_num_lines < 3 ++ || geo->entry_width < 10) ++ { ++ geo->num_entries += 2; ++ geo->first_entry_y -= 1; ++ geo->first_entry_x -= 1; ++ geo->entry_width += 2; ++ geo->border = 0; ++ } ++ ++ if (geo->num_entries - msg_num_lines < 3 ++ && geo->timeout_lines == 2) ++ { ++ geo->timeout_lines = 1; ++ geo->num_entries++; ++ } ++ ++ if (geo->num_entries - msg_num_lines < 3) ++ { ++ geo->num_entries += 1; ++ geo->first_entry_y -= 1; ++ version_msg = 0; ++ } ++ ++ if (geo->num_entries - msg_num_lines >= 2) ++ geo->num_entries -= msg_num_lines; ++ else ++ bottom_message = 0; + + /* By default, use the same colors for the menu. */ + old_color_normal = grub_term_normal_color; +@@ -369,13 +389,30 @@ grub_menu_init_page (int nested, int edit, int *num_entries, + grub_parse_color_name_pair (&grub_color_menu_highlight, + grub_env_get ("menu_color_highlight")); + +- grub_normal_init_page (term); ++ if (version_msg) ++ grub_normal_init_page (term, empty_lines); ++ else ++ grub_term_cls (term); ++ + grub_term_normal_color = grub_color_menu_normal; + grub_term_highlight_color = grub_color_menu_highlight; +- draw_border (term, *num_entries); ++ if (geo->border) ++ draw_border (term, geo); + grub_term_normal_color = old_color_normal; + grub_term_highlight_color = old_color_highlight; +- print_message (nested, edit, term, 0); ++ geo->timeout_y = geo->first_entry_y + geo->num_entries ++ + geo->border + empty_lines; ++ if (bottom_message) ++ { ++ grub_term_gotoxy (term, GRUB_TERM_MARGIN, ++ geo->timeout_y); ++ ++ print_message (nested, edit, term, 0); ++ geo->timeout_y += msg_num_lines; ++ } ++ geo->right_margin = grub_term_width (term) ++ - geo->first_entry_x ++ - geo->entry_width - 1; + } + + static void +@@ -383,13 +420,17 @@ menu_text_print_timeout (int timeout, void *dataptr) + { + const char *msg = + _("The highlighted entry will be executed automatically in %ds."); ++ const char *msg_terse = _("%ds"); + struct menu_viewer_data *data = dataptr; +- char *msg_translated; +- int posx; ++ char *msg_translated = 0; + +- grub_term_gotoxy (data->term, 0, grub_term_height (data->term) - 3); ++ grub_term_gotoxy (data->term, 0, data->geo.timeout_y); + +- msg_translated = grub_xasprintf (msg, timeout); ++ if (data->timeout_msg == TIMEOUT_TERSE ++ || data->timeout_msg == TIMEOUT_TERSE_NO_MARGIN) ++ msg_translated = grub_xasprintf (msg_terse, timeout); ++ else ++ msg_translated = grub_xasprintf (msg, timeout); + if (!msg_translated) + { + grub_print_error (); +@@ -397,15 +438,29 @@ menu_text_print_timeout (int timeout, void *dataptr) + return; + } + +- grub_print_message_indented (msg_translated, 3, 0, data->term); ++ if (data->timeout_msg == TIMEOUT_UNKNOWN) ++ { ++ data->timeout_msg = grub_print_message_indented_real (msg_translated, ++ 3, 1, data->term, 1) ++ <= data->geo.timeout_lines ? TIMEOUT_NORMAL : TIMEOUT_TERSE; ++ if (data->timeout_msg == TIMEOUT_TERSE) ++ { ++ grub_free (msg_translated); ++ msg_translated = grub_xasprintf (msg_terse, timeout); ++ if (grub_term_width (data->term) < 10) ++ data->timeout_msg = TIMEOUT_TERSE_NO_MARGIN; ++ } ++ } ++ ++ grub_print_message_indented (msg_translated, ++ data->timeout_msg == TIMEOUT_TERSE_NO_MARGIN ? 0 : 3, ++ data->timeout_msg == TIMEOUT_TERSE_NO_MARGIN ? 0 : 1, ++ data->term); + grub_free (msg_translated); +- +- posx = grub_term_getxy (data->term) >> 8; +- grub_print_spaces (data->term, grub_term_width (data->term) - posx - 1); + + grub_term_gotoxy (data->term, +- grub_term_cursor_x (data->term), +- GRUB_TERM_FIRST_ENTRY_Y + data->offset); ++ grub_term_cursor_x (&data->geo), ++ data->geo.first_entry_y + data->offset); + grub_term_refresh (data->term); + } + +@@ -417,10 +472,10 @@ menu_text_set_chosen_entry (int entry, void *dataptr) + int complete_redraw = 0; + + data->offset = entry - data->first; +- if (data->offset > data->num_entries - 1) ++ if (data->offset > data->geo.num_entries - 1) + { +- data->first = entry - (data->num_entries - 1); +- data->offset = data->num_entries - 1; ++ data->first = entry - (data->geo.num_entries - 1); ++ data->offset = data->geo.num_entries - 1; + complete_redraw = 1; + } + if (data->offset < 0) +@@ -433,12 +488,12 @@ menu_text_set_chosen_entry (int entry, void *dataptr) + print_entries (data->menu, data); + else + { +- print_entry (GRUB_TERM_FIRST_ENTRY_Y + oldoffset, 0, ++ print_entry (data->geo.first_entry_y + oldoffset, 0, + grub_menu_get_entry (data->menu, data->first + oldoffset), +- data->term); +- print_entry (GRUB_TERM_FIRST_ENTRY_Y + data->offset, 1, ++ data); ++ print_entry (data->geo.first_entry_y + data->offset, 1, + grub_menu_get_entry (data->menu, data->first + data->offset), +- data->term); ++ data); + } + grub_term_refresh (data->term); + } +@@ -457,13 +512,26 @@ static void + menu_text_clear_timeout (void *dataptr) + { + struct menu_viewer_data *data = dataptr; ++ int i; + +- grub_term_gotoxy (data->term, 0, grub_term_height (data->term) - 3); +- grub_print_spaces (data->term, grub_term_width (data->term) - 1); +- grub_term_gotoxy (data->term, 0, grub_term_height (data->term) - 2); +- grub_print_spaces (data->term, grub_term_width (data->term) - 1); +- grub_term_gotoxy (data->term, grub_term_cursor_x (data->term), +- GRUB_TERM_FIRST_ENTRY_Y + data->offset); ++ for (i = 0; i < data->geo.timeout_lines;i++) ++ { ++ grub_term_gotoxy (data->term, 0, data->geo.timeout_y + i); ++ grub_print_spaces (data->term, grub_term_width (data->term) - 1); ++ } ++ if (data->geo.num_entries <= 5 && !data->geo.border) ++ { ++ grub_term_gotoxy (data->term, data->geo.first_entry_x + data->geo.entry_width ++ + data->geo.border + 1, ++ data->geo.first_entry_y + data->geo.num_entries - 1); ++ grub_putcode (' ', data->term); ++ ++ data->geo.timeout_lines = 0; ++ data->geo.num_entries++; ++ print_entries (data->menu, data); ++ } ++ grub_term_gotoxy (data->term, grub_term_cursor_x (&data->geo), ++ data->geo.first_entry_y + data->offset); + grub_term_refresh (data->term); + } + +@@ -498,12 +566,12 @@ grub_menu_try_text (struct grub_term_output *term, + data->first = 0; + + grub_term_setcursor (data->term, 0); +- grub_menu_init_page (nested, 0, &data->num_entries, data->term); ++ grub_menu_init_page (nested, 0, &data->geo, data->term); + +- if (data->offset > data->num_entries - 1) ++ if (data->offset > data->geo.num_entries - 1) + { +- data->first = data->offset - (data->num_entries - 1); +- data->offset = data->num_entries - 1; ++ data->first = data->offset - (data->geo.num_entries - 1); ++ data->offset = data->geo.num_entries - 1; + } + + print_entries (menu, data); +diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c +index 83b3bce..aba1a73 100644 +--- a/grub-core/normal/term.c ++++ b/grub-core/normal/term.c +@@ -50,7 +50,8 @@ print_ucs4_real (const grub_uint32_t * str, + struct grub_term_output *term, int backlog, + int dry_run, int fixed_tab, unsigned skip_lines, + unsigned max_lines, +- grub_uint32_t contchar, struct grub_term_pos *pos); ++ grub_uint32_t contchar, int fill_right, ++ struct grub_term_pos *pos); + + static struct term_state *term_states = NULL; + +@@ -132,6 +133,7 @@ grub_set_more (int onoff) + + enum + { ++ GRUB_CP437_UPDOWNARROW = 0x12, + GRUB_CP437_UPARROW = 0x18, + GRUB_CP437_DOWNARROW = 0x19, + GRUB_CP437_RIGHTARROW = 0x1a, +@@ -159,6 +161,8 @@ map_code (grub_uint32_t in, struct grub_term_output *term) + return GRUB_CP437_LEFTARROW; + case GRUB_UNICODE_UPARROW: + return GRUB_CP437_UPARROW; ++ case GRUB_UNICODE_UPDOWNARROW: ++ return GRUB_CP437_UPDOWNARROW; + case GRUB_UNICODE_RIGHTARROW: + return GRUB_CP437_RIGHTARROW; + case GRUB_UNICODE_DOWNARROW: +@@ -249,7 +253,7 @@ grub_puts_terminal (const char *str, struct grub_term_output *term) + } + + print_ucs4_real (unicode_str, unicode_last_position, 0, 0, term, +- 0, 0, 0, 0, -1, 0, 0); ++ 0, 0, 0, 0, -1, 0, 0, 0); + grub_free (unicode_str); + } + +@@ -562,7 +566,7 @@ print_ucs4_terminal (const grub_uint32_t * str, + int dry_run, int fixed_tab, unsigned skip_lines, + unsigned max_lines, + grub_uint32_t contchar, +- int primitive_wrap, struct grub_term_pos *pos) ++ int primitive_wrap, int fill_right, struct grub_term_pos *pos) + { + const grub_uint32_t *ptr; + grub_ssize_t startwidth = dry_run ? 0 : get_startwidth (term, margin_left); +@@ -587,6 +591,7 @@ print_ucs4_terminal (const grub_uint32_t * str, + for (ptr = str; ptr < last_position; ptr++) + { + grub_ssize_t last_width = 0; ++ + switch (*ptr) + { + case GRUB_UNICODE_LRE: +@@ -667,10 +672,11 @@ print_ucs4_terminal (const grub_uint32_t * str, + + if (!wasn && contchar) + putcode_real (contchar, term, fixed_tab); +- if (contchar) ++ if (fill_right) + fill_margin (term, margin_right); + +- grub_putcode ('\n', term); ++ if (!contchar || max_lines != 1) ++ grub_putcode ('\n', term); + if (state != &local_state && ++state->num_lines + >= (grub_ssize_t) grub_term_height (term) - 2) + { +@@ -724,11 +730,10 @@ print_ucs4_terminal (const grub_uint32_t * str, + } + + if (line_start < last_position) +- lines++; ++ lines++; + if (!dry_run && !skip_lines && max_lines) + { + const grub_uint32_t *ptr2; +- int sp; + + for (ptr2 = line_start; ptr2 < last_position; ptr2++) + { +@@ -741,12 +746,8 @@ print_ucs4_terminal (const grub_uint32_t * str, + putcode_real (*ptr2, term, fixed_tab); + } + +- if (contchar) +- { +- sp = max_width - pos[last_position - str].x + 1; +- if (sp > 0) +- grub_print_spaces (term, sp); +- } ++ if (fill_right) ++ fill_margin (term, margin_right); + } + return dry_run ? lines : 0; + } +@@ -779,13 +780,14 @@ put_glyphs_terminal (struct grub_unicode_glyph *visual, + int margin_left, int margin_right, + struct grub_term_output *term, + struct term_state *state, int fixed_tab, +- grub_uint32_t contchar) ++ grub_uint32_t contchar, ++ int fill_right) + { + struct grub_unicode_glyph *visual_ptr; + int since_last_nl = 1; + for (visual_ptr = visual; visual_ptr < visual + visual_len; visual_ptr++) + { +- if (visual_ptr->base == '\n' && contchar) ++ if (visual_ptr->base == '\n' && fill_right) + fill_margin (term, margin_right); + + putglyph (visual_ptr, term, fixed_tab); +@@ -810,7 +812,7 @@ put_glyphs_terminal (struct grub_unicode_glyph *visual, + } + grub_unicode_destroy_glyph (visual_ptr); + } +- if (contchar && since_last_nl) ++ if (fill_right && since_last_nl) + fill_margin (term, margin_right); + + return 0; +@@ -832,7 +834,7 @@ print_backlog (struct grub_term_output *term, + state->backlog_ucs4 + state->backlog_len, + margin_left, margin_right, term, state, 0, + state->backlog_fixed_tab, 0, -1, 0, 0, +- 0); ++ 0, 0); + if (!ret) + { + grub_free (state->free); +@@ -849,7 +851,7 @@ print_backlog (struct grub_term_output *term, + ret = put_glyphs_terminal (state->backlog_glyphs, + state->backlog_len, + margin_left, margin_right, term, state, +- state->backlog_fixed_tab, 0); ++ state->backlog_fixed_tab, 0, 0); + if (!ret) + { + grub_free (state->free); +@@ -876,7 +878,8 @@ print_ucs4_real (const grub_uint32_t * str, + struct grub_term_output *term, int backlog, + int dry_run, int fixed_tab, unsigned skip_lines, + unsigned max_lines, +- grub_uint32_t contchar, struct grub_term_pos *pos) ++ grub_uint32_t contchar, int fill_right, ++ struct grub_term_pos *pos) + { + struct term_state *state = NULL; + +@@ -955,7 +958,7 @@ print_ucs4_real (const grub_uint32_t * str, + { + ret = put_glyphs_terminal (visual_show, visual_len_show, margin_left, + margin_right, +- term, state, fixed_tab, contchar); ++ term, state, fixed_tab, contchar, fill_right); + + if (!ret) + grub_free (visual); +@@ -966,7 +969,7 @@ print_ucs4_real (const grub_uint32_t * str, + } + return print_ucs4_terminal (str, last_position, margin_left, margin_right, + term, state, dry_run, fixed_tab, skip_lines, +- max_lines, contchar, !!contchar, pos); ++ max_lines, contchar, !!contchar, fill_right, pos); + } + + void +@@ -980,7 +983,7 @@ grub_print_ucs4_menu (const grub_uint32_t * str, + { + print_ucs4_real (str, last_position, margin_left, margin_right, + term, 0, 0, 1, skip_lines, max_lines, +- contchar, pos); ++ contchar, 1, pos); + } + + void +@@ -990,7 +993,7 @@ grub_print_ucs4 (const grub_uint32_t * str, + struct grub_term_output *term) + { + print_ucs4_real (str, last_position, margin_left, margin_right, +- term, 0, 0, 1, 0, -1, 0, 0); ++ term, 0, 0, 1, 0, -1, 0, 0, 0); + } + + int +@@ -1000,7 +1003,7 @@ grub_ucs4_count_lines (const grub_uint32_t * str, + struct grub_term_output *term) + { + return print_ucs4_real (str, last_position, margin_left, margin_right, +- term, 0, 1, 1, 0, -1, 0, 0); ++ term, 0, 1, 1, 0, -1, 0, 0, 0); + } + + void +@@ -1054,7 +1057,7 @@ grub_xnputs (const char *str, grub_size_t msg_len) + { + int cur; + cur = print_ucs4_real (unicode_str, unicode_last_position, 0, 0, +- term, grub_more, 0, 0, 0, -1, 0, 0); ++ term, grub_more, 0, 0, 0, -1, 0, 0, 0); + if (cur) + backlog = 1; + } +diff --git a/grub-core/tests/checksums.h b/grub-core/tests/checksums.h +index aa4ae99..b3c9003 100644 +--- a/grub-core/tests/checksums.h ++++ b/grub-core/tests/checksums.h +@@ -1,393 +1,393 @@ +- { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa14ad466, 0x69520db1, 0xa14ad466, 0xe82e990f, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xe82e990f, 0xe82e990f, 0x59c36f00, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa3faf149, 0xb4654ad0, 0xa3faf149, 0xff6942c6, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0xff6942c6, 0xff6942c6, 0xaa4593fe, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5e4100a, 0x39522e26, 0xd5e4100a, 0x2e0276, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x2e0276, 0x2e0276, 0xc9cbf769, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4df27666, 0xb8015ce1, 0x4df27666, 0x8bef2cac, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0x8bef2cac, 0x8bef2cac, 0x9813a416, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6d1d5058, 0xb2d8ed2c, 0x6d1d5058, 0xe8936168, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0xe8936168, 0xe8936168, 0x5fcf013d, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xeec86af1, 0x13493ea, 0xeec86af1, 0xee83739a, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0xee83739a, 0xee83739a, 0xdd28f52b, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xa14ad466, 0x69520db1, 0xa14ad466, 0xe82e990f, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xe82e990f, 0xe82e990f, 0x59c36f00, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xa3faf149, 0xb4654ad0, 0xa3faf149, 0xff6942c6, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0xff6942c6, 0xff6942c6, 0xaa4593fe, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5e4100a, 0x39522e26, 0xd5e4100a, 0x2e0276, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x2e0276, 0x2e0276, 0xc9cbf769, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9093f849, 0xc02929e3, 0x9093f849, 0xe2f077d4, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0xe2f077d4, 0xe2f077d4, 0x5387d57f, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbbe054f6, 0xbef13bfe, 0xbbe054f6, 0xa23fcfe0, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0xa23fcfe0, 0xa23fcfe0, 0xf83ee7aa, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x8cea8db2, 0x9688dd3b, 0x8cea8db2, 0x6fe82515, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x6fe82515, 0x6fe82515, 0x724366e5, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25e346a1, 0xbd5eb38b, 0x25e346a1, 0x9d469431, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0x9d469431, 0x9d469431, 0x5387d57f, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x6f33e7a0, 0x5716dafe, 0x6f33e7a0, 0xbfa18d18, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0xbfa18d18, 0xbfa18d18, 0xf83ee7aa, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xffb24323, 0x6e8fa0be, 0xffb24323, 0xad5c8fa5, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0xad5c8fa5, 0xad5c8fa5, 0x724366e5, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x5a925b39, 0x36226b, 0x5a925b39, 0xafa322b7, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0xafa322b7, 0xafa322b7, 0x1c955882, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfb4aecf8, 0x17b91739, 0xfb4aecf8, 0xf7e3d211, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0xf7e3d211, 0xf7e3d211, 0x4d266f7a, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x4015c90f, 0x430ae98c, 0x4015c90f, 0xeb61f90d, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0xeb61f90d, 0xeb61f90d, 0x1ed9d731, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9093f849, 0xc02929e3, 0x9093f849, 0xe2f077d4, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0xe2f077d4, 0xe2f077d4, 0x5387d57f, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbbe054f6, 0xbef13bfe, 0xbbe054f6, 0xa23fcfe0, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0xa23fcfe0, 0xa23fcfe0, 0xf83ee7aa, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x8cea8db2, 0x9688dd3b, 0x8cea8db2, 0x6fe82515, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x6fe82515, 0x6fe82515, 0x724366e5, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25e346a1, 0xbd5eb38b, 0x25e346a1, 0x9d469431, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0x9d469431, 0x9d469431, 0x5387d57f, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x6f33e7a0, 0x5716dafe, 0x6f33e7a0, 0xbfa18d18, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0xbfa18d18, 0xbfa18d18, 0xf83ee7aa, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xffb24323, 0x6e8fa0be, 0xffb24323, 0xad5c8fa5, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0xad5c8fa5, 0xad5c8fa5, 0x724366e5, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x5a925b39, 0x36226b, 0x5a925b39, 0xafa322b7, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0xafa322b7, 0xafa322b7, 0x1c955882, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfb4aecf8, 0x17b91739, 0xfb4aecf8, 0xf7e3d211, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0xf7e3d211, 0xf7e3d211, 0x4d266f7a, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x4015c90f, 0x430ae98c, 0x4015c90f, 0xeb61f90d, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0xeb61f90d, 0xeb61f90d, 0x1ed9d731, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x4df27666, 0xb8015ce1, 0x4df27666, 0x8bef2cac, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0x8bef2cac, 0x8bef2cac, 0x9813a416, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6d1d5058, 0xb2d8ed2c, 0x6d1d5058, 0xe8936168, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0xe8936168, 0xe8936168, 0x5fcf013d, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xeec86af1, 0x13493ea, 0xeec86af1, 0xee83739a, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0xee83739a, 0xee83739a, 0xdd28f52b, }, 20 }, +- { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7a3f695f, 0xac449d41, 0x7a3f695f, 0x28a073b1, 0xf22da29a, 0x169cd2a2, 0x169cd2a2, 0x169cd2a2, 0xc3a67fb9, 0xc3a67fb9, 0xc3a67fb9, 0x6c67e914, 0x6c67e914, 0x6c67e914, 0x59c36f00, 0x28a073b1, 0x28a073b1, }, 18 }, +- { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2ee70aea, 0x8f5328d2, 0x2ee70aea, 0x19fb9508, 0x2c3dfa69, 0x1f8453a4, 0x1f8453a4, 0x1f8453a4, 0xc9055b79, 0xc9055b79, 0xc9055b79, 0xef40ac6a, 0xef40ac6a, 0xef40ac6a, 0xaa4593fe, 0x19fb9508, 0x19fb9508, }, 18 }, +- { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xef842e14, 0x9b7cdc00, 0xef842e14, 0x750c3145, 0xb069b9a2, 0x3f87d41f, 0x3f87d41f, 0x3f87d41f, 0x8a031b3a, 0x8a031b3a, 0x8a031b3a, 0x4ed887f7, 0x4ed887f7, 0x4ed887f7, 0xc9cbf769, 0x750c3145, 0x750c3145, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xf162dfa3, 0xe0f86fe6, 0xf162dfa3, 0x51f56384, 0xa9aef7c0, 0x7e4eeeb7, 0x7e4eeeb7, 0x7e4eeeb7, 0x902dc363, 0x902dc363, 0x902dc363, 0xd478551d, 0xd478551d, 0xd478551d, 0x1c3742c9, 0x51f56384, 0x51f56384, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x644b801, 0x8a201b04, 0x644b801, 0xa4508ec0, 0xcb189b31, 0x8279446f, 0x8279446f, 0x8279446f, 0x80b67d02, 0x80b67d02, 0x80b67d02, 0xa1cc8118, 0xa1cc8118, 0xa1cc8118, 0xcc5a7bed, 0xa4508ec0, 0xa4508ec0, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x1e1a41fe, 0x237e53c4, 0x1e1a41fe, 0xd5890062, 0x7180f3ea, 0x6be1ad05, 0x6be1ad05, 0x6be1ad05, 0x680e4253, 0x680e4253, 0x680e4253, 0xed2cabb8, 0xed2cabb8, 0xed2cabb8, 0xef4a3312, 0xd5890062, 0xd5890062, }, 18 }, +- { "gfxmenu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xcfa0e627, 0x8b7088da, 0xcfa0e627, 0xcd807142, 0xdc37dab7, 0x3886aa8f, 0x3886aa8f, 0x3886aa8f, 0xedbc0794, 0xedbc0794, 0xedbc0794, 0x427d9139, 0x427d9139, 0x427d9139, 0x59c36f00, 0xcd807142, 0xcd807142, }, 18 }, +- { "gfxmenu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x64807934, 0x85d684c9, 0x64807934, 0x61726a79, 0x71c38b, 0x33c86a46, 0x33c86a46, 0x33c86a46, 0xe549629b, 0xe549629b, 0xe549629b, 0xc30c9588, 0xc30c9588, 0xc30c9588, 0xaa4593fe, 0x61726a79, 0x61726a79, }, 18 }, +- { "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x9792b643, 0x1d769dd8, 0x9792b643, 0x3d74bd2f, 0x4411e313, 0xcbff8eae, 0xcbff8eae, 0xcbff8eae, 0x7e7b418b, 0x7e7b418b, 0x7e7b418b, 0xbaa0dd46, 0xbaa0dd46, 0xbaa0dd46, 0xc9cbf769, 0x3d74bd2f, 0x3d74bd2f, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbdb8f583, 0x1e27b76, 0xbdb8f583, 0x91be6e17, 0xf93a81be, 0x8632932e, 0x8632932e, 0x8632932e, 0xa297894, 0xa297894, 0xa297894, 0x66f16747, 0x66f16747, 0x66f16747, 0x5387d57f, 0x91be6e17, 0x91be6e17, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbe72e1cb, 0x4943add3, 0xbe72e1cb, 0xa207f983, 0x58397d1d, 0x809530c5, 0x809530c5, 0x809530c5, 0x8b80ad8a, 0x8b80ad8a, 0x8b80ad8a, 0x425ad0af, 0x425ad0af, 0x425ad0af, 0xf83ee7aa, 0xa207f983, 0xa207f983, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xbc064047, 0x9e12d9ac, 0xbc064047, 0xf9bdce43, 0x7184c3f8, 0xc8fd1102, 0xc8fd1102, 0xc8fd1102, 0x81f910a3, 0x81f910a3, 0x81f910a3, 0xdb64e608, 0xdb64e608, 0xdb64e608, 0x724366e5, 0xf9bdce43, 0xf9bdce43, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x6181ad43, 0xe570d91, 0x6181ad43, 0x567fb1cc, 0xa8a3da, 0x5f74d9d, 0x5f74d9d, 0x5f74d9d, 0xed4861bc, 0xed4861bc, 0xed4861bc, 0xcd9c9ca8, 0xcd9c9ca8, 0xcd9c9ca8, 0x5387d57f, 0x567fb1cc, 0x567fb1cc, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1e5b6982, 0x789f961c, 0x1e5b6982, 0xc1ad694a, 0xbc4e843c, 0x27165c47, 0x27165c47, 0x27165c47, 0x5312181a, 0x5312181a, 0x5312181a, 0x9a1929fd, 0x9a1929fd, 0x9a1929fd, 0xf83ee7aa, 0xc1ad694a, 0xc1ad694a, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x73f85cef, 0x9469d68d, 0x73f85cef, 0x24779078, 0x6f964a90, 0x205a3335, 0x205a3335, 0x205a3335, 0x5d68cafd, 0x5d68cafd, 0x5d68cafd, 0x4129165e, 0x4129165e, 0x4129165e, 0x724366e5, 0x24779078, 0x24779078, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xa6ddcb95, 0xa3934314, 0xa6ddcb95, 0x16ab9b6c, 0x1755c99c, 0x1432b906, 0x1432b906, 0x1432b906, 0xb2aaa903, 0xb2aaa903, 0xb2aaa903, 0x3014dff7, 0x3014dff7, 0x3014dff7, 0x1c955882, 0x16ab9b6c, 0x16ab9b6c, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x18e25ecc, 0xe52f7def, 0x18e25ecc, 0x5bd10081, 0xf52b17e7, 0x781d42cf, 0x781d42cf, 0x781d42cf, 0x43cb6f95, 0x43cb6f95, 0x43cb6f95, 0xe7bb907d, 0xe7bb907d, 0xe7bb907d, 0x4d266f7a, 0x5bd10081, 0x5bd10081, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xa845bba2, 0xb67fe791, 0xa845bba2, 0x80452493, 0x437302fa, 0xbd263b46, 0xbd263b46, 0xbd263b46, 0xdd07a911, 0xdd07a911, 0xdd07a911, 0x75ab7095, 0x75ab7095, 0x75ab7095, 0x1ed9d731, 0x80452493, 0x80452493, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xa35a45c5, 0xacbc8410, 0xa35a45c5, 0xed2e11bd, 0x79f9376f, 0x6f125ff, 0x6f125ff, 0x6f125ff, 0x8aeace45, 0x8aeace45, 0x8aeace45, 0xe632d196, 0xe632d196, 0xe632d196, 0x5387d57f, 0xed2e11bd, 0xed2e11bd, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8a6fa170, 0x7605140e, 0x8a6fa170, 0xc030feb1, 0xa84da503, 0x70e1e8db, 0x70e1e8db, 0x70e1e8db, 0x7bf47594, 0x7bf47594, 0x7bf47594, 0xb22e08b1, 0xb22e08b1, 0xb22e08b1, 0xf83ee7aa, 0xc030feb1, 0xc030feb1, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x49ddd3e4, 0xbfaeedf9, 0x49ddd3e4, 0xcde1d4b5, 0xf7229851, 0x4e5b4aab, 0x4e5b4aab, 0x4e5b4aab, 0x75f4b0a, 0x75f4b0a, 0x75f4b0a, 0x5dc2bda1, 0x5dc2bda1, 0x5dc2bda1, 0x724366e5, 0xcde1d4b5, 0xcde1d4b5, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x98a8e7a8, 0xd9cab55f, 0x98a8e7a8, 0xf2b7dd05, 0xa199f4d7, 0xa4c61a90, 0xa4c61a90, 0xa4c61a90, 0x4c7936b1, 0x4c7936b1, 0x4c7936b1, 0x6cadcba5, 0x6cadcba5, 0x6cadcba5, 0x5387d57f, 0xf2b7dd05, 0xf2b7dd05, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa000334f, 0xa1b11a86, 0xa000334f, 0x8ac1b99f, 0xeaf098c4, 0x71a840bf, 0x71a840bf, 0x71a840bf, 0x5ac04e2, 0x5ac04e2, 0x5ac04e2, 0xcca73505, 0xcca73505, 0xcca73505, 0xf83ee7aa, 0x8ac1b99f, 0x8ac1b99f, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xc662fb1, 0x673baf90, 0xc662fb1, 0xfb88406, 0x8df6104e, 0xc23a69eb, 0xc23a69eb, 0xc23a69eb, 0xbf089023, 0xbf089023, 0xbf089023, 0xa3494c80, 0xa3494c80, 0xa3494c80, 0x724366e5, 0xfb88406, 0xfb88406, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x33d4530e, 0x11ff262b, 0x33d4530e, 0xbb511beb, 0xb3f7ca7e, 0xb090bae4, 0xb090bae4, 0xb090bae4, 0x1608aae1, 0x1608aae1, 0x1608aae1, 0x94b6dc15, 0x94b6dc15, 0x94b6dc15, 0x1c955882, 0xbb511beb, 0xbb511beb, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8b2e9364, 0x1d99d298, 0x8b2e9364, 0x958d5e8d, 0xfdfd7cdc, 0x70cb29f4, 0x70cb29f4, 0x70cb29f4, 0x4b1d04ae, 0x4b1d04ae, 0x4b1d04ae, 0xef6dfb46, 0xef6dfb46, 0xef6dfb46, 0x4d266f7a, 0x958d5e8d, 0x958d5e8d, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x6e78baae, 0xaedcda00, 0x6e78baae, 0x9399bef9, 0xa685f2c7, 0x58d0cb7b, 0x58d0cb7b, 0x58d0cb7b, 0x38f1592c, 0x38f1592c, 0x38f1592c, 0x905d80a8, 0x905d80a8, 0x905d80a8, 0x1ed9d731, 0x9399bef9, 0x9399bef9, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x42860f9a, 0x57da9ef, 0x42860f9a, 0x221db42c, 0xdb3adfbf, 0xcdac6c8, 0xcdac6c8, 0xcdac6c8, 0xe2b9eb1c, 0xe2b9eb1c, 0xe2b9eb1c, 0xa6ec7d62, 0xa6ec7d62, 0xa6ec7d62, 0x1c3742c9, 0x221db42c, 0x221db42c, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x2ade7eff, 0xc91e0e0c, 0x2ade7eff, 0x8ad4bad6, 0x7f2729d6, 0x3646f688, 0x3646f688, 0x3646f688, 0x3489cfe5, 0x3489cfe5, 0x3489cfe5, 0x15f333ff, 0x15f333ff, 0x15f333ff, 0xcc5a7bed, 0x8ad4bad6, 0x8ad4bad6, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xef4a3312, 0x4c493c2d, 0x487c542b, 0x4c493c2d, 0xfec68cd6, 0x76f27cf8, 0x6c932217, 0x6c932217, 0x6c932217, 0x6f7ccd41, 0x6f7ccd41, 0x6f7ccd41, 0xea5e24aa, 0xea5e24aa, 0xea5e24aa, 0xef4a3312, 0xfec68cd6, 0xfec68cd6, }, 18 }, +- { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xb0361371, 0x1b06d274, 0xb0361371, 0xf9525e18, 0x59c36f00, 0x59c36f00, 0xbb825618, 0xbb825618, 0xbb825618, 0xe79056fa, 0xe79056fa, 0xe79056fa, 0xa2dc6264, 0xa2dc6264, 0xa2dc6264, 0x59c36f00, 0xf9525e18, 0xf9525e18, 0x59c36f00, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5e07c64, 0xd973835d, 0xcb531eb6, 0x97c0ad39, 0xaa4593fe, 0xaa4593fe, 0x470bd063, 0x470bd063, 0x470bd063, 0x9d8c7f58, 0x9d8c7f58, 0x9d8c7f58, 0xa1806f11, 0xa1806f11, 0xa1806f11, 0xaa4593fe, 0x8973cfeb, 0x97c0ad39, 0xaa4593fe, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf652cbe1, 0xd6584e36, 0x993a7b88, 0x4cf069f4, 0xc9cbf769, 0xc9cbf769, 0x40f84477, 0x40f84477, 0x40f84477, 0x74116359, 0x74116359, 0x74116359, 0x56750bd2, 0x56750bd2, 0x56750bd2, 0xc9cbf769, 0x2398d99d, 0x4cf069f4, 0xc9cbf769, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x87ba7c21, 0x62eab185, 0x87ba7c21, 0x41a726eb, 0x9813a416, 0x9813a416, 0xcbe87745, 0xcbe87745, 0xcbe87745, 0xc01d73ea, 0xc01d73ea, 0xc01d73ea, 0xd41fb173, 0xd41fb173, 0xd41fb173, 0x9813a416, 0x41a726eb, 0x41a726eb, 0x9813a416, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x7cf854b5, 0x4d5395da, 0xbe7776c4, 0x3bf947f4, 0x5fcf013d, 0x5fcf013d, 0x5c1d4263, 0x5c1d4263, 0x5c1d4263, 0xad5e477e, 0xad5e477e, 0xad5e477e, 0xeaa144f9, 0xeaa144f9, 0xeaa144f9, 0x5fcf013d, 0xf9766585, 0x3bf947f4, 0x5fcf013d, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x9ab1c3a0, 0x3c2d2348, 0x4d30c6c3, 0x4d7bdfa8, 0xdd28f52b, 0xdd28f52b, 0x57f4ff36, 0x57f4ff36, 0x57f4ff36, 0x2ae2b8f2, 0x2ae2b8f2, 0x2ae2b8f2, 0x49d066d8, 0x49d066d8, 0x49d066d8, 0xdd28f52b, 0x9afadacb, 0x4d7bdfa8, 0xdd28f52b, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xb0361371, 0x1b06d274, 0xb0361371, 0xf9525e18, 0x59c36f00, 0x59c36f00, 0xbb825618, 0xbb825618, 0xbb825618, 0xe79056fa, 0xe79056fa, 0xe79056fa, 0xa2dc6264, 0xa2dc6264, 0xa2dc6264, 0x59c36f00, 0xf9525e18, 0xf9525e18, 0x59c36f00, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5e07c64, 0xd973835d, 0xcb531eb6, 0x97c0ad39, 0xaa4593fe, 0xaa4593fe, 0x470bd063, 0x470bd063, 0x470bd063, 0x9d8c7f58, 0x9d8c7f58, 0x9d8c7f58, 0xa1806f11, 0xa1806f11, 0xa1806f11, 0xaa4593fe, 0x8973cfeb, 0x97c0ad39, 0xaa4593fe, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xf652cbe1, 0xd6584e36, 0x993a7b88, 0x4cf069f4, 0xc9cbf769, 0xc9cbf769, 0x40f84477, 0x40f84477, 0x40f84477, 0x74116359, 0x74116359, 0x74116359, 0x56750bd2, 0x56750bd2, 0x56750bd2, 0xc9cbf769, 0x2398d99d, 0x4cf069f4, 0xc9cbf769, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x7b209cbf, 0x2f8bc59a, 0x7b209cbf, 0x9431322, 0x5387d57f, 0x5387d57f, 0x68f2d5ef, 0x68f2d5ef, 0x68f2d5ef, 0x4b9313e5, 0x4b9313e5, 0x4b9313e5, 0xe3c85628, 0xe3c85628, 0xe3c85628, 0x5387d57f, 0x9431322, 0x9431322, 0x5387d57f, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xe0d6abdc, 0x1fb5ebb5, 0xf2d32271, 0xeb0cb967, 0xf83ee7aa, 0xf83ee7aa, 0x5e332832, 0x5e332832, 0x5e332832, 0x9a04a3d3, 0x9a04a3d3, 0x9a04a3d3, 0x551af0c1, 0x551af0c1, 0x551af0c1, 0xf83ee7aa, 0xf90930ca, 0xeb0cb967, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xeeeb078a, 0xa8401f78, 0xc4e7df4d, 0x27e577ea, 0x724366e5, 0x724366e5, 0x3c69c88a, 0x3c69c88a, 0x3c69c88a, 0xdf9900ec, 0xdf9900ec, 0xdf9900ec, 0x61db9594, 0x61db9594, 0x61db9594, 0x724366e5, 0xde9af2d, 0x27e577ea, 0x724366e5, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x68a06b59, 0x5f199a13, 0x68a06b59, 0xd005b9c9, 0x5387d57f, 0x5387d57f, 0x8910bf0d, 0x8910bf0d, 0x8910bf0d, 0x77c5e004, 0x77c5e004, 0x77c5e004, 0x7f3d7937, 0x7f3d7937, 0x7f3d7937, 0x5387d57f, 0xd005b9c9, 0xd005b9c9, 0x5387d57f, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x9683ff51, 0xfcc9713a, 0x7efd6d3a, 0xae6f0782, 0xf83ee7aa, 0xf83ee7aa, 0x60155cd0, 0x60155cd0, 0x60155cd0, 0x2e43055d, 0x2e43055d, 0x2e43055d, 0xc49f7e94, 0xc49f7e94, 0xc49f7e94, 0xf83ee7aa, 0x461195e9, 0xae6f0782, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x6f6a363c, 0xb0e5b5b6, 0x6e302243, 0x3cdeeec5, 0x724366e5, 0x724366e5, 0x57309c73, 0x57309c73, 0x57309c73, 0x96a98d99, 0x96a98d99, 0x96a98d99, 0x12fc06d1, 0x12fc06d1, 0x12fc06d1, 0x724366e5, 0x3d84faba, 0x3cdeeec5, 0x724366e5, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x9253d5dd, 0xdd3a228f, 0x9253d5dd, 0x6762ac53, 0x1c955882, 0x1c955882, 0x6e256146, 0x6e256146, 0x6e256146, 0xec738ef6, 0xec738ef6, 0xec738ef6, 0x239b0b8a, 0x239b0b8a, 0x239b0b8a, 0x1c955882, 0x6762ac53, 0x6762ac53, 0x1c955882, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x2415bc63, 0x37b8de72, 0xee1dac36, 0xe2b492df, 0x4d266f7a, 0x4d266f7a, 0xd3a77460, 0xd3a77460, 0xd3a77460, 0x9ff22726, 0x9ff22726, 0x9ff22726, 0xbd5395d8, 0xbd5395d8, 0xbd5395d8, 0x4d266f7a, 0x28bc828a, 0xe2b492df, 0x4d266f7a, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x636f96aa, 0x39f2bbca, 0xb5259489, 0x1e51a48b, 0x1ed9d731, 0x1ed9d731, 0x9310ffef, 0x9310ffef, 0x9310ffef, 0x2711bf67, 0x2711bf67, 0x2711bf67, 0x2a3da324, 0x2a3da324, 0x2a3da324, 0x1ed9d731, 0xc81ba6a8, 0x1e51a48b, 0x1ed9d731, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x7b209cbf, 0x2f8bc59a, 0x7b209cbf, 0x9431322, 0x5387d57f, 0x5387d57f, 0x68f2d5ef, 0x68f2d5ef, 0x68f2d5ef, 0x4b9313e5, 0x4b9313e5, 0x4b9313e5, 0xe3c85628, 0xe3c85628, 0xe3c85628, 0x5387d57f, 0x9431322, 0x9431322, 0x5387d57f, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xe0d6abdc, 0x1fb5ebb5, 0xf2d32271, 0xeb0cb967, 0xf83ee7aa, 0xf83ee7aa, 0x5e332832, 0x5e332832, 0x5e332832, 0x9a04a3d3, 0x9a04a3d3, 0x9a04a3d3, 0x551af0c1, 0x551af0c1, 0x551af0c1, 0xf83ee7aa, 0xf90930ca, 0xeb0cb967, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xeeeb078a, 0xa8401f78, 0xc4e7df4d, 0x27e577ea, 0x724366e5, 0x724366e5, 0x3c69c88a, 0x3c69c88a, 0x3c69c88a, 0xdf9900ec, 0xdf9900ec, 0xdf9900ec, 0x61db9594, 0x61db9594, 0x61db9594, 0x724366e5, 0xde9af2d, 0x27e577ea, 0x724366e5, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x68a06b59, 0x5f199a13, 0x68a06b59, 0xd005b9c9, 0x5387d57f, 0x5387d57f, 0x8910bf0d, 0x8910bf0d, 0x8910bf0d, 0x77c5e004, 0x77c5e004, 0x77c5e004, 0x7f3d7937, 0x7f3d7937, 0x7f3d7937, 0x5387d57f, 0xd005b9c9, 0xd005b9c9, 0x5387d57f, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x9683ff51, 0xfcc9713a, 0x7efd6d3a, 0xae6f0782, 0xf83ee7aa, 0xf83ee7aa, 0x60155cd0, 0x60155cd0, 0x60155cd0, 0x2e43055d, 0x2e43055d, 0x2e43055d, 0xc49f7e94, 0xc49f7e94, 0xc49f7e94, 0xf83ee7aa, 0x461195e9, 0xae6f0782, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x6f6a363c, 0xb0e5b5b6, 0x6e302243, 0x3cdeeec5, 0x724366e5, 0x724366e5, 0x57309c73, 0x57309c73, 0x57309c73, 0x96a98d99, 0x96a98d99, 0x96a98d99, 0x12fc06d1, 0x12fc06d1, 0x12fc06d1, 0x724366e5, 0x3d84faba, 0x3cdeeec5, 0x724366e5, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x9253d5dd, 0xdd3a228f, 0x9253d5dd, 0x6762ac53, 0x1c955882, 0x1c955882, 0x6e256146, 0x6e256146, 0x6e256146, 0xec738ef6, 0xec738ef6, 0xec738ef6, 0x239b0b8a, 0x239b0b8a, 0x239b0b8a, 0x1c955882, 0x6762ac53, 0x6762ac53, 0x1c955882, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x2415bc63, 0x37b8de72, 0xee1dac36, 0xe2b492df, 0x4d266f7a, 0x4d266f7a, 0xd3a77460, 0xd3a77460, 0xd3a77460, 0x9ff22726, 0x9ff22726, 0x9ff22726, 0xbd5395d8, 0xbd5395d8, 0xbd5395d8, 0x4d266f7a, 0x28bc828a, 0xe2b492df, 0x4d266f7a, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x636f96aa, 0x39f2bbca, 0xb5259489, 0x1e51a48b, 0x1ed9d731, 0x1ed9d731, 0x9310ffef, 0x9310ffef, 0x9310ffef, 0x2711bf67, 0x2711bf67, 0x2711bf67, 0x2a3da324, 0x2a3da324, 0x2a3da324, 0x1ed9d731, 0xc81ba6a8, 0x1e51a48b, 0x1ed9d731, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x87ba7c21, 0x62eab185, 0x87ba7c21, 0x41a726eb, 0x9813a416, 0x9813a416, 0xcbe87745, 0xcbe87745, 0xcbe87745, 0xc01d73ea, 0xc01d73ea, 0xc01d73ea, 0xd41fb173, 0xd41fb173, 0xd41fb173, 0x9813a416, 0x41a726eb, 0x41a726eb, 0x9813a416, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x7cf854b5, 0x4d5395da, 0xbe7776c4, 0x3bf947f4, 0x5fcf013d, 0x5fcf013d, 0x5c1d4263, 0x5c1d4263, 0x5c1d4263, 0xad5e477e, 0xad5e477e, 0xad5e477e, 0xeaa144f9, 0xeaa144f9, 0xeaa144f9, 0x5fcf013d, 0xf9766585, 0x3bf947f4, 0x5fcf013d, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x9ab1c3a0, 0x3c2d2348, 0x4d30c6c3, 0x4d7bdfa8, 0xdd28f52b, 0xdd28f52b, 0x57f4ff36, 0x57f4ff36, 0x57f4ff36, 0x2ae2b8f2, 0x2ae2b8f2, 0x2ae2b8f2, 0x49d066d8, 0x49d066d8, 0x49d066d8, 0xdd28f52b, 0x9afadacb, 0x4d7bdfa8, 0xdd28f52b, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7cd7d588, 0xd97ec8cc, 0x7cd7d588, 0x35b398e1, 0x59c36f00, 0x59c36f00, 0x4834c117, 0x4834c117, 0x4834c117, 0x1426c1f5, 0x1426c1f5, 0x1426c1f5, 0x516af56b, 0x516af56b, 0x516af56b, 0x59c36f00, 0x35b398e1, 0x35b398e1, 0x59c36f00, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x77d5614b, 0xee38f19f, 0x77d5614b, 0x2b46d2c4, 0xaa4593fe, 0xaa4593fe, 0x88eefe02, 0x88eefe02, 0x88eefe02, 0x52695139, 0x52695139, 0x52695139, 0x6e654170, 0x6e654170, 0x6e654170, 0xaa4593fe, 0x2b46d2c4, 0x2b46d2c4, 0xaa4593fe, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5c774be, 0xd6ea481d, 0xd5c774be, 0xd66c2, 0xc9cbf769, 0xc9cbf769, 0x8ca7204, 0x8ca7204, 0x8ca7204, 0x3c23552a, 0x3c23552a, 0x3c23552a, 0x1e473da1, 0x1e473da1, 0x1e473da1, 0xc9cbf769, 0xd66c2, 0xd66c2, 0xc9cbf769, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6ff25334, 0x60142559, 0x6ff25334, 0xa9ef09fe, 0x9813a416, 0x9813a416, 0xe9d151d6, 0xe9d151d6, 0xe9d151d6, 0xe2245579, 0xe2245579, 0xe2245579, 0xf62697e0, 0xf62697e0, 0xf62697e0, 0x9813a416, 0xa9ef09fe, 0xa9ef09fe, 0x9813a416, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x45387400, 0x1f12042f, 0x45387400, 0xc0b64530, 0x5fcf013d, 0x5fcf013d, 0xae65b130, 0xae65b130, 0xae65b130, 0x5f26b42d, 0x5f26b42d, 0x5f26b42d, 0x18d9b7aa, 0x18d9b7aa, 0x18d9b7aa, 0x5fcf013d, 0xc0b64530, 0xc0b64530, 0x5fcf013d, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf22852b8, 0x64b58aed, 0xf22852b8, 0xf2634bd3, 0xdd28f52b, 0xdd28f52b, 0x6226cfea, 0x6226cfea, 0x6226cfea, 0x1f30882e, 0x1f30882e, 0x1f30882e, 0x7c025604, 0x7c025604, 0x7c025604, 0xdd28f52b, 0xf2634bd3, 0xf2634bd3, 0xdd28f52b, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x7cd7d588, 0xd97ec8cc, 0x7cd7d588, 0x35b398e1, 0x59c36f00, 0x59c36f00, 0x4834c117, 0x4834c117, 0x4834c117, 0x1426c1f5, 0x1426c1f5, 0x1426c1f5, 0x516af56b, 0x516af56b, 0x516af56b, 0x59c36f00, 0x35b398e1, 0x35b398e1, 0x59c36f00, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x77d5614b, 0xee38f19f, 0x77d5614b, 0x2b46d2c4, 0xaa4593fe, 0xaa4593fe, 0x88eefe02, 0x88eefe02, 0x88eefe02, 0x52695139, 0x52695139, 0x52695139, 0x6e654170, 0x6e654170, 0x6e654170, 0xaa4593fe, 0x2b46d2c4, 0x2b46d2c4, 0xaa4593fe, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xd5c774be, 0xd6ea481d, 0xd5c774be, 0xd66c2, 0xc9cbf769, 0xc9cbf769, 0x8ca7204, 0x8ca7204, 0x8ca7204, 0x3c23552a, 0x3c23552a, 0x3c23552a, 0x1e473da1, 0x1e473da1, 0x1e473da1, 0xc9cbf769, 0xd66c2, 0xd66c2, 0xc9cbf769, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x44f24a9a, 0xb7ce71f6, 0x44f24a9a, 0x3691c507, 0x5387d57f, 0x5387d57f, 0x4ae6f1ac, 0x4ae6f1ac, 0x4ae6f1ac, 0x698737a6, 0x698737a6, 0x698737a6, 0xc1dc726b, 0xc1dc726b, 0xc1dc726b, 0x5387d57f, 0x3691c507, 0x3691c507, 0x5387d57f, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf3703bd8, 0x8a9322ca, 0xf3703bd8, 0xeaafa0ce, 0xf83ee7aa, 0xf83ee7aa, 0xc41b64b6, 0xc41b64b6, 0xc41b64b6, 0x2cef57, 0x2cef57, 0x2cef57, 0xcf32bc45, 0xcf32bc45, 0xcf32bc45, 0xf83ee7aa, 0xeaafa0ce, 0xeaafa0ce, 0xf83ee7aa, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x159757b3, 0x82f3937, 0x159757b3, 0xf695ff14, 0x724366e5, 0x724366e5, 0xd936d375, 0xd936d375, 0xd936d375, 0x3ac61b13, 0x3ac61b13, 0x3ac61b13, 0x84848e6b, 0x84848e6b, 0x84848e6b, 0x724366e5, 0xf695ff14, 0xf695ff14, 0x724366e5, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x96a35d83, 0x84b40f7d, 0x96a35d83, 0x2e068f13, 0x5387d57f, 0x5387d57f, 0x2512d363, 0x2512d363, 0x2512d363, 0xdbc78c6a, 0xdbc78c6a, 0xdbc78c6a, 0xd33f1559, 0xd33f1559, 0xd33f1559, 0x5387d57f, 0x2e068f13, 0x2e068f13, 0x5387d57f, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1c900934, 0xece326ba, 0x1c900934, 0xcc02638c, 0xf83ee7aa, 0xf83ee7aa, 0x1dbd718d, 0x1dbd718d, 0x1dbd718d, 0x53eb2800, 0x53eb2800, 0x53eb2800, 0xb93753c9, 0xb93753c9, 0xb93753c9, 0xf83ee7aa, 0xcc02638c, 0xcc02638c, 0xf83ee7aa, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x32265220, 0x42236b81, 0x32265220, 0x60c89ea6, 0x724366e5, 0x724366e5, 0x63c96d38, 0x63c96d38, 0x63c96d38, 0xa2507cd2, 0xa2507cd2, 0xa2507cd2, 0x2605f79a, 0x2605f79a, 0x2605f79a, 0x724366e5, 0x60c89ea6, 0x60c89ea6, 0x724366e5, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xdfe16fc4, 0xfeb34743, 0xdfe16fc4, 0x2ad0164a, 0x1c955882, 0x1c955882, 0xdc546008, 0xdc546008, 0xdc546008, 0x5e028fb8, 0x5e028fb8, 0x5e028fb8, 0x91ea0ac4, 0x91ea0ac4, 0x91ea0ac4, 0x1c955882, 0x2ad0164a, 0x2ad0164a, 0x1c955882, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xf988b96e, 0x28c3dbd0, 0xf988b96e, 0xf5218787, 0x4d266f7a, 0x4d266f7a, 0xe63989ae, 0xe63989ae, 0xe63989ae, 0xaa6cdae8, 0xaa6cdae8, 0xaa6cdae8, 0x88cd6816, 0x88cd6816, 0x88cd6816, 0x4d266f7a, 0xf5218787, 0xf5218787, 0x4d266f7a, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe189c1c0, 0x6e09d325, 0xe189c1c0, 0x4afdf1c2, 0x1ed9d731, 0x1ed9d731, 0xb7a388a2, 0xb7a388a2, 0xb7a388a2, 0x3a2c82a, 0x3a2c82a, 0x3a2c82a, 0xe8ed469, 0xe8ed469, 0xe8ed469, 0x1ed9d731, 0x4afdf1c2, 0x4afdf1c2, 0x1ed9d731, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x44f24a9a, 0xb7ce71f6, 0x44f24a9a, 0x3691c507, 0x5387d57f, 0x5387d57f, 0x4ae6f1ac, 0x4ae6f1ac, 0x4ae6f1ac, 0x698737a6, 0x698737a6, 0x698737a6, 0xc1dc726b, 0xc1dc726b, 0xc1dc726b, 0x5387d57f, 0x3691c507, 0x3691c507, 0x5387d57f, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf3703bd8, 0x8a9322ca, 0xf3703bd8, 0xeaafa0ce, 0xf83ee7aa, 0xf83ee7aa, 0xc41b64b6, 0xc41b64b6, 0xc41b64b6, 0x2cef57, 0x2cef57, 0x2cef57, 0xcf32bc45, 0xcf32bc45, 0xcf32bc45, 0xf83ee7aa, 0xeaafa0ce, 0xeaafa0ce, 0xf83ee7aa, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x159757b3, 0x82f3937, 0x159757b3, 0xf695ff14, 0x724366e5, 0x724366e5, 0xd936d375, 0xd936d375, 0xd936d375, 0x3ac61b13, 0x3ac61b13, 0x3ac61b13, 0x84848e6b, 0x84848e6b, 0x84848e6b, 0x724366e5, 0xf695ff14, 0xf695ff14, 0x724366e5, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x96a35d83, 0x84b40f7d, 0x96a35d83, 0x2e068f13, 0x5387d57f, 0x5387d57f, 0x2512d363, 0x2512d363, 0x2512d363, 0xdbc78c6a, 0xdbc78c6a, 0xdbc78c6a, 0xd33f1559, 0xd33f1559, 0xd33f1559, 0x5387d57f, 0x2e068f13, 0x2e068f13, 0x5387d57f, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1c900934, 0xece326ba, 0x1c900934, 0xcc02638c, 0xf83ee7aa, 0xf83ee7aa, 0x1dbd718d, 0x1dbd718d, 0x1dbd718d, 0x53eb2800, 0x53eb2800, 0x53eb2800, 0xb93753c9, 0xb93753c9, 0xb93753c9, 0xf83ee7aa, 0xcc02638c, 0xcc02638c, 0xf83ee7aa, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x32265220, 0x42236b81, 0x32265220, 0x60c89ea6, 0x724366e5, 0x724366e5, 0x63c96d38, 0x63c96d38, 0x63c96d38, 0xa2507cd2, 0xa2507cd2, 0xa2507cd2, 0x2605f79a, 0x2605f79a, 0x2605f79a, 0x724366e5, 0x60c89ea6, 0x60c89ea6, 0x724366e5, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xdfe16fc4, 0xfeb34743, 0xdfe16fc4, 0x2ad0164a, 0x1c955882, 0x1c955882, 0xdc546008, 0xdc546008, 0xdc546008, 0x5e028fb8, 0x5e028fb8, 0x5e028fb8, 0x91ea0ac4, 0x91ea0ac4, 0x91ea0ac4, 0x1c955882, 0x2ad0164a, 0x2ad0164a, 0x1c955882, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xf988b96e, 0x28c3dbd0, 0xf988b96e, 0xf5218787, 0x4d266f7a, 0x4d266f7a, 0xe63989ae, 0xe63989ae, 0xe63989ae, 0xaa6cdae8, 0xaa6cdae8, 0xaa6cdae8, 0x88cd6816, 0x88cd6816, 0x88cd6816, 0x4d266f7a, 0xf5218787, 0xf5218787, 0x4d266f7a, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe189c1c0, 0x6e09d325, 0xe189c1c0, 0x4afdf1c2, 0x1ed9d731, 0x1ed9d731, 0xb7a388a2, 0xb7a388a2, 0xb7a388a2, 0x3a2c82a, 0x3a2c82a, 0x3a2c82a, 0xe8ed469, 0xe8ed469, 0xe8ed469, 0x1ed9d731, 0x4afdf1c2, 0x4afdf1c2, 0x1ed9d731, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x6ff25334, 0x60142559, 0x6ff25334, 0xa9ef09fe, 0x9813a416, 0x9813a416, 0xe9d151d6, 0xe9d151d6, 0xe9d151d6, 0xe2245579, 0xe2245579, 0xe2245579, 0xf62697e0, 0xf62697e0, 0xf62697e0, 0x9813a416, 0xa9ef09fe, 0xa9ef09fe, 0x9813a416, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x45387400, 0x1f12042f, 0x45387400, 0xc0b64530, 0x5fcf013d, 0x5fcf013d, 0xae65b130, 0xae65b130, 0xae65b130, 0x5f26b42d, 0x5f26b42d, 0x5f26b42d, 0x18d9b7aa, 0x18d9b7aa, 0x18d9b7aa, 0x5fcf013d, 0xc0b64530, 0xc0b64530, 0x5fcf013d, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf22852b8, 0x64b58aed, 0xf22852b8, 0xf2634bd3, 0xdd28f52b, 0xdd28f52b, 0x6226cfea, 0x6226cfea, 0x6226cfea, 0x1f30882e, 0x1f30882e, 0x1f30882e, 0x7c025604, 0x7c025604, 0x7c025604, 0xdd28f52b, 0xf2634bd3, 0xf2634bd3, 0xdd28f52b, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x5564b5ac, 0x60da9eee, 0xbd1e9681, 0xf47adbe8, 0x59c36f00, 0x59c36f00, 0x21d91745, 0x21d91745, 0x21d91745, 0x7dcb17a7, 0x7dcb17a7, 0x7dcb17a7, 0x38872339, 0x38872339, 0x38872339, 0x59c36f00, 0x1c00f8c5, 0xf47adbe8, 0x59c36f00, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x76e5e86, 0x7b494fdd, 0x495a38ac, 0x15c98b23, 0xaa4593fe, 0xaa4593fe, 0x3eadf2ea, 0x3eadf2ea, 0x3eadf2ea, 0xe42a5dd1, 0xe42a5dd1, 0xe42a5dd1, 0xd8264d98, 0xd8264d98, 0xd8264d98, 0xaa4593fe, 0x5bfded09, 0x15c98b23, 0xaa4593fe, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb6cb7893, 0x3d8832b4, 0xa83e25d, 0xdf49f021, 0xc9cbf769, 0xc9cbf769, 0xee497240, 0xee497240, 0xee497240, 0xdaa0556e, 0xdaa0556e, 0xdaa0556e, 0xf8c43de5, 0xf8c43de5, 0xf8c43de5, 0xc9cbf769, 0x63016aef, 0xdf49f021, 0xc9cbf769, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xaec0098e, 0x31dc5518, 0x6f2943a1, 0xa934196b, 0x9813a416, 0x9813a416, 0x27d7c19f, 0x27d7c19f, 0x27d7c19f, 0x2c22c530, 0x2c22c530, 0x2c22c530, 0x382007a9, 0x382007a9, 0x382007a9, 0x9813a416, 0x68dd5344, 0xa934196b, 0x9813a416, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6840baa6, 0xe3649779, 0x3c42fbb8, 0xb9ccca88, 0x5fcf013d, 0x5fcf013d, 0x634fa67d, 0x634fa67d, 0x634fa67d, 0x920ca360, 0x920ca360, 0x920ca360, 0xd5f3a0e7, 0xd5f3a0e7, 0xd5f3a0e7, 0x5fcf013d, 0xedce8b96, 0xb9ccca88, 0x5fcf013d, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7b6f728f, 0x802df91c, 0x6fe59e4c, 0x6fae8727, 0xdd28f52b, 0xdd28f52b, 0xc591678c, 0xc591678c, 0xc591678c, 0xb8872048, 0xb8872048, 0xb8872048, 0xdbb5fe62, 0xdbb5fe62, 0xdbb5fe62, 0xdd28f52b, 0x7b246be4, 0x6fae8727, 0xdd28f52b, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x5564b5ac, 0x60da9eee, 0xbd1e9681, 0xf47adbe8, 0x59c36f00, 0x59c36f00, 0x21d91745, 0x21d91745, 0x21d91745, 0x7dcb17a7, 0x7dcb17a7, 0x7dcb17a7, 0x38872339, 0x38872339, 0x38872339, 0x59c36f00, 0x1c00f8c5, 0xf47adbe8, 0x59c36f00, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x76e5e86, 0x7b494fdd, 0x495a38ac, 0x15c98b23, 0xaa4593fe, 0xaa4593fe, 0x3eadf2ea, 0x3eadf2ea, 0x3eadf2ea, 0xe42a5dd1, 0xe42a5dd1, 0xe42a5dd1, 0xd8264d98, 0xd8264d98, 0xd8264d98, 0xaa4593fe, 0x5bfded09, 0x15c98b23, 0xaa4593fe, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xb6cb7893, 0x3d8832b4, 0xa83e25d, 0xdf49f021, 0xc9cbf769, 0xc9cbf769, 0xee497240, 0xee497240, 0xee497240, 0xdaa0556e, 0xdaa0556e, 0xdaa0556e, 0xf8c43de5, 0xf8c43de5, 0xf8c43de5, 0xc9cbf769, 0x63016aef, 0xdf49f021, 0xc9cbf769, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xe91b111e, 0xf17069cf, 0x6b0d417f, 0x196ecee2, 0x5387d57f, 0x5387d57f, 0x3a0bd784, 0x3a0bd784, 0x3a0bd784, 0x196a118e, 0x196a118e, 0x196a118e, 0xb1315443, 0xb1315443, 0xb1315443, 0x5387d57f, 0x9b789e83, 0x196ecee2, 0x5387d57f, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x618a321d, 0x424668ca, 0xbb28dfaa, 0xa2f744bc, 0xf83ee7aa, 0xf83ee7aa, 0x3a74d341, 0x3a74d341, 0x3a74d341, 0xfe4358a0, 0xfe4358a0, 0xfe4358a0, 0x315d0bb2, 0x315d0bb2, 0x315d0bb2, 0xf83ee7aa, 0x7855a90b, 0xa2f744bc, 0xf83ee7aa, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x87840389, 0x646994d2, 0x50ce49fd, 0xb3cce15a, 0x724366e5, 0x724366e5, 0x695c97b4, 0x695c97b4, 0x695c97b4, 0x8aac5fd2, 0x8aac5fd2, 0x8aac5fd2, 0x34eecaaa, 0x34eecaaa, 0x34eecaaa, 0x724366e5, 0x6486ab2e, 0xb3cce15a, 0x724366e5, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x1ef83cc4, 0x8f37421b, 0xccc91d44, 0x746ccfd4, 0x5387d57f, 0x5387d57f, 0xce1861a0, 0xce1861a0, 0xce1861a0, 0x30cd3ea9, 0x30cd3ea9, 0x30cd3ea9, 0x3835a79a, 0x3835a79a, 0x3835a79a, 0x5387d57f, 0xa65dee54, 0x746ccfd4, 0x5387d57f, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd4d7990, 0x3f81f76b, 0xab169d0e, 0x7b84f7b6, 0xf83ee7aa, 0xf83ee7aa, 0xb21afb9f, 0xb21afb9f, 0xb21afb9f, 0xfc4ca212, 0xfc4ca212, 0xfc4ca212, 0x1690d9db, 0x1690d9db, 0x1690d9db, 0xf83ee7aa, 0xdddf1328, 0x7b84f7b6, 0xf83ee7aa, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xf484a7a, 0x1d016ff1, 0xa1efb839, 0xf30174bf, 0x724366e5, 0x724366e5, 0x20dd566e, 0x20dd566e, 0x20dd566e, 0xe1444784, 0xe1444784, 0xe1444784, 0x6511cccc, 0x6511cccc, 0x6511cccc, 0x724366e5, 0x5da686fc, 0xf30174bf, 0x724366e5, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xe6f2b3cc, 0xb53e897f, 0xcb165f0b, 0x3e272685, 0x1c955882, 0x1c955882, 0xcebb321, 0xcebb321, 0xcebb321, 0x8ebd5c91, 0x8ebd5c91, 0x8ebd5c91, 0x4155d9ed, 0x4155d9ed, 0x4155d9ed, 0x1c955882, 0x13c3ca42, 0x3e272685, 0x1c955882, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x79d3a961, 0x2abea675, 0x6d16d7f8, 0x61bfe911, 0x4d266f7a, 0x4d266f7a, 0xc6f457fe, 0xc6f457fe, 0xc6f457fe, 0x8aa104b8, 0x8aa104b8, 0x8aa104b8, 0xa800b646, 0xa800b646, 0xa800b646, 0x4d266f7a, 0x757a9788, 0x61bfe911, 0x4d266f7a, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x95a273e0, 0xa4c29c6, 0x5d827a2a, 0xf6f64a28, 0x1ed9d731, 0x1ed9d731, 0xb750ffe0, 0xb750ffe0, 0xb750ffe0, 0x351bf68, 0x351bf68, 0x351bf68, 0xe7da32b, 0xe7da32b, 0xe7da32b, 0x1ed9d731, 0x3ed643e2, 0xf6f64a28, 0x1ed9d731, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xe91b111e, 0xf17069cf, 0x6b0d417f, 0x196ecee2, 0x5387d57f, 0x5387d57f, 0x3a0bd784, 0x3a0bd784, 0x3a0bd784, 0x196a118e, 0x196a118e, 0x196a118e, 0xb1315443, 0xb1315443, 0xb1315443, 0x5387d57f, 0x9b789e83, 0x196ecee2, 0x5387d57f, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x618a321d, 0x424668ca, 0xbb28dfaa, 0xa2f744bc, 0xf83ee7aa, 0xf83ee7aa, 0x3a74d341, 0x3a74d341, 0x3a74d341, 0xfe4358a0, 0xfe4358a0, 0xfe4358a0, 0x315d0bb2, 0x315d0bb2, 0x315d0bb2, 0xf83ee7aa, 0x7855a90b, 0xa2f744bc, 0xf83ee7aa, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x87840389, 0x646994d2, 0x50ce49fd, 0xb3cce15a, 0x724366e5, 0x724366e5, 0x695c97b4, 0x695c97b4, 0x695c97b4, 0x8aac5fd2, 0x8aac5fd2, 0x8aac5fd2, 0x34eecaaa, 0x34eecaaa, 0x34eecaaa, 0x724366e5, 0x6486ab2e, 0xb3cce15a, 0x724366e5, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x1ef83cc4, 0x8f37421b, 0xccc91d44, 0x746ccfd4, 0x5387d57f, 0x5387d57f, 0xce1861a0, 0xce1861a0, 0xce1861a0, 0x30cd3ea9, 0x30cd3ea9, 0x30cd3ea9, 0x3835a79a, 0x3835a79a, 0x3835a79a, 0x5387d57f, 0xa65dee54, 0x746ccfd4, 0x5387d57f, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd4d7990, 0x3f81f76b, 0xab169d0e, 0x7b84f7b6, 0xf83ee7aa, 0xf83ee7aa, 0xb21afb9f, 0xb21afb9f, 0xb21afb9f, 0xfc4ca212, 0xfc4ca212, 0xfc4ca212, 0x1690d9db, 0x1690d9db, 0x1690d9db, 0xf83ee7aa, 0xdddf1328, 0x7b84f7b6, 0xf83ee7aa, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xf484a7a, 0x1d016ff1, 0xa1efb839, 0xf30174bf, 0x724366e5, 0x724366e5, 0x20dd566e, 0x20dd566e, 0x20dd566e, 0xe1444784, 0xe1444784, 0xe1444784, 0x6511cccc, 0x6511cccc, 0x6511cccc, 0x724366e5, 0x5da686fc, 0xf30174bf, 0x724366e5, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xe6f2b3cc, 0xb53e897f, 0xcb165f0b, 0x3e272685, 0x1c955882, 0x1c955882, 0xcebb321, 0xcebb321, 0xcebb321, 0x8ebd5c91, 0x8ebd5c91, 0x8ebd5c91, 0x4155d9ed, 0x4155d9ed, 0x4155d9ed, 0x1c955882, 0x13c3ca42, 0x3e272685, 0x1c955882, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x79d3a961, 0x2abea675, 0x6d16d7f8, 0x61bfe911, 0x4d266f7a, 0x4d266f7a, 0xc6f457fe, 0xc6f457fe, 0xc6f457fe, 0x8aa104b8, 0x8aa104b8, 0x8aa104b8, 0xa800b646, 0xa800b646, 0xa800b646, 0x4d266f7a, 0x757a9788, 0x61bfe911, 0x4d266f7a, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x95a273e0, 0xa4c29c6, 0x5d827a2a, 0xf6f64a28, 0x1ed9d731, 0x1ed9d731, 0xb750ffe0, 0xb750ffe0, 0xb750ffe0, 0x351bf68, 0x351bf68, 0x351bf68, 0xe7da32b, 0xe7da32b, 0xe7da32b, 0x1ed9d731, 0x3ed643e2, 0xf6f64a28, 0x1ed9d731, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xaec0098e, 0x31dc5518, 0x6f2943a1, 0xa934196b, 0x9813a416, 0x9813a416, 0x27d7c19f, 0x27d7c19f, 0x27d7c19f, 0x2c22c530, 0x2c22c530, 0x2c22c530, 0x382007a9, 0x382007a9, 0x382007a9, 0x9813a416, 0x68dd5344, 0xa934196b, 0x9813a416, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6840baa6, 0xe3649779, 0x3c42fbb8, 0xb9ccca88, 0x5fcf013d, 0x5fcf013d, 0x634fa67d, 0x634fa67d, 0x634fa67d, 0x920ca360, 0x920ca360, 0x920ca360, 0xd5f3a0e7, 0xd5f3a0e7, 0xd5f3a0e7, 0x5fcf013d, 0xedce8b96, 0xb9ccca88, 0x5fcf013d, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7b6f728f, 0x802df91c, 0x6fe59e4c, 0x6fae8727, 0xdd28f52b, 0xdd28f52b, 0xc591678c, 0xc591678c, 0xc591678c, 0xb8872048, 0xb8872048, 0xb8872048, 0xdbb5fe62, 0xdbb5fe62, 0xdbb5fe62, 0xdd28f52b, 0x7b246be4, 0x6fae8727, 0xdd28f52b, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8c809d98, 0xa2deb5e8, 0x8c809d98, 0xc5e4d0f1, 0x59c36f00, 0x59c36f00, 0xcce4d070, 0xcce4d070, 0xcce4d070, 0x90f6d092, 0x90f6d092, 0x90f6d092, 0xd5bae40c, 0xd5bae40c, 0xd5bae40c, 0x59c36f00, 0xc5e4d0f1, 0xc5e4d0f1, 0x59c36f00, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd2952b24, 0xc43b8c16, 0xd2952b24, 0x8e0698ab, 0xaa4593fe, 0xaa4593fe, 0x72cbd134, 0x72cbd134, 0x72cbd134, 0xa84c7e0f, 0xa84c7e0f, 0xa84c7e0f, 0x94406e46, 0x94406e46, 0x94406e46, 0xaa4593fe, 0x8e0698ab, 0x8e0698ab, 0xaa4593fe, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x10e5e33e, 0xfaceb35c, 0x10e5e33e, 0xc52ff142, 0xc9cbf769, 0xc9cbf769, 0x4b7f7a, 0x4b7f7a, 0x4b7f7a, 0x34a25854, 0x34a25854, 0x34a25854, 0x16c630df, 0x16c630df, 0x16c630df, 0xc9cbf769, 0xc52ff142, 0xc52ff142, 0xc9cbf769, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x35eaca6c, 0xf1f3421e, 0x35eaca6c, 0xf3f790a6, 0x9813a416, 0x9813a416, 0x3a84c463, 0x3a84c463, 0x3a84c463, 0x3171c0cc, 0x3171c0cc, 0x3171c0cc, 0x25730255, 0x25730255, 0x25730255, 0x9813a416, 0xf3f790a6, 0xf3f790a6, 0x9813a416, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xc63e4058, 0x297346bb, 0xc63e4058, 0x43b07168, 0x5fcf013d, 0x5fcf013d, 0x814b6f45, 0x814b6f45, 0x814b6f45, 0x70086a58, 0x70086a58, 0x70086a58, 0x37f769df, 0x37f769df, 0x37f769df, 0x5fcf013d, 0x43b07168, 0x43b07168, 0x5fcf013d, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x42625965, 0xbdbab59d, 0x42625965, 0x4229400e, 0xdd28f52b, 0xdd28f52b, 0x74cb4529, 0x74cb4529, 0x74cb4529, 0x9dd02ed, 0x9dd02ed, 0x9dd02ed, 0x6aefdcc7, 0x6aefdcc7, 0x6aefdcc7, 0xdd28f52b, 0x4229400e, 0x4229400e, 0xdd28f52b, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x8c809d98, 0xa2deb5e8, 0x8c809d98, 0xc5e4d0f1, 0x59c36f00, 0x59c36f00, 0xcce4d070, 0xcce4d070, 0xcce4d070, 0x90f6d092, 0x90f6d092, 0x90f6d092, 0xd5bae40c, 0xd5bae40c, 0xd5bae40c, 0x59c36f00, 0xc5e4d0f1, 0xc5e4d0f1, 0x59c36f00, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xd2952b24, 0xc43b8c16, 0xd2952b24, 0x8e0698ab, 0xaa4593fe, 0xaa4593fe, 0x72cbd134, 0x72cbd134, 0x72cbd134, 0xa84c7e0f, 0xa84c7e0f, 0xa84c7e0f, 0x94406e46, 0x94406e46, 0x94406e46, 0xaa4593fe, 0x8e0698ab, 0x8e0698ab, 0xaa4593fe, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x10e5e33e, 0xfaceb35c, 0x10e5e33e, 0xc52ff142, 0xc9cbf769, 0xc9cbf769, 0x4b7f7a, 0x4b7f7a, 0x4b7f7a, 0x34a25854, 0x34a25854, 0x34a25854, 0x16c630df, 0x16c630df, 0x16c630df, 0xc9cbf769, 0xc52ff142, 0xc52ff142, 0xc9cbf769, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xf1d34c3f, 0xcb451cf, 0xf1d34c3f, 0x83b0c3a2, 0x5387d57f, 0x5387d57f, 0xdc42e576, 0xdc42e576, 0xdc42e576, 0xff23237c, 0xff23237c, 0xff23237c, 0x577866b1, 0x577866b1, 0x577866b1, 0x5387d57f, 0x83b0c3a2, 0x83b0c3a2, 0x5387d57f, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1219f891, 0x3ea9e133, 0x1219f891, 0xbc66387, 0xf83ee7aa, 0xf83ee7aa, 0x4d56ad7d, 0x4d56ad7d, 0x4d56ad7d, 0x8961269c, 0x8961269c, 0x8961269c, 0x467f758e, 0x467f758e, 0x467f758e, 0xf83ee7aa, 0xbc66387, 0xbc66387, 0xf83ee7aa, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x39dd8885, 0x9ff9b01d, 0x39dd8885, 0xdadf2022, 0x724366e5, 0x724366e5, 0x2a5a1ea5, 0x2a5a1ea5, 0x2a5a1ea5, 0xc9aad6c3, 0xc9aad6c3, 0xc9aad6c3, 0x77e843bb, 0x77e843bb, 0x77e843bb, 0x724366e5, 0xdadf2022, 0xdadf2022, 0x724366e5, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x9c06870a, 0xfb391ac3, 0x9c06870a, 0x24a3559a, 0x5387d57f, 0x5387d57f, 0x67afb6e7, 0x67afb6e7, 0x67afb6e7, 0x997ae9ee, 0x997ae9ee, 0x997ae9ee, 0x918270dd, 0x918270dd, 0x918270dd, 0x5387d57f, 0x24a3559a, 0x24a3559a, 0x5387d57f, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x34160e54, 0xfa0d929, 0x34160e54, 0xe48464ec, 0xf83ee7aa, 0xf83ee7aa, 0xbada5191, 0xbada5191, 0xbada5191, 0xf48c081c, 0xf48c081c, 0xf48c081c, 0x1e5073d5, 0x1e5073d5, 0x1e5073d5, 0xf83ee7aa, 0xe48464ec, 0xe48464ec, 0xf83ee7aa, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xf8b89646, 0xae36218f, 0xf8b89646, 0xaa565ac0, 0x724366e5, 0x724366e5, 0xc530c749, 0xc530c749, 0xc530c749, 0x4a9d6a3, 0x4a9d6a3, 0x4a9d6a3, 0x80fc5deb, 0x80fc5deb, 0x80fc5deb, 0x724366e5, 0xaa565ac0, 0xaa565ac0, 0x724366e5, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xc814e98c, 0xc80ea558, 0xc814e98c, 0x3d259002, 0x1c955882, 0x1c955882, 0xbaf29951, 0xbaf29951, 0xbaf29951, 0x38a476e1, 0x38a476e1, 0x38a476e1, 0xf74cf39d, 0xf74cf39d, 0xf74cf39d, 0x1c955882, 0x3d259002, 0x3d259002, 0x1c955882, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x4d835add, 0x8e85c29e, 0x4d835add, 0x412a6434, 0x4d266f7a, 0x4d266f7a, 0x37157ce4, 0x37157ce4, 0x37157ce4, 0x7b402fa2, 0x7b402fa2, 0x7b402fa2, 0x59e19d5c, 0x59e19d5c, 0x59e19d5c, 0x4d266f7a, 0x412a6434, 0x412a6434, 0x4d266f7a, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x65f356c1, 0x687de513, 0x65f356c1, 0xce8766c3, 0x1ed9d731, 0x1ed9d731, 0xfb07ebd0, 0xfb07ebd0, 0xfb07ebd0, 0x4f06ab58, 0x4f06ab58, 0x4f06ab58, 0x422ab71b, 0x422ab71b, 0x422ab71b, 0x1ed9d731, 0xce8766c3, 0xce8766c3, 0x1ed9d731, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xf1d34c3f, 0xcb451cf, 0xf1d34c3f, 0x83b0c3a2, 0x5387d57f, 0x5387d57f, 0xdc42e576, 0xdc42e576, 0xdc42e576, 0xff23237c, 0xff23237c, 0xff23237c, 0x577866b1, 0x577866b1, 0x577866b1, 0x5387d57f, 0x83b0c3a2, 0x83b0c3a2, 0x5387d57f, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1219f891, 0x3ea9e133, 0x1219f891, 0xbc66387, 0xf83ee7aa, 0xf83ee7aa, 0x4d56ad7d, 0x4d56ad7d, 0x4d56ad7d, 0x8961269c, 0x8961269c, 0x8961269c, 0x467f758e, 0x467f758e, 0x467f758e, 0xf83ee7aa, 0xbc66387, 0xbc66387, 0xf83ee7aa, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x39dd8885, 0x9ff9b01d, 0x39dd8885, 0xdadf2022, 0x724366e5, 0x724366e5, 0x2a5a1ea5, 0x2a5a1ea5, 0x2a5a1ea5, 0xc9aad6c3, 0xc9aad6c3, 0xc9aad6c3, 0x77e843bb, 0x77e843bb, 0x77e843bb, 0x724366e5, 0xdadf2022, 0xdadf2022, 0x724366e5, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x9c06870a, 0xfb391ac3, 0x9c06870a, 0x24a3559a, 0x5387d57f, 0x5387d57f, 0x67afb6e7, 0x67afb6e7, 0x67afb6e7, 0x997ae9ee, 0x997ae9ee, 0x997ae9ee, 0x918270dd, 0x918270dd, 0x918270dd, 0x5387d57f, 0x24a3559a, 0x24a3559a, 0x5387d57f, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x34160e54, 0xfa0d929, 0x34160e54, 0xe48464ec, 0xf83ee7aa, 0xf83ee7aa, 0xbada5191, 0xbada5191, 0xbada5191, 0xf48c081c, 0xf48c081c, 0xf48c081c, 0x1e5073d5, 0x1e5073d5, 0x1e5073d5, 0xf83ee7aa, 0xe48464ec, 0xe48464ec, 0xf83ee7aa, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xf8b89646, 0xae36218f, 0xf8b89646, 0xaa565ac0, 0x724366e5, 0x724366e5, 0xc530c749, 0xc530c749, 0xc530c749, 0x4a9d6a3, 0x4a9d6a3, 0x4a9d6a3, 0x80fc5deb, 0x80fc5deb, 0x80fc5deb, 0x724366e5, 0xaa565ac0, 0xaa565ac0, 0x724366e5, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xc814e98c, 0xc80ea558, 0xc814e98c, 0x3d259002, 0x1c955882, 0x1c955882, 0xbaf29951, 0xbaf29951, 0xbaf29951, 0x38a476e1, 0x38a476e1, 0x38a476e1, 0xf74cf39d, 0xf74cf39d, 0xf74cf39d, 0x1c955882, 0x3d259002, 0x3d259002, 0x1c955882, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x4d835add, 0x8e85c29e, 0x4d835add, 0x412a6434, 0x4d266f7a, 0x4d266f7a, 0x37157ce4, 0x37157ce4, 0x37157ce4, 0x7b402fa2, 0x7b402fa2, 0x7b402fa2, 0x59e19d5c, 0x59e19d5c, 0x59e19d5c, 0x4d266f7a, 0x412a6434, 0x412a6434, 0x4d266f7a, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x65f356c1, 0x687de513, 0x65f356c1, 0xce8766c3, 0x1ed9d731, 0x1ed9d731, 0xfb07ebd0, 0xfb07ebd0, 0xfb07ebd0, 0x4f06ab58, 0x4f06ab58, 0x4f06ab58, 0x422ab71b, 0x422ab71b, 0x422ab71b, 0x1ed9d731, 0xce8766c3, 0xce8766c3, 0x1ed9d731, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x35eaca6c, 0xf1f3421e, 0x35eaca6c, 0xf3f790a6, 0x9813a416, 0x9813a416, 0x3a84c463, 0x3a84c463, 0x3a84c463, 0x3171c0cc, 0x3171c0cc, 0x3171c0cc, 0x25730255, 0x25730255, 0x25730255, 0x9813a416, 0xf3f790a6, 0xf3f790a6, 0x9813a416, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xc63e4058, 0x297346bb, 0xc63e4058, 0x43b07168, 0x5fcf013d, 0x5fcf013d, 0x814b6f45, 0x814b6f45, 0x814b6f45, 0x70086a58, 0x70086a58, 0x70086a58, 0x37f769df, 0x37f769df, 0x37f769df, 0x5fcf013d, 0x43b07168, 0x43b07168, 0x5fcf013d, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x42625965, 0xbdbab59d, 0x42625965, 0x4229400e, 0xdd28f52b, 0xdd28f52b, 0x74cb4529, 0x74cb4529, 0x74cb4529, 0x9dd02ed, 0x9dd02ed, 0x9dd02ed, 0x6aefdcc7, 0x6aefdcc7, 0x6aefdcc7, 0xdd28f52b, 0x4229400e, 0x4229400e, 0xdd28f52b, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xdbf44912, 0xc82adc43, 0xdbf44912, 0x9290047b, 0x59c36f00, 0x59c36f00, 0xab23d594, 0xab23d594, 0xab23d594, 0xf731d576, 0xf731d576, 0xf731d576, 0xb27de1e8, 0xb27de1e8, 0xb27de1e8, 0x59c36f00, 0x9290047b, 0x9290047b, 0x59c36f00, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x62fabab4, 0xdbdedb42, 0x62fabab4, 0x3e69093b, 0xaa4593fe, 0xaa4593fe, 0x8573463b, 0x8573463b, 0x8573463b, 0x5ff4e900, 0x5ff4e900, 0x5ff4e900, 0x63f8f949, 0x63f8f949, 0x63f8f949, 0xaa4593fe, 0x3e69093b, 0x3e69093b, 0xaa4593fe, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xc4a0b1c4, 0xcaf9129f, 0xc4a0b1c4, 0x116aa3b8, 0xc9cbf769, 0xc9cbf769, 0xcd389b10, 0xcd389b10, 0xcd389b10, 0xf9d1bc3e, 0xf9d1bc3e, 0xf9d1bc3e, 0xdbb5d4b5, 0xdbb5d4b5, 0xdbb5d4b5, 0xc9cbf769, 0x116aa3b8, 0x116aa3b8, 0xc9cbf769, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6efb4dad, 0x369b71a, 0x6efb4dad, 0xa8e61767, 0x9813a416, 0x9813a416, 0x3b4bf94, 0x3b4bf94, 0x3b4bf94, 0x841bb3b, 0x841bb3b, 0x841bb3b, 0x1c4379a2, 0x1c4379a2, 0x1c4379a2, 0x9813a416, 0xa8e61767, 0xa8e61767, 0x9813a416, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x179dd979, 0x1de58cc1, 0x179dd979, 0x9213e849, 0x5fcf013d, 0x5fcf013d, 0x349a05dc, 0x349a05dc, 0x349a05dc, 0xc5d900c1, 0xc5d900c1, 0xc5d900c1, 0x82260346, 0x82260346, 0x82260346, 0x5fcf013d, 0x9213e849, 0x9213e849, 0x5fcf013d, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5d07b0aa, 0x2682b6f8, 0x5d07b0aa, 0x5d4ca9c1, 0xdd28f52b, 0xdd28f52b, 0xd4dbe6e9, 0xd4dbe6e9, 0xd4dbe6e9, 0xa9cda12d, 0xa9cda12d, 0xa9cda12d, 0xcaff7f07, 0xcaff7f07, 0xcaff7f07, 0xdd28f52b, 0x5d4ca9c1, 0x5d4ca9c1, 0xdd28f52b, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xdbf44912, 0xc82adc43, 0xdbf44912, 0x9290047b, 0x59c36f00, 0x59c36f00, 0xab23d594, 0xab23d594, 0xab23d594, 0xf731d576, 0xf731d576, 0xf731d576, 0xb27de1e8, 0xb27de1e8, 0xb27de1e8, 0x59c36f00, 0x9290047b, 0x9290047b, 0x59c36f00, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x62fabab4, 0xdbdedb42, 0x62fabab4, 0x3e69093b, 0xaa4593fe, 0xaa4593fe, 0x8573463b, 0x8573463b, 0x8573463b, 0x5ff4e900, 0x5ff4e900, 0x5ff4e900, 0x63f8f949, 0x63f8f949, 0x63f8f949, 0xaa4593fe, 0x3e69093b, 0x3e69093b, 0xaa4593fe, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xc4a0b1c4, 0xcaf9129f, 0xc4a0b1c4, 0x116aa3b8, 0xc9cbf769, 0xc9cbf769, 0xcd389b10, 0xcd389b10, 0xcd389b10, 0xf9d1bc3e, 0xf9d1bc3e, 0xf9d1bc3e, 0xdbb5d4b5, 0xdbb5d4b5, 0xdbb5d4b5, 0xc9cbf769, 0x116aa3b8, 0x116aa3b8, 0xc9cbf769, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbc31c24b, 0x83c43023, 0xbc31c24b, 0xce524dd6, 0x5387d57f, 0x5387d57f, 0xda49acb8, 0xda49acb8, 0xda49acb8, 0xf9286ab2, 0xf9286ab2, 0xf9286ab2, 0x51732f7f, 0x51732f7f, 0x51732f7f, 0x5387d57f, 0xce524dd6, 0xce524dd6, 0x5387d57f, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xef057545, 0xac031794, 0xef057545, 0xf6daee53, 0xf83ee7aa, 0xf83ee7aa, 0xd2d55043, 0xd2d55043, 0xd2d55043, 0x16e2dba2, 0x16e2dba2, 0x16e2dba2, 0xd9fc88b0, 0xd9fc88b0, 0xd9fc88b0, 0xf83ee7aa, 0xf6daee53, 0xf6daee53, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xe302caa7, 0xaa205ee5, 0xe302caa7, 0x6200, 0x724366e5, 0x724366e5, 0xc267b9a4, 0xc267b9a4, 0xc267b9a4, 0x219771c2, 0x219771c2, 0x219771c2, 0x9fd5e4ba, 0x9fd5e4ba, 0x9fd5e4ba, 0x724366e5, 0x6200, 0x6200, 0x724366e5, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xe275ba72, 0xc0fca11, 0xe275ba72, 0x5ad068e2, 0x5387d57f, 0x5387d57f, 0x915873ea, 0x915873ea, 0x915873ea, 0x6f8d2ce3, 0x6f8d2ce3, 0x6f8d2ce3, 0x6775b5d0, 0x6775b5d0, 0x6775b5d0, 0x5387d57f, 0x5ad068e2, 0x5ad068e2, 0x5387d57f, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1b78c823, 0x44f4ea59, 0x1b78c823, 0xcbeaa29b, 0xf83ee7aa, 0xf83ee7aa, 0x8a66a6d, 0x8a66a6d, 0x8a66a6d, 0x46f033e0, 0x46f033e0, 0x46f033e0, 0xac2c4829, 0xac2c4829, 0xac2c4829, 0xf83ee7aa, 0xcbeaa29b, 0xcbeaa29b, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xb17861b9, 0x4a460c5, 0xb17861b9, 0xe396ad3f, 0x724366e5, 0x724366e5, 0xb5604b13, 0xb5604b13, 0xb5604b13, 0x74f95af9, 0x74f95af9, 0x74f95af9, 0xf0acd1b1, 0xf0acd1b1, 0xf0acd1b1, 0x724366e5, 0xe396ad3f, 0xe396ad3f, 0x724366e5, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xf4baecd1, 0x8ac6b394, 0xf4baecd1, 0x18b955f, 0x1c955882, 0x1c955882, 0x96ffb153, 0x96ffb153, 0x96ffb153, 0x14a95ee3, 0x14a95ee3, 0x14a95ee3, 0xdb41db9f, 0xdb41db9f, 0xdb41db9f, 0x1c955882, 0x18b955f, 0x18b955f, 0x1c955882, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfd3793dc, 0x2db332c2, 0xfd3793dc, 0xf19ead35, 0x4d266f7a, 0x4d266f7a, 0x12ca05d7, 0x12ca05d7, 0x12ca05d7, 0x5e9f5691, 0x5e9f5691, 0x5e9f5691, 0x7c3ee46f, 0x7c3ee46f, 0x7c3ee46f, 0x4d266f7a, 0xf19ead35, 0xf19ead35, 0x4d266f7a, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xeeea770, 0x17ff444a, 0xeeea770, 0xa59a9772, 0x1ed9d731, 0x1ed9d731, 0x1d44b9f2, 0x1d44b9f2, 0x1d44b9f2, 0xa945f97a, 0xa945f97a, 0xa945f97a, 0xa469e539, 0xa469e539, 0xa469e539, 0x1ed9d731, 0xa59a9772, 0xa59a9772, 0x1ed9d731, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbc31c24b, 0x83c43023, 0xbc31c24b, 0xce524dd6, 0x5387d57f, 0x5387d57f, 0xda49acb8, 0xda49acb8, 0xda49acb8, 0xf9286ab2, 0xf9286ab2, 0xf9286ab2, 0x51732f7f, 0x51732f7f, 0x51732f7f, 0x5387d57f, 0xce524dd6, 0xce524dd6, 0x5387d57f, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xef057545, 0xac031794, 0xef057545, 0xf6daee53, 0xf83ee7aa, 0xf83ee7aa, 0xd2d55043, 0xd2d55043, 0xd2d55043, 0x16e2dba2, 0x16e2dba2, 0x16e2dba2, 0xd9fc88b0, 0xd9fc88b0, 0xd9fc88b0, 0xf83ee7aa, 0xf6daee53, 0xf6daee53, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xe302caa7, 0xaa205ee5, 0xe302caa7, 0x6200, 0x724366e5, 0x724366e5, 0xc267b9a4, 0xc267b9a4, 0xc267b9a4, 0x219771c2, 0x219771c2, 0x219771c2, 0x9fd5e4ba, 0x9fd5e4ba, 0x9fd5e4ba, 0x724366e5, 0x6200, 0x6200, 0x724366e5, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xe275ba72, 0xc0fca11, 0xe275ba72, 0x5ad068e2, 0x5387d57f, 0x5387d57f, 0x915873ea, 0x915873ea, 0x915873ea, 0x6f8d2ce3, 0x6f8d2ce3, 0x6f8d2ce3, 0x6775b5d0, 0x6775b5d0, 0x6775b5d0, 0x5387d57f, 0x5ad068e2, 0x5ad068e2, 0x5387d57f, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1b78c823, 0x44f4ea59, 0x1b78c823, 0xcbeaa29b, 0xf83ee7aa, 0xf83ee7aa, 0x8a66a6d, 0x8a66a6d, 0x8a66a6d, 0x46f033e0, 0x46f033e0, 0x46f033e0, 0xac2c4829, 0xac2c4829, 0xac2c4829, 0xf83ee7aa, 0xcbeaa29b, 0xcbeaa29b, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xb17861b9, 0x4a460c5, 0xb17861b9, 0xe396ad3f, 0x724366e5, 0x724366e5, 0xb5604b13, 0xb5604b13, 0xb5604b13, 0x74f95af9, 0x74f95af9, 0x74f95af9, 0xf0acd1b1, 0xf0acd1b1, 0xf0acd1b1, 0x724366e5, 0xe396ad3f, 0xe396ad3f, 0x724366e5, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xf4baecd1, 0x8ac6b394, 0xf4baecd1, 0x18b955f, 0x1c955882, 0x1c955882, 0x96ffb153, 0x96ffb153, 0x96ffb153, 0x14a95ee3, 0x14a95ee3, 0x14a95ee3, 0xdb41db9f, 0xdb41db9f, 0xdb41db9f, 0x1c955882, 0x18b955f, 0x18b955f, 0x1c955882, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfd3793dc, 0x2db332c2, 0xfd3793dc, 0xf19ead35, 0x4d266f7a, 0x4d266f7a, 0x12ca05d7, 0x12ca05d7, 0x12ca05d7, 0x5e9f5691, 0x5e9f5691, 0x5e9f5691, 0x7c3ee46f, 0x7c3ee46f, 0x7c3ee46f, 0x4d266f7a, 0xf19ead35, 0xf19ead35, 0x4d266f7a, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xeeea770, 0x17ff444a, 0xeeea770, 0xa59a9772, 0x1ed9d731, 0x1ed9d731, 0x1d44b9f2, 0x1d44b9f2, 0x1d44b9f2, 0xa945f97a, 0xa945f97a, 0xa945f97a, 0xa469e539, 0xa469e539, 0xa469e539, 0x1ed9d731, 0xa59a9772, 0xa59a9772, 0x1ed9d731, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x6efb4dad, 0x369b71a, 0x6efb4dad, 0xa8e61767, 0x9813a416, 0x9813a416, 0x3b4bf94, 0x3b4bf94, 0x3b4bf94, 0x841bb3b, 0x841bb3b, 0x841bb3b, 0x1c4379a2, 0x1c4379a2, 0x1c4379a2, 0x9813a416, 0xa8e61767, 0xa8e61767, 0x9813a416, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x179dd979, 0x1de58cc1, 0x179dd979, 0x9213e849, 0x5fcf013d, 0x5fcf013d, 0x349a05dc, 0x349a05dc, 0x349a05dc, 0xc5d900c1, 0xc5d900c1, 0xc5d900c1, 0x82260346, 0x82260346, 0x82260346, 0x5fcf013d, 0x9213e849, 0x9213e849, 0x5fcf013d, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5d07b0aa, 0x2682b6f8, 0x5d07b0aa, 0x5d4ca9c1, 0xdd28f52b, 0xdd28f52b, 0xd4dbe6e9, 0xd4dbe6e9, 0xd4dbe6e9, 0xa9cda12d, 0xa9cda12d, 0xa9cda12d, 0xcaff7f07, 0xcaff7f07, 0xcaff7f07, 0xdd28f52b, 0x5d4ca9c1, 0x5d4ca9c1, 0xdd28f52b, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x78b258dc, 0x5543ab2b, 0x78b258dc, 0x31d615b5, 0x59c36f00, 0x59c36f00, 0xc73a1033, 0xc73a1033, 0xc73a1033, 0x9b2810d1, 0x9b2810d1, 0x9b2810d1, 0xde64244f, 0xde64244f, 0xde64244f, 0x59c36f00, 0x31d615b5, 0x31d615b5, 0x59c36f00, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8cfc9a2, 0xe48bee7d, 0x8cfc9a2, 0x545c7a2d, 0xaa4593fe, 0xaa4593fe, 0xb30e5e1c, 0xb30e5e1c, 0xb30e5e1c, 0x6989f127, 0x6989f127, 0x6989f127, 0x5585e16e, 0x5585e16e, 0x5585e16e, 0xaa4593fe, 0x545c7a2d, 0x545c7a2d, 0xaa4593fe, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x82e0293c, 0xef26570d, 0x82e0293c, 0x572a3b40, 0xc9cbf769, 0xc9cbf769, 0x9056af5f, 0x9056af5f, 0x9056af5f, 0xa4bf8871, 0xa4bf8871, 0xa4bf8871, 0x86dbe0fa, 0x86dbe0fa, 0x86dbe0fa, 0xc9cbf769, 0x572a3b40, 0x572a3b40, 0xc9cbf769, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xbc06fffc, 0x364aa5c7, 0xbc06fffc, 0x7a1ba536, 0x9813a416, 0x9813a416, 0xabce4a73, 0xabce4a73, 0xabce4a73, 0xa03b4edc, 0xa03b4edc, 0xa03b4edc, 0xb4398c45, 0xb4398c45, 0xb4398c45, 0x9813a416, 0x7a1ba536, 0x7a1ba536, 0x9813a416, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb0b4fa0c, 0xc7b12a4e, 0xb0b4fa0c, 0x353acb3c, 0x5fcf013d, 0x5fcf013d, 0xe300c643, 0xe300c643, 0xe300c643, 0x1243c35e, 0x1243c35e, 0x1243c35e, 0x55bcc0d9, 0x55bcc0d9, 0x55bcc0d9, 0x5fcf013d, 0x353acb3c, 0x353acb3c, 0x5fcf013d, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x20eb710, 0x97329eb5, 0x20eb710, 0x245ae7b, 0xdd28f52b, 0xdd28f52b, 0x7a1d74fd, 0x7a1d74fd, 0x7a1d74fd, 0x70b3339, 0x70b3339, 0x70b3339, 0x6439ed13, 0x6439ed13, 0x6439ed13, 0xdd28f52b, 0x245ae7b, 0x245ae7b, 0xdd28f52b, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x78b258dc, 0x5543ab2b, 0x78b258dc, 0x31d615b5, 0x59c36f00, 0x59c36f00, 0xc73a1033, 0xc73a1033, 0xc73a1033, 0x9b2810d1, 0x9b2810d1, 0x9b2810d1, 0xde64244f, 0xde64244f, 0xde64244f, 0x59c36f00, 0x31d615b5, 0x31d615b5, 0x59c36f00, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x8cfc9a2, 0xe48bee7d, 0x8cfc9a2, 0x545c7a2d, 0xaa4593fe, 0xaa4593fe, 0xb30e5e1c, 0xb30e5e1c, 0xb30e5e1c, 0x6989f127, 0x6989f127, 0x6989f127, 0x5585e16e, 0x5585e16e, 0x5585e16e, 0xaa4593fe, 0x545c7a2d, 0x545c7a2d, 0xaa4593fe, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x82e0293c, 0xef26570d, 0x82e0293c, 0x572a3b40, 0xc9cbf769, 0xc9cbf769, 0x9056af5f, 0x9056af5f, 0x9056af5f, 0xa4bf8871, 0xa4bf8871, 0xa4bf8871, 0x86dbe0fa, 0x86dbe0fa, 0x86dbe0fa, 0xc9cbf769, 0x572a3b40, 0x572a3b40, 0xc9cbf769, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x5e677bb0, 0x10a60901, 0x5e677bb0, 0x2c04f42d, 0x5387d57f, 0x5387d57f, 0x8c4b382b, 0x8c4b382b, 0x8c4b382b, 0xaf2afe21, 0xaf2afe21, 0xaf2afe21, 0x771bbec, 0x771bbec, 0x771bbec, 0x5387d57f, 0x2c04f42d, 0x2c04f42d, 0x5387d57f, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x9cd2ed2a, 0xf0d4a2d6, 0x9cd2ed2a, 0x850d763c, 0xf83ee7aa, 0xf83ee7aa, 0xd8cdc484, 0xd8cdc484, 0xd8cdc484, 0x1cfa4f65, 0x1cfa4f65, 0x1cfa4f65, 0xd3e41c77, 0xd3e41c77, 0xd3e41c77, 0xf83ee7aa, 0x850d763c, 0x850d763c, 0xf83ee7aa, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x9a851848, 0xa76e7d2d, 0x9a851848, 0x7987b0ef, 0x724366e5, 0x724366e5, 0xdcd2c529, 0xdcd2c529, 0xdcd2c529, 0x3f220d4f, 0x3f220d4f, 0x3f220d4f, 0x81609837, 0x81609837, 0x81609837, 0x724366e5, 0x7987b0ef, 0x7987b0ef, 0x724366e5, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x97619707, 0x6f50f077, 0x97619707, 0x2fc44597, 0x5387d57f, 0x5387d57f, 0x50f935e4, 0x50f935e4, 0x50f935e4, 0xae2c6aed, 0xae2c6aed, 0xae2c6aed, 0xa6d4f3de, 0xa6d4f3de, 0xa6d4f3de, 0x5387d57f, 0x2fc44597, 0x2fc44597, 0x5387d57f, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa1fd9dc7, 0xe73a78a6, 0xa1fd9dc7, 0x716ff77f, 0xf83ee7aa, 0xf83ee7aa, 0x78dde9c4, 0x78dde9c4, 0x78dde9c4, 0x368bb049, 0x368bb049, 0x368bb049, 0xdc57cb80, 0xdc57cb80, 0xdc57cb80, 0xf83ee7aa, 0x716ff77f, 0x716ff77f, 0xf83ee7aa, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xbb37d363, 0x5f4bb8c9, 0xbb37d363, 0xe9d91fe5, 0x724366e5, 0x724366e5, 0x9a5fce9e, 0x9a5fce9e, 0x9a5fce9e, 0x5bc6df74, 0x5bc6df74, 0x5bc6df74, 0xdf93543c, 0xdf93543c, 0xdf93543c, 0x724366e5, 0xe9d91fe5, 0xe9d91fe5, 0x724366e5, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xd073c0ae, 0x88549625, 0xd073c0ae, 0x2542b920, 0x1c955882, 0x1c955882, 0xf8a21e7d, 0xf8a21e7d, 0xf8a21e7d, 0x7af4f1cd, 0x7af4f1cd, 0x7af4f1cd, 0xb51c74b1, 0xb51c74b1, 0xb51c74b1, 0x1c955882, 0x2542b920, 0x2542b920, 0x1c955882, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x11271f36, 0x6ea425b6, 0x11271f36, 0x1d8e21df, 0x4d266f7a, 0x4d266f7a, 0xbc41aef9, 0xbc41aef9, 0xbc41aef9, 0xf014fdbf, 0xf014fdbf, 0xf014fdbf, 0xd2b54f41, 0xd2b54f41, 0xd2b54f41, 0x4d266f7a, 0x1d8e21df, 0x1d8e21df, 0x4d266f7a, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x58a685bc, 0x38ce9715, 0x58a685bc, 0xf3d2b5be, 0x1ed9d731, 0x1ed9d731, 0x8cc54d61, 0x8cc54d61, 0x8cc54d61, 0x38c40de9, 0x38c40de9, 0x38c40de9, 0x35e811aa, 0x35e811aa, 0x35e811aa, 0x1ed9d731, 0xf3d2b5be, 0xf3d2b5be, 0x1ed9d731, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x5e677bb0, 0x10a60901, 0x5e677bb0, 0x2c04f42d, 0x5387d57f, 0x5387d57f, 0x8c4b382b, 0x8c4b382b, 0x8c4b382b, 0xaf2afe21, 0xaf2afe21, 0xaf2afe21, 0x771bbec, 0x771bbec, 0x771bbec, 0x5387d57f, 0x2c04f42d, 0x2c04f42d, 0x5387d57f, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x9cd2ed2a, 0xf0d4a2d6, 0x9cd2ed2a, 0x850d763c, 0xf83ee7aa, 0xf83ee7aa, 0xd8cdc484, 0xd8cdc484, 0xd8cdc484, 0x1cfa4f65, 0x1cfa4f65, 0x1cfa4f65, 0xd3e41c77, 0xd3e41c77, 0xd3e41c77, 0xf83ee7aa, 0x850d763c, 0x850d763c, 0xf83ee7aa, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x9a851848, 0xa76e7d2d, 0x9a851848, 0x7987b0ef, 0x724366e5, 0x724366e5, 0xdcd2c529, 0xdcd2c529, 0xdcd2c529, 0x3f220d4f, 0x3f220d4f, 0x3f220d4f, 0x81609837, 0x81609837, 0x81609837, 0x724366e5, 0x7987b0ef, 0x7987b0ef, 0x724366e5, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x97619707, 0x6f50f077, 0x97619707, 0x2fc44597, 0x5387d57f, 0x5387d57f, 0x50f935e4, 0x50f935e4, 0x50f935e4, 0xae2c6aed, 0xae2c6aed, 0xae2c6aed, 0xa6d4f3de, 0xa6d4f3de, 0xa6d4f3de, 0x5387d57f, 0x2fc44597, 0x2fc44597, 0x5387d57f, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa1fd9dc7, 0xe73a78a6, 0xa1fd9dc7, 0x716ff77f, 0xf83ee7aa, 0xf83ee7aa, 0x78dde9c4, 0x78dde9c4, 0x78dde9c4, 0x368bb049, 0x368bb049, 0x368bb049, 0xdc57cb80, 0xdc57cb80, 0xdc57cb80, 0xf83ee7aa, 0x716ff77f, 0x716ff77f, 0xf83ee7aa, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xbb37d363, 0x5f4bb8c9, 0xbb37d363, 0xe9d91fe5, 0x724366e5, 0x724366e5, 0x9a5fce9e, 0x9a5fce9e, 0x9a5fce9e, 0x5bc6df74, 0x5bc6df74, 0x5bc6df74, 0xdf93543c, 0xdf93543c, 0xdf93543c, 0x724366e5, 0xe9d91fe5, 0xe9d91fe5, 0x724366e5, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xd073c0ae, 0x88549625, 0xd073c0ae, 0x2542b920, 0x1c955882, 0x1c955882, 0xf8a21e7d, 0xf8a21e7d, 0xf8a21e7d, 0x7af4f1cd, 0x7af4f1cd, 0x7af4f1cd, 0xb51c74b1, 0xb51c74b1, 0xb51c74b1, 0x1c955882, 0x2542b920, 0x2542b920, 0x1c955882, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x11271f36, 0x6ea425b6, 0x11271f36, 0x1d8e21df, 0x4d266f7a, 0x4d266f7a, 0xbc41aef9, 0xbc41aef9, 0xbc41aef9, 0xf014fdbf, 0xf014fdbf, 0xf014fdbf, 0xd2b54f41, 0xd2b54f41, 0xd2b54f41, 0x4d266f7a, 0x1d8e21df, 0x1d8e21df, 0x4d266f7a, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x58a685bc, 0x38ce9715, 0x58a685bc, 0xf3d2b5be, 0x1ed9d731, 0x1ed9d731, 0x8cc54d61, 0x8cc54d61, 0x8cc54d61, 0x38c40de9, 0x38c40de9, 0x38c40de9, 0x35e811aa, 0x35e811aa, 0x35e811aa, 0x1ed9d731, 0xf3d2b5be, 0xf3d2b5be, 0x1ed9d731, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xbc06fffc, 0x364aa5c7, 0xbc06fffc, 0x7a1ba536, 0x9813a416, 0x9813a416, 0xabce4a73, 0xabce4a73, 0xabce4a73, 0xa03b4edc, 0xa03b4edc, 0xa03b4edc, 0xb4398c45, 0xb4398c45, 0xb4398c45, 0x9813a416, 0x7a1ba536, 0x7a1ba536, 0x9813a416, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb0b4fa0c, 0xc7b12a4e, 0xb0b4fa0c, 0x353acb3c, 0x5fcf013d, 0x5fcf013d, 0xe300c643, 0xe300c643, 0xe300c643, 0x1243c35e, 0x1243c35e, 0x1243c35e, 0x55bcc0d9, 0x55bcc0d9, 0x55bcc0d9, 0x5fcf013d, 0x353acb3c, 0x353acb3c, 0x5fcf013d, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x20eb710, 0x97329eb5, 0x20eb710, 0x245ae7b, 0xdd28f52b, 0xdd28f52b, 0x7a1d74fd, 0x7a1d74fd, 0x7a1d74fd, 0x70b3339, 0x70b3339, 0x70b3339, 0x6439ed13, 0x6439ed13, 0x6439ed13, 0xdd28f52b, 0x245ae7b, 0x245ae7b, 0xdd28f52b, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xe229a7f0, 0x2a317e27, 0xe229a7f0, 0xab4dea99, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xab4dea99, 0xab4dea99, 0x59c36f00, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8639bc17, 0x91a6078e, 0x8639bc17, 0xdaaa0f98, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0xdaaa0f98, 0xdaaa0f98, 0xaa4593fe, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe6177bfd, 0xaa145d1, 0xe6177bfd, 0x33dd6981, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x33dd6981, 0x33dd6981, 0xc9cbf769, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xec257a83, 0x19d65004, 0xec257a83, 0x2a382049, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0x2a382049, 0x2a382049, 0x9813a416, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x3255e8e, 0xdce0e3fa, 0x3255e8e, 0x86ab6fbe, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0x86ab6fbe, 0x86ab6fbe, 0x5fcf013d, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x673a2dc2, 0x88c6d4d9, 0x673a2dc2, 0x677134a9, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0x677134a9, 0x677134a9, 0xdd28f52b, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xe229a7f0, 0x2a317e27, 0xe229a7f0, 0xab4dea99, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xab4dea99, 0xab4dea99, 0x59c36f00, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x8639bc17, 0x91a6078e, 0x8639bc17, 0xdaaa0f98, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0xdaaa0f98, 0xdaaa0f98, 0xaa4593fe, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xe6177bfd, 0xaa145d1, 0xe6177bfd, 0x33dd6981, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x33dd6981, 0x33dd6981, 0xc9cbf769, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x29e73016, 0x795de1bc, 0x29e73016, 0x5b84bf8b, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0x5b84bf8b, 0x5b84bf8b, 0x5387d57f, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa14eb75d, 0xa45fd855, 0xa14eb75d, 0xb8912c4b, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0xb8912c4b, 0xb8912c4b, 0xf83ee7aa, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xa97a7639, 0xb31826b0, 0xa97a7639, 0x4a78de9e, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x4a78de9e, 0x4a78de9e, 0x724366e5, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xd37ff64e, 0x4bc20364, 0xd37ff64e, 0x6bda24de, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0x6bda24de, 0x6bda24de, 0x5387d57f, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x83a05a57, 0xbb856709, 0x83a05a57, 0x533230ef, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0x533230ef, 0x533230ef, 0xf83ee7aa, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x6bb86239, 0xfa8581a4, 0x6bb86239, 0x3956aebf, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0x3956aebf, 0x3956aebf, 0x724366e5, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x8c1945b9, 0xd6bd3ceb, 0x8c1945b9, 0x79283c37, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0x79283c37, 0x79283c37, 0x1c955882, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x1a7618f6, 0xf685e337, 0x1a7618f6, 0x16df261f, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0x16df261f, 0x16df261f, 0x4d266f7a, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x86d73465, 0x85c814e6, 0x86d73465, 0x2da30467, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0x2da30467, 0x2da30467, 0x1ed9d731, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x29e73016, 0x795de1bc, 0x29e73016, 0x5b84bf8b, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0x5b84bf8b, 0x5b84bf8b, 0x5387d57f, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa14eb75d, 0xa45fd855, 0xa14eb75d, 0xb8912c4b, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0xb8912c4b, 0xb8912c4b, 0xf83ee7aa, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xa97a7639, 0xb31826b0, 0xa97a7639, 0x4a78de9e, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x4a78de9e, 0x4a78de9e, 0x724366e5, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xd37ff64e, 0x4bc20364, 0xd37ff64e, 0x6bda24de, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0x6bda24de, 0x6bda24de, 0x5387d57f, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x83a05a57, 0xbb856709, 0x83a05a57, 0x533230ef, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0x533230ef, 0x533230ef, 0xf83ee7aa, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x6bb86239, 0xfa8581a4, 0x6bb86239, 0x3956aebf, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0x3956aebf, 0x3956aebf, 0x724366e5, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x8c1945b9, 0xd6bd3ceb, 0x8c1945b9, 0x79283c37, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0x79283c37, 0x79283c37, 0x1c955882, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x1a7618f6, 0xf685e337, 0x1a7618f6, 0x16df261f, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0x16df261f, 0x16df261f, 0x4d266f7a, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x86d73465, 0x85c814e6, 0x86d73465, 0x2da30467, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0x2da30467, 0x2da30467, 0x1ed9d731, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xec257a83, 0x19d65004, 0xec257a83, 0x2a382049, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0x2a382049, 0x2a382049, 0x9813a416, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x3255e8e, 0xdce0e3fa, 0x3255e8e, 0x86ab6fbe, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0x86ab6fbe, 0x86ab6fbe, 0x5fcf013d, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x673a2dc2, 0x88c6d4d9, 0x673a2dc2, 0x677134a9, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0x677134a9, 0x677134a9, 0xdd28f52b, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xae107385, 0xbf8fb82e, 0xae107385, 0xe7743eec, 0x59c36f00, 0x59c36f00, 0xebc12bda, 0xebc12bda, 0xebc12bda, 0xb7d32b38, 0xb7d32b38, 0xb7d32b38, 0xf29f1fa6, 0xf29f1fa6, 0xf29f1fa6, 0x59c36f00, 0xe7743eec, 0xe7743eec, 0x59c36f00, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xfbcace84, 0x6f1a084e, 0xfbcace84, 0xa7597d0b, 0xaa4593fe, 0xaa4593fe, 0x3ae147d7, 0x3ae147d7, 0x3ae147d7, 0xe066e8ec, 0xe066e8ec, 0xe066e8ec, 0xdc6af8a5, 0xdc6af8a5, 0xdc6af8a5, 0xaa4593fe, 0xa7597d0b, 0xa7597d0b, 0xaa4593fe, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xffa6bec, 0x6dcf8053, 0xffa6bec, 0xda307990, 0xc9cbf769, 0xc9cbf769, 0x5a4cfacb, 0x5a4cfacb, 0x5a4cfacb, 0x6ea5dde5, 0x6ea5dde5, 0x6ea5dde5, 0x4cc1b56e, 0x4cc1b56e, 0x4cc1b56e, 0xc9cbf769, 0xda307990, 0xda307990, 0xc9cbf769, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xfa42c2ea, 0xea757246, 0xfa42c2ea, 0x3c5f9820, 0x9813a416, 0x9813a416, 0x290af708, 0x290af708, 0x290af708, 0x22fff3a7, 0x22fff3a7, 0x22fff3a7, 0x36fd313e, 0x36fd313e, 0x36fd313e, 0x9813a416, 0x3c5f9820, 0x3c5f9820, 0x9813a416, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x2ca306b9, 0x97e67cf5, 0x2ca306b9, 0xa92d3789, 0x5fcf013d, 0x5fcf013d, 0x5b42cac9, 0x5b42cac9, 0x5b42cac9, 0xaa01cfd4, 0xaa01cfd4, 0xaa01cfd4, 0xedfecc53, 0xedfecc53, 0xedfecc53, 0x5fcf013d, 0xa92d3789, 0xa92d3789, 0x5fcf013d, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3a839aae, 0x89837837, 0x3a839aae, 0x3ac883c5, 0xdd28f52b, 0xdd28f52b, 0x8de395a5, 0x8de395a5, 0x8de395a5, 0xf0f5d261, 0xf0f5d261, 0xf0f5d261, 0x93c70c4b, 0x93c70c4b, 0x93c70c4b, 0xdd28f52b, 0x3ac883c5, 0x3ac883c5, 0xdd28f52b, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xae107385, 0xbf8fb82e, 0xae107385, 0xe7743eec, 0x59c36f00, 0x59c36f00, 0xebc12bda, 0xebc12bda, 0xebc12bda, 0xb7d32b38, 0xb7d32b38, 0xb7d32b38, 0xf29f1fa6, 0xf29f1fa6, 0xf29f1fa6, 0x59c36f00, 0xe7743eec, 0xe7743eec, 0x59c36f00, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xfbcace84, 0x6f1a084e, 0xfbcace84, 0xa7597d0b, 0xaa4593fe, 0xaa4593fe, 0x3ae147d7, 0x3ae147d7, 0x3ae147d7, 0xe066e8ec, 0xe066e8ec, 0xe066e8ec, 0xdc6af8a5, 0xdc6af8a5, 0xdc6af8a5, 0xaa4593fe, 0xa7597d0b, 0xa7597d0b, 0xaa4593fe, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xffa6bec, 0x6dcf8053, 0xffa6bec, 0xda307990, 0xc9cbf769, 0xc9cbf769, 0x5a4cfacb, 0x5a4cfacb, 0x5a4cfacb, 0x6ea5dde5, 0x6ea5dde5, 0x6ea5dde5, 0x4cc1b56e, 0x4cc1b56e, 0x4cc1b56e, 0xc9cbf769, 0xda307990, 0xda307990, 0xc9cbf769, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x46bfc6c9, 0x8e4ed344, 0x46bfc6c9, 0x34dc4954, 0x5387d57f, 0x5387d57f, 0xc95c2bb9, 0xc95c2bb9, 0xc95c2bb9, 0xea3dedb3, 0xea3dedb3, 0xea3dedb3, 0x4266a87e, 0x4266a87e, 0x4266a87e, 0x5387d57f, 0x34dc4954, 0x34dc4954, 0x5387d57f, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf8fa8dd6, 0x46e7e0cb, 0xf8fa8dd6, 0xe12516c0, 0xf83ee7aa, 0xf83ee7aa, 0xff88f7e1, 0xff88f7e1, 0xff88f7e1, 0x3bbf7c00, 0x3bbf7c00, 0x3bbf7c00, 0xf4a12f12, 0xf4a12f12, 0xf4a12f12, 0xf83ee7aa, 0xe12516c0, 0xe12516c0, 0xf83ee7aa, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x64084d93, 0x156d5456, 0x64084d93, 0x870ae534, 0x724366e5, 0x724366e5, 0x4c4f3106, 0x4c4f3106, 0x4c4f3106, 0xafbff960, 0xafbff960, 0xafbff960, 0x11fd6c18, 0x11fd6c18, 0x11fd6c18, 0x724366e5, 0x870ae534, 0x870ae534, 0x724366e5, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xc2887c69, 0xe0257645, 0xc2887c69, 0x7a2daef9, 0x5387d57f, 0x5387d57f, 0xf127fce0, 0xf127fce0, 0xf127fce0, 0xff2a3e9, 0xff2a3e9, 0xff2a3e9, 0x70a3ada, 0x70a3ada, 0x70a3ada, 0x5387d57f, 0x7a2daef9, 0x7a2daef9, 0x5387d57f, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8486eeef, 0x5e732c64, 0x8486eeef, 0x54148457, 0xf83ee7aa, 0xf83ee7aa, 0x143cae9e, 0x143cae9e, 0x143cae9e, 0x5a6af713, 0x5a6af713, 0x5a6af713, 0xb0b68cda, 0xb0b68cda, 0xb0b68cda, 0xf83ee7aa, 0x54148457, 0x54148457, 0xf83ee7aa, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xaad4c3b8, 0x90ce661c, 0xaad4c3b8, 0xf83a0f3e, 0x724366e5, 0x724366e5, 0xa7ac6799, 0xa7ac6799, 0xa7ac6799, 0x66357673, 0x66357673, 0x66357673, 0xe260fd3b, 0xe260fd3b, 0xe260fd3b, 0x724366e5, 0xf83a0f3e, 0xf83a0f3e, 0x724366e5, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x60563832, 0xa0d8e41f, 0x60563832, 0x956741bc, 0x1c955882, 0x1c955882, 0x9abc058d, 0x9abc058d, 0x9abc058d, 0x18eaea3d, 0x18eaea3d, 0x18eaea3d, 0xd7026f41, 0xd7026f41, 0xd7026f41, 0x1c955882, 0x956741bc, 0x956741bc, 0x1c955882, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x9f11c3db, 0x5e6faffc, 0x9f11c3db, 0x93b8fd32, 0x4d266f7a, 0x4d266f7a, 0xdddadbb1, 0xdddadbb1, 0xdddadbb1, 0x918f88f7, 0x918f88f7, 0x918f88f7, 0xb32e3a09, 0xb32e3a09, 0xb32e3a09, 0x4d266f7a, 0x93b8fd32, 0x93b8fd32, 0x4d266f7a, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd58db96, 0x29ecb6a6, 0xd58db96, 0xa62ceb94, 0x1ed9d731, 0x1ed9d731, 0x65cad63c, 0x65cad63c, 0x65cad63c, 0xd1cb96b4, 0xd1cb96b4, 0xd1cb96b4, 0xdce78af7, 0xdce78af7, 0xdce78af7, 0x1ed9d731, 0xa62ceb94, 0xa62ceb94, 0x1ed9d731, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x46bfc6c9, 0x8e4ed344, 0x46bfc6c9, 0x34dc4954, 0x5387d57f, 0x5387d57f, 0xc95c2bb9, 0xc95c2bb9, 0xc95c2bb9, 0xea3dedb3, 0xea3dedb3, 0xea3dedb3, 0x4266a87e, 0x4266a87e, 0x4266a87e, 0x5387d57f, 0x34dc4954, 0x34dc4954, 0x5387d57f, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf8fa8dd6, 0x46e7e0cb, 0xf8fa8dd6, 0xe12516c0, 0xf83ee7aa, 0xf83ee7aa, 0xff88f7e1, 0xff88f7e1, 0xff88f7e1, 0x3bbf7c00, 0x3bbf7c00, 0x3bbf7c00, 0xf4a12f12, 0xf4a12f12, 0xf4a12f12, 0xf83ee7aa, 0xe12516c0, 0xe12516c0, 0xf83ee7aa, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x64084d93, 0x156d5456, 0x64084d93, 0x870ae534, 0x724366e5, 0x724366e5, 0x4c4f3106, 0x4c4f3106, 0x4c4f3106, 0xafbff960, 0xafbff960, 0xafbff960, 0x11fd6c18, 0x11fd6c18, 0x11fd6c18, 0x724366e5, 0x870ae534, 0x870ae534, 0x724366e5, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xc2887c69, 0xe0257645, 0xc2887c69, 0x7a2daef9, 0x5387d57f, 0x5387d57f, 0xf127fce0, 0xf127fce0, 0xf127fce0, 0xff2a3e9, 0xff2a3e9, 0xff2a3e9, 0x70a3ada, 0x70a3ada, 0x70a3ada, 0x5387d57f, 0x7a2daef9, 0x7a2daef9, 0x5387d57f, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8486eeef, 0x5e732c64, 0x8486eeef, 0x54148457, 0xf83ee7aa, 0xf83ee7aa, 0x143cae9e, 0x143cae9e, 0x143cae9e, 0x5a6af713, 0x5a6af713, 0x5a6af713, 0xb0b68cda, 0xb0b68cda, 0xb0b68cda, 0xf83ee7aa, 0x54148457, 0x54148457, 0xf83ee7aa, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xaad4c3b8, 0x90ce661c, 0xaad4c3b8, 0xf83a0f3e, 0x724366e5, 0x724366e5, 0xa7ac6799, 0xa7ac6799, 0xa7ac6799, 0x66357673, 0x66357673, 0x66357673, 0xe260fd3b, 0xe260fd3b, 0xe260fd3b, 0x724366e5, 0xf83a0f3e, 0xf83a0f3e, 0x724366e5, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x60563832, 0xa0d8e41f, 0x60563832, 0x956741bc, 0x1c955882, 0x1c955882, 0x9abc058d, 0x9abc058d, 0x9abc058d, 0x18eaea3d, 0x18eaea3d, 0x18eaea3d, 0xd7026f41, 0xd7026f41, 0xd7026f41, 0x1c955882, 0x956741bc, 0x956741bc, 0x1c955882, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x9f11c3db, 0x5e6faffc, 0x9f11c3db, 0x93b8fd32, 0x4d266f7a, 0x4d266f7a, 0xdddadbb1, 0xdddadbb1, 0xdddadbb1, 0x918f88f7, 0x918f88f7, 0x918f88f7, 0xb32e3a09, 0xb32e3a09, 0xb32e3a09, 0x4d266f7a, 0x93b8fd32, 0x93b8fd32, 0x4d266f7a, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd58db96, 0x29ecb6a6, 0xd58db96, 0xa62ceb94, 0x1ed9d731, 0x1ed9d731, 0x65cad63c, 0x65cad63c, 0x65cad63c, 0xd1cb96b4, 0xd1cb96b4, 0xd1cb96b4, 0xdce78af7, 0xdce78af7, 0xdce78af7, 0x1ed9d731, 0xa62ceb94, 0xa62ceb94, 0x1ed9d731, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xfa42c2ea, 0xea757246, 0xfa42c2ea, 0x3c5f9820, 0x9813a416, 0x9813a416, 0x290af708, 0x290af708, 0x290af708, 0x22fff3a7, 0x22fff3a7, 0x22fff3a7, 0x36fd313e, 0x36fd313e, 0x36fd313e, 0x9813a416, 0x3c5f9820, 0x3c5f9820, 0x9813a416, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x2ca306b9, 0x97e67cf5, 0x2ca306b9, 0xa92d3789, 0x5fcf013d, 0x5fcf013d, 0x5b42cac9, 0x5b42cac9, 0x5b42cac9, 0xaa01cfd4, 0xaa01cfd4, 0xaa01cfd4, 0xedfecc53, 0xedfecc53, 0xedfecc53, 0x5fcf013d, 0xa92d3789, 0xa92d3789, 0x5fcf013d, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3a839aae, 0x89837837, 0x3a839aae, 0x3ac883c5, 0xdd28f52b, 0xdd28f52b, 0x8de395a5, 0x8de395a5, 0x8de395a5, 0xf0f5d261, 0xf0f5d261, 0xf0f5d261, 0x93c70c4b, 0x93c70c4b, 0x93c70c4b, 0xdd28f52b, 0x3ac883c5, 0x3ac883c5, 0xdd28f52b, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbad0b774, 0x11b3aba3, 0xbad0b774, 0xf3b4fa1d, 0x59c36f00, 0x59c36f00, 0x8fd469d6, 0x8fd469d6, 0x8fd469d6, 0xd3c66934, 0xd3c66934, 0xd3c66934, 0x968a5daa, 0x968a5daa, 0x968a5daa, 0x59c36f00, 0xf3b4fa1d, 0xf3b4fa1d, 0x59c36f00, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x65ca84be, 0xf8d1eb4f, 0x65ca84be, 0x39593731, 0xaa4593fe, 0xaa4593fe, 0xdb2e71a5, 0xdb2e71a5, 0xdb2e71a5, 0x1a9de9e, 0x1a9de9e, 0x1a9de9e, 0x3da5ced7, 0x3da5ced7, 0x3da5ced7, 0xaa4593fe, 0x39593731, 0x39593731, 0xaa4593fe, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xdea05d4f, 0xb662c223, 0xdea05d4f, 0xb6a4f33, 0xc9cbf769, 0xc9cbf769, 0xadcc90df, 0xadcc90df, 0xadcc90df, 0x9925b7f1, 0x9925b7f1, 0x9925b7f1, 0xbb41df7a, 0xbb41df7a, 0xbb41df7a, 0xc9cbf769, 0xb6a4f33, 0xb6a4f33, 0xc9cbf769, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x97582aea, 0x106653a, 0x97582aea, 0x51457020, 0x9813a416, 0x9813a416, 0x6fbc18ae, 0x6fbc18ae, 0x6fbc18ae, 0x64491c01, 0x64491c01, 0x64491c01, 0x704bde98, 0x704bde98, 0x704bde98, 0x9813a416, 0x51457020, 0x51457020, 0x9813a416, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x964f65ea, 0x34ae6fb6, 0x964f65ea, 0x13c154da, 0x5fcf013d, 0x5fcf013d, 0xa4ebbaa6, 0xa4ebbaa6, 0xa4ebbaa6, 0x55a8bfbb, 0x55a8bfbb, 0x55a8bfbb, 0x1257bc3c, 0x1257bc3c, 0x1257bc3c, 0x5fcf013d, 0x13c154da, 0x13c154da, 0x5fcf013d, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x75e6834a, 0x28165e16, 0x75e6834a, 0x75ad9a21, 0xdd28f52b, 0xdd28f52b, 0x6ae4a429, 0x6ae4a429, 0x6ae4a429, 0x17f2e3ed, 0x17f2e3ed, 0x17f2e3ed, 0x74c03dc7, 0x74c03dc7, 0x74c03dc7, 0xdd28f52b, 0x75ad9a21, 0x75ad9a21, 0xdd28f52b, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xbad0b774, 0x11b3aba3, 0xbad0b774, 0xf3b4fa1d, 0x59c36f00, 0x59c36f00, 0x8fd469d6, 0x8fd469d6, 0x8fd469d6, 0xd3c66934, 0xd3c66934, 0xd3c66934, 0x968a5daa, 0x968a5daa, 0x968a5daa, 0x59c36f00, 0xf3b4fa1d, 0xf3b4fa1d, 0x59c36f00, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x65ca84be, 0xf8d1eb4f, 0x65ca84be, 0x39593731, 0xaa4593fe, 0xaa4593fe, 0xdb2e71a5, 0xdb2e71a5, 0xdb2e71a5, 0x1a9de9e, 0x1a9de9e, 0x1a9de9e, 0x3da5ced7, 0x3da5ced7, 0x3da5ced7, 0xaa4593fe, 0x39593731, 0x39593731, 0xaa4593fe, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xdea05d4f, 0xb662c223, 0xdea05d4f, 0xb6a4f33, 0xc9cbf769, 0xc9cbf769, 0xadcc90df, 0xadcc90df, 0xadcc90df, 0x9925b7f1, 0x9925b7f1, 0x9925b7f1, 0xbb41df7a, 0xbb41df7a, 0xbb41df7a, 0xc9cbf769, 0xb6a4f33, 0xb6a4f33, 0xc9cbf769, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xb382d720, 0xb8de6436, 0xb382d720, 0xc1e158bd, 0x5387d57f, 0x5387d57f, 0x929048c4, 0x929048c4, 0x929048c4, 0xb1f18ece, 0xb1f18ece, 0xb1f18ece, 0x19aacb03, 0x19aacb03, 0x19aacb03, 0x5387d57f, 0xc1e158bd, 0xc1e158bd, 0x5387d57f, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x3f3d9790, 0xa35395ab, 0x3f3d9790, 0x26e20c86, 0xf83ee7aa, 0xf83ee7aa, 0xf9737ced, 0xf9737ced, 0xf9737ced, 0x3d44f70c, 0x3d44f70c, 0x3d44f70c, 0xf25aa41e, 0xf25aa41e, 0xf25aa41e, 0xf83ee7aa, 0x26e20c86, 0x26e20c86, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x758a32e3, 0xdee0d5cb, 0x758a32e3, 0x96889a44, 0x724366e5, 0x724366e5, 0xb047ef22, 0xb047ef22, 0xb047ef22, 0x53b72744, 0x53b72744, 0x53b72744, 0xedf5b23c, 0xedf5b23c, 0xedf5b23c, 0x724366e5, 0x96889a44, 0x96889a44, 0x724366e5, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x1dc9c0fa, 0x33ac9864, 0x1dc9c0fa, 0xa56c126a, 0x5387d57f, 0x5387d57f, 0xba18c4c3, 0xba18c4c3, 0xba18c4c3, 0x44cd9bca, 0x44cd9bca, 0x44cd9bca, 0x4c3502f9, 0x4c3502f9, 0x4c3502f9, 0x5387d57f, 0xa56c126a, 0xa56c126a, 0x5387d57f, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd974fae3, 0x3ccb6dc6, 0xd974fae3, 0x9e6905b, 0xf83ee7aa, 0xf83ee7aa, 0xc06251ed, 0xc06251ed, 0xc06251ed, 0x8e340860, 0x8e340860, 0x8e340860, 0x64e873a9, 0x64e873a9, 0x64e873a9, 0xf83ee7aa, 0x9e6905b, 0x9e6905b, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xe1a82093, 0xb564e19c, 0xe1a82093, 0xb346ec15, 0x724366e5, 0x724366e5, 0x97406bcb, 0x97406bcb, 0x97406bcb, 0x56d97a21, 0x56d97a21, 0x56d97a21, 0xd28cf169, 0xd28cf169, 0xd28cf169, 0x724366e5, 0xb346ec15, 0xb346ec15, 0x724366e5, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xd60d9c2e, 0x8d9d3fca, 0xd60d9c2e, 0x233ce5a0, 0x1c955882, 0x1c955882, 0xf3109705, 0xf3109705, 0xf3109705, 0x714678b5, 0x714678b5, 0x714678b5, 0xbeaefdc9, 0xbeaefdc9, 0xbeaefdc9, 0x1c955882, 0x233ce5a0, 0x233ce5a0, 0x1c955882, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8ae42c6c, 0xbf04c68c, 0x8ae42c6c, 0x864d1285, 0x4d266f7a, 0x4d266f7a, 0xdf5e9f05, 0xdf5e9f05, 0xdf5e9f05, 0x930bcc43, 0x930bcc43, 0x930bcc43, 0xb1aa7ebd, 0xb1aa7ebd, 0xb1aa7ebd, 0x4d266f7a, 0x864d1285, 0x864d1285, 0x4d266f7a, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xbb7bd38a, 0x76b75720, 0xbb7bd38a, 0x100fe388, 0x1ed9d731, 0x1ed9d731, 0x9dccb1ba, 0x9dccb1ba, 0x9dccb1ba, 0x29cdf132, 0x29cdf132, 0x29cdf132, 0x24e1ed71, 0x24e1ed71, 0x24e1ed71, 0x1ed9d731, 0x100fe388, 0x100fe388, 0x1ed9d731, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xb382d720, 0xb8de6436, 0xb382d720, 0xc1e158bd, 0x5387d57f, 0x5387d57f, 0x929048c4, 0x929048c4, 0x929048c4, 0xb1f18ece, 0xb1f18ece, 0xb1f18ece, 0x19aacb03, 0x19aacb03, 0x19aacb03, 0x5387d57f, 0xc1e158bd, 0xc1e158bd, 0x5387d57f, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x3f3d9790, 0xa35395ab, 0x3f3d9790, 0x26e20c86, 0xf83ee7aa, 0xf83ee7aa, 0xf9737ced, 0xf9737ced, 0xf9737ced, 0x3d44f70c, 0x3d44f70c, 0x3d44f70c, 0xf25aa41e, 0xf25aa41e, 0xf25aa41e, 0xf83ee7aa, 0x26e20c86, 0x26e20c86, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x758a32e3, 0xdee0d5cb, 0x758a32e3, 0x96889a44, 0x724366e5, 0x724366e5, 0xb047ef22, 0xb047ef22, 0xb047ef22, 0x53b72744, 0x53b72744, 0x53b72744, 0xedf5b23c, 0xedf5b23c, 0xedf5b23c, 0x724366e5, 0x96889a44, 0x96889a44, 0x724366e5, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x1dc9c0fa, 0x33ac9864, 0x1dc9c0fa, 0xa56c126a, 0x5387d57f, 0x5387d57f, 0xba18c4c3, 0xba18c4c3, 0xba18c4c3, 0x44cd9bca, 0x44cd9bca, 0x44cd9bca, 0x4c3502f9, 0x4c3502f9, 0x4c3502f9, 0x5387d57f, 0xa56c126a, 0xa56c126a, 0x5387d57f, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd974fae3, 0x3ccb6dc6, 0xd974fae3, 0x9e6905b, 0xf83ee7aa, 0xf83ee7aa, 0xc06251ed, 0xc06251ed, 0xc06251ed, 0x8e340860, 0x8e340860, 0x8e340860, 0x64e873a9, 0x64e873a9, 0x64e873a9, 0xf83ee7aa, 0x9e6905b, 0x9e6905b, 0xf83ee7aa, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xe1a82093, 0xb564e19c, 0xe1a82093, 0xb346ec15, 0x724366e5, 0x724366e5, 0x97406bcb, 0x97406bcb, 0x97406bcb, 0x56d97a21, 0x56d97a21, 0x56d97a21, 0xd28cf169, 0xd28cf169, 0xd28cf169, 0x724366e5, 0xb346ec15, 0xb346ec15, 0x724366e5, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xd60d9c2e, 0x8d9d3fca, 0xd60d9c2e, 0x233ce5a0, 0x1c955882, 0x1c955882, 0xf3109705, 0xf3109705, 0xf3109705, 0x714678b5, 0x714678b5, 0x714678b5, 0xbeaefdc9, 0xbeaefdc9, 0xbeaefdc9, 0x1c955882, 0x233ce5a0, 0x233ce5a0, 0x1c955882, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8ae42c6c, 0xbf04c68c, 0x8ae42c6c, 0x864d1285, 0x4d266f7a, 0x4d266f7a, 0xdf5e9f05, 0xdf5e9f05, 0xdf5e9f05, 0x930bcc43, 0x930bcc43, 0x930bcc43, 0xb1aa7ebd, 0xb1aa7ebd, 0xb1aa7ebd, 0x4d266f7a, 0x864d1285, 0x864d1285, 0x4d266f7a, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xbb7bd38a, 0x76b75720, 0xbb7bd38a, 0x100fe388, 0x1ed9d731, 0x1ed9d731, 0x9dccb1ba, 0x9dccb1ba, 0x9dccb1ba, 0x29cdf132, 0x29cdf132, 0x29cdf132, 0x24e1ed71, 0x24e1ed71, 0x24e1ed71, 0x1ed9d731, 0x100fe388, 0x100fe388, 0x1ed9d731, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x97582aea, 0x106653a, 0x97582aea, 0x51457020, 0x9813a416, 0x9813a416, 0x6fbc18ae, 0x6fbc18ae, 0x6fbc18ae, 0x64491c01, 0x64491c01, 0x64491c01, 0x704bde98, 0x704bde98, 0x704bde98, 0x9813a416, 0x51457020, 0x51457020, 0x9813a416, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x964f65ea, 0x34ae6fb6, 0x964f65ea, 0x13c154da, 0x5fcf013d, 0x5fcf013d, 0xa4ebbaa6, 0xa4ebbaa6, 0xa4ebbaa6, 0x55a8bfbb, 0x55a8bfbb, 0x55a8bfbb, 0x1257bc3c, 0x1257bc3c, 0x1257bc3c, 0x5fcf013d, 0x13c154da, 0x13c154da, 0x5fcf013d, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x75e6834a, 0x28165e16, 0x75e6834a, 0x75ad9a21, 0xdd28f52b, 0xdd28f52b, 0x6ae4a429, 0x6ae4a429, 0x6ae4a429, 0x17f2e3ed, 0x17f2e3ed, 0x17f2e3ed, 0x74c03dc7, 0x74c03dc7, 0x74c03dc7, 0xdd28f52b, 0x75ad9a21, 0x75ad9a21, 0xdd28f52b, }, 20 }, +- { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x5cf3c4a7, 0x94eb1d70, 0x5cf3c4a7, 0x5e6250e4, 0x59c36f00, 0x59c36f00, 0xd9b250a8, 0xd9b250a8, 0xd9b250a8, 0x85a0504a, 0x85a0504a, 0x85a0504a, 0xc0ec64d4, 0xc0ec64d4, 0xc0ec64d4, 0x59c36f00, 0x5e6250e4, 0x5e6250e4, 0x59c36f00, }, 20 }, +- { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xcf628ae2, 0xd8fd317b, 0xcf628ae2, 0x7b7418a9, 0xaa4593fe, 0xaa4593fe, 0x1f6005c4, 0x1f6005c4, 0x1f6005c4, 0xc5e7aaff, 0xc5e7aaff, 0xc5e7aaff, 0xf9ebbab6, 0xf9ebbab6, 0xf9ebbab6, 0xaa4593fe, 0x7b7418a9, 0x7b7418a9, 0xaa4593fe, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x7dd5389a, 0x916306b6, 0x7dd5389a, 0x6f3ea6a4, 0xc9cbf769, 0xc9cbf769, 0x38e2544b, 0x38e2544b, 0x38e2544b, 0xc0b7365, 0xc0b7365, 0xc0b7365, 0x2e6f1bee, 0x2e6f1bee, 0x2e6f1bee, 0xc9cbf769, 0x6f3ea6a4, 0x6f3ea6a4, 0xc9cbf769, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xaa0df0af, 0x5ffeda28, 0xaa0df0af, 0xd27f25fe, 0x9813a416, 0x9813a416, 0xe30e3d0b, 0xe30e3d0b, 0xe30e3d0b, 0xe8fb39a4, 0xe8fb39a4, 0xe8fb39a4, 0xfcf9fb3d, 0xfcf9fb3d, 0xfcf9fb3d, 0x9813a416, 0xd27f25fe, 0xd27f25fe, 0x9813a416, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xdb0cf5b5, 0x4c948c1, 0xdb0cf5b5, 0x67c135cd, 0x5fcf013d, 0x5fcf013d, 0xafc78d19, 0xafc78d19, 0xafc78d19, 0x5e848804, 0x5e848804, 0x5e848804, 0x197b8b83, 0x197b8b83, 0x197b8b83, 0x5fcf013d, 0x67c135cd, 0x67c135cd, 0x5fcf013d, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xa9bbe611, 0x46471f0a, 0xa9bbe611, 0xeca63699, 0xdd28f52b, 0xdd28f52b, 0x9bb2ba8d, 0x9bb2ba8d, 0x9bb2ba8d, 0xe6a4fd49, 0xe6a4fd49, 0xe6a4fd49, 0x85962363, 0x85962363, 0x85962363, 0xdd28f52b, 0xeca63699, 0xeca63699, 0xdd28f52b, }, 20 }, +- { "gfxterm_red", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x5cf3c4a7, 0x94eb1d70, 0x5cf3c4a7, 0x5e6250e4, 0x59c36f00, 0x59c36f00, 0xd9b250a8, 0xd9b250a8, 0xd9b250a8, 0x85a0504a, 0x85a0504a, 0x85a0504a, 0xc0ec64d4, 0xc0ec64d4, 0xc0ec64d4, 0x59c36f00, 0x5e6250e4, 0x5e6250e4, 0x59c36f00, }, 20 }, +- { "gfxterm_red", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xcf628ae2, 0xd8fd317b, 0xcf628ae2, 0x7b7418a9, 0xaa4593fe, 0xaa4593fe, 0x1f6005c4, 0x1f6005c4, 0x1f6005c4, 0xc5e7aaff, 0xc5e7aaff, 0xc5e7aaff, 0xf9ebbab6, 0xf9ebbab6, 0xf9ebbab6, 0xaa4593fe, 0x7b7418a9, 0x7b7418a9, 0xaa4593fe, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x7dd5389a, 0x916306b6, 0x7dd5389a, 0x6f3ea6a4, 0xc9cbf769, 0xc9cbf769, 0x38e2544b, 0x38e2544b, 0x38e2544b, 0xc0b7365, 0xc0b7365, 0xc0b7365, 0x2e6f1bee, 0x2e6f1bee, 0x2e6f1bee, 0xc9cbf769, 0x6f3ea6a4, 0x6f3ea6a4, 0xc9cbf769, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xf7a6bbc0, 0xa71c6a6a, 0xf7a6bbc0, 0x2c00e54, 0x5387d57f, 0x5387d57f, 0x9a524c3, 0x9a524c3, 0x9a524c3, 0x2ac4e2c9, 0x2ac4e2c9, 0x2ac4e2c9, 0x829fa704, 0x829fa704, 0x829fa704, 0x5387d57f, 0x2c00e54, 0x2c00e54, 0x5387d57f, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x336ec267, 0x367fad6f, 0x336ec267, 0xf645cfe7, 0xf83ee7aa, 0xf83ee7aa, 0xf286d882, 0xf286d882, 0xf286d882, 0x36b15363, 0x36b15363, 0x36b15363, 0xf9af0071, 0xf9af0071, 0xf9af0071, 0xf83ee7aa, 0xf645cfe7, 0xf645cfe7, 0xf83ee7aa, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x2c87bcd6, 0x36e5ec5f, 0x2c87bcd6, 0xc87d72f9, 0x724366e5, 0x724366e5, 0x46a60453, 0x46a60453, 0x46a60453, 0xa556cc35, 0xa556cc35, 0xa556cc35, 0x1b14594d, 0x1b14594d, 0x1b14594d, 0x724366e5, 0xc87d72f9, 0xc87d72f9, 0x724366e5, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xf34510a5, 0x6bf8e58f, 0xf34510a5, 0xd44e115c, 0x5387d57f, 0x5387d57f, 0xf35640b5, 0xf35640b5, 0xf35640b5, 0xd831fbc, 0xd831fbc, 0xd831fbc, 0x57b868f, 0x57b868f, 0x57b868f, 0x5387d57f, 0xd44e115c, 0xd44e115c, 0x5387d57f, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd50edb2e, 0xed2be670, 0xd50edb2e, 0xab5fbf82, 0xf83ee7aa, 0xf83ee7aa, 0x9d8f9101, 0x9d8f9101, 0x9d8f9101, 0xd3d9c88c, 0xd3d9c88c, 0xd3d9c88c, 0x3905b345, 0x3905b345, 0x3905b345, 0xf83ee7aa, 0xab5fbf82, 0xab5fbf82, 0xf83ee7aa, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x12b2c01b, 0x838f2386, 0x12b2c01b, 0xcc209686, 0x724366e5, 0x724366e5, 0x2fc9378e, 0x2fc9378e, 0x2fc9378e, 0xee502664, 0xee502664, 0xee502664, 0x6a05ad2c, 0x6a05ad2c, 0x6a05ad2c, 0x724366e5, 0xcc209686, 0xcc209686, 0x724366e5, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xbd1e8fde, 0xe7baf68c, 0xbd1e8fde, 0xf81e08b0, 0x1c955882, 0x1c955882, 0xcf34908a, 0xcf34908a, 0xcf34908a, 0x4d627f3a, 0x4d627f3a, 0x4d627f3a, 0x828afa46, 0x828afa46, 0x828afa46, 0x1c955882, 0xf81e08b0, 0xf81e08b0, 0x1c955882, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xeacfb81e, 0x63c43df, 0xeacfb81e, 0xb7b61016, 0x4d266f7a, 0x4d266f7a, 0xe07e5e3f, 0xe07e5e3f, 0xe07e5e3f, 0xac2b0d79, 0xac2b0d79, 0xac2b0d79, 0x8e8abf87, 0x8e8abf87, 0x8e8abf87, 0x4d266f7a, 0xb7b61016, 0xb7b61016, 0x4d266f7a, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xfd37e5b2, 0xfe28c531, 0xfd37e5b2, 0xdbb7d339, 0x1ed9d731, 0x1ed9d731, 0x1976c7dc, 0x1976c7dc, 0x1976c7dc, 0xad778754, 0xad778754, 0xad778754, 0xa05b9b17, 0xa05b9b17, 0xa05b9b17, 0x1ed9d731, 0xdbb7d339, 0xdbb7d339, 0x1ed9d731, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x7e970e8f, 0x2e2ddf25, 0x7e970e8f, 0x2f4a6620, 0x5387d57f, 0x5387d57f, 0x3bb33ccf, 0x3bb33ccf, 0x3bb33ccf, 0x18d2fac5, 0x18d2fac5, 0x18d2fac5, 0xb089bf08, 0xb089bf08, 0xb089bf08, 0x5387d57f, 0x2f4a6620, 0x2f4a6620, 0x5387d57f, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xb8a2e5df, 0xbdb38ad7, 0xb8a2e5df, 0x8002db7c, 0xf83ee7aa, 0xf83ee7aa, 0xc1252296, 0xc1252296, 0xc1252296, 0x512a977, 0x512a977, 0x512a977, 0xca0cfa65, 0xca0cfa65, 0xca0cfa65, 0xf83ee7aa, 0x8002db7c, 0x8002db7c, 0xf83ee7aa, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x9b5f3db9, 0x813d6d30, 0x9b5f3db9, 0x181c309c, 0x724366e5, 0x724366e5, 0x4b2cfbfc, 0x4b2cfbfc, 0x4b2cfbfc, 0xa8dc339a, 0xa8dc339a, 0xa8dc339a, 0x169ea6e2, 0x169ea6e2, 0x169ea6e2, 0x724366e5, 0x181c309c, 0x181c309c, 0x724366e5, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xe2b12f83, 0x7a0cdaa9, 0xe2b12f83, 0xaf70144a, 0x5387d57f, 0x5387d57f, 0xc2ca0f0b, 0xc2ca0f0b, 0xc2ca0f0b, 0x3c1f5002, 0x3c1f5002, 0x3c1f5002, 0x34e7c931, 0x34e7c931, 0x34e7c931, 0x5387d57f, 0xaf70144a, 0xaf70144a, 0x5387d57f, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xcc7f1afa, 0xf45a27a4, 0xcc7f1afa, 0xed3bbe5b, 0xf83ee7aa, 0xf83ee7aa, 0xb7cca9d4, 0xb7cca9d4, 0xb7cca9d4, 0xf99af059, 0xf99af059, 0xf99af059, 0x13468b90, 0x13468b90, 0x13468b90, 0xf83ee7aa, 0xed3bbe5b, 0xed3bbe5b, 0xf83ee7aa, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x5c3aa415, 0xcd074788, 0x5c3aa415, 0xc18dd60, 0x724366e5, 0x724366e5, 0x6b991528, 0x6b991528, 0x6b991528, 0xaa0004c2, 0xaa0004c2, 0xaa0004c2, 0x2e558f8a, 0x2e558f8a, 0x2e558f8a, 0x724366e5, 0xc18dd60, 0xc18dd60, 0x724366e5, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xa53a6439, 0xff9e1d6b, 0xa53a6439, 0x50714ec2, 0x1c955882, 0x1c955882, 0x4ad2fbd7, 0x4ad2fbd7, 0x4ad2fbd7, 0xc8841467, 0xc8841467, 0xc8841467, 0x76c911b, 0x76c911b, 0x76c911b, 0x1c955882, 0x50714ec2, 0x50714ec2, 0x1c955882, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xd93e9fad, 0x35cd646c, 0xd93e9fad, 0xb5499771, 0x4d266f7a, 0x4d266f7a, 0x65922dd6, 0x65922dd6, 0x65922dd6, 0x29c77e90, 0x29c77e90, 0x29c77e90, 0xb66cc6e, 0xb66cc6e, 0xb66cc6e, 0x4d266f7a, 0xb5499771, 0xb5499771, 0x4d266f7a, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd555d094, 0xd64af017, 0xd555d094, 0xffdaa0c9, 0x1ed9d731, 0x1ed9d731, 0x3538bf56, 0x3538bf56, 0x3538bf56, 0x8139ffde, 0x8139ffde, 0x8139ffde, 0x8c15e39d, 0x8c15e39d, 0x8c15e39d, 0x1ed9d731, 0xffdaa0c9, 0xffdaa0c9, 0x1ed9d731, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x579012d2, 0xa2633855, 0x579012d2, 0x1b8a22e1, 0x9813a416, 0x9813a416, 0x4e6d1775, 0x4e6d1775, 0x4e6d1775, 0x459813da, 0x459813da, 0x459813da, 0x519ad143, 0x519ad143, 0x519ad143, 0x9813a416, 0x1b8a22e1, 0x1b8a22e1, 0x9813a416, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xd0e01f27, 0xf25a253, 0xd0e01f27, 0x345a8b55, 0x5fcf013d, 0x5fcf013d, 0x7d7b66d1, 0x7d7b66d1, 0x7d7b66d1, 0x8c3863cc, 0x8c3863cc, 0x8c3863cc, 0xcbc7604b, 0xcbc7604b, 0xcbc7604b, 0x5fcf013d, 0x345a8b55, 0x345a8b55, 0x5fcf013d, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x8afabe5a, 0x65064741, 0x8afabe5a, 0xc2abbdb0, 0xdd28f52b, 0xdd28f52b, 0x762c541c, 0x762c541c, 0x762c541c, 0xb3a13d8, 0xb3a13d8, 0xb3a13d8, 0x6808cdf2, 0x6808cdf2, 0x6808cdf2, 0xdd28f52b, 0xc2abbdb0, 0xc2abbdb0, 0xdd28f52b, }, 20 }, +- { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7e8663fd, 0xb69eba2a, 0x7e8663fd, 0xf10bac5f, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xf10bac5f, 0xf10bac5f, 0x59c36f00, }, 20 }, +- { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x1dc170f, 0x1643ac96, 0x1dc170f, 0x218c75e1, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0x218c75e1, 0x218c75e1, 0xaa4593fe, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf8ec494, 0xe338fab8, 0xf8ec494, 0x78b294ad, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x78b294ad, 0x78b294ad, 0xc9cbf769, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x7c5fb1db, 0x89ac9b5c, 0x7c5fb1db, 0xd6bcbd37, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0xd6bcbd37, 0xd6bcbd37, 0x9813a416, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x2c17ec5e, 0xf3d2512a, 0x2c17ec5e, 0xc24c3b8e, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0xc24c3b8e, 0xc24c3b8e, 0x5fcf013d, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x962fd585, 0x79d32c9e, 0x962fd585, 0x4acac797, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0x4acac797, 0x4acac797, 0xdd28f52b, }, 20 }, +- { "gfxterm_high", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x7e8663fd, 0xb69eba2a, 0x7e8663fd, 0xf10bac5f, 0x59c36f00, 0x59c36f00, 0xcba09304, 0xcba09304, 0xcba09304, 0x97b293e6, 0x97b293e6, 0x97b293e6, 0xd2fea778, 0xd2fea778, 0xd2fea778, 0x59c36f00, 0xf10bac5f, 0xf10bac5f, 0x59c36f00, }, 20 }, +- { "gfxterm_high", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x1dc170f, 0x1643ac96, 0x1dc170f, 0x218c75e1, 0xaa4593fe, 0xaa4593fe, 0xfda7eac8, 0xfda7eac8, 0xfda7eac8, 0x272045f3, 0x272045f3, 0x272045f3, 0x1b2c55ba, 0x1b2c55ba, 0x1b2c55ba, 0xaa4593fe, 0x218c75e1, 0x218c75e1, 0xaa4593fe, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xf8ec494, 0xe338fab8, 0xf8ec494, 0x78b294ad, 0xc9cbf769, 0xc9cbf769, 0x270340e6, 0x270340e6, 0x270340e6, 0x13ea67c8, 0x13ea67c8, 0x13ea67c8, 0x318e0f43, 0x318e0f43, 0x318e0f43, 0xc9cbf769, 0x78b294ad, 0x78b294ad, 0xc9cbf769, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x451af230, 0x15a0239a, 0x451af230, 0x8fa4a0e3, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0x8fa4a0e3, 0x8fa4a0e3, 0x5387d57f, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x626e4125, 0x677f2e2d, 0x626e4125, 0x1739712c, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0x1739712c, 0x1739712c, 0xf83ee7aa, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x24d014be, 0x3eb24437, 0x24d014be, 0xa4cf9a3c, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0xa4cf9a3c, 0xa4cf9a3c, 0x724366e5, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xfc4a546f, 0x64f7a145, 0xfc4a546f, 0xf9e32ee9, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0xf9e32ee9, 0xf9e32ee9, 0x5387d57f, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd61baafd, 0xee3e97a3, 0xd61baafd, 0x8ee7986d, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0x8ee7986d, 0x8ee7986d, 0xf83ee7aa, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x6822467e, 0xf91fa5e3, 0x6822467e, 0xc7c3650b, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0xc7c3650b, 0xc7c3650b, 0x724366e5, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x50ace7c2, 0xa089e90, 0x50ace7c2, 0x1a5ebad4, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0x1a5ebad4, 0x1a5ebad4, 0x1c955882, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x179140a7, 0xfb62bb66, 0x179140a7, 0xf545d06d, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0xf545d06d, 0xf545d06d, 0x4d266f7a, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x679bf29f, 0x6484d21c, 0x679bf29f, 0x653f204e, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0x653f204e, 0x653f204e, 0x1ed9d731, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x4fce7a63, 0x1f74abc9, 0x4fce7a63, 0x21cbf58b, 0x5387d57f, 0x5387d57f, 0x4e647c93, 0x4e647c93, 0x4e647c93, 0x6d05ba99, 0x6d05ba99, 0x6d05ba99, 0xc55eff54, 0xc55eff54, 0xc55eff54, 0x5387d57f, 0x21cbf58b, 0x21cbf58b, 0x5387d57f, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xc49c3074, 0xc18d5f7c, 0xc49c3074, 0x4c40335e, 0xf83ee7aa, 0xf83ee7aa, 0xf25c3281, 0xf25c3281, 0xf25c3281, 0x366bb960, 0x366bb960, 0x366bb960, 0xf975ea72, 0xf975ea72, 0xf975ea72, 0xf83ee7aa, 0x4c40335e, 0x4c40335e, 0xf83ee7aa, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x877bea63, 0x9d19baea, 0x877bea63, 0x60dda7eb, 0x724366e5, 0x724366e5, 0x10d1a394, 0x10d1a394, 0x10d1a394, 0xf3216bf2, 0xf3216bf2, 0xf3216bf2, 0x4d63fe8a, 0x4d63fe8a, 0x4d63fe8a, 0x724366e5, 0x60dda7eb, 0x60dda7eb, 0x724366e5, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xadddaf19, 0x35605a33, 0xadddaf19, 0xc2beefaf, 0x5387d57f, 0x5387d57f, 0x4bd38a03, 0x4bd38a03, 0x4bd38a03, 0xb506d50a, 0xb506d50a, 0xb506d50a, 0xbdfe4c39, 0xbdfe4c39, 0xbdfe4c39, 0x5387d57f, 0xc2beefaf, 0xc2beefaf, 0x5387d57f, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x44a04df, 0x3c6f3981, 0x44a04df, 0x3a3f642, 0xf83ee7aa, 0xf83ee7aa, 0x63d64c93, 0x63d64c93, 0x63d64c93, 0x2d80151e, 0x2d80151e, 0x2d80151e, 0xc75c6ed7, 0xc75c6ed7, 0xc75c6ed7, 0xf83ee7aa, 0x3a3f642, 0x3a3f642, 0xf83ee7aa, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xb9287527, 0x281596ba, 0xb9287527, 0x987979ba, 0x724366e5, 0x724366e5, 0xe0762c40, 0xe0762c40, 0xe0762c40, 0x21ef3daa, 0x21ef3daa, 0x21ef3daa, 0xa5bab6e2, 0xa5bab6e2, 0xa5bab6e2, 0x724366e5, 0x987979ba, 0x987979ba, 0x724366e5, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x63bc909f, 0x3918e9cd, 0x63bc909f, 0x9905601c, 0x1c955882, 0x1c955882, 0x97519c3a, 0x97519c3a, 0x97519c3a, 0x1507738a, 0x1507738a, 0x1507738a, 0xdaeff6f6, 0xdaeff6f6, 0xdaeff6f6, 0x1c955882, 0x9905601c, 0x9905601c, 0x1c955882, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x134e846f, 0xffbd7fae, 0x134e846f, 0xc094b471, 0x4d266f7a, 0x4d266f7a, 0x2d145f78, 0x2d145f78, 0x2d145f78, 0x61410c3e, 0x61410c3e, 0x61410c3e, 0x43e0bec0, 0x43e0bec0, 0x43e0bec0, 0x4d266f7a, 0xc094b471, 0xc094b471, 0x4d266f7a, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd9dd0da7, 0xdac22d24, 0xd9dd0da7, 0xd77699a0, 0x1ed9d731, 0x1ed9d731, 0xa1c3fdf0, 0xa1c3fdf0, 0xa1c3fdf0, 0x15c2bd78, 0x15c2bd78, 0x15c2bd78, 0x18eea13b, 0x18eea13b, 0x18eea13b, 0x1ed9d731, 0xd77699a0, 0xd77699a0, 0x1ed9d731, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x6bb5fb50, 0x9e46d1d7, 0x6bb5fb50, 0xf53e12de, 0x9813a416, 0x9813a416, 0x8c097a93, 0x8c097a93, 0x8c097a93, 0x87fc7e3c, 0x87fc7e3c, 0x87fc7e3c, 0x93febca5, 0x93febca5, 0x93febca5, 0x9813a416, 0xf53e12de, 0xf53e12de, 0x9813a416, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb2497aec, 0x6d8cc798, 0xb2497aec, 0x465f936, 0x5fcf013d, 0x5fcf013d, 0xcacb7f18, 0xcacb7f18, 0xcacb7f18, 0x3b887a05, 0x3b887a05, 0x3b887a05, 0x7c777982, 0x7c777982, 0x7c777982, 0x5fcf013d, 0x465f936, 0x465f936, 0x5fcf013d, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x404f2a96, 0xafb3d38d, 0x404f2a96, 0x91e6ebe6, 0xdd28f52b, 0xdd28f52b, 0x35beeea3, 0x35beeea3, 0x35beeea3, 0x48a8a967, 0x48a8a967, 0x48a8a967, 0x2b9a774d, 0x2b9a774d, 0x2b9a774d, 0xdd28f52b, 0x91e6ebe6, 0x91e6ebe6, 0xdd28f52b, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x25243020, 0xed3ce9f7, 0x25243020, 0xd57a2224, 0x59c36f00, 0x59c36f00, 0x385870f8, 0x385870f8, 0x385870f8, 0xff09cd8, 0xff09cd8, 0xff09cd8, 0x79cb0c0a, 0x79cb0c0a, 0x79cb0c0a, 0x59c36f00, 0xd57a2224, 0xd57a2224, 0x59c36f00, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x9e32a220, 0x89ad19b9, 0x9e32a220, 0x795f1aca, 0xaa4593fe, 0xaa4593fe, 0xe5def7f5, 0xe5def7f5, 0xe5def7f5, 0x97ff996b, 0x97ff996b, 0x97ff996b, 0x79f89fcf, 0x79f89fcf, 0x79f89fcf, 0xaa4593fe, 0x795f1aca, 0x795f1aca, 0xaa4593fe, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x11e11a4c, 0xfd572460, 0x11e11a4c, 0x198b75, 0xc9cbf769, 0xc9cbf769, 0x3a85d6d2, 0x3a85d6d2, 0x3a85d6d2, 0x8a641f04, 0x8a641f04, 0x8a641f04, 0x7c546359, 0x7c546359, 0x7c546359, 0xc9cbf769, 0x198b75, 0x198b75, 0xc9cbf769, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x9a418b1d, 0x6fb2a19a, 0x9a418b1d, 0x3c3e7993, 0x9813a416, 0x9813a416, 0xe85391b9, 0xe85391b9, 0xe85391b9, 0xda81995d, 0xda81995d, 0xda81995d, 0xe9064220, 0xe9064220, 0xe9064220, 0x9813a416, 0x3c3e7993, 0x3c3e7993, 0x9813a416, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x66cb2267, 0xb90e9f13, 0x66cb2267, 0x79874749, 0x5fcf013d, 0x5fcf013d, 0x55ffe784, 0x55ffe784, 0x55ffe784, 0x2c6d082c, 0x2c6d082c, 0x2c6d082c, 0xed8bba6b, 0xed8bba6b, 0xed8bba6b, 0x5fcf013d, 0x79874749, 0x79874749, 0x5fcf013d, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd3d2838d, 0x3c2e7a96, 0xd3d2838d, 0x993b0962, 0xdd28f52b, 0xdd28f52b, 0xa719aebf, 0xa719aebf, 0xa719aebf, 0xcd8b1348, 0xcd8b1348, 0xcd8b1348, 0x1b91449d, 0x1b91449d, 0x1b91449d, 0xdd28f52b, 0x993b0962, 0x993b0962, 0xdd28f52b, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x25243020, 0xed3ce9f7, 0x25243020, 0xd57a2224, 0x59c36f00, 0x59c36f00, 0x385870f8, 0x385870f8, 0x385870f8, 0xff09cd8, 0xff09cd8, 0xff09cd8, 0x79cb0c0a, 0x79cb0c0a, 0x79cb0c0a, 0x59c36f00, 0xd57a2224, 0xd57a2224, 0x59c36f00, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x9e32a220, 0x89ad19b9, 0x9e32a220, 0x795f1aca, 0xaa4593fe, 0xaa4593fe, 0xe5def7f5, 0xe5def7f5, 0xe5def7f5, 0x97ff996b, 0x97ff996b, 0x97ff996b, 0x79f89fcf, 0x79f89fcf, 0x79f89fcf, 0xaa4593fe, 0x795f1aca, 0x795f1aca, 0xaa4593fe, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x11e11a4c, 0xfd572460, 0x11e11a4c, 0x198b75, 0xc9cbf769, 0xc9cbf769, 0x3a85d6d2, 0x3a85d6d2, 0x3a85d6d2, 0x8a641f04, 0x8a641f04, 0x8a641f04, 0x7c546359, 0x7c546359, 0x7c546359, 0xc9cbf769, 0x198b75, 0x198b75, 0xc9cbf769, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xce16a2fb, 0x9eac7351, 0xce16a2fb, 0xbea374ca, 0x5387d57f, 0x5387d57f, 0x7006da7b, 0x7006da7b, 0x7006da7b, 0x1b68e24c, 0x1b68e24c, 0x1b68e24c, 0xf1e5ad08, 0xf1e5ad08, 0xf1e5ad08, 0x5387d57f, 0xbea374ca, 0xbea374ca, 0x5387d57f, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x978ea174, 0x929fce7c, 0x978ea174, 0x84cb51c9, 0xf83ee7aa, 0xf83ee7aa, 0x2878254f, 0x2878254f, 0x2878254f, 0x276fe92c, 0x276fe92c, 0x276fe92c, 0x8acd1796, 0x8acd1796, 0x8acd1796, 0xf83ee7aa, 0x84cb51c9, 0x84cb51c9, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x28b0c05b, 0x32d290d2, 0x28b0c05b, 0xb92ef4c6, 0x724366e5, 0x724366e5, 0xcf3b3ce5, 0xcf3b3ce5, 0xcf3b3ce5, 0x71bd6b3d, 0x71bd6b3d, 0x71bd6b3d, 0xf1277c35, 0xf1277c35, 0xf1277c35, 0x724366e5, 0xb92ef4c6, 0xb92ef4c6, 0x724366e5, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xcbe03110, 0x535dc43a, 0xcbe03110, 0xb8c87995, 0x5387d57f, 0x5387d57f, 0x34eb1f93, 0x34eb1f93, 0x34eb1f93, 0x93664fb, 0x93664fb, 0x93664fb, 0x32daf25d, 0x32daf25d, 0x32daf25d, 0x5387d57f, 0xb8c87995, 0xb8c87995, 0x5387d57f, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbad8adf, 0x3388b781, 0xbad8adf, 0xd1863a2f, 0xf83ee7aa, 0xf83ee7aa, 0xaf036644, 0xaf036644, 0xaf036644, 0xca369995, 0xca369995, 0xca369995, 0x7322a523, 0x7322a523, 0x7322a523, 0xf83ee7aa, 0xd1863a2f, 0xd1863a2f, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x45d03c1b, 0xd4eddf86, 0x45d03c1b, 0x22ab0b9f, 0x724366e5, 0x724366e5, 0xc5ba9481, 0xc5ba9481, 0xc5ba9481, 0x7822101c, 0x7822101c, 0x7822101c, 0xdced54af, 0xdced54af, 0xdced54af, 0x724366e5, 0x22ab0b9f, 0x22ab0b9f, 0x724366e5, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xb6b65234, 0xec122b66, 0xb6b65234, 0x706c3177, 0x1c955882, 0x1c955882, 0x91e2ab2e, 0x91e2ab2e, 0x91e2ab2e, 0xa3f4711a, 0xa3f4711a, 0xa3f4711a, 0x8e60438a, 0x8e60438a, 0x8e60438a, 0x1c955882, 0x706c3177, 0x706c3177, 0x1c955882, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x4a693032, 0xa69acbf3, 0x4a693032, 0xbfcd9a65, 0x4d266f7a, 0x4d266f7a, 0x72a19422, 0x72a19422, 0x72a19422, 0x99cf4a01, 0x99cf4a01, 0x99cf4a01, 0xabac6a64, 0xabac6a64, 0xabac6a64, 0x4d266f7a, 0xbfcd9a65, 0xbfcd9a65, 0x4d266f7a, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x1329653a, 0x103645b9, 0x1329653a, 0x668d01b5, 0x1ed9d731, 0x1ed9d731, 0x3e6ebbaf, 0x3e6ebbaf, 0x3e6ebbaf, 0x56ce4d7c, 0x56ce4d7c, 0x56ce4d7c, 0xda62a4cd, 0xda62a4cd, 0xda62a4cd, 0x1ed9d731, 0x668d01b5, 0x668d01b5, 0x1ed9d731, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xce16a2fb, 0x9eac7351, 0xce16a2fb, 0xbea374ca, 0x5387d57f, 0x5387d57f, 0x7006da7b, 0x7006da7b, 0x7006da7b, 0x1b68e24c, 0x1b68e24c, 0x1b68e24c, 0xf1e5ad08, 0xf1e5ad08, 0xf1e5ad08, 0x5387d57f, 0xbea374ca, 0xbea374ca, 0x5387d57f, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x978ea174, 0x929fce7c, 0x978ea174, 0x84cb51c9, 0xf83ee7aa, 0xf83ee7aa, 0x2878254f, 0x2878254f, 0x2878254f, 0x276fe92c, 0x276fe92c, 0x276fe92c, 0x8acd1796, 0x8acd1796, 0x8acd1796, 0xf83ee7aa, 0x84cb51c9, 0x84cb51c9, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x28b0c05b, 0x32d290d2, 0x28b0c05b, 0xb92ef4c6, 0x724366e5, 0x724366e5, 0xcf3b3ce5, 0xcf3b3ce5, 0xcf3b3ce5, 0x71bd6b3d, 0x71bd6b3d, 0x71bd6b3d, 0xf1277c35, 0xf1277c35, 0xf1277c35, 0x724366e5, 0xb92ef4c6, 0xb92ef4c6, 0x724366e5, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xcbe03110, 0x535dc43a, 0xcbe03110, 0xb8c87995, 0x5387d57f, 0x5387d57f, 0x34eb1f93, 0x34eb1f93, 0x34eb1f93, 0x93664fb, 0x93664fb, 0x93664fb, 0x32daf25d, 0x32daf25d, 0x32daf25d, 0x5387d57f, 0xb8c87995, 0xb8c87995, 0x5387d57f, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbad8adf, 0x3388b781, 0xbad8adf, 0xd1863a2f, 0xf83ee7aa, 0xf83ee7aa, 0xaf036644, 0xaf036644, 0xaf036644, 0xca369995, 0xca369995, 0xca369995, 0x7322a523, 0x7322a523, 0x7322a523, 0xf83ee7aa, 0xd1863a2f, 0xd1863a2f, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x45d03c1b, 0xd4eddf86, 0x45d03c1b, 0x22ab0b9f, 0x724366e5, 0x724366e5, 0xc5ba9481, 0xc5ba9481, 0xc5ba9481, 0x7822101c, 0x7822101c, 0x7822101c, 0xdced54af, 0xdced54af, 0xdced54af, 0x724366e5, 0x22ab0b9f, 0x22ab0b9f, 0x724366e5, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xb6b65234, 0xec122b66, 0xb6b65234, 0x706c3177, 0x1c955882, 0x1c955882, 0x91e2ab2e, 0x91e2ab2e, 0x91e2ab2e, 0xa3f4711a, 0xa3f4711a, 0xa3f4711a, 0x8e60438a, 0x8e60438a, 0x8e60438a, 0x1c955882, 0x706c3177, 0x706c3177, 0x1c955882, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x4a693032, 0xa69acbf3, 0x4a693032, 0xbfcd9a65, 0x4d266f7a, 0x4d266f7a, 0x72a19422, 0x72a19422, 0x72a19422, 0x99cf4a01, 0x99cf4a01, 0x99cf4a01, 0xabac6a64, 0xabac6a64, 0xabac6a64, 0x4d266f7a, 0xbfcd9a65, 0xbfcd9a65, 0x4d266f7a, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x1329653a, 0x103645b9, 0x1329653a, 0x668d01b5, 0x1ed9d731, 0x1ed9d731, 0x3e6ebbaf, 0x3e6ebbaf, 0x3e6ebbaf, 0x56ce4d7c, 0x56ce4d7c, 0x56ce4d7c, 0xda62a4cd, 0xda62a4cd, 0xda62a4cd, 0x1ed9d731, 0x668d01b5, 0x668d01b5, 0x1ed9d731, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x9a418b1d, 0x6fb2a19a, 0x9a418b1d, 0x3c3e7993, 0x9813a416, 0x9813a416, 0xe85391b9, 0xe85391b9, 0xe85391b9, 0xda81995d, 0xda81995d, 0xda81995d, 0xe9064220, 0xe9064220, 0xe9064220, 0x9813a416, 0x3c3e7993, 0x3c3e7993, 0x9813a416, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x66cb2267, 0xb90e9f13, 0x66cb2267, 0x79874749, 0x5fcf013d, 0x5fcf013d, 0x55ffe784, 0x55ffe784, 0x55ffe784, 0x2c6d082c, 0x2c6d082c, 0x2c6d082c, 0xed8bba6b, 0xed8bba6b, 0xed8bba6b, 0x5fcf013d, 0x79874749, 0x79874749, 0x5fcf013d, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd3d2838d, 0x3c2e7a96, 0xd3d2838d, 0x993b0962, 0xdd28f52b, 0xdd28f52b, 0xa719aebf, 0xa719aebf, 0xa719aebf, 0xcd8b1348, 0xcd8b1348, 0xcd8b1348, 0x1b91449d, 0x1b91449d, 0x1b91449d, 0xdd28f52b, 0x993b0962, 0x993b0962, 0xdd28f52b, }, 20 }, ++ { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7a3f695f, 0xac449d41, 0x7a3f695f, 0x28a073b1, 0xf22da29a, 0xa59283dd, 0xa59283dd, 0xa59283dd, 0x397018b, 0x397018b, 0x397018b, 0xe978830f, 0xe978830f, 0xe978830f, 0x59c36f00, 0x28a073b1, 0x28a073b1, }, 18 }, ++ { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2ee70aea, 0x8f5328d2, 0x2ee70aea, 0x19fb9508, 0x2c3dfa69, 0x3af36cbe, 0x3af36cbe, 0x3af36cbe, 0x413d5d99, 0x413d5d99, 0x413d5d99, 0xf53dc062, 0xf53dc062, 0xf53dc062, 0xaa4593fe, 0x19fb9508, 0x19fb9508, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xef842e14, 0x9b7cdc00, 0xef842e14, 0x750c3145, 0xb069b9a2, 0xa8a14595, 0xa8a14595, 0xa8a14595, 0x9d10cb77, 0x9d10cb77, 0x9d10cb77, 0x24ffafe5, 0x24ffafe5, 0x24ffafe5, 0xc9cbf769, 0x750c3145, 0x750c3145, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xf162dfa3, 0xe0f86fe6, 0xf162dfa3, 0x51f56384, 0xa9aef7c0, 0x91aae164, 0x91aae164, 0x91aae164, 0xa9dc15a0, 0xa9dc15a0, 0xa9dc15a0, 0x7f3ef36f, 0x7f3ef36f, 0x7f3ef36f, 0x1c3742c9, 0x51f56384, 0x51f56384, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x644b801, 0x8a201b04, 0x644b801, 0xa4508ec0, 0xcb189b31, 0x31a6403d, 0x31a6403d, 0x31a6403d, 0x482af006, 0x482af006, 0x482af006, 0x27fb2b69, 0x27fb2b69, 0x27fb2b69, 0xcc5a7bed, 0xa4508ec0, 0xa4508ec0, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x1e1a41fe, 0x237e53c4, 0x1e1a41fe, 0xd5890062, 0x7180f3ea, 0xb5a59013, 0xb5a59013, 0xb5a59013, 0x198743f5, 0x198743f5, 0x198743f5, 0x46ce6df4, 0x46ce6df4, 0x46ce6df4, 0xef4a3312, 0xd5890062, 0xd5890062, }, 18 }, ++ { "gfxmenu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xcfa0e627, 0x8b7088da, 0xcfa0e627, 0xcd807142, 0xdc37dab7, 0x8b88fbf0, 0x8b88fbf0, 0x8b88fbf0, 0x2d8d79a6, 0x2d8d79a6, 0x2d8d79a6, 0xc762fb22, 0xc762fb22, 0xc762fb22, 0x59c36f00, 0xcd807142, 0xcd807142, }, 18 }, ++ { "gfxmenu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x64807934, 0x85d684c9, 0x64807934, 0x61726a79, 0x71c38b, 0x16bf555c, 0x16bf555c, 0x16bf555c, 0x6d71647b, 0x6d71647b, 0x6d71647b, 0xd971f980, 0xd971f980, 0xd971f980, 0xaa4593fe, 0x61726a79, 0x61726a79, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x9792b643, 0x1d769dd8, 0x9792b643, 0x3d74bd2f, 0x4411e313, 0x5cd91f24, 0x5cd91f24, 0x5cd91f24, 0x696891c6, 0x696891c6, 0x696891c6, 0xd087f554, 0xd087f554, 0xd087f554, 0xc9cbf769, 0x3d74bd2f, 0x3d74bd2f, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xbdb8f583, 0x1e27b76, 0xbdb8f583, 0x91be6e17, 0xf93a81be, 0x3458d277, 0x3458d277, 0x3458d277, 0x6475af82, 0x6475af82, 0x6475af82, 0x89de01be, 0x89de01be, 0x89de01be, 0x5387d57f, 0x91be6e17, 0x91be6e17, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbe72e1cb, 0x4943add3, 0xbe72e1cb, 0xa207f983, 0x58397d1d, 0xf2c9c339, 0xf2c9c339, 0xf2c9c339, 0xf702b00c, 0xf702b00c, 0xf702b00c, 0x3a7f3ab7, 0x3a7f3ab7, 0x3a7f3ab7, 0xf83ee7aa, 0xa207f983, 0xa207f983, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xbc064047, 0x9e12d9ac, 0xbc064047, 0xf9bdce43, 0x7184c3f8, 0x31049190, 0x31049190, 0x31049190, 0xd3f9aeb0, 0xd3f9aeb0, 0xd3f9aeb0, 0x1f1da1fb, 0x1f1da1fb, 0x1f1da1fb, 0x724366e5, 0xf9bdce43, 0xf9bdce43, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x6181ad43, 0xe570d91, 0x6181ad43, 0x567fb1cc, 0xa8a3da, 0x2c2f026d, 0x2c2f026d, 0x2c2f026d, 0x6dbdc460, 0x6dbdc460, 0x6dbdc460, 0xb5dd76de, 0xb5dd76de, 0xb5dd76de, 0x5387d57f, 0x567fb1cc, 0x567fb1cc, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1e5b6982, 0x789f961c, 0x1e5b6982, 0xc1ad694a, 0xbc4e843c, 0x5f240733, 0x5f240733, 0x5f240733, 0x3f8bff2a, 0x3f8bff2a, 0x3f8bff2a, 0x1537f8a3, 0x1537f8a3, 0x1537f8a3, 0xf83ee7aa, 0xc1ad694a, 0xc1ad694a, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x73f85cef, 0x9469d68d, 0x73f85cef, 0x24779078, 0x6f964a90, 0xe50e1c95, 0xe50e1c95, 0xe50e1c95, 0xe705abee, 0xe705abee, 0xe705abee, 0x430c0324, 0x430c0324, 0x430c0324, 0x724366e5, 0x24779078, 0x24779078, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xa6ddcb95, 0xa3934314, 0xa6ddcb95, 0x16ab9b6c, 0x1755c99c, 0x667d9b75, 0x667d9b75, 0x667d9b75, 0xd5a12156, 0xd5a12156, 0xd5a12156, 0x293b5b40, 0x293b5b40, 0x293b5b40, 0x1c955882, 0x16ab9b6c, 0x16ab9b6c, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x18e25ecc, 0xe52f7def, 0x18e25ecc, 0x5bd10081, 0xf52b17e7, 0x8edc5455, 0x8edc5455, 0x8edc5455, 0xfa6c9077, 0xfa6c9077, 0xfa6c9077, 0x30d86449, 0x30d86449, 0x30d86449, 0x4d266f7a, 0x5bd10081, 0x5bd10081, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xa845bba2, 0xb67fe791, 0xa845bba2, 0x80452493, 0x437302fa, 0x5690e5a0, 0x5690e5a0, 0x5690e5a0, 0x7174a0bc, 0x7174a0bc, 0x7174a0bc, 0xed45d558, 0xed45d558, 0xed45d558, 0x1ed9d731, 0x80452493, 0x80452493, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xa35a45c5, 0xacbc8410, 0xa35a45c5, 0xed2e11bd, 0x79f9376f, 0xb49b64a6, 0xb49b64a6, 0xb49b64a6, 0xe4b61953, 0xe4b61953, 0xe4b61953, 0x91db76f, 0x91db76f, 0x91db76f, 0x5387d57f, 0xed2e11bd, 0xed2e11bd, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8a6fa170, 0x7605140e, 0x8a6fa170, 0xc030feb1, 0xa84da503, 0x2bd1b27, 0x2bd1b27, 0x2bd1b27, 0x7766812, 0x7766812, 0x7766812, 0xca0be2a9, 0xca0be2a9, 0xca0be2a9, 0xf83ee7aa, 0xc030feb1, 0xc030feb1, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x49ddd3e4, 0xbfaeedf9, 0x49ddd3e4, 0xcde1d4b5, 0xf7229851, 0xb7a2ca39, 0xb7a2ca39, 0xb7a2ca39, 0x555ff519, 0x555ff519, 0x555ff519, 0x99bbfa52, 0x99bbfa52, 0x99bbfa52, 0x724366e5, 0xcde1d4b5, 0xcde1d4b5, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x98a8e7a8, 0xd9cab55f, 0x98a8e7a8, 0xf2b7dd05, 0xa199f4d7, 0x8d1e5560, 0x8d1e5560, 0x8d1e5560, 0xcc8c936d, 0xcc8c936d, 0xcc8c936d, 0x14ec21d3, 0x14ec21d3, 0x14ec21d3, 0x5387d57f, 0xf2b7dd05, 0xf2b7dd05, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xa000334f, 0xa1b11a86, 0xa000334f, 0x8ac1b99f, 0xeaf098c4, 0x99a1bcb, 0x99a1bcb, 0x99a1bcb, 0x6935e3d2, 0x6935e3d2, 0x6935e3d2, 0x4389e45b, 0x4389e45b, 0x4389e45b, 0xf83ee7aa, 0x8ac1b99f, 0x8ac1b99f, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xc662fb1, 0x673baf90, 0xc662fb1, 0xfb88406, 0x8df6104e, 0x76e464b, 0x76e464b, 0x76e464b, 0x565f130, 0x565f130, 0x565f130, 0xa16c59fa, 0xa16c59fa, 0xa16c59fa, 0x724366e5, 0xfb88406, 0xfb88406, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x33d4530e, 0x11ff262b, 0x33d4530e, 0xbb511beb, 0xb3f7ca7e, 0xc2df9897, 0xc2df9897, 0xc2df9897, 0x710322b4, 0x710322b4, 0x710322b4, 0x8d9958a2, 0x8d9958a2, 0x8d9958a2, 0x1c955882, 0xbb511beb, 0xbb511beb, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8b2e9364, 0x1d99d298, 0x8b2e9364, 0x958d5e8d, 0xfdfd7cdc, 0x860a3f6e, 0x860a3f6e, 0x860a3f6e, 0xf2bafb4c, 0xf2bafb4c, 0xf2bafb4c, 0x380e0f72, 0x380e0f72, 0x380e0f72, 0x4d266f7a, 0x958d5e8d, 0x958d5e8d, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x6e78baae, 0xaedcda00, 0x6e78baae, 0x9399bef9, 0xa685f2c7, 0xb366159d, 0xb366159d, 0xb366159d, 0x94825081, 0x94825081, 0x94825081, 0x8b32565, 0x8b32565, 0x8b32565, 0x1ed9d731, 0x9399bef9, 0x9399bef9, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x42860f9a, 0x57da9ef, 0x42860f9a, 0x221db42c, 0xdb3adfbf, 0xe33ec91b, 0xe33ec91b, 0xe33ec91b, 0xdb483ddf, 0xdb483ddf, 0xdb483ddf, 0xdaadb10, 0xdaadb10, 0xdaadb10, 0x1c3742c9, 0x221db42c, 0x221db42c, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x2ade7eff, 0xc91e0e0c, 0x2ade7eff, 0x8ad4bad6, 0x7f2729d6, 0x8599f2da, 0x8599f2da, 0x8599f2da, 0xfc1542e1, 0xfc1542e1, 0xfc1542e1, 0x93c4998e, 0x93c4998e, 0x93c4998e, 0xcc5a7bed, 0x8ad4bad6, 0x8ad4bad6, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xef4a3312, 0x4c493c2d, 0x487c542b, 0x4c493c2d, 0xfec68cd6, 0x76f27cf8, 0xb2d71f01, 0xb2d71f01, 0xb2d71f01, 0x1ef5cce7, 0x1ef5cce7, 0x1ef5cce7, 0x41bce2e6, 0x41bce2e6, 0x41bce2e6, 0xef4a3312, 0xfec68cd6, 0xfec68cd6, }, 18 }, ++ { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x3458f737, 0x9f683632, 0x3458f737, 0xc406e533, 0x59c36f00, 0x59c36f00, 0x487ab5e4, 0x487ab5e4, 0x487ab5e4, 0x7fd259c4, 0x7fd259c4, 0x7fd259c4, 0x9e9c916, 0x9e9c916, 0x9e9c916, 0x59c36f00, 0xc406e533, 0xc406e533, 0x59c36f00, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf69b4ddf, 0xe4bbd034, 0xf69b4ddf, 0x11f6f535, 0xaa4593fe, 0xaa4593fe, 0x5f72cd5e, 0x5f72cd5e, 0x5f72cd5e, 0x2d53a3c0, 0x2d53a3c0, 0x2d53a3c0, 0xc354a564, 0xc354a564, 0xc354a564, 0xaa4593fe, 0x11f6f535, 0x11f6f535, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x5d3f71ce, 0x125d4470, 0x5d3f71ce, 0x4cc7e0f7, 0xc9cbf769, 0xc9cbf769, 0x5cd2badc, 0x5cd2badc, 0x5cd2badc, 0xec33730a, 0xec33730a, 0xec33730a, 0x1a030f57, 0x1a030f57, 0x1a030f57, 0xc9cbf769, 0x4cc7e0f7, 0x4cc7e0f7, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x5009815a, 0xb5594cfe, 0x5009815a, 0xf67673d4, 0x9813a416, 0x9813a416, 0xafb29c6f, 0xafb29c6f, 0xafb29c6f, 0x9d60948b, 0x9d60948b, 0x9d60948b, 0xaee74ff6, 0xaee74ff6, 0xaee74ff6, 0x9813a416, 0xf67673d4, 0xf67673d4, 0x9813a416, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb5a104fb, 0x4685e7e5, 0xb5a104fb, 0xaaed61d5, 0x5fcf013d, 0x5fcf013d, 0xc329daff, 0xc329daff, 0xc329daff, 0xbabb3557, 0xbabb3557, 0xbabb3557, 0x7b5d8710, 0x7b5d8710, 0x7b5d8710, 0x5fcf013d, 0xaaed61d5, 0xaaed61d5, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x702a2fbf, 0x137ca34, 0x702a2fbf, 0x3ac3a550, 0xdd28f52b, 0xdd28f52b, 0x75c4e836, 0x75c4e836, 0x75c4e836, 0x1f5655c1, 0x1f5655c1, 0x1f5655c1, 0xc94c0214, 0xc94c0214, 0xc94c0214, 0xdd28f52b, 0x3ac3a550, 0x3ac3a550, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x3458f737, 0x9f683632, 0x3458f737, 0xc406e533, 0x59c36f00, 0x59c36f00, 0x487ab5e4, 0x487ab5e4, 0x487ab5e4, 0x7fd259c4, 0x7fd259c4, 0x7fd259c4, 0x9e9c916, 0x9e9c916, 0x9e9c916, 0x59c36f00, 0xc406e533, 0xc406e533, 0x59c36f00, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xf69b4ddf, 0xe4bbd034, 0xf69b4ddf, 0x11f6f535, 0xaa4593fe, 0xaa4593fe, 0x5f72cd5e, 0x5f72cd5e, 0x5f72cd5e, 0x2d53a3c0, 0x2d53a3c0, 0x2d53a3c0, 0xc354a564, 0xc354a564, 0xc354a564, 0xaa4593fe, 0x11f6f535, 0x11f6f535, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x5d3f71ce, 0x125d4470, 0x5d3f71ce, 0x4cc7e0f7, 0xc9cbf769, 0xc9cbf769, 0x5cd2badc, 0x5cd2badc, 0x5cd2badc, 0xec33730a, 0xec33730a, 0xec33730a, 0x1a030f57, 0x1a030f57, 0x1a030f57, 0xc9cbf769, 0x4cc7e0f7, 0x4cc7e0f7, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x25a5c60d, 0x710e9f28, 0x25a5c60d, 0x5510103c, 0x5387d57f, 0x5387d57f, 0x56907307, 0x56907307, 0x56907307, 0x3dfe4b30, 0x3dfe4b30, 0x3dfe4b30, 0xd7730474, 0xd7730474, 0xd7730474, 0x5387d57f, 0x5510103c, 0x5510103c, 0x5387d57f, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xdebdd7f3, 0x33db1e37, 0xdebdd7f3, 0xcdf8274e, 0xf83ee7aa, 0xf83ee7aa, 0x84173ffc, 0x84173ffc, 0x84173ffc, 0x8b00f39f, 0x8b00f39f, 0x8b00f39f, 0x26a20d25, 0x26a20d25, 0x26a20d25, 0xf83ee7aa, 0xcdf8274e, 0xcdf8274e, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x60bd92a4, 0xc1a5291, 0x60bd92a4, 0xf123a639, 0x724366e5, 0x724366e5, 0xae152dbb, 0xae152dbb, 0xae152dbb, 0x10937a63, 0x10937a63, 0x10937a63, 0x90096d6b, 0x90096d6b, 0x90096d6b, 0x724366e5, 0xf123a639, 0xf123a639, 0x724366e5, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x86a31ce8, 0xb11aeda2, 0x86a31ce8, 0xf58b546d, 0x5387d57f, 0x5387d57f, 0xf6282a9d, 0xf6282a9d, 0xf6282a9d, 0xcbf551f5, 0xcbf551f5, 0xcbf551f5, 0xf019c753, 0xf019c753, 0xf019c753, 0x5387d57f, 0xf58b546d, 0xf58b546d, 0x5387d57f, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1a630045, 0x98571c45, 0x1a630045, 0xc048b0b5, 0xf83ee7aa, 0xf83ee7aa, 0xacc07607, 0xacc07607, 0xacc07607, 0xc9f589d6, 0xc9f589d6, 0xc9f589d6, 0x70e1b560, 0x70e1b560, 0x70e1b560, 0xf83ee7aa, 0xc048b0b5, 0xc048b0b5, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xd4525d7b, 0xa87ca8e, 0xd4525d7b, 0xb3296aff, 0x724366e5, 0x724366e5, 0x8733800b, 0x8733800b, 0x8733800b, 0x3aab0496, 0x3aab0496, 0x3aab0496, 0x9e644025, 0x9e644025, 0x9e644025, 0x724366e5, 0xb3296aff, 0xb3296aff, 0x724366e5, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x7e77dcd0, 0x311e2b82, 0x7e77dcd0, 0xb8adbf93, 0x1c955882, 0x1c955882, 0x68965652, 0x68965652, 0x68965652, 0x5a808c66, 0x5a808c66, 0x5a808c66, 0x7714bef6, 0x7714bef6, 0x7714bef6, 0x1c955882, 0xb8adbf93, 0xb8adbf93, 0x1c955882, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x5f3e70fc, 0x869b02b8, 0x5f3e70fc, 0xaa9adaab, 0x4d266f7a, 0x4d266f7a, 0x8c12bf3a, 0x8c12bf3a, 0x8c12bf3a, 0x677c6119, 0x677c6119, 0x677c6119, 0x551f417c, 0x551f417c, 0x551f417c, 0x4d266f7a, 0xaa9adaab, 0xaa9adaab, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe61938bc, 0x6ace17ff, 0xe61938bc, 0x93bd5c33, 0x1ed9d731, 0x1ed9d731, 0x3b4b0d2d, 0x3b4b0d2d, 0x3b4b0d2d, 0x53ebfbfe, 0x53ebfbfe, 0x53ebfbfe, 0xdf47124f, 0xdf47124f, 0xdf47124f, 0x1ed9d731, 0x93bd5c33, 0x93bd5c33, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x25a5c60d, 0x710e9f28, 0x25a5c60d, 0x5510103c, 0x5387d57f, 0x5387d57f, 0x56907307, 0x56907307, 0x56907307, 0x3dfe4b30, 0x3dfe4b30, 0x3dfe4b30, 0xd7730474, 0xd7730474, 0xd7730474, 0x5387d57f, 0x5510103c, 0x5510103c, 0x5387d57f, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xdebdd7f3, 0x33db1e37, 0xdebdd7f3, 0xcdf8274e, 0xf83ee7aa, 0xf83ee7aa, 0x84173ffc, 0x84173ffc, 0x84173ffc, 0x8b00f39f, 0x8b00f39f, 0x8b00f39f, 0x26a20d25, 0x26a20d25, 0x26a20d25, 0xf83ee7aa, 0xcdf8274e, 0xcdf8274e, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x60bd92a4, 0xc1a5291, 0x60bd92a4, 0xf123a639, 0x724366e5, 0x724366e5, 0xae152dbb, 0xae152dbb, 0xae152dbb, 0x10937a63, 0x10937a63, 0x10937a63, 0x90096d6b, 0x90096d6b, 0x90096d6b, 0x724366e5, 0xf123a639, 0xf123a639, 0x724366e5, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x86a31ce8, 0xb11aeda2, 0x86a31ce8, 0xf58b546d, 0x5387d57f, 0x5387d57f, 0xf6282a9d, 0xf6282a9d, 0xf6282a9d, 0xcbf551f5, 0xcbf551f5, 0xcbf551f5, 0xf019c753, 0xf019c753, 0xf019c753, 0x5387d57f, 0xf58b546d, 0xf58b546d, 0x5387d57f, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1a630045, 0x98571c45, 0x1a630045, 0xc048b0b5, 0xf83ee7aa, 0xf83ee7aa, 0xacc07607, 0xacc07607, 0xacc07607, 0xc9f589d6, 0xc9f589d6, 0xc9f589d6, 0x70e1b560, 0x70e1b560, 0x70e1b560, 0xf83ee7aa, 0xc048b0b5, 0xc048b0b5, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xd4525d7b, 0xa87ca8e, 0xd4525d7b, 0xb3296aff, 0x724366e5, 0x724366e5, 0x8733800b, 0x8733800b, 0x8733800b, 0x3aab0496, 0x3aab0496, 0x3aab0496, 0x9e644025, 0x9e644025, 0x9e644025, 0x724366e5, 0xb3296aff, 0xb3296aff, 0x724366e5, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x7e77dcd0, 0x311e2b82, 0x7e77dcd0, 0xb8adbf93, 0x1c955882, 0x1c955882, 0x68965652, 0x68965652, 0x68965652, 0x5a808c66, 0x5a808c66, 0x5a808c66, 0x7714bef6, 0x7714bef6, 0x7714bef6, 0x1c955882, 0xb8adbf93, 0xb8adbf93, 0x1c955882, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x5f3e70fc, 0x869b02b8, 0x5f3e70fc, 0xaa9adaab, 0x4d266f7a, 0x4d266f7a, 0x8c12bf3a, 0x8c12bf3a, 0x8c12bf3a, 0x677c6119, 0x677c6119, 0x677c6119, 0x551f417c, 0x551f417c, 0x551f417c, 0x4d266f7a, 0xaa9adaab, 0xaa9adaab, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe61938bc, 0x6ace17ff, 0xe61938bc, 0x93bd5c33, 0x1ed9d731, 0x1ed9d731, 0x3b4b0d2d, 0x3b4b0d2d, 0x3b4b0d2d, 0x53ebfbfe, 0x53ebfbfe, 0x53ebfbfe, 0xdf47124f, 0xdf47124f, 0xdf47124f, 0x1ed9d731, 0x93bd5c33, 0x93bd5c33, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x5009815a, 0xb5594cfe, 0x5009815a, 0xf67673d4, 0x9813a416, 0x9813a416, 0xafb29c6f, 0xafb29c6f, 0xafb29c6f, 0x9d60948b, 0x9d60948b, 0x9d60948b, 0xaee74ff6, 0xaee74ff6, 0xaee74ff6, 0x9813a416, 0xf67673d4, 0xf67673d4, 0x9813a416, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb5a104fb, 0x4685e7e5, 0xb5a104fb, 0xaaed61d5, 0x5fcf013d, 0x5fcf013d, 0xc329daff, 0xc329daff, 0xc329daff, 0xbabb3557, 0xbabb3557, 0xbabb3557, 0x7b5d8710, 0x7b5d8710, 0x7b5d8710, 0x5fcf013d, 0xaaed61d5, 0xaaed61d5, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x702a2fbf, 0x137ca34, 0x702a2fbf, 0x3ac3a550, 0xdd28f52b, 0xdd28f52b, 0x75c4e836, 0x75c4e836, 0x75c4e836, 0x1f5655c1, 0x1f5655c1, 0x1f5655c1, 0xc94c0214, 0xc94c0214, 0xc94c0214, 0xdd28f52b, 0x3ac3a550, 0x3ac3a550, 0xdd28f52b, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xf8b931ce, 0x5d102c8a, 0xf8b931ce, 0x8e723ca, 0x59c36f00, 0x59c36f00, 0xbbcc22eb, 0xbbcc22eb, 0xbbcc22eb, 0x8c64cecb, 0x8c64cecb, 0x8c64cecb, 0xfa5f5e19, 0xfa5f5e19, 0xfa5f5e19, 0x59c36f00, 0x8e723ca, 0x8e723ca, 0x59c36f00, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x4a1d3222, 0xd3f0a2f6, 0x4a1d3222, 0xad708ac8, 0xaa4593fe, 0xaa4593fe, 0x9097e33f, 0x9097e33f, 0x9097e33f, 0xe2b68da1, 0xe2b68da1, 0xe2b68da1, 0xcb18b05, 0xcb18b05, 0xcb18b05, 0xaa4593fe, 0xad708ac8, 0xad708ac8, 0xaa4593fe, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x11c27ef8, 0x12ef425b, 0x11c27ef8, 0x3aefc1, 0xc9cbf769, 0xc9cbf769, 0x154ce430, 0x154ce430, 0x154ce430, 0xa5ad2de6, 0xa5ad2de6, 0xa5ad2de6, 0x539d51bb, 0x539d51bb, 0x539d51bb, 0xc9cbf769, 0x3aefc1, 0x3aefc1, 0xc9cbf769, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xb841ae4f, 0xb7a7d822, 0xb841ae4f, 0x1e3e5cc1, 0x9813a416, 0x9813a416, 0x8d8bbafc, 0x8d8bbafc, 0x8d8bbafc, 0xbf59b218, 0xbf59b218, 0xbf59b218, 0x8cde6965, 0x8cde6965, 0x8cde6965, 0x9813a416, 0x1e3e5cc1, 0x1e3e5cc1, 0x9813a416, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x4eee063f, 0x14c47610, 0x4eee063f, 0x51a26311, 0x5fcf013d, 0x5fcf013d, 0x315129ac, 0x315129ac, 0x315129ac, 0x48c3c604, 0x48c3c604, 0x48c3c604, 0x89257443, 0x89257443, 0x89257443, 0x5fcf013d, 0x51a26311, 0x51a26311, 0x5fcf013d, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xcf32bbc4, 0x59af6391, 0xcf32bbc4, 0x85db312b, 0xdd28f52b, 0xdd28f52b, 0xf0818ff6, 0xf0818ff6, 0xf0818ff6, 0x9a133201, 0x9a133201, 0x9a133201, 0x4c0965d4, 0x4c0965d4, 0x4c0965d4, 0xdd28f52b, 0x85db312b, 0x85db312b, 0xdd28f52b, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xf8b931ce, 0x5d102c8a, 0xf8b931ce, 0x8e723ca, 0x59c36f00, 0x59c36f00, 0xbbcc22eb, 0xbbcc22eb, 0xbbcc22eb, 0x8c64cecb, 0x8c64cecb, 0x8c64cecb, 0xfa5f5e19, 0xfa5f5e19, 0xfa5f5e19, 0x59c36f00, 0x8e723ca, 0x8e723ca, 0x59c36f00, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x4a1d3222, 0xd3f0a2f6, 0x4a1d3222, 0xad708ac8, 0xaa4593fe, 0xaa4593fe, 0x9097e33f, 0x9097e33f, 0x9097e33f, 0xe2b68da1, 0xe2b68da1, 0xe2b68da1, 0xcb18b05, 0xcb18b05, 0xcb18b05, 0xaa4593fe, 0xad708ac8, 0xad708ac8, 0xaa4593fe, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x11c27ef8, 0x12ef425b, 0x11c27ef8, 0x3aefc1, 0xc9cbf769, 0xc9cbf769, 0x154ce430, 0x154ce430, 0x154ce430, 0xa5ad2de6, 0xa5ad2de6, 0xa5ad2de6, 0x539d51bb, 0x539d51bb, 0x539d51bb, 0xc9cbf769, 0x3aefc1, 0x3aefc1, 0xc9cbf769, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x1a771028, 0xe94b2b44, 0x1a771028, 0x6ac2c619, 0x5387d57f, 0x5387d57f, 0x74845744, 0x74845744, 0x74845744, 0x1fea6f73, 0x1fea6f73, 0x1fea6f73, 0xf5672037, 0xf5672037, 0xf5672037, 0x5387d57f, 0x6ac2c619, 0x6ac2c619, 0x5387d57f, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xdf1ece5a, 0xa6fdd748, 0xdf1ece5a, 0xcc5b3ee7, 0xf83ee7aa, 0xf83ee7aa, 0x1e3f7378, 0x1e3f7378, 0x1e3f7378, 0x1128bf1b, 0x1128bf1b, 0x1128bf1b, 0xbc8a41a1, 0xbc8a41a1, 0xbc8a41a1, 0xf83ee7aa, 0xcc5b3ee7, 0xcc5b3ee7, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xb1cd1a5a, 0xac7574de, 0xb1cd1a5a, 0x20532ec7, 0x724366e5, 0x724366e5, 0x6dc4c04, 0x6dc4c04, 0x6dc4c04, 0xb85a1bdc, 0xb85a1bdc, 0xb85a1bdc, 0x38c00cd4, 0x38c00cd4, 0x38c00cd4, 0x724366e5, 0x20532ec7, 0x20532ec7, 0x724366e5, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x78a02a32, 0x6ab778cc, 0x78a02a32, 0xb8862b7, 0x5387d57f, 0x5387d57f, 0x5a2a46f3, 0x5a2a46f3, 0x5a2a46f3, 0x67f73d9b, 0x67f73d9b, 0x67f73d9b, 0x5c1bab3d, 0x5c1bab3d, 0x5c1bab3d, 0x5387d57f, 0xb8862b7, 0xb8862b7, 0x5387d57f, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x780e644b, 0x887d4bc5, 0x780e644b, 0xa225d4bb, 0xf83ee7aa, 0xf83ee7aa, 0xd1685b5a, 0xd1685b5a, 0xd1685b5a, 0xb45da48b, 0xb45da48b, 0xb45da48b, 0xd49983d, 0xd49983d, 0xd49983d, 0xf83ee7aa, 0xa225d4bb, 0xa225d4bb, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x88442d18, 0xf84114b9, 0x88442d18, 0xef3f1a9c, 0x724366e5, 0x724366e5, 0x4605d5f9, 0x4605d5f9, 0x4605d5f9, 0xfb9d5164, 0xfb9d5164, 0xfb9d5164, 0x5f5215d7, 0x5f5215d7, 0x5f5215d7, 0x724366e5, 0xef3f1a9c, 0xef3f1a9c, 0x724366e5, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x33c566c9, 0x12974e4e, 0x33c566c9, 0xf51f058a, 0x1c955882, 0x1c955882, 0xdae7571c, 0xdae7571c, 0xdae7571c, 0xe8f18d28, 0xe8f18d28, 0xe8f18d28, 0xc565bfb8, 0xc565bfb8, 0xc565bfb8, 0x1c955882, 0xf51f058a, 0xf51f058a, 0x1c955882, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x48ab65a4, 0x99e0071a, 0x48ab65a4, 0xbd0fcff3, 0x4d266f7a, 0x4d266f7a, 0xb98c42f4, 0xb98c42f4, 0xb98c42f4, 0x52e29cd7, 0x52e29cd7, 0x52e29cd7, 0x6081bcb2, 0x6081bcb2, 0x6081bcb2, 0x4d266f7a, 0xbd0fcff3, 0xbd0fcff3, 0x4d266f7a, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xb2b56df5, 0x3d357f10, 0xb2b56df5, 0xc711097a, 0x1ed9d731, 0x1ed9d731, 0x280ecefd, 0x280ecefd, 0x280ecefd, 0x40ae382e, 0x40ae382e, 0x40ae382e, 0xcc02d19f, 0xcc02d19f, 0xcc02d19f, 0x1ed9d731, 0xc711097a, 0xc711097a, 0x1ed9d731, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x1a771028, 0xe94b2b44, 0x1a771028, 0x6ac2c619, 0x5387d57f, 0x5387d57f, 0x74845744, 0x74845744, 0x74845744, 0x1fea6f73, 0x1fea6f73, 0x1fea6f73, 0xf5672037, 0xf5672037, 0xf5672037, 0x5387d57f, 0x6ac2c619, 0x6ac2c619, 0x5387d57f, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xdf1ece5a, 0xa6fdd748, 0xdf1ece5a, 0xcc5b3ee7, 0xf83ee7aa, 0xf83ee7aa, 0x1e3f7378, 0x1e3f7378, 0x1e3f7378, 0x1128bf1b, 0x1128bf1b, 0x1128bf1b, 0xbc8a41a1, 0xbc8a41a1, 0xbc8a41a1, 0xf83ee7aa, 0xcc5b3ee7, 0xcc5b3ee7, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xb1cd1a5a, 0xac7574de, 0xb1cd1a5a, 0x20532ec7, 0x724366e5, 0x724366e5, 0x6dc4c04, 0x6dc4c04, 0x6dc4c04, 0xb85a1bdc, 0xb85a1bdc, 0xb85a1bdc, 0x38c00cd4, 0x38c00cd4, 0x38c00cd4, 0x724366e5, 0x20532ec7, 0x20532ec7, 0x724366e5, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x78a02a32, 0x6ab778cc, 0x78a02a32, 0xb8862b7, 0x5387d57f, 0x5387d57f, 0x5a2a46f3, 0x5a2a46f3, 0x5a2a46f3, 0x67f73d9b, 0x67f73d9b, 0x67f73d9b, 0x5c1bab3d, 0x5c1bab3d, 0x5c1bab3d, 0x5387d57f, 0xb8862b7, 0xb8862b7, 0x5387d57f, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x780e644b, 0x887d4bc5, 0x780e644b, 0xa225d4bb, 0xf83ee7aa, 0xf83ee7aa, 0xd1685b5a, 0xd1685b5a, 0xd1685b5a, 0xb45da48b, 0xb45da48b, 0xb45da48b, 0xd49983d, 0xd49983d, 0xd49983d, 0xf83ee7aa, 0xa225d4bb, 0xa225d4bb, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x88442d18, 0xf84114b9, 0x88442d18, 0xef3f1a9c, 0x724366e5, 0x724366e5, 0x4605d5f9, 0x4605d5f9, 0x4605d5f9, 0xfb9d5164, 0xfb9d5164, 0xfb9d5164, 0x5f5215d7, 0x5f5215d7, 0x5f5215d7, 0x724366e5, 0xef3f1a9c, 0xef3f1a9c, 0x724366e5, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x33c566c9, 0x12974e4e, 0x33c566c9, 0xf51f058a, 0x1c955882, 0x1c955882, 0xdae7571c, 0xdae7571c, 0xdae7571c, 0xe8f18d28, 0xe8f18d28, 0xe8f18d28, 0xc565bfb8, 0xc565bfb8, 0xc565bfb8, 0x1c955882, 0xf51f058a, 0xf51f058a, 0x1c955882, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x48ab65a4, 0x99e0071a, 0x48ab65a4, 0xbd0fcff3, 0x4d266f7a, 0x4d266f7a, 0xb98c42f4, 0xb98c42f4, 0xb98c42f4, 0x52e29cd7, 0x52e29cd7, 0x52e29cd7, 0x6081bcb2, 0x6081bcb2, 0x6081bcb2, 0x4d266f7a, 0xbd0fcff3, 0xbd0fcff3, 0x4d266f7a, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xb2b56df5, 0x3d357f10, 0xb2b56df5, 0xc711097a, 0x1ed9d731, 0x1ed9d731, 0x280ecefd, 0x280ecefd, 0x280ecefd, 0x40ae382e, 0x40ae382e, 0x40ae382e, 0xcc02d19f, 0xcc02d19f, 0xcc02d19f, 0x1ed9d731, 0xc711097a, 0xc711097a, 0x1ed9d731, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xb841ae4f, 0xb7a7d822, 0xb841ae4f, 0x1e3e5cc1, 0x9813a416, 0x9813a416, 0x8d8bbafc, 0x8d8bbafc, 0x8d8bbafc, 0xbf59b218, 0xbf59b218, 0xbf59b218, 0x8cde6965, 0x8cde6965, 0x8cde6965, 0x9813a416, 0x1e3e5cc1, 0x1e3e5cc1, 0x9813a416, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x4eee063f, 0x14c47610, 0x4eee063f, 0x51a26311, 0x5fcf013d, 0x5fcf013d, 0x315129ac, 0x315129ac, 0x315129ac, 0x48c3c604, 0x48c3c604, 0x48c3c604, 0x89257443, 0x89257443, 0x89257443, 0x5fcf013d, 0x51a26311, 0x51a26311, 0x5fcf013d, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xcf32bbc4, 0x59af6391, 0xcf32bbc4, 0x85db312b, 0xdd28f52b, 0xdd28f52b, 0xf0818ff6, 0xf0818ff6, 0xf0818ff6, 0x9a133201, 0x9a133201, 0x9a133201, 0x4c0965d4, 0x4c0965d4, 0x4c0965d4, 0xdd28f52b, 0x85db312b, 0x85db312b, 0xdd28f52b, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xeeece42, 0xd32ac62d, 0xeeece42, 0xfeb0dc46, 0x59c36f00, 0x59c36f00, 0xb87b7d77, 0xb87b7d77, 0xb87b7d77, 0x8fd39157, 0x8fd39157, 0x8fd39157, 0xf9e80185, 0xf9e80185, 0xf9e80185, 0x59c36f00, 0xfeb0dc46, 0xfeb0dc46, 0x59c36f00, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x74926bc5, 0x46811cb4, 0x74926bc5, 0x93ffd32f, 0xaa4593fe, 0xaa4593fe, 0x1577dcdd, 0x1577dcdd, 0x1577dcdd, 0x6756b243, 0x6756b243, 0x6756b243, 0x8951b4e7, 0x8951b4e7, 0x8951b4e7, 0xaa4593fe, 0x93ffd32f, 0x93ffd32f, 0xaa4593fe, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8e4764e5, 0xb94cb40c, 0x8e4764e5, 0x9fbff5dc, 0xc9cbf769, 0xc9cbf769, 0x49324147, 0x49324147, 0x49324147, 0xf9d38891, 0xf9d38891, 0xf9d38891, 0xfe3f4cc, 0xfe3f4cc, 0xfe3f4cc, 0xc9cbf769, 0x9fbff5dc, 0x9fbff5dc, 0xc9cbf769, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xf61aa867, 0xa8efbede, 0xf61aa867, 0x50655ae9, 0x9813a416, 0x9813a416, 0x284e60ab, 0x284e60ab, 0x284e60ab, 0x1a9c684f, 0x1a9c684f, 0x1a9c684f, 0x291bb332, 0x291bb332, 0x291bb332, 0x9813a416, 0x50655ae9, 0x50655ae9, 0x9813a416, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x37948987, 0xe8b2e546, 0x37948987, 0x28d8eca9, 0x5fcf013d, 0x5fcf013d, 0xa253c90f, 0xa253c90f, 0xa253c90f, 0xdbc126a7, 0xdbc126a7, 0xdbc126a7, 0x1a2794e0, 0x1a2794e0, 0x1a2794e0, 0x5fcf013d, 0x28d8eca9, 0x28d8eca9, 0x5fcf013d, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xde8ea380, 0x3146c4d0, 0xde8ea380, 0x9467296f, 0xdd28f52b, 0xdd28f52b, 0x28df5b61, 0x28df5b61, 0x28df5b61, 0x424de696, 0x424de696, 0x424de696, 0x9457b143, 0x9457b143, 0x9457b143, 0xdd28f52b, 0x9467296f, 0x9467296f, 0xdd28f52b, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xeeece42, 0xd32ac62d, 0xeeece42, 0xfeb0dc46, 0x59c36f00, 0x59c36f00, 0xb87b7d77, 0xb87b7d77, 0xb87b7d77, 0x8fd39157, 0x8fd39157, 0x8fd39157, 0xf9e80185, 0xf9e80185, 0xf9e80185, 0x59c36f00, 0xfeb0dc46, 0xfeb0dc46, 0x59c36f00, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x74926bc5, 0x46811cb4, 0x74926bc5, 0x93ffd32f, 0xaa4593fe, 0xaa4593fe, 0x1577dcdd, 0x1577dcdd, 0x1577dcdd, 0x6756b243, 0x6756b243, 0x6756b243, 0x8951b4e7, 0x8951b4e7, 0x8951b4e7, 0xaa4593fe, 0x93ffd32f, 0x93ffd32f, 0xaa4593fe, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x8e4764e5, 0xb94cb40c, 0x8e4764e5, 0x9fbff5dc, 0xc9cbf769, 0xc9cbf769, 0x49324147, 0x49324147, 0x49324147, 0xf9d38891, 0xf9d38891, 0xf9d38891, 0xfe3f4cc, 0xfe3f4cc, 0xfe3f4cc, 0xc9cbf769, 0x9fbff5dc, 0x9fbff5dc, 0xc9cbf769, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x4bb8bd52, 0xd1c595e2, 0x4bb8bd52, 0x3b0d6b63, 0x5387d57f, 0x5387d57f, 0xa166c9ac, 0xa166c9ac, 0xa166c9ac, 0xca08f19b, 0xca08f19b, 0xca08f19b, 0x2085bedf, 0x2085bedf, 0x2085bedf, 0x5387d57f, 0x3b0d6b63, 0x3b0d6b63, 0x5387d57f, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x97462a28, 0x6e289d48, 0x97462a28, 0x8403da95, 0xf83ee7aa, 0xf83ee7aa, 0x1a6f8010, 0x1a6f8010, 0x1a6f8010, 0x15784c73, 0x15784c73, 0x15784c73, 0xb8dab2c9, 0xb8dab2c9, 0xb8dab2c9, 0xf83ee7aa, 0x8403da95, 0x8403da95, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xbfd6acef, 0x8b7171c0, 0xbfd6acef, 0x2e489872, 0x724366e5, 0x724366e5, 0xfc86ebe7, 0xfc86ebe7, 0xfc86ebe7, 0x4200bc3f, 0x4200bc3f, 0x4200bc3f, 0xc29aab37, 0xc29aab37, 0xc29aab37, 0x724366e5, 0x2e489872, 0x2e489872, 0x724366e5, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xc72519d6, 0x84db4689, 0xc72519d6, 0xb40d5153, 0x5387d57f, 0x5387d57f, 0x5b19d18d, 0x5b19d18d, 0x5b19d18d, 0x66c4aae5, 0x66c4aae5, 0x66c4aae5, 0x5d283c43, 0x5d283c43, 0x5d283c43, 0x5387d57f, 0xb40d5153, 0xb40d5153, 0x5387d57f, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xcf88f071, 0x5b1f9a14, 0xcf88f071, 0x15a34081, 0xf83ee7aa, 0xf83ee7aa, 0xac05dae3, 0xac05dae3, 0xac05dae3, 0xc9302532, 0xc9302532, 0xc9302532, 0x70241984, 0x70241984, 0x70241984, 0xf83ee7aa, 0x15a34081, 0x15a34081, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x876ef22b, 0x3b8025e3, 0x876ef22b, 0xe015c5af, 0x724366e5, 0x724366e5, 0xe6ef3c30, 0xe6ef3c30, 0xe6ef3c30, 0x5b77b8ad, 0x5b77b8ad, 0x5b77b8ad, 0xffb8fc1e, 0xffb8fc1e, 0xffb8fc1e, 0x724366e5, 0xe015c5af, 0xe015c5af, 0x724366e5, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x483c4536, 0x36149342, 0x483c4536, 0x8ee62675, 0x1c955882, 0x1c955882, 0xd0692bee, 0xd0692bee, 0xd0692bee, 0xe27ff1da, 0xe27ff1da, 0xe27ff1da, 0xcfebc34a, 0xcfebc34a, 0xcfebc34a, 0x1c955882, 0x8ee62675, 0x8ee62675, 0x1c955882, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xdc350b32, 0x9b9d7abf, 0xdc350b32, 0x2991a165, 0x4d266f7a, 0x4d266f7a, 0x12ea18e7, 0x12ea18e7, 0x12ea18e7, 0xf984c6c4, 0xf984c6c4, 0xf984c6c4, 0xcbe7e6a1, 0xcbe7e6a1, 0xcbe7e6a1, 0x4d266f7a, 0x2991a165, 0x2991a165, 0x4d266f7a, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x1ae35856, 0x4d2d0bba, 0x1ae35856, 0x6f473cd9, 0x1ed9d731, 0x1ed9d731, 0x8b94f0c0, 0x8b94f0c0, 0x8b94f0c0, 0xe3340613, 0xe3340613, 0xe3340613, 0x6f98efa2, 0x6f98efa2, 0x6f98efa2, 0x1ed9d731, 0x6f473cd9, 0x6f473cd9, 0x1ed9d731, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x4bb8bd52, 0xd1c595e2, 0x4bb8bd52, 0x3b0d6b63, 0x5387d57f, 0x5387d57f, 0xa166c9ac, 0xa166c9ac, 0xa166c9ac, 0xca08f19b, 0xca08f19b, 0xca08f19b, 0x2085bedf, 0x2085bedf, 0x2085bedf, 0x5387d57f, 0x3b0d6b63, 0x3b0d6b63, 0x5387d57f, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x97462a28, 0x6e289d48, 0x97462a28, 0x8403da95, 0xf83ee7aa, 0xf83ee7aa, 0x1a6f8010, 0x1a6f8010, 0x1a6f8010, 0x15784c73, 0x15784c73, 0x15784c73, 0xb8dab2c9, 0xb8dab2c9, 0xb8dab2c9, 0xf83ee7aa, 0x8403da95, 0x8403da95, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xbfd6acef, 0x8b7171c0, 0xbfd6acef, 0x2e489872, 0x724366e5, 0x724366e5, 0xfc86ebe7, 0xfc86ebe7, 0xfc86ebe7, 0x4200bc3f, 0x4200bc3f, 0x4200bc3f, 0xc29aab37, 0xc29aab37, 0xc29aab37, 0x724366e5, 0x2e489872, 0x2e489872, 0x724366e5, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xc72519d6, 0x84db4689, 0xc72519d6, 0xb40d5153, 0x5387d57f, 0x5387d57f, 0x5b19d18d, 0x5b19d18d, 0x5b19d18d, 0x66c4aae5, 0x66c4aae5, 0x66c4aae5, 0x5d283c43, 0x5d283c43, 0x5d283c43, 0x5387d57f, 0xb40d5153, 0xb40d5153, 0x5387d57f, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xcf88f071, 0x5b1f9a14, 0xcf88f071, 0x15a34081, 0xf83ee7aa, 0xf83ee7aa, 0xac05dae3, 0xac05dae3, 0xac05dae3, 0xc9302532, 0xc9302532, 0xc9302532, 0x70241984, 0x70241984, 0x70241984, 0xf83ee7aa, 0x15a34081, 0x15a34081, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x876ef22b, 0x3b8025e3, 0x876ef22b, 0xe015c5af, 0x724366e5, 0x724366e5, 0xe6ef3c30, 0xe6ef3c30, 0xe6ef3c30, 0x5b77b8ad, 0x5b77b8ad, 0x5b77b8ad, 0xffb8fc1e, 0xffb8fc1e, 0xffb8fc1e, 0x724366e5, 0xe015c5af, 0xe015c5af, 0x724366e5, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x483c4536, 0x36149342, 0x483c4536, 0x8ee62675, 0x1c955882, 0x1c955882, 0xd0692bee, 0xd0692bee, 0xd0692bee, 0xe27ff1da, 0xe27ff1da, 0xe27ff1da, 0xcfebc34a, 0xcfebc34a, 0xcfebc34a, 0x1c955882, 0x8ee62675, 0x8ee62675, 0x1c955882, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xdc350b32, 0x9b9d7abf, 0xdc350b32, 0x2991a165, 0x4d266f7a, 0x4d266f7a, 0x12ea18e7, 0x12ea18e7, 0x12ea18e7, 0xf984c6c4, 0xf984c6c4, 0xf984c6c4, 0xcbe7e6a1, 0xcbe7e6a1, 0xcbe7e6a1, 0x4d266f7a, 0x2991a165, 0x2991a165, 0x4d266f7a, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x1ae35856, 0x4d2d0bba, 0x1ae35856, 0x6f473cd9, 0x1ed9d731, 0x1ed9d731, 0x8b94f0c0, 0x8b94f0c0, 0x8b94f0c0, 0xe3340613, 0xe3340613, 0xe3340613, 0x6f98efa2, 0x6f98efa2, 0x6f98efa2, 0x1ed9d731, 0x6f473cd9, 0x6f473cd9, 0x1ed9d731, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xf61aa867, 0xa8efbede, 0xf61aa867, 0x50655ae9, 0x9813a416, 0x9813a416, 0x284e60ab, 0x284e60ab, 0x284e60ab, 0x1a9c684f, 0x1a9c684f, 0x1a9c684f, 0x291bb332, 0x291bb332, 0x291bb332, 0x9813a416, 0x50655ae9, 0x50655ae9, 0x9813a416, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x37948987, 0xe8b2e546, 0x37948987, 0x28d8eca9, 0x5fcf013d, 0x5fcf013d, 0xa253c90f, 0xa253c90f, 0xa253c90f, 0xdbc126a7, 0xdbc126a7, 0xdbc126a7, 0x1a2794e0, 0x1a2794e0, 0x1a2794e0, 0x5fcf013d, 0x28d8eca9, 0x28d8eca9, 0x5fcf013d, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xde8ea380, 0x3146c4d0, 0xde8ea380, 0x9467296f, 0xdd28f52b, 0xdd28f52b, 0x28df5b61, 0x28df5b61, 0x28df5b61, 0x424de696, 0x424de696, 0x424de696, 0x9457b143, 0x9457b143, 0x9457b143, 0xdd28f52b, 0x9467296f, 0x9467296f, 0xdd28f52b, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8ee79de, 0x26b051ae, 0x8ee79de, 0xf8b06bda, 0x59c36f00, 0x59c36f00, 0x3f1c338c, 0x3f1c338c, 0x3f1c338c, 0x8b4dfac, 0x8b4dfac, 0x8b4dfac, 0x7e8f4f7e, 0x7e8f4f7e, 0x7e8f4f7e, 0x59c36f00, 0xf8b06bda, 0xf8b06bda, 0x59c36f00, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xef5d784d, 0xf9f3df7f, 0xef5d784d, 0x830c0a7, 0xaa4593fe, 0xaa4593fe, 0x6ab2cc09, 0x6ab2cc09, 0x6ab2cc09, 0x1893a297, 0x1893a297, 0x1893a297, 0xf694a433, 0xf694a433, 0xf694a433, 0xaa4593fe, 0x830c0a7, 0x830c0a7, 0xaa4593fe, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd4e0e978, 0x3ecbb91a, 0xd4e0e978, 0xc5187841, 0xc9cbf769, 0xc9cbf769, 0x1dcde94e, 0x1dcde94e, 0x1dcde94e, 0xad2c2098, 0xad2c2098, 0xad2c2098, 0x5b1c5cc5, 0x5b1c5cc5, 0x5b1c5cc5, 0xc9cbf769, 0xc5187841, 0xc5187841, 0xc9cbf769, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xe2593717, 0x2640bf65, 0xe2593717, 0x4426c599, 0x9813a416, 0x9813a416, 0x5ede2f49, 0x5ede2f49, 0x5ede2f49, 0x6c0c27ad, 0x6c0c27ad, 0x6c0c27ad, 0x5f8bfcd0, 0x5f8bfcd0, 0x5f8bfcd0, 0x9813a416, 0x4426c599, 0x4426c599, 0x9813a416, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xcde83267, 0x22a53484, 0xcde83267, 0xd2a45749, 0x5fcf013d, 0x5fcf013d, 0x1e7ff7d9, 0x1e7ff7d9, 0x1e7ff7d9, 0x67ed1871, 0x67ed1871, 0x67ed1871, 0xa60baa36, 0xa60baa36, 0xa60baa36, 0x5fcf013d, 0xd2a45749, 0xd2a45749, 0x5fcf013d, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7f78b019, 0x80a05ce1, 0x7f78b019, 0x35913af6, 0xdd28f52b, 0xdd28f52b, 0xe66c0535, 0xe66c0535, 0xe66c0535, 0x8cfeb8c2, 0x8cfeb8c2, 0x8cfeb8c2, 0x5ae4ef17, 0x5ae4ef17, 0x5ae4ef17, 0xdd28f52b, 0x35913af6, 0x35913af6, 0xdd28f52b, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x8ee79de, 0x26b051ae, 0x8ee79de, 0xf8b06bda, 0x59c36f00, 0x59c36f00, 0x3f1c338c, 0x3f1c338c, 0x3f1c338c, 0x8b4dfac, 0x8b4dfac, 0x8b4dfac, 0x7e8f4f7e, 0x7e8f4f7e, 0x7e8f4f7e, 0x59c36f00, 0xf8b06bda, 0xf8b06bda, 0x59c36f00, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xef5d784d, 0xf9f3df7f, 0xef5d784d, 0x830c0a7, 0xaa4593fe, 0xaa4593fe, 0x6ab2cc09, 0x6ab2cc09, 0x6ab2cc09, 0x1893a297, 0x1893a297, 0x1893a297, 0xf694a433, 0xf694a433, 0xf694a433, 0xaa4593fe, 0x830c0a7, 0x830c0a7, 0xaa4593fe, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xd4e0e978, 0x3ecbb91a, 0xd4e0e978, 0xc5187841, 0xc9cbf769, 0xc9cbf769, 0x1dcde94e, 0x1dcde94e, 0x1dcde94e, 0xad2c2098, 0xad2c2098, 0xad2c2098, 0x5b1c5cc5, 0x5b1c5cc5, 0x5b1c5cc5, 0xc9cbf769, 0xc5187841, 0xc5187841, 0xc9cbf769, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xaf56168d, 0x52310b7d, 0xaf56168d, 0xdfe3c0bc, 0x5387d57f, 0x5387d57f, 0xe220439e, 0xe220439e, 0xe220439e, 0x894e7ba9, 0x894e7ba9, 0x894e7ba9, 0x63c334ed, 0x63c334ed, 0x63c334ed, 0x5387d57f, 0xdfe3c0bc, 0xdfe3c0bc, 0x5387d57f, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x3e770d13, 0x12c714b1, 0x3e770d13, 0x2d32fdae, 0xf83ee7aa, 0xf83ee7aa, 0x9772bab3, 0x9772bab3, 0x9772bab3, 0x986576d0, 0x986576d0, 0x986576d0, 0x35c7886a, 0x35c7886a, 0x35c7886a, 0xf83ee7aa, 0x2d32fdae, 0x2d32fdae, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x9d87c56c, 0x3ba3fdf4, 0x9d87c56c, 0xc19f1f1, 0x724366e5, 0x724366e5, 0xf5b081d4, 0xf5b081d4, 0xf5b081d4, 0x4b36d60c, 0x4b36d60c, 0x4b36d60c, 0xcbacc104, 0xcbacc104, 0xcbacc104, 0x724366e5, 0xc19f1f1, 0xc19f1f1, 0x724366e5, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x7205f0bb, 0x153a6d72, 0x7205f0bb, 0x12db83e, 0x5387d57f, 0x5387d57f, 0x18972377, 0x18972377, 0x18972377, 0x254a581f, 0x254a581f, 0x254a581f, 0x1ea6ceb9, 0x1ea6ceb9, 0x1ea6ceb9, 0x5387d57f, 0x12db83e, 0x12db83e, 0x5387d57f, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x5088632b, 0x6b3eb456, 0x5088632b, 0x8aa3d3db, 0xf83ee7aa, 0xf83ee7aa, 0x760f7b46, 0x760f7b46, 0x760f7b46, 0x133a8497, 0x133a8497, 0x133a8497, 0xaa2eb821, 0xaa2eb821, 0xaa2eb821, 0xf83ee7aa, 0x8aa3d3db, 0x8aa3d3db, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x42dae97e, 0x14545eb7, 0x42dae97e, 0x25a1defa, 0x724366e5, 0x724366e5, 0xe0fc7f88, 0xe0fc7f88, 0xe0fc7f88, 0x5d64fb15, 0x5d64fb15, 0x5d64fb15, 0xf9abbfa6, 0xf9abbfa6, 0xf9abbfa6, 0x724366e5, 0x25a1defa, 0x25a1defa, 0x724366e5, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x2430e081, 0x242aac55, 0x2430e081, 0xe2ea83c2, 0x1c955882, 0x1c955882, 0xbc41ae45, 0xbc41ae45, 0xbc41ae45, 0x8e577471, 0x8e577471, 0x8e577471, 0xa3c346e1, 0xa3c346e1, 0xa3c346e1, 0x1c955882, 0xe2ea83c2, 0xe2ea83c2, 0x1c955882, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfca08617, 0x3fa61e54, 0xfca08617, 0x9042c40, 0x4d266f7a, 0x4d266f7a, 0x68a0b7be, 0x68a0b7be, 0x68a0b7be, 0x83ce699d, 0x83ce699d, 0x83ce699d, 0xb1ad49f8, 0xb1ad49f8, 0xb1ad49f8, 0x4d266f7a, 0x9042c40, 0x9042c40, 0x4d266f7a, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x36cffaf4, 0x3b414926, 0x36cffaf4, 0x436b9e7b, 0x1ed9d731, 0x1ed9d731, 0x64aaad8f, 0x64aaad8f, 0x64aaad8f, 0xc0a5b5c, 0xc0a5b5c, 0xc0a5b5c, 0x80a6b2ed, 0x80a6b2ed, 0x80a6b2ed, 0x1ed9d731, 0x436b9e7b, 0x436b9e7b, 0x1ed9d731, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xaf56168d, 0x52310b7d, 0xaf56168d, 0xdfe3c0bc, 0x5387d57f, 0x5387d57f, 0xe220439e, 0xe220439e, 0xe220439e, 0x894e7ba9, 0x894e7ba9, 0x894e7ba9, 0x63c334ed, 0x63c334ed, 0x63c334ed, 0x5387d57f, 0xdfe3c0bc, 0xdfe3c0bc, 0x5387d57f, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x3e770d13, 0x12c714b1, 0x3e770d13, 0x2d32fdae, 0xf83ee7aa, 0xf83ee7aa, 0x9772bab3, 0x9772bab3, 0x9772bab3, 0x986576d0, 0x986576d0, 0x986576d0, 0x35c7886a, 0x35c7886a, 0x35c7886a, 0xf83ee7aa, 0x2d32fdae, 0x2d32fdae, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x9d87c56c, 0x3ba3fdf4, 0x9d87c56c, 0xc19f1f1, 0x724366e5, 0x724366e5, 0xf5b081d4, 0xf5b081d4, 0xf5b081d4, 0x4b36d60c, 0x4b36d60c, 0x4b36d60c, 0xcbacc104, 0xcbacc104, 0xcbacc104, 0x724366e5, 0xc19f1f1, 0xc19f1f1, 0x724366e5, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x7205f0bb, 0x153a6d72, 0x7205f0bb, 0x12db83e, 0x5387d57f, 0x5387d57f, 0x18972377, 0x18972377, 0x18972377, 0x254a581f, 0x254a581f, 0x254a581f, 0x1ea6ceb9, 0x1ea6ceb9, 0x1ea6ceb9, 0x5387d57f, 0x12db83e, 0x12db83e, 0x5387d57f, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x5088632b, 0x6b3eb456, 0x5088632b, 0x8aa3d3db, 0xf83ee7aa, 0xf83ee7aa, 0x760f7b46, 0x760f7b46, 0x760f7b46, 0x133a8497, 0x133a8497, 0x133a8497, 0xaa2eb821, 0xaa2eb821, 0xaa2eb821, 0xf83ee7aa, 0x8aa3d3db, 0x8aa3d3db, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x42dae97e, 0x14545eb7, 0x42dae97e, 0x25a1defa, 0x724366e5, 0x724366e5, 0xe0fc7f88, 0xe0fc7f88, 0xe0fc7f88, 0x5d64fb15, 0x5d64fb15, 0x5d64fb15, 0xf9abbfa6, 0xf9abbfa6, 0xf9abbfa6, 0x724366e5, 0x25a1defa, 0x25a1defa, 0x724366e5, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x2430e081, 0x242aac55, 0x2430e081, 0xe2ea83c2, 0x1c955882, 0x1c955882, 0xbc41ae45, 0xbc41ae45, 0xbc41ae45, 0x8e577471, 0x8e577471, 0x8e577471, 0xa3c346e1, 0xa3c346e1, 0xa3c346e1, 0x1c955882, 0xe2ea83c2, 0xe2ea83c2, 0x1c955882, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xfca08617, 0x3fa61e54, 0xfca08617, 0x9042c40, 0x4d266f7a, 0x4d266f7a, 0x68a0b7be, 0x68a0b7be, 0x68a0b7be, 0x83ce699d, 0x83ce699d, 0x83ce699d, 0xb1ad49f8, 0xb1ad49f8, 0xb1ad49f8, 0x4d266f7a, 0x9042c40, 0x9042c40, 0x4d266f7a, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x36cffaf4, 0x3b414926, 0x36cffaf4, 0x436b9e7b, 0x1ed9d731, 0x1ed9d731, 0x64aaad8f, 0x64aaad8f, 0x64aaad8f, 0xc0a5b5c, 0xc0a5b5c, 0xc0a5b5c, 0x80a6b2ed, 0x80a6b2ed, 0x80a6b2ed, 0x1ed9d731, 0x436b9e7b, 0x436b9e7b, 0x1ed9d731, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xe2593717, 0x2640bf65, 0xe2593717, 0x4426c599, 0x9813a416, 0x9813a416, 0x5ede2f49, 0x5ede2f49, 0x5ede2f49, 0x6c0c27ad, 0x6c0c27ad, 0x6c0c27ad, 0x5f8bfcd0, 0x5f8bfcd0, 0x5f8bfcd0, 0x9813a416, 0x4426c599, 0x4426c599, 0x9813a416, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xcde83267, 0x22a53484, 0xcde83267, 0xd2a45749, 0x5fcf013d, 0x5fcf013d, 0x1e7ff7d9, 0x1e7ff7d9, 0x1e7ff7d9, 0x67ed1871, 0x67ed1871, 0x67ed1871, 0xa60baa36, 0xa60baa36, 0xa60baa36, 0x5fcf013d, 0xd2a45749, 0xd2a45749, 0x5fcf013d, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7f78b019, 0x80a05ce1, 0x7f78b019, 0x35913af6, 0xdd28f52b, 0xdd28f52b, 0xe66c0535, 0xe66c0535, 0xe66c0535, 0x8cfeb8c2, 0x8cfeb8c2, 0x8cfeb8c2, 0x5ae4ef17, 0x5ae4ef17, 0x5ae4ef17, 0xdd28f52b, 0x35913af6, 0x35913af6, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x5f9aad54, 0x4c443805, 0x5f9aad54, 0xafc4bf50, 0x59c36f00, 0x59c36f00, 0x58db3668, 0x58db3668, 0x58db3668, 0x6f73da48, 0x6f73da48, 0x6f73da48, 0x19484a9a, 0x19484a9a, 0x19484a9a, 0x59c36f00, 0xafc4bf50, 0xafc4bf50, 0x59c36f00, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x5f32e9dd, 0xe616882b, 0x5f32e9dd, 0xb85f5137, 0xaa4593fe, 0xaa4593fe, 0x9d0a5b06, 0x9d0a5b06, 0x9d0a5b06, 0xef2b3598, 0xef2b3598, 0xef2b3598, 0x12c333c, 0x12c333c, 0x12c333c, 0xaa4593fe, 0xb85f5137, 0xb85f5137, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa5bb82, 0xefc18d9, 0xa5bb82, 0x115d2abb, 0xc9cbf769, 0xc9cbf769, 0xd0be0d24, 0xd0be0d24, 0xd0be0d24, 0x605fc4f2, 0x605fc4f2, 0x605fc4f2, 0x966fb8af, 0x966fb8af, 0x966fb8af, 0xc9cbf769, 0x115d2abb, 0x115d2abb, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xb948b0d6, 0xd4da4a61, 0xb948b0d6, 0x1f374258, 0x9813a416, 0x9813a416, 0x67ee54be, 0x67ee54be, 0x67ee54be, 0x553c5c5a, 0x553c5c5a, 0x553c5c5a, 0x66bb8727, 0x66bb8727, 0x66bb8727, 0x9813a416, 0x1f374258, 0x1f374258, 0x9813a416, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x1c4bab46, 0x1633fefe, 0x1c4bab46, 0x307ce68, 0x5fcf013d, 0x5fcf013d, 0xabae9d40, 0xabae9d40, 0xabae9d40, 0xd23c72e8, 0xd23c72e8, 0xd23c72e8, 0x13dac0af, 0x13dac0af, 0x13dac0af, 0x5fcf013d, 0x307ce68, 0x307ce68, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x601d59d6, 0x1b985f84, 0x601d59d6, 0x2af4d339, 0xdd28f52b, 0xdd28f52b, 0x467ca6f5, 0x467ca6f5, 0x467ca6f5, 0x2cee1b02, 0x2cee1b02, 0x2cee1b02, 0xfaf44cd7, 0xfaf44cd7, 0xfaf44cd7, 0xdd28f52b, 0x2af4d339, 0x2af4d339, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x5f9aad54, 0x4c443805, 0x5f9aad54, 0xafc4bf50, 0x59c36f00, 0x59c36f00, 0x58db3668, 0x58db3668, 0x58db3668, 0x6f73da48, 0x6f73da48, 0x6f73da48, 0x19484a9a, 0x19484a9a, 0x19484a9a, 0x59c36f00, 0xafc4bf50, 0xafc4bf50, 0x59c36f00, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x5f32e9dd, 0xe616882b, 0x5f32e9dd, 0xb85f5137, 0xaa4593fe, 0xaa4593fe, 0x9d0a5b06, 0x9d0a5b06, 0x9d0a5b06, 0xef2b3598, 0xef2b3598, 0xef2b3598, 0x12c333c, 0x12c333c, 0x12c333c, 0xaa4593fe, 0xb85f5137, 0xb85f5137, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xa5bb82, 0xefc18d9, 0xa5bb82, 0x115d2abb, 0xc9cbf769, 0xc9cbf769, 0xd0be0d24, 0xd0be0d24, 0xd0be0d24, 0x605fc4f2, 0x605fc4f2, 0x605fc4f2, 0x966fb8af, 0x966fb8af, 0x966fb8af, 0xc9cbf769, 0x115d2abb, 0x115d2abb, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xe2b498f9, 0xdd416a91, 0xe2b498f9, 0x92014ec8, 0x5387d57f, 0x5387d57f, 0xe42b0a50, 0xe42b0a50, 0xe42b0a50, 0x8f453267, 0x8f453267, 0x8f453267, 0x65c87d23, 0x65c87d23, 0x65c87d23, 0x5387d57f, 0x92014ec8, 0x92014ec8, 0x5387d57f, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xc36b80c7, 0x806de216, 0xc36b80c7, 0xd02e707a, 0xf83ee7aa, 0xf83ee7aa, 0x8f1478d, 0x8f1478d, 0x8f1478d, 0x7e68bee, 0x7e68bee, 0x7e68bee, 0xaa447554, 0xaa447554, 0xaa447554, 0xf83ee7aa, 0xd02e707a, 0xd02e707a, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x4758874e, 0xe7a130c, 0x4758874e, 0xd6c6b3d3, 0x724366e5, 0x724366e5, 0x1d8d26d5, 0x1d8d26d5, 0x1d8d26d5, 0xa30b710d, 0xa30b710d, 0xa30b710d, 0x23916605, 0x23916605, 0x23916605, 0x724366e5, 0xd6c6b3d3, 0xd6c6b3d3, 0x724366e5, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xc76cdc3, 0xe20cbda0, 0xc76cdc3, 0x7f5e8546, 0x5387d57f, 0x5387d57f, 0xee60e67a, 0xee60e67a, 0xee60e67a, 0xd3bd9d12, 0xd3bd9d12, 0xd3bd9d12, 0xe8510bb4, 0xe8510bb4, 0xe8510bb4, 0x5387d57f, 0x7f5e8546, 0x7f5e8546, 0x5387d57f, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x7fe6a55c, 0x206a8726, 0x7fe6a55c, 0xa5cd15ac, 0xf83ee7aa, 0xf83ee7aa, 0xc47340ba, 0xc47340ba, 0xc47340ba, 0xa146bf6b, 0xa146bf6b, 0xa146bf6b, 0x185283dd, 0x185283dd, 0x185283dd, 0xf83ee7aa, 0xa5cd15ac, 0xa5cd15ac, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xb1a1e81, 0xbec61ffd, 0xb1a1e81, 0x6c612905, 0x724366e5, 0x724366e5, 0x90acf3d2, 0x90acf3d2, 0x90acf3d2, 0x2d34774f, 0x2d34774f, 0x2d34774f, 0x89fb33fc, 0x89fb33fc, 0x89fb33fc, 0x724366e5, 0x6c612905, 0x6c612905, 0x724366e5, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x189ee5dc, 0x66e2ba99, 0x189ee5dc, 0xde44869f, 0x1c955882, 0x1c955882, 0x904c8647, 0x904c8647, 0x904c8647, 0xa25a5c73, 0xa25a5c73, 0xa25a5c73, 0x8fce6ee3, 0x8fce6ee3, 0x8fce6ee3, 0x1c955882, 0xde44869f, 0xde44869f, 0x1c955882, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x4c144f16, 0x9c90ee08, 0x4c144f16, 0xb9b0e541, 0x4d266f7a, 0x4d266f7a, 0x4d7fce8d, 0x4d7fce8d, 0x4d7fce8d, 0xa61110ae, 0xa61110ae, 0xa61110ae, 0x947230cb, 0x947230cb, 0x947230cb, 0x4d266f7a, 0xb9b0e541, 0xb9b0e541, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x5dd20b45, 0x44c3e87f, 0x5dd20b45, 0x28766fca, 0x1ed9d731, 0x1ed9d731, 0x82e9ffad, 0x82e9ffad, 0x82e9ffad, 0xea49097e, 0xea49097e, 0xea49097e, 0x66e5e0cf, 0x66e5e0cf, 0x66e5e0cf, 0x1ed9d731, 0x28766fca, 0x28766fca, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xe2b498f9, 0xdd416a91, 0xe2b498f9, 0x92014ec8, 0x5387d57f, 0x5387d57f, 0xe42b0a50, 0xe42b0a50, 0xe42b0a50, 0x8f453267, 0x8f453267, 0x8f453267, 0x65c87d23, 0x65c87d23, 0x65c87d23, 0x5387d57f, 0x92014ec8, 0x92014ec8, 0x5387d57f, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xc36b80c7, 0x806de216, 0xc36b80c7, 0xd02e707a, 0xf83ee7aa, 0xf83ee7aa, 0x8f1478d, 0x8f1478d, 0x8f1478d, 0x7e68bee, 0x7e68bee, 0x7e68bee, 0xaa447554, 0xaa447554, 0xaa447554, 0xf83ee7aa, 0xd02e707a, 0xd02e707a, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x4758874e, 0xe7a130c, 0x4758874e, 0xd6c6b3d3, 0x724366e5, 0x724366e5, 0x1d8d26d5, 0x1d8d26d5, 0x1d8d26d5, 0xa30b710d, 0xa30b710d, 0xa30b710d, 0x23916605, 0x23916605, 0x23916605, 0x724366e5, 0xd6c6b3d3, 0xd6c6b3d3, 0x724366e5, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xc76cdc3, 0xe20cbda0, 0xc76cdc3, 0x7f5e8546, 0x5387d57f, 0x5387d57f, 0xee60e67a, 0xee60e67a, 0xee60e67a, 0xd3bd9d12, 0xd3bd9d12, 0xd3bd9d12, 0xe8510bb4, 0xe8510bb4, 0xe8510bb4, 0x5387d57f, 0x7f5e8546, 0x7f5e8546, 0x5387d57f, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x7fe6a55c, 0x206a8726, 0x7fe6a55c, 0xa5cd15ac, 0xf83ee7aa, 0xf83ee7aa, 0xc47340ba, 0xc47340ba, 0xc47340ba, 0xa146bf6b, 0xa146bf6b, 0xa146bf6b, 0x185283dd, 0x185283dd, 0x185283dd, 0xf83ee7aa, 0xa5cd15ac, 0xa5cd15ac, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xb1a1e81, 0xbec61ffd, 0xb1a1e81, 0x6c612905, 0x724366e5, 0x724366e5, 0x90acf3d2, 0x90acf3d2, 0x90acf3d2, 0x2d34774f, 0x2d34774f, 0x2d34774f, 0x89fb33fc, 0x89fb33fc, 0x89fb33fc, 0x724366e5, 0x6c612905, 0x6c612905, 0x724366e5, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x189ee5dc, 0x66e2ba99, 0x189ee5dc, 0xde44869f, 0x1c955882, 0x1c955882, 0x904c8647, 0x904c8647, 0x904c8647, 0xa25a5c73, 0xa25a5c73, 0xa25a5c73, 0x8fce6ee3, 0x8fce6ee3, 0x8fce6ee3, 0x1c955882, 0xde44869f, 0xde44869f, 0x1c955882, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x4c144f16, 0x9c90ee08, 0x4c144f16, 0xb9b0e541, 0x4d266f7a, 0x4d266f7a, 0x4d7fce8d, 0x4d7fce8d, 0x4d7fce8d, 0xa61110ae, 0xa61110ae, 0xa61110ae, 0x947230cb, 0x947230cb, 0x947230cb, 0x4d266f7a, 0xb9b0e541, 0xb9b0e541, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x5dd20b45, 0x44c3e87f, 0x5dd20b45, 0x28766fca, 0x1ed9d731, 0x1ed9d731, 0x82e9ffad, 0x82e9ffad, 0x82e9ffad, 0xea49097e, 0xea49097e, 0xea49097e, 0x66e5e0cf, 0x66e5e0cf, 0x66e5e0cf, 0x1ed9d731, 0x28766fca, 0x28766fca, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xb948b0d6, 0xd4da4a61, 0xb948b0d6, 0x1f374258, 0x9813a416, 0x9813a416, 0x67ee54be, 0x67ee54be, 0x67ee54be, 0x553c5c5a, 0x553c5c5a, 0x553c5c5a, 0x66bb8727, 0x66bb8727, 0x66bb8727, 0x9813a416, 0x1f374258, 0x1f374258, 0x9813a416, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x1c4bab46, 0x1633fefe, 0x1c4bab46, 0x307ce68, 0x5fcf013d, 0x5fcf013d, 0xabae9d40, 0xabae9d40, 0xabae9d40, 0xd23c72e8, 0xd23c72e8, 0xd23c72e8, 0x13dac0af, 0x13dac0af, 0x13dac0af, 0x5fcf013d, 0x307ce68, 0x307ce68, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x601d59d6, 0x1b985f84, 0x601d59d6, 0x2af4d339, 0xdd28f52b, 0xdd28f52b, 0x467ca6f5, 0x467ca6f5, 0x467ca6f5, 0x2cee1b02, 0x2cee1b02, 0x2cee1b02, 0xfaf44cd7, 0xfaf44cd7, 0xfaf44cd7, 0xdd28f52b, 0x2af4d339, 0x2af4d339, 0xdd28f52b, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xfcdcbc9a, 0xd12d4f6d, 0xfcdcbc9a, 0xc82ae9e, 0x59c36f00, 0x59c36f00, 0x34c2f3cf, 0x34c2f3cf, 0x34c2f3cf, 0x36a1fef, 0x36a1fef, 0x36a1fef, 0x75518f3d, 0x75518f3d, 0x75518f3d, 0x59c36f00, 0xc82ae9e, 0xc82ae9e, 0x59c36f00, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x35079acb, 0xd943bd14, 0x35079acb, 0xd26a2221, 0xaa4593fe, 0xaa4593fe, 0xab774321, 0xab774321, 0xab774321, 0xd9562dbf, 0xd9562dbf, 0xd9562dbf, 0x37512b1b, 0x37512b1b, 0x37512b1b, 0xaa4593fe, 0xd26a2221, 0xd26a2221, 0xaa4593fe, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x46e5237a, 0x2b235d4b, 0x46e5237a, 0x571db243, 0xc9cbf769, 0xc9cbf769, 0x8dd0396b, 0x8dd0396b, 0x8dd0396b, 0x3d31f0bd, 0x3d31f0bd, 0x3d31f0bd, 0xcb018ce0, 0xcb018ce0, 0xcb018ce0, 0xc9cbf769, 0x571db243, 0x571db243, 0xc9cbf769, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6bb50287, 0xe1f958bc, 0x6bb50287, 0xcdcaf009, 0x9813a416, 0x9813a416, 0xcf94a159, 0xcf94a159, 0xcf94a159, 0xfd46a9bd, 0xfd46a9bd, 0xfd46a9bd, 0xcec172c0, 0xcec172c0, 0xcec172c0, 0x9813a416, 0xcdcaf009, 0xcdcaf009, 0x9813a416, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xbb628833, 0xcc675871, 0xbb628833, 0xa42eed1d, 0x5fcf013d, 0x5fcf013d, 0x7c345edf, 0x7c345edf, 0x7c345edf, 0x5a6b177, 0x5a6b177, 0x5a6b177, 0xc4400330, 0xc4400330, 0xc4400330, 0x5fcf013d, 0xa42eed1d, 0xa42eed1d, 0x5fcf013d, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3f145e6c, 0xaa2877c9, 0x3f145e6c, 0x75fdd483, 0xdd28f52b, 0xdd28f52b, 0xe8ba34e1, 0xe8ba34e1, 0xe8ba34e1, 0x82288916, 0x82288916, 0x82288916, 0x5432dec3, 0x5432dec3, 0x5432dec3, 0xdd28f52b, 0x75fdd483, 0x75fdd483, 0xdd28f52b, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0xfcdcbc9a, 0xd12d4f6d, 0xfcdcbc9a, 0xc82ae9e, 0x59c36f00, 0x59c36f00, 0x34c2f3cf, 0x34c2f3cf, 0x34c2f3cf, 0x36a1fef, 0x36a1fef, 0x36a1fef, 0x75518f3d, 0x75518f3d, 0x75518f3d, 0x59c36f00, 0xc82ae9e, 0xc82ae9e, 0x59c36f00, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x35079acb, 0xd943bd14, 0x35079acb, 0xd26a2221, 0xaa4593fe, 0xaa4593fe, 0xab774321, 0xab774321, 0xab774321, 0xd9562dbf, 0xd9562dbf, 0xd9562dbf, 0x37512b1b, 0x37512b1b, 0x37512b1b, 0xaa4593fe, 0xd26a2221, 0xd26a2221, 0xaa4593fe, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x46e5237a, 0x2b235d4b, 0x46e5237a, 0x571db243, 0xc9cbf769, 0xc9cbf769, 0x8dd0396b, 0x8dd0396b, 0x8dd0396b, 0x3d31f0bd, 0x3d31f0bd, 0x3d31f0bd, 0xcb018ce0, 0xcb018ce0, 0xcb018ce0, 0xc9cbf769, 0x571db243, 0x571db243, 0xc9cbf769, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xe22102, 0x4e2353b3, 0xe22102, 0x7057f733, 0x5387d57f, 0x5387d57f, 0xb2299ec3, 0xb2299ec3, 0xb2299ec3, 0xd947a6f4, 0xd947a6f4, 0xd947a6f4, 0x33cae9b0, 0x33cae9b0, 0x33cae9b0, 0x5387d57f, 0x7057f733, 0x7057f733, 0x5387d57f, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xb0bc18a8, 0xdcba5754, 0xb0bc18a8, 0xa3f9e815, 0xf83ee7aa, 0xf83ee7aa, 0x2e9d34a, 0x2e9d34a, 0x2e9d34a, 0xdfe1f29, 0xdfe1f29, 0xdfe1f29, 0xa05ce193, 0xa05ce193, 0xa05ce193, 0xf83ee7aa, 0xa3f9e815, 0xa3f9e815, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x3edf55a1, 0x33430c4, 0x3edf55a1, 0xaf41613c, 0x724366e5, 0x724366e5, 0x3385a58, 0x3385a58, 0x3385a58, 0xbdbe0d80, 0xbdbe0d80, 0xbdbe0d80, 0x3d241a88, 0x3d241a88, 0x3d241a88, 0x724366e5, 0xaf41613c, 0xaf41613c, 0x724366e5, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x7962e0b6, 0x815387c6, 0x7962e0b6, 0xa4aa833, 0x5387d57f, 0x5387d57f, 0x2fc1a074, 0x2fc1a074, 0x2fc1a074, 0x121cdb1c, 0x121cdb1c, 0x121cdb1c, 0x29f04dba, 0x29f04dba, 0x29f04dba, 0x5387d57f, 0xa4aa833, 0xa4aa833, 0x5387d57f, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xc563f0b8, 0x83a415d9, 0xc563f0b8, 0x1f484048, 0xf83ee7aa, 0xf83ee7aa, 0xb408c313, 0xb408c313, 0xb408c313, 0xd13d3cc2, 0xd13d3cc2, 0xd13d3cc2, 0x68290074, 0x68290074, 0x68290074, 0xf83ee7aa, 0x1f484048, 0x1f484048, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x155ac5b, 0xe529c7f1, 0x155ac5b, 0x662e9bdf, 0x724366e5, 0x724366e5, 0xbf93765f, 0xbf93765f, 0xbf93765f, 0x20bf2c2, 0x20bf2c2, 0x20bf2c2, 0xa6c4b671, 0xa6c4b671, 0xa6c4b671, 0x724366e5, 0x662e9bdf, 0x662e9bdf, 0x724366e5, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x3c57c9a3, 0x64709f28, 0x3c57c9a3, 0xfa8daae0, 0x1c955882, 0x1c955882, 0xfe112969, 0xfe112969, 0xfe112969, 0xcc07f35d, 0xcc07f35d, 0xcc07f35d, 0xe193c1cd, 0xe193c1cd, 0xe193c1cd, 0x1c955882, 0xfa8daae0, 0xfa8daae0, 0x1c955882, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xa004c3fc, 0xdf87f97c, 0xa004c3fc, 0x55a069ab, 0x4d266f7a, 0x4d266f7a, 0xe3f465a3, 0xe3f465a3, 0xe3f465a3, 0x89abb80, 0x89abb80, 0x89abb80, 0x3af99be5, 0x3af99be5, 0x3af99be5, 0x4d266f7a, 0x55a069ab, 0x55a069ab, 0x4d266f7a, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xb9a2989, 0x6bf23b20, 0xb9a2989, 0x7e3e4d06, 0x1ed9d731, 0x1ed9d731, 0x13680b3e, 0x13680b3e, 0x13680b3e, 0x7bc8fded, 0x7bc8fded, 0x7bc8fded, 0xf764145c, 0xf764145c, 0xf764145c, 0x1ed9d731, 0x7e3e4d06, 0x7e3e4d06, 0x1ed9d731, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xe22102, 0x4e2353b3, 0xe22102, 0x7057f733, 0x5387d57f, 0x5387d57f, 0xb2299ec3, 0xb2299ec3, 0xb2299ec3, 0xd947a6f4, 0xd947a6f4, 0xd947a6f4, 0x33cae9b0, 0x33cae9b0, 0x33cae9b0, 0x5387d57f, 0x7057f733, 0x7057f733, 0x5387d57f, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xb0bc18a8, 0xdcba5754, 0xb0bc18a8, 0xa3f9e815, 0xf83ee7aa, 0xf83ee7aa, 0x2e9d34a, 0x2e9d34a, 0x2e9d34a, 0xdfe1f29, 0xdfe1f29, 0xdfe1f29, 0xa05ce193, 0xa05ce193, 0xa05ce193, 0xf83ee7aa, 0xa3f9e815, 0xa3f9e815, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x3edf55a1, 0x33430c4, 0x3edf55a1, 0xaf41613c, 0x724366e5, 0x724366e5, 0x3385a58, 0x3385a58, 0x3385a58, 0xbdbe0d80, 0xbdbe0d80, 0xbdbe0d80, 0x3d241a88, 0x3d241a88, 0x3d241a88, 0x724366e5, 0xaf41613c, 0xaf41613c, 0x724366e5, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x7962e0b6, 0x815387c6, 0x7962e0b6, 0xa4aa833, 0x5387d57f, 0x5387d57f, 0x2fc1a074, 0x2fc1a074, 0x2fc1a074, 0x121cdb1c, 0x121cdb1c, 0x121cdb1c, 0x29f04dba, 0x29f04dba, 0x29f04dba, 0x5387d57f, 0xa4aa833, 0xa4aa833, 0x5387d57f, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xc563f0b8, 0x83a415d9, 0xc563f0b8, 0x1f484048, 0xf83ee7aa, 0xf83ee7aa, 0xb408c313, 0xb408c313, 0xb408c313, 0xd13d3cc2, 0xd13d3cc2, 0xd13d3cc2, 0x68290074, 0x68290074, 0x68290074, 0xf83ee7aa, 0x1f484048, 0x1f484048, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x155ac5b, 0xe529c7f1, 0x155ac5b, 0x662e9bdf, 0x724366e5, 0x724366e5, 0xbf93765f, 0xbf93765f, 0xbf93765f, 0x20bf2c2, 0x20bf2c2, 0x20bf2c2, 0xa6c4b671, 0xa6c4b671, 0xa6c4b671, 0x724366e5, 0x662e9bdf, 0x662e9bdf, 0x724366e5, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x3c57c9a3, 0x64709f28, 0x3c57c9a3, 0xfa8daae0, 0x1c955882, 0x1c955882, 0xfe112969, 0xfe112969, 0xfe112969, 0xcc07f35d, 0xcc07f35d, 0xcc07f35d, 0xe193c1cd, 0xe193c1cd, 0xe193c1cd, 0x1c955882, 0xfa8daae0, 0xfa8daae0, 0x1c955882, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xa004c3fc, 0xdf87f97c, 0xa004c3fc, 0x55a069ab, 0x4d266f7a, 0x4d266f7a, 0xe3f465a3, 0xe3f465a3, 0xe3f465a3, 0x89abb80, 0x89abb80, 0x89abb80, 0x3af99be5, 0x3af99be5, 0x3af99be5, 0x4d266f7a, 0x55a069ab, 0x55a069ab, 0x4d266f7a, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xb9a2989, 0x6bf23b20, 0xb9a2989, 0x7e3e4d06, 0x1ed9d731, 0x1ed9d731, 0x13680b3e, 0x13680b3e, 0x13680b3e, 0x7bc8fded, 0x7bc8fded, 0x7bc8fded, 0xf764145c, 0xf764145c, 0xf764145c, 0x1ed9d731, 0x7e3e4d06, 0x7e3e4d06, 0x1ed9d731, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x6bb50287, 0xe1f958bc, 0x6bb50287, 0xcdcaf009, 0x9813a416, 0x9813a416, 0xcf94a159, 0xcf94a159, 0xcf94a159, 0xfd46a9bd, 0xfd46a9bd, 0xfd46a9bd, 0xcec172c0, 0xcec172c0, 0xcec172c0, 0x9813a416, 0xcdcaf009, 0xcdcaf009, 0x9813a416, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xbb628833, 0xcc675871, 0xbb628833, 0xa42eed1d, 0x5fcf013d, 0x5fcf013d, 0x7c345edf, 0x7c345edf, 0x7c345edf, 0x5a6b177, 0x5a6b177, 0x5a6b177, 0xc4400330, 0xc4400330, 0xc4400330, 0x5fcf013d, 0xa42eed1d, 0xa42eed1d, 0x5fcf013d, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3f145e6c, 0xaa2877c9, 0x3f145e6c, 0x75fdd483, 0xdd28f52b, 0xdd28f52b, 0xe8ba34e1, 0xe8ba34e1, 0xe8ba34e1, 0x82288916, 0x82288916, 0x82288916, 0x5432dec3, 0x5432dec3, 0x5432dec3, 0xdd28f52b, 0x75fdd483, 0x75fdd483, 0xdd28f52b, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x664743b6, 0xae5f9a61, 0x664743b6, 0x961951b2, 0x59c36f00, 0x59c36f00, 0x385870f8, 0x385870f8, 0x385870f8, 0xff09cd8, 0xff09cd8, 0xff09cd8, 0x79cb0c0a, 0x79cb0c0a, 0x79cb0c0a, 0x59c36f00, 0x961951b2, 0x961951b2, 0x59c36f00, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xbbf1ef7e, 0xac6e54e7, 0xbbf1ef7e, 0x5c9c5794, 0xaa4593fe, 0xaa4593fe, 0xe5def7f5, 0xe5def7f5, 0xe5def7f5, 0x97ff996b, 0x97ff996b, 0x97ff996b, 0x79f89fcf, 0x79f89fcf, 0x79f89fcf, 0xaa4593fe, 0x5c9c5794, 0x5c9c5794, 0xaa4593fe, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x221271bb, 0xcea44f97, 0x221271bb, 0x33eae082, 0xc9cbf769, 0xc9cbf769, 0x3a85d6d2, 0x3a85d6d2, 0x3a85d6d2, 0x8a641f04, 0x8a641f04, 0x8a641f04, 0x7c546359, 0x7c546359, 0x7c546359, 0xc9cbf769, 0x33eae082, 0x33eae082, 0xc9cbf769, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x3b9687f8, 0xce65ad7f, 0x3b9687f8, 0x9de97576, 0x9813a416, 0x9813a416, 0xe85391b9, 0xe85391b9, 0xe85391b9, 0xda81995d, 0xda81995d, 0xda81995d, 0xe9064220, 0xe9064220, 0xe9064220, 0x9813a416, 0x9de97576, 0x9de97576, 0x9813a416, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8f32cb1, 0xd73691c5, 0x8f32cb1, 0x17bf499f, 0x5fcf013d, 0x5fcf013d, 0x55ffe784, 0x55ffe784, 0x55ffe784, 0x2c6d082c, 0x2c6d082c, 0x2c6d082c, 0xed8bba6b, 0xed8bba6b, 0xed8bba6b, 0x5fcf013d, 0x17bf499f, 0x17bf499f, 0x5fcf013d, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5a20c4be, 0xb5dc3da5, 0x5a20c4be, 0x10c94e51, 0xdd28f52b, 0xdd28f52b, 0xa719aebf, 0xa719aebf, 0xa719aebf, 0xcd8b1348, 0xcd8b1348, 0xcd8b1348, 0x1b91449d, 0x1b91449d, 0x1b91449d, 0xdd28f52b, 0x10c94e51, 0x10c94e51, 0xdd28f52b, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x664743b6, 0xae5f9a61, 0x664743b6, 0x961951b2, 0x59c36f00, 0x59c36f00, 0x385870f8, 0x385870f8, 0x385870f8, 0xff09cd8, 0xff09cd8, 0xff09cd8, 0x79cb0c0a, 0x79cb0c0a, 0x79cb0c0a, 0x59c36f00, 0x961951b2, 0x961951b2, 0x59c36f00, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xbbf1ef7e, 0xac6e54e7, 0xbbf1ef7e, 0x5c9c5794, 0xaa4593fe, 0xaa4593fe, 0xe5def7f5, 0xe5def7f5, 0xe5def7f5, 0x97ff996b, 0x97ff996b, 0x97ff996b, 0x79f89fcf, 0x79f89fcf, 0x79f89fcf, 0xaa4593fe, 0x5c9c5794, 0x5c9c5794, 0xaa4593fe, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x221271bb, 0xcea44f97, 0x221271bb, 0x33eae082, 0xc9cbf769, 0xc9cbf769, 0x3a85d6d2, 0x3a85d6d2, 0x3a85d6d2, 0x8a641f04, 0x8a641f04, 0x8a641f04, 0x7c546359, 0x7c546359, 0x7c546359, 0xc9cbf769, 0x33eae082, 0x33eae082, 0xc9cbf769, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x77626aa4, 0x27d8bb0e, 0x77626aa4, 0x7d7bc95, 0x5387d57f, 0x5387d57f, 0x7006da7b, 0x7006da7b, 0x7006da7b, 0x1b68e24c, 0x1b68e24c, 0x1b68e24c, 0xf1e5ad08, 0xf1e5ad08, 0xf1e5ad08, 0x5387d57f, 0x7d7bc95, 0x7d7bc95, 0x5387d57f, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8d2042df, 0x88312dd7, 0x8d2042df, 0x9e65b262, 0xf83ee7aa, 0xf83ee7aa, 0x2878254f, 0x2878254f, 0x2878254f, 0x276fe92c, 0x276fe92c, 0x276fe92c, 0x8acd1796, 0x8acd1796, 0x8acd1796, 0xf83ee7aa, 0x9e65b262, 0x9e65b262, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xd203bd0, 0x17426b59, 0xd203bd0, 0x9cbe0f4d, 0x724366e5, 0x724366e5, 0xcf3b3ce5, 0xcf3b3ce5, 0xcf3b3ce5, 0x71bd6b3d, 0x71bd6b3d, 0x71bd6b3d, 0xf1277c35, 0xf1277c35, 0xf1277c35, 0x724366e5, 0x9cbe0f4d, 0x9cbe0f4d, 0x724366e5, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x3d7c81ff, 0xa5c174d5, 0x3d7c81ff, 0x4e54c97a, 0x5387d57f, 0x5387d57f, 0x34eb1f93, 0x34eb1f93, 0x34eb1f93, 0x93664fb, 0x93664fb, 0x93664fb, 0x32daf25d, 0x32daf25d, 0x32daf25d, 0x5387d57f, 0x4e54c97a, 0x4e54c97a, 0x5387d57f, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xe73e3728, 0xdf1b0a76, 0xe73e3728, 0x3d1587d8, 0xf83ee7aa, 0xf83ee7aa, 0xaf036644, 0xaf036644, 0xaf036644, 0xca369995, 0xca369995, 0xca369995, 0x7322a523, 0x7322a523, 0x7322a523, 0xf83ee7aa, 0x3d1587d8, 0x3d1587d8, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xd1da1d01, 0x40e7fe9c, 0xd1da1d01, 0xb6a12a85, 0x724366e5, 0x724366e5, 0xc5ba9481, 0xc5ba9481, 0xc5ba9481, 0x7822101c, 0x7822101c, 0x7822101c, 0xdced54af, 0xdced54af, 0xdced54af, 0x724366e5, 0xb6a12a85, 0xb6a12a85, 0x724366e5, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x603d4cb4, 0x3a9935e6, 0x603d4cb4, 0xa6e72ff7, 0x1c955882, 0x1c955882, 0x91e2ab2e, 0x91e2ab2e, 0x91e2ab2e, 0xa3f4711a, 0xa3f4711a, 0xa3f4711a, 0x8e60438a, 0x8e60438a, 0x8e60438a, 0x1c955882, 0xa6e72ff7, 0xa6e72ff7, 0x1c955882, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xab55c43c, 0x47a63ffd, 0xab55c43c, 0x5ef16e6b, 0x4d266f7a, 0x4d266f7a, 0x72a19422, 0x72a19422, 0x72a19422, 0x99cf4a01, 0x99cf4a01, 0x99cf4a01, 0xabac6a64, 0xabac6a64, 0xabac6a64, 0x4d266f7a, 0x5ef16e6b, 0x5ef16e6b, 0x4d266f7a, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd5eb9850, 0xd6f4b8d3, 0xd5eb9850, 0xa04ffcdf, 0x1ed9d731, 0x1ed9d731, 0x3e6ebbaf, 0x3e6ebbaf, 0x3e6ebbaf, 0x56ce4d7c, 0x56ce4d7c, 0x56ce4d7c, 0xda62a4cd, 0xda62a4cd, 0xda62a4cd, 0x1ed9d731, 0xa04ffcdf, 0xa04ffcdf, 0x1ed9d731, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x77626aa4, 0x27d8bb0e, 0x77626aa4, 0x7d7bc95, 0x5387d57f, 0x5387d57f, 0x7006da7b, 0x7006da7b, 0x7006da7b, 0x1b68e24c, 0x1b68e24c, 0x1b68e24c, 0xf1e5ad08, 0xf1e5ad08, 0xf1e5ad08, 0x5387d57f, 0x7d7bc95, 0x7d7bc95, 0x5387d57f, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8d2042df, 0x88312dd7, 0x8d2042df, 0x9e65b262, 0xf83ee7aa, 0xf83ee7aa, 0x2878254f, 0x2878254f, 0x2878254f, 0x276fe92c, 0x276fe92c, 0x276fe92c, 0x8acd1796, 0x8acd1796, 0x8acd1796, 0xf83ee7aa, 0x9e65b262, 0x9e65b262, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xd203bd0, 0x17426b59, 0xd203bd0, 0x9cbe0f4d, 0x724366e5, 0x724366e5, 0xcf3b3ce5, 0xcf3b3ce5, 0xcf3b3ce5, 0x71bd6b3d, 0x71bd6b3d, 0x71bd6b3d, 0xf1277c35, 0xf1277c35, 0xf1277c35, 0x724366e5, 0x9cbe0f4d, 0x9cbe0f4d, 0x724366e5, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x3d7c81ff, 0xa5c174d5, 0x3d7c81ff, 0x4e54c97a, 0x5387d57f, 0x5387d57f, 0x34eb1f93, 0x34eb1f93, 0x34eb1f93, 0x93664fb, 0x93664fb, 0x93664fb, 0x32daf25d, 0x32daf25d, 0x32daf25d, 0x5387d57f, 0x4e54c97a, 0x4e54c97a, 0x5387d57f, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xe73e3728, 0xdf1b0a76, 0xe73e3728, 0x3d1587d8, 0xf83ee7aa, 0xf83ee7aa, 0xaf036644, 0xaf036644, 0xaf036644, 0xca369995, 0xca369995, 0xca369995, 0x7322a523, 0x7322a523, 0x7322a523, 0xf83ee7aa, 0x3d1587d8, 0x3d1587d8, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xd1da1d01, 0x40e7fe9c, 0xd1da1d01, 0xb6a12a85, 0x724366e5, 0x724366e5, 0xc5ba9481, 0xc5ba9481, 0xc5ba9481, 0x7822101c, 0x7822101c, 0x7822101c, 0xdced54af, 0xdced54af, 0xdced54af, 0x724366e5, 0xb6a12a85, 0xb6a12a85, 0x724366e5, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x603d4cb4, 0x3a9935e6, 0x603d4cb4, 0xa6e72ff7, 0x1c955882, 0x1c955882, 0x91e2ab2e, 0x91e2ab2e, 0x91e2ab2e, 0xa3f4711a, 0xa3f4711a, 0xa3f4711a, 0x8e60438a, 0x8e60438a, 0x8e60438a, 0x1c955882, 0xa6e72ff7, 0xa6e72ff7, 0x1c955882, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xab55c43c, 0x47a63ffd, 0xab55c43c, 0x5ef16e6b, 0x4d266f7a, 0x4d266f7a, 0x72a19422, 0x72a19422, 0x72a19422, 0x99cf4a01, 0x99cf4a01, 0x99cf4a01, 0xabac6a64, 0xabac6a64, 0xabac6a64, 0x4d266f7a, 0x5ef16e6b, 0x5ef16e6b, 0x4d266f7a, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xd5eb9850, 0xd6f4b8d3, 0xd5eb9850, 0xa04ffcdf, 0x1ed9d731, 0x1ed9d731, 0x3e6ebbaf, 0x3e6ebbaf, 0x3e6ebbaf, 0x56ce4d7c, 0x56ce4d7c, 0x56ce4d7c, 0xda62a4cd, 0xda62a4cd, 0xda62a4cd, 0x1ed9d731, 0xa04ffcdf, 0xa04ffcdf, 0x1ed9d731, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x3b9687f8, 0xce65ad7f, 0x3b9687f8, 0x9de97576, 0x9813a416, 0x9813a416, 0xe85391b9, 0xe85391b9, 0xe85391b9, 0xda81995d, 0xda81995d, 0xda81995d, 0xe9064220, 0xe9064220, 0xe9064220, 0x9813a416, 0x9de97576, 0x9de97576, 0x9813a416, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8f32cb1, 0xd73691c5, 0x8f32cb1, 0x17bf499f, 0x5fcf013d, 0x5fcf013d, 0x55ffe784, 0x55ffe784, 0x55ffe784, 0x2c6d082c, 0x2c6d082c, 0x2c6d082c, 0xed8bba6b, 0xed8bba6b, 0xed8bba6b, 0x5fcf013d, 0x17bf499f, 0x17bf499f, 0x5fcf013d, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5a20c4be, 0xb5dc3da5, 0x5a20c4be, 0x10c94e51, 0xdd28f52b, 0xdd28f52b, 0xa719aebf, 0xa719aebf, 0xa719aebf, 0xcd8b1348, 0xcd8b1348, 0xcd8b1348, 0x1b91449d, 0x1b91449d, 0x1b91449d, 0xdd28f52b, 0x10c94e51, 0x10c94e51, 0xdd28f52b, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x2a7e97c3, 0x3be15c68, 0x2a7e97c3, 0xda2085c7, 0x59c36f00, 0x59c36f00, 0x1839c826, 0x1839c826, 0x1839c826, 0x2f912406, 0x2f912406, 0x2f912406, 0x59aab4d4, 0x59aab4d4, 0x59aab4d4, 0x59c36f00, 0xda2085c7, 0xda2085c7, 0x59c36f00, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xc6029ded, 0x52d25b27, 0xc6029ded, 0x216f2507, 0xaa4593fe, 0xaa4593fe, 0x22985aea, 0x22985aea, 0x22985aea, 0x50b93474, 0x50b93474, 0x50b93474, 0xbebe32d0, 0xbebe32d0, 0xbebe32d0, 0xaa4593fe, 0x216f2507, 0x216f2507, 0xaa4593fe, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xcbff61aa, 0xa9ca8a15, 0xcbff61aa, 0xda07f093, 0xc9cbf769, 0xc9cbf769, 0x47ca6cff, 0x47ca6cff, 0x47ca6cff, 0xf72ba529, 0xf72ba529, 0xf72ba529, 0x11bd974, 0x11bd974, 0x11bd974, 0xc9cbf769, 0xda07f093, 0xda07f093, 0xc9cbf769, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x2df13f91, 0x3dc68f3d, 0x2df13f91, 0x8b8ecd1f, 0x9813a416, 0x9813a416, 0x4d501c22, 0x4d501c22, 0x4d501c22, 0x7f8214c6, 0x7f8214c6, 0x7f8214c6, 0x4c05cfbb, 0x4c05cfbb, 0x4c05cfbb, 0x9813a416, 0x8b8ecd1f, 0x8b8ecd1f, 0x9813a416, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x27757486, 0x9c300eca, 0x27757486, 0x383911a8, 0x5fcf013d, 0x5fcf013d, 0xc4765255, 0xc4765255, 0xc4765255, 0xbde4bdfd, 0xbde4bdfd, 0xbde4bdfd, 0x7c020fba, 0x7c020fba, 0x7c020fba, 0x5fcf013d, 0x383911a8, 0x383911a8, 0x5fcf013d, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x79973d2, 0xb499914b, 0x79973d2, 0x4d70f93d, 0xdd28f52b, 0xdd28f52b, 0x1f44d5b9, 0x1f44d5b9, 0x1f44d5b9, 0x75d6684e, 0x75d6684e, 0x75d6684e, 0xa3cc3f9b, 0xa3cc3f9b, 0xa3cc3f9b, 0xdd28f52b, 0x4d70f93d, 0x4d70f93d, 0xdd28f52b, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x2a7e97c3, 0x3be15c68, 0x2a7e97c3, 0xda2085c7, 0x59c36f00, 0x59c36f00, 0x1839c826, 0x1839c826, 0x1839c826, 0x2f912406, 0x2f912406, 0x2f912406, 0x59aab4d4, 0x59aab4d4, 0x59aab4d4, 0x59c36f00, 0xda2085c7, 0xda2085c7, 0x59c36f00, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xc6029ded, 0x52d25b27, 0xc6029ded, 0x216f2507, 0xaa4593fe, 0xaa4593fe, 0x22985aea, 0x22985aea, 0x22985aea, 0x50b93474, 0x50b93474, 0x50b93474, 0xbebe32d0, 0xbebe32d0, 0xbebe32d0, 0xaa4593fe, 0x216f2507, 0x216f2507, 0xaa4593fe, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xcbff61aa, 0xa9ca8a15, 0xcbff61aa, 0xda07f093, 0xc9cbf769, 0xc9cbf769, 0x47ca6cff, 0x47ca6cff, 0x47ca6cff, 0xf72ba529, 0xf72ba529, 0xf72ba529, 0x11bd974, 0x11bd974, 0x11bd974, 0xc9cbf769, 0xda07f093, 0xda07f093, 0xc9cbf769, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x183a9c7b, 0xd0cb89f6, 0x183a9c7b, 0x688f4a4a, 0x5387d57f, 0x5387d57f, 0xf73e8d51, 0xf73e8d51, 0xf73e8d51, 0x9c50b566, 0x9c50b566, 0x9c50b566, 0x76ddfa22, 0x76ddfa22, 0x76ddfa22, 0x5387d57f, 0x688f4a4a, 0x688f4a4a, 0x5387d57f, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd4947854, 0x6a891549, 0xd4947854, 0xc7d188e9, 0xf83ee7aa, 0xf83ee7aa, 0x25ace02f, 0x25ace02f, 0x25ace02f, 0x2abb2c4c, 0x2abb2c4c, 0x2abb2c4c, 0x8719d2f6, 0x8719d2f6, 0x8719d2f6, 0xf83ee7aa, 0xc7d188e9, 0xc7d188e9, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xc052007a, 0xb13719bf, 0xc052007a, 0x51cc34e7, 0x724366e5, 0x724366e5, 0x93a5ae77, 0x93a5ae77, 0x93a5ae77, 0x2d23f9af, 0x2d23f9af, 0x2d23f9af, 0xadb9eea7, 0xadb9eea7, 0xadb9eea7, 0x724366e5, 0x51cc34e7, 0x51cc34e7, 0x724366e5, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x2c8b0bd8, 0xe2601f4, 0x2c8b0bd8, 0x5fa3435d, 0x5387d57f, 0x5387d57f, 0x8e1f6970, 0x8e1f6970, 0x8e1f6970, 0xb3c21218, 0xb3c21218, 0xb3c21218, 0x882e84be, 0x882e84be, 0x882e84be, 0x5387d57f, 0x5fa3435d, 0x5fa3435d, 0x5387d57f, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xe0188390, 0x3aed411b, 0xe0188390, 0x3a333360, 0xf83ee7aa, 0xf83ee7aa, 0xd8e98449, 0xd8e98449, 0xd8e98449, 0xbddc7b98, 0xbddc7b98, 0xbddc7b98, 0x4c8472e, 0x4c8472e, 0x4c8472e, 0xf83ee7aa, 0x3a333360, 0x3a333360, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x10b6bc80, 0x2aac1924, 0x10b6bc80, 0x77cd8b04, 0x724366e5, 0x724366e5, 0x8260df58, 0x8260df58, 0x8260df58, 0x3ff85bc5, 0x3ff85bc5, 0x3ff85bc5, 0x9b371f76, 0x9b371f76, 0x9b371f76, 0x724366e5, 0x77cd8b04, 0x77cd8b04, 0x724366e5, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x8c72313f, 0x4cfced12, 0x8c72313f, 0x4aa8527c, 0x1c955882, 0x1c955882, 0x9c0f3299, 0x9c0f3299, 0x9c0f3299, 0xae19e8ad, 0xae19e8ad, 0xae19e8ad, 0x838dda3d, 0x838dda3d, 0x838dda3d, 0x1c955882, 0x4aa8527c, 0x4aa8527c, 0x1c955882, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x2e321f11, 0xef4c7336, 0x2e321f11, 0xdb96b546, 0x4d266f7a, 0x4d266f7a, 0x826f10eb, 0x826f10eb, 0x826f10eb, 0x6901cec8, 0x6901cec8, 0x6901cec8, 0x5b62eead, 0x5b62eead, 0x5b62eead, 0x4d266f7a, 0xdb96b546, 0xdb96b546, 0x4d266f7a, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x5e6477a3, 0x7ad01a93, 0x5e6477a3, 0x2bc0132c, 0x1ed9d731, 0x1ed9d731, 0xfa679063, 0xfa679063, 0xfa679063, 0x92c766b0, 0x92c766b0, 0x92c766b0, 0x1e6b8f01, 0x1e6b8f01, 0x1e6b8f01, 0x1ed9d731, 0x2bc0132c, 0x2bc0132c, 0x1ed9d731, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x183a9c7b, 0xd0cb89f6, 0x183a9c7b, 0x688f4a4a, 0x5387d57f, 0x5387d57f, 0xf73e8d51, 0xf73e8d51, 0xf73e8d51, 0x9c50b566, 0x9c50b566, 0x9c50b566, 0x76ddfa22, 0x76ddfa22, 0x76ddfa22, 0x5387d57f, 0x688f4a4a, 0x688f4a4a, 0x5387d57f, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xd4947854, 0x6a891549, 0xd4947854, 0xc7d188e9, 0xf83ee7aa, 0xf83ee7aa, 0x25ace02f, 0x25ace02f, 0x25ace02f, 0x2abb2c4c, 0x2abb2c4c, 0x2abb2c4c, 0x8719d2f6, 0x8719d2f6, 0x8719d2f6, 0xf83ee7aa, 0xc7d188e9, 0xc7d188e9, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xc052007a, 0xb13719bf, 0xc052007a, 0x51cc34e7, 0x724366e5, 0x724366e5, 0x93a5ae77, 0x93a5ae77, 0x93a5ae77, 0x2d23f9af, 0x2d23f9af, 0x2d23f9af, 0xadb9eea7, 0xadb9eea7, 0xadb9eea7, 0x724366e5, 0x51cc34e7, 0x51cc34e7, 0x724366e5, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x2c8b0bd8, 0xe2601f4, 0x2c8b0bd8, 0x5fa3435d, 0x5387d57f, 0x5387d57f, 0x8e1f6970, 0x8e1f6970, 0x8e1f6970, 0xb3c21218, 0xb3c21218, 0xb3c21218, 0x882e84be, 0x882e84be, 0x882e84be, 0x5387d57f, 0x5fa3435d, 0x5fa3435d, 0x5387d57f, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xe0188390, 0x3aed411b, 0xe0188390, 0x3a333360, 0xf83ee7aa, 0xf83ee7aa, 0xd8e98449, 0xd8e98449, 0xd8e98449, 0xbddc7b98, 0xbddc7b98, 0xbddc7b98, 0x4c8472e, 0x4c8472e, 0x4c8472e, 0xf83ee7aa, 0x3a333360, 0x3a333360, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x10b6bc80, 0x2aac1924, 0x10b6bc80, 0x77cd8b04, 0x724366e5, 0x724366e5, 0x8260df58, 0x8260df58, 0x8260df58, 0x3ff85bc5, 0x3ff85bc5, 0x3ff85bc5, 0x9b371f76, 0x9b371f76, 0x9b371f76, 0x724366e5, 0x77cd8b04, 0x77cd8b04, 0x724366e5, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x8c72313f, 0x4cfced12, 0x8c72313f, 0x4aa8527c, 0x1c955882, 0x1c955882, 0x9c0f3299, 0x9c0f3299, 0x9c0f3299, 0xae19e8ad, 0xae19e8ad, 0xae19e8ad, 0x838dda3d, 0x838dda3d, 0x838dda3d, 0x1c955882, 0x4aa8527c, 0x4aa8527c, 0x1c955882, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x2e321f11, 0xef4c7336, 0x2e321f11, 0xdb96b546, 0x4d266f7a, 0x4d266f7a, 0x826f10eb, 0x826f10eb, 0x826f10eb, 0x6901cec8, 0x6901cec8, 0x6901cec8, 0x5b62eead, 0x5b62eead, 0x5b62eead, 0x4d266f7a, 0xdb96b546, 0xdb96b546, 0x4d266f7a, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x5e6477a3, 0x7ad01a93, 0x5e6477a3, 0x2bc0132c, 0x1ed9d731, 0x1ed9d731, 0xfa679063, 0xfa679063, 0xfa679063, 0x92c766b0, 0x92c766b0, 0x92c766b0, 0x1e6b8f01, 0x1e6b8f01, 0x1e6b8f01, 0x1ed9d731, 0x2bc0132c, 0x2bc0132c, 0x1ed9d731, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x2df13f91, 0x3dc68f3d, 0x2df13f91, 0x8b8ecd1f, 0x9813a416, 0x9813a416, 0x4d501c22, 0x4d501c22, 0x4d501c22, 0x7f8214c6, 0x7f8214c6, 0x7f8214c6, 0x4c05cfbb, 0x4c05cfbb, 0x4c05cfbb, 0x9813a416, 0x8b8ecd1f, 0x8b8ecd1f, 0x9813a416, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x27757486, 0x9c300eca, 0x27757486, 0x383911a8, 0x5fcf013d, 0x5fcf013d, 0xc4765255, 0xc4765255, 0xc4765255, 0xbde4bdfd, 0xbde4bdfd, 0xbde4bdfd, 0x7c020fba, 0x7c020fba, 0x7c020fba, 0x5fcf013d, 0x383911a8, 0x383911a8, 0x5fcf013d, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x79973d2, 0xb499914b, 0x79973d2, 0x4d70f93d, 0xdd28f52b, 0xdd28f52b, 0x1f44d5b9, 0x1f44d5b9, 0x1f44d5b9, 0x75d6684e, 0x75d6684e, 0x75d6684e, 0xa3cc3f9b, 0xa3cc3f9b, 0xa3cc3f9b, 0xdd28f52b, 0x4d70f93d, 0x4d70f93d, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x3ebe5332, 0x95dd4fe5, 0x3ebe5332, 0xcee04136, 0x59c36f00, 0x59c36f00, 0x7c2c8a2a, 0x7c2c8a2a, 0x7c2c8a2a, 0x4b84660a, 0x4b84660a, 0x4b84660a, 0x3dbff6d8, 0x3dbff6d8, 0x3dbff6d8, 0x59c36f00, 0xcee04136, 0xcee04136, 0x59c36f00, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x5802d7d7, 0xc519b826, 0x5802d7d7, 0xbf6f6f3d, 0xaa4593fe, 0xaa4593fe, 0xc3576c98, 0xc3576c98, 0xc3576c98, 0xb1760206, 0xb1760206, 0xb1760206, 0x5f7104a2, 0x5f7104a2, 0x5f7104a2, 0xaa4593fe, 0xbf6f6f3d, 0xbf6f6f3d, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x1aa55709, 0x7267c865, 0x1aa55709, 0xb5dc630, 0xc9cbf769, 0xc9cbf769, 0xb04a06eb, 0xb04a06eb, 0xb04a06eb, 0xabcf3d, 0xabcf3d, 0xabcf3d, 0xf69bb360, 0xf69bb360, 0xf69bb360, 0xc9cbf769, 0xb5dc630, 0xb5dc630, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x40ebd791, 0xd6b59841, 0x40ebd791, 0xe694251f, 0x9813a416, 0x9813a416, 0xbe6f384, 0xbe6f384, 0xbe6f384, 0x3934fb60, 0x3934fb60, 0x3934fb60, 0xab3201d, 0xab3201d, 0xab3201d, 0x9813a416, 0xe694251f, 0xe694251f, 0x9813a416, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x9d9917d5, 0x3f781d89, 0x9d9917d5, 0x82d572fb, 0x5fcf013d, 0x5fcf013d, 0x3bdf223a, 0x3bdf223a, 0x3bdf223a, 0x424dcd92, 0x424dcd92, 0x424dcd92, 0x83ab7fd5, 0x83ab7fd5, 0x83ab7fd5, 0x5fcf013d, 0x82d572fb, 0x82d572fb, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x48fc6a36, 0x150cb76a, 0x48fc6a36, 0x215e0d9, 0xdd28f52b, 0xdd28f52b, 0xf843e435, 0xf843e435, 0xf843e435, 0x92d159c2, 0x92d159c2, 0x92d159c2, 0x44cb0e17, 0x44cb0e17, 0x44cb0e17, 0xdd28f52b, 0x215e0d9, 0x215e0d9, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x3ebe5332, 0x95dd4fe5, 0x3ebe5332, 0xcee04136, 0x59c36f00, 0x59c36f00, 0x7c2c8a2a, 0x7c2c8a2a, 0x7c2c8a2a, 0x4b84660a, 0x4b84660a, 0x4b84660a, 0x3dbff6d8, 0x3dbff6d8, 0x3dbff6d8, 0x59c36f00, 0xcee04136, 0xcee04136, 0x59c36f00, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x5802d7d7, 0xc519b826, 0x5802d7d7, 0xbf6f6f3d, 0xaa4593fe, 0xaa4593fe, 0xc3576c98, 0xc3576c98, 0xc3576c98, 0xb1760206, 0xb1760206, 0xb1760206, 0x5f7104a2, 0x5f7104a2, 0x5f7104a2, 0xaa4593fe, 0xbf6f6f3d, 0xbf6f6f3d, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x1aa55709, 0x7267c865, 0x1aa55709, 0xb5dc630, 0xc9cbf769, 0xc9cbf769, 0xb04a06eb, 0xb04a06eb, 0xb04a06eb, 0xabcf3d, 0xabcf3d, 0xabcf3d, 0xf69bb360, 0xf69bb360, 0xf69bb360, 0xc9cbf769, 0xb5dc630, 0xb5dc630, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0xed078d92, 0xe65b3e84, 0xed078d92, 0x9db25ba3, 0x5387d57f, 0x5387d57f, 0xacf2ee2c, 0xacf2ee2c, 0xacf2ee2c, 0xc79cd61b, 0xc79cd61b, 0xc79cd61b, 0x2d11995f, 0x2d11995f, 0x2d11995f, 0x5387d57f, 0x9db25ba3, 0x9db25ba3, 0x5387d57f, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x13536212, 0x8f3d6029, 0x13536212, 0x1692af, 0xf83ee7aa, 0xf83ee7aa, 0x23576b23, 0x23576b23, 0x23576b23, 0x2c40a740, 0x2c40a740, 0x2c40a740, 0x81e259fa, 0x81e259fa, 0x81e259fa, 0xf83ee7aa, 0x1692af, 0x1692af, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xd1d07f0a, 0x7aba9822, 0xd1d07f0a, 0x404e4b97, 0x724366e5, 0x724366e5, 0x6fad7053, 0x6fad7053, 0x6fad7053, 0xd12b278b, 0xd12b278b, 0xd12b278b, 0x51b13083, 0x51b13083, 0x51b13083, 0x724366e5, 0x404e4b97, 0x404e4b97, 0x724366e5, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xf3cab74b, 0xddafefd5, 0xf3cab74b, 0x80e2ffce, 0x5387d57f, 0x5387d57f, 0xc5205153, 0xc5205153, 0xc5205153, 0xf8fd2a3b, 0xf8fd2a3b, 0xf8fd2a3b, 0xc311bc9d, 0xc311bc9d, 0xc311bc9d, 0x5387d57f, 0x80e2ffce, 0x80e2ffce, 0x5387d57f, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbdea979c, 0x585500b9, 0xbdea979c, 0x67c1276c, 0xf83ee7aa, 0xf83ee7aa, 0xcb77b3a, 0xcb77b3a, 0xcb77b3a, 0x698284eb, 0x698284eb, 0x698284eb, 0xd096b85d, 0xd096b85d, 0xd096b85d, 0xf83ee7aa, 0x67c1276c, 0x67c1276c, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x5bca5fab, 0xf069ea4, 0x5bca5fab, 0x3cb1682f, 0x724366e5, 0x724366e5, 0xb28cd30a, 0xb28cd30a, 0xb28cd30a, 0xf145797, 0xf145797, 0xf145797, 0xabdb1324, 0xabdb1324, 0xabdb1324, 0x724366e5, 0x3cb1682f, 0x3cb1682f, 0x724366e5, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x3a299523, 0x61b936c7, 0x3a299523, 0xfcf3f660, 0x1c955882, 0x1c955882, 0xf5a3a011, 0xf5a3a011, 0xf5a3a011, 0xc7b57a25, 0xc7b57a25, 0xc7b57a25, 0xea2148b5, 0xea2148b5, 0xea2148b5, 0x1c955882, 0xfcf3f660, 0xfcf3f660, 0x1c955882, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x3bc7f0a6, 0xe271a46, 0x3bc7f0a6, 0xce635af1, 0x4d266f7a, 0x4d266f7a, 0x80eb545f, 0x80eb545f, 0x80eb545f, 0x6b858a7c, 0x6b858a7c, 0x6b858a7c, 0x59e6aa19, 0x59e6aa19, 0x59e6aa19, 0x4d266f7a, 0xce635af1, 0xce635af1, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe8477fbf, 0x258bfb15, 0xe8477fbf, 0x9de31b30, 0x1ed9d731, 0x1ed9d731, 0x261f7e5, 0x261f7e5, 0x261f7e5, 0x6ac10136, 0x6ac10136, 0x6ac10136, 0xe66de887, 0xe66de887, 0xe66de887, 0x1ed9d731, 0x9de31b30, 0x9de31b30, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xed078d92, 0xe65b3e84, 0xed078d92, 0x9db25ba3, 0x5387d57f, 0x5387d57f, 0xacf2ee2c, 0xacf2ee2c, 0xacf2ee2c, 0xc79cd61b, 0xc79cd61b, 0xc79cd61b, 0x2d11995f, 0x2d11995f, 0x2d11995f, 0x5387d57f, 0x9db25ba3, 0x9db25ba3, 0x5387d57f, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x13536212, 0x8f3d6029, 0x13536212, 0x1692af, 0xf83ee7aa, 0xf83ee7aa, 0x23576b23, 0x23576b23, 0x23576b23, 0x2c40a740, 0x2c40a740, 0x2c40a740, 0x81e259fa, 0x81e259fa, 0x81e259fa, 0xf83ee7aa, 0x1692af, 0x1692af, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xd1d07f0a, 0x7aba9822, 0xd1d07f0a, 0x404e4b97, 0x724366e5, 0x724366e5, 0x6fad7053, 0x6fad7053, 0x6fad7053, 0xd12b278b, 0xd12b278b, 0xd12b278b, 0x51b13083, 0x51b13083, 0x51b13083, 0x724366e5, 0x404e4b97, 0x404e4b97, 0x724366e5, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xf3cab74b, 0xddafefd5, 0xf3cab74b, 0x80e2ffce, 0x5387d57f, 0x5387d57f, 0xc5205153, 0xc5205153, 0xc5205153, 0xf8fd2a3b, 0xf8fd2a3b, 0xf8fd2a3b, 0xc311bc9d, 0xc311bc9d, 0xc311bc9d, 0x5387d57f, 0x80e2ffce, 0x80e2ffce, 0x5387d57f, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbdea979c, 0x585500b9, 0xbdea979c, 0x67c1276c, 0xf83ee7aa, 0xf83ee7aa, 0xcb77b3a, 0xcb77b3a, 0xcb77b3a, 0x698284eb, 0x698284eb, 0x698284eb, 0xd096b85d, 0xd096b85d, 0xd096b85d, 0xf83ee7aa, 0x67c1276c, 0x67c1276c, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x5bca5fab, 0xf069ea4, 0x5bca5fab, 0x3cb1682f, 0x724366e5, 0x724366e5, 0xb28cd30a, 0xb28cd30a, 0xb28cd30a, 0xf145797, 0xf145797, 0xf145797, 0xabdb1324, 0xabdb1324, 0xabdb1324, 0x724366e5, 0x3cb1682f, 0x3cb1682f, 0x724366e5, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x3a299523, 0x61b936c7, 0x3a299523, 0xfcf3f660, 0x1c955882, 0x1c955882, 0xf5a3a011, 0xf5a3a011, 0xf5a3a011, 0xc7b57a25, 0xc7b57a25, 0xc7b57a25, 0xea2148b5, 0xea2148b5, 0xea2148b5, 0x1c955882, 0xfcf3f660, 0xfcf3f660, 0x1c955882, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x3bc7f0a6, 0xe271a46, 0x3bc7f0a6, 0xce635af1, 0x4d266f7a, 0x4d266f7a, 0x80eb545f, 0x80eb545f, 0x80eb545f, 0x6b858a7c, 0x6b858a7c, 0x6b858a7c, 0x59e6aa19, 0x59e6aa19, 0x59e6aa19, 0x4d266f7a, 0xce635af1, 0xce635af1, 0x4d266f7a, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe8477fbf, 0x258bfb15, 0xe8477fbf, 0x9de31b30, 0x1ed9d731, 0x1ed9d731, 0x261f7e5, 0x261f7e5, 0x261f7e5, 0x6ac10136, 0x6ac10136, 0x6ac10136, 0xe66de887, 0xe66de887, 0xe66de887, 0x1ed9d731, 0x9de31b30, 0x9de31b30, 0x1ed9d731, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x40ebd791, 0xd6b59841, 0x40ebd791, 0xe694251f, 0x9813a416, 0x9813a416, 0xbe6f384, 0xbe6f384, 0xbe6f384, 0x3934fb60, 0x3934fb60, 0x3934fb60, 0xab3201d, 0xab3201d, 0xab3201d, 0x9813a416, 0xe694251f, 0xe694251f, 0x9813a416, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x9d9917d5, 0x3f781d89, 0x9d9917d5, 0x82d572fb, 0x5fcf013d, 0x5fcf013d, 0x3bdf223a, 0x3bdf223a, 0x3bdf223a, 0x424dcd92, 0x424dcd92, 0x424dcd92, 0x83ab7fd5, 0x83ab7fd5, 0x83ab7fd5, 0x5fcf013d, 0x82d572fb, 0x82d572fb, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x48fc6a36, 0x150cb76a, 0x48fc6a36, 0x215e0d9, 0xdd28f52b, 0xdd28f52b, 0xf843e435, 0xf843e435, 0xf843e435, 0x92d159c2, 0x92d159c2, 0x92d159c2, 0x44cb0e17, 0x44cb0e17, 0x44cb0e17, 0xdd28f52b, 0x215e0d9, 0x215e0d9, 0xdd28f52b, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x5ada9562, 0x92c24cb5, 0x5ada9562, 0xa87078ee, 0x59c36f00, 0x59c36f00, 0xa3fd4fe2, 0xa3fd4fe2, 0xa3fd4fe2, 0x9455a3c2, 0x9455a3c2, 0x9455a3c2, 0xe26e3310, 0xe26e3310, 0xe26e3310, 0x59c36f00, 0xa87078ee, 0xa87078ee, 0x59c36f00, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x91306ec6, 0x86afd55f, 0x91306ec6, 0xb0176694, 0xaa4593fe, 0xaa4593fe, 0x7382c9ba, 0x7382c9ba, 0x7382c9ba, 0x1a3a724, 0x1a3a724, 0x1a3a724, 0xefa4a180, 0xefa4a180, 0xefa4a180, 0xaa4593fe, 0xb0176694, 0xb0176694, 0xaa4593fe, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x48e9c7c, 0xe838a250, 0x48e9c7c, 0xa076757e, 0xc9cbf769, 0xc9cbf769, 0x3c2c18d0, 0x3c2c18d0, 0x3c2c18d0, 0x8ccdd106, 0x8ccdd106, 0x8ccdd106, 0x7afdad5b, 0x7afdad5b, 0x7afdad5b, 0xc9cbf769, 0xa076757e, 0xa076757e, 0xc9cbf769, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x5bf4143b, 0xae073ebc, 0x5bf4143b, 0x9ceeeaa, 0x9813a416, 0x9813a416, 0xa85652ac, 0xa85652ac, 0xa85652ac, 0x9a845a48, 0x9a845a48, 0x9a845a48, 0xa9038135, 0xa9038135, 0xa9038135, 0x9813a416, 0x9ceeeaa, 0x9ceeeaa, 0x9813a416, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xbd34a4fd, 0x62f11989, 0xbd34a4fd, 0x2f699dd0, 0x5fcf013d, 0x5fcf013d, 0xeedf78d6, 0xeedf78d6, 0xeedf78d6, 0x974d977e, 0x974d977e, 0x974d977e, 0x56ab2539, 0x56ab2539, 0x56ab2539, 0x5fcf013d, 0x2f699dd0, 0x2f699dd0, 0x5fcf013d, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x45d0878, 0xeba1f163, 0x45d0878, 0xec51a5d6, 0xdd28f52b, 0xdd28f52b, 0x9515070, 0x9515070, 0x9515070, 0x63c3ed87, 0x63c3ed87, 0x63c3ed87, 0xb5d9ba52, 0xb5d9ba52, 0xb5d9ba52, 0xdd28f52b, 0xec51a5d6, 0xec51a5d6, 0xdd28f52b, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x5ada9562, 0x92c24cb5, 0x5ada9562, 0xa87078ee, 0x59c36f00, 0x59c36f00, 0xa3fd4fe2, 0xa3fd4fe2, 0xa3fd4fe2, 0x9455a3c2, 0x9455a3c2, 0x9455a3c2, 0xe26e3310, 0xe26e3310, 0xe26e3310, 0x59c36f00, 0xa87078ee, 0xa87078ee, 0x59c36f00, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x91306ec6, 0x86afd55f, 0x91306ec6, 0xb0176694, 0xaa4593fe, 0xaa4593fe, 0x7382c9ba, 0x7382c9ba, 0x7382c9ba, 0x1a3a724, 0x1a3a724, 0x1a3a724, 0xefa4a180, 0xefa4a180, 0xefa4a180, 0xaa4593fe, 0xb0176694, 0xb0176694, 0xaa4593fe, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x48e9c7c, 0xe838a250, 0x48e9c7c, 0xa076757e, 0xc9cbf769, 0xc9cbf769, 0x3c2c18d0, 0x3c2c18d0, 0x3c2c18d0, 0x8ccdd106, 0x8ccdd106, 0x8ccdd106, 0x7afdad5b, 0x7afdad5b, 0x7afdad5b, 0xc9cbf769, 0xa076757e, 0xa076757e, 0xc9cbf769, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x9120de67, 0xc19a0fcd, 0x9120de67, 0x44c1dda9, 0x5387d57f, 0x5387d57f, 0xfdf685d8, 0xfdf685d8, 0xfdf685d8, 0x9698bdef, 0x9698bdef, 0x9698bdef, 0x7c15f2ab, 0x7c15f2ab, 0x7c15f2ab, 0x5387d57f, 0x44c1dda9, 0x44c1dda9, 0x5387d57f, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x184154d1, 0x1d503bd9, 0x184154d1, 0x4b75ac8d, 0xf83ee7aa, 0xf83ee7aa, 0xae5d776f, 0xae5d776f, 0xae5d776f, 0xa14abb0c, 0xa14abb0c, 0xa14abb0c, 0xce845b6, 0xce845b6, 0xce845b6, 0xf83ee7aa, 0x4b75ac8d, 0x4b75ac8d, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xe87666b4, 0xf214363d, 0xe87666b4, 0xd5c94cc1, 0x724366e5, 0x724366e5, 0xb8d9e8e3, 0xb8d9e8e3, 0xb8d9e8e3, 0x65fbf3b, 0x65fbf3b, 0x65fbf3b, 0x86c5a833, 0x86c5a833, 0x86c5a833, 0x724366e5, 0xd5c94cc1, 0xd5c94cc1, 0x724366e5, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x25455801, 0xbdf8ad2b, 0x25455801, 0xeb922c1b, 0x5387d57f, 0x5387d57f, 0x465fd2d6, 0x465fd2d6, 0x465fd2d6, 0x7b82a9be, 0x7b82a9be, 0x7b82a9be, 0x406e3f18, 0x406e3f18, 0x406e3f18, 0x5387d57f, 0xeb922c1b, 0xeb922c1b, 0x5387d57f, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0xb6d1d565, 0x8ef4e83b, 0xb6d1d565, 0x5ebcf5f6, 0xf83ee7aa, 0xf83ee7aa, 0xd7a503f5, 0xd7a503f5, 0xd7a503f5, 0xb290fc24, 0xb290fc24, 0xb290fc24, 0xb84c092, 0xb84c092, 0xb84c092, 0xf83ee7aa, 0x5ebcf5f6, 0x5ebcf5f6, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xc87b28a8, 0x5946cb35, 0xc87b28a8, 0x88a5fd57, 0x724366e5, 0x724366e5, 0x2b90fc8e, 0x2b90fc8e, 0x2b90fc8e, 0x96087813, 0x96087813, 0x96087813, 0x32c73ca0, 0x32c73ca0, 0x32c73ca0, 0x724366e5, 0x88a5fd57, 0x88a5fd57, 0x724366e5, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xa8076777, 0xf2a31e25, 0xa8076777, 0xbf35b130, 0x1c955882, 0x1c955882, 0xb36b5cb2, 0xb36b5cb2, 0xb36b5cb2, 0x817d8686, 0x817d8686, 0x817d8686, 0xace9b416, 0xace9b416, 0xace9b416, 0x1c955882, 0xbf35b130, 0xbf35b130, 0x1c955882, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xde4259da, 0x32b1a21b, 0xde4259da, 0x9c5d04b9, 0x4d266f7a, 0x4d266f7a, 0xea54a927, 0xea54a927, 0xea54a927, 0x13a7704, 0x13a7704, 0x13a7704, 0x33595761, 0x33595761, 0x33595761, 0x4d266f7a, 0x9c5d04b9, 0x9c5d04b9, 0x4d266f7a, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x9fc03765, 0x9cdf17e6, 0x9fc03765, 0x5f01fbae, 0x1ed9d731, 0x1ed9d731, 0x9bc2d37f, 0x9bc2d37f, 0x9bc2d37f, 0xf36225ac, 0xf36225ac, 0xf36225ac, 0x7fcecc1d, 0x7fcecc1d, 0x7fcecc1d, 0x1ed9d731, 0x5f01fbae, 0x5f01fbae, 0x1ed9d731, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x127281ce, 0x42c85064, 0x127281ce, 0xd1aa3cd6, 0x5387d57f, 0x5387d57f, 0x54b2ad21, 0x54b2ad21, 0x54b2ad21, 0x3fdc9516, 0x3fdc9516, 0x3fdc9516, 0xd551da52, 0xd551da52, 0xd551da52, 0x5387d57f, 0xd1aa3cd6, 0xd1aa3cd6, 0x5387d57f, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xf2b9b5f0, 0xf7a8daf8, 0xf2b9b5f0, 0xb9206400, 0xf83ee7aa, 0xf83ee7aa, 0x63cb3448, 0x63cb3448, 0x63cb3448, 0x6cdcf82b, 0x6cdcf82b, 0x6cdcf82b, 0xc17e0691, 0xc17e0691, 0xc17e0691, 0xf83ee7aa, 0xb9206400, 0xb9206400, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0x994b78e5, 0x8329286c, 0x994b78e5, 0x82441b7c, 0x724366e5, 0x724366e5, 0x2083c3c9, 0x2083c3c9, 0x2083c3c9, 0x9e059411, 0x9e059411, 0x9e059411, 0x1e9f8319, 0x1e9f8319, 0x1e9f8319, 0x724366e5, 0x82441b7c, 0x82441b7c, 0x724366e5, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x6873f3d4, 0xf0ce06fe, 0x6873f3d4, 0xca743ccf, 0x5387d57f, 0x5387d57f, 0x1f34f497, 0x1f34f497, 0x1f34f497, 0x22e98fff, 0x22e98fff, 0x22e98fff, 0x19051959, 0x19051959, 0x19051959, 0x5387d57f, 0xca743ccf, 0xca743ccf, 0x5387d57f, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x640a3cdf, 0x5c2f0181, 0x640a3cdf, 0xbcb04bc6, 0xf83ee7aa, 0xf83ee7aa, 0x8a8d8123, 0x8a8d8123, 0x8a8d8123, 0xefb87ef2, 0xefb87ef2, 0xefb87ef2, 0x56ac4244, 0x56ac4244, 0x56ac4244, 0xf83ee7aa, 0xbcb04bc6, 0xbcb04bc6, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xaf28bcb6, 0x3e155f2b, 0xaf28bcb6, 0x1ad2ad3c, 0x724366e5, 0x724366e5, 0x23329590, 0x23329590, 0x23329590, 0x9eaa110d, 0x9eaa110d, 0x9eaa110d, 0x3a6555be, 0x3a6555be, 0x3a6555be, 0x724366e5, 0x1ad2ad3c, 0x1ad2ad3c, 0x724366e5, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0xf8a8cc62, 0xa20cb530, 0xf8a8cc62, 0x8eaf041b, 0x1c955882, 0x1c955882, 0x86072f57, 0x86072f57, 0x86072f57, 0xb411f563, 0xb411f563, 0xb411f563, 0x9985c7f3, 0x9985c7f3, 0x9985c7f3, 0x1c955882, 0x8eaf041b, 0x8eaf041b, 0x1c955882, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x9036a827, 0x7cc553e6, 0x9036a827, 0xc550ea8d, 0x4d266f7a, 0x4d266f7a, 0x103e2373, 0x103e2373, 0x103e2373, 0xfb50fd50, 0xfb50fd50, 0xfb50fd50, 0xc933dd35, 0xc933dd35, 0xc933dd35, 0x4d266f7a, 0xc550ea8d, 0xc550ea8d, 0x4d266f7a, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xddfc793c, 0xdee359bf, 0xddfc793c, 0xb0605af0, 0x1ed9d731, 0x1ed9d731, 0xb81f75e2, 0xb81f75e2, 0xb81f75e2, 0xd0bf8331, 0xd0bf8331, 0xd0bf8331, 0x5c136a80, 0x5c136a80, 0x5c136a80, 0x1ed9d731, 0xb0605af0, 0xb0605af0, 0x1ed9d731, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x5077b270, 0xa58498f7, 0x5077b270, 0xf29d394a, 0x9813a416, 0x9813a416, 0xc07edf73, 0xc07edf73, 0xc07edf73, 0xf2acd797, 0xf2acd797, 0xf2acd797, 0xc12b0cea, 0xc12b0cea, 0xc12b0cea, 0x9813a416, 0xf29d394a, 0xf29d394a, 0x9813a416, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8e57eb03, 0x51925677, 0x8e57eb03, 0xd8a275cd, 0x5fcf013d, 0x5fcf013d, 0xaa4efae1, 0xaa4efae1, 0xaa4efae1, 0xd3dc1549, 0xd3dc1549, 0xd3dc1549, 0x123aa70e, 0x123aa70e, 0x123aa70e, 0x5fcf013d, 0xd8a275cd, 0xd8a275cd, 0x5fcf013d, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xc7a54f9b, 0x2859b680, 0xc7a54f9b, 0xc9b13f25, 0xdd28f52b, 0xdd28f52b, 0x64978e18, 0x64978e18, 0x64978e18, 0xe0533ef, 0xe0533ef, 0xe0533ef, 0xd81f643a, 0xd81f643a, 0xd81f643a, 0xdd28f52b, 0xc9b13f25, 0xc9b13f25, 0xdd28f52b, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7c405813, 0xb45881c4, 0x7c405813, 0xd2257bc8, 0x59c36f00, 0x59c36f00, 0x385870f8, 0x385870f8, 0x385870f8, 0xff09cd8, 0xff09cd8, 0xff09cd8, 0x79cb0c0a, 0x79cb0c0a, 0x79cb0c0a, 0x59c36f00, 0xd2257bc8, 0xd2257bc8, 0x59c36f00, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8a5abcca, 0x9dc50753, 0x8a5abcca, 0x11349bd4, 0xaa4593fe, 0xaa4593fe, 0xe5def7f5, 0xe5def7f5, 0xe5def7f5, 0x97ff996b, 0x97ff996b, 0x97ff996b, 0x79f89fcf, 0x79f89fcf, 0x79f89fcf, 0xaa4593fe, 0x11349bd4, 0x11349bd4, 0xaa4593fe, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf12c93f6, 0x1d9aadda, 0xf12c93f6, 0x4b7b64da, 0xc9cbf769, 0xc9cbf769, 0x3a85d6d2, 0x3a85d6d2, 0x3a85d6d2, 0x8a641f04, 0x8a641f04, 0x8a641f04, 0x7c546359, 0x7c546359, 0x7c546359, 0xc9cbf769, 0x4b7b64da, 0x4b7b64da, 0xc9cbf769, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xac0bec02, 0x59f8c685, 0xac0bec02, 0x887af3a3, 0x9813a416, 0x9813a416, 0xe85391b9, 0xe85391b9, 0xe85391b9, 0xda81995d, 0xda81995d, 0xda81995d, 0xe9064220, 0xe9064220, 0xe9064220, 0x9813a416, 0x887af3a3, 0x887af3a3, 0x9813a416, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x79766a45, 0xa6b3d731, 0x79766a45, 0xbfa0e337, 0x5fcf013d, 0x5fcf013d, 0x55ffe784, 0x55ffe784, 0x55ffe784, 0x2c6d082c, 0x2c6d082c, 0x2c6d082c, 0xed8bba6b, 0xed8bba6b, 0xed8bba6b, 0x5fcf013d, 0xbfa0e337, 0xbfa0e337, 0x5fcf013d, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xe66acd38, 0x9963423, 0xe66acd38, 0x36683ffa, 0xdd28f52b, 0xdd28f52b, 0xa719aebf, 0xa719aebf, 0xa719aebf, 0xcd8b1348, 0xcd8b1348, 0xcd8b1348, 0x1b91449d, 0x1b91449d, 0x1b91449d, 0xdd28f52b, 0x36683ffa, 0x36683ffa, 0xdd28f52b, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x7c405813, 0xb45881c4, 0x7c405813, 0xd2257bc8, 0x59c36f00, 0x59c36f00, 0x385870f8, 0x385870f8, 0x385870f8, 0xff09cd8, 0xff09cd8, 0xff09cd8, 0x79cb0c0a, 0x79cb0c0a, 0x79cb0c0a, 0x59c36f00, 0xd2257bc8, 0xd2257bc8, 0x59c36f00, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0x8a5abcca, 0x9dc50753, 0x8a5abcca, 0x11349bd4, 0xaa4593fe, 0xaa4593fe, 0xe5def7f5, 0xe5def7f5, 0xe5def7f5, 0x97ff996b, 0x97ff996b, 0x97ff996b, 0x79f89fcf, 0x79f89fcf, 0x79f89fcf, 0xaa4593fe, 0x11349bd4, 0x11349bd4, 0xaa4593fe, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0xf12c93f6, 0x1d9aadda, 0xf12c93f6, 0x4b7b64da, 0xc9cbf769, 0xc9cbf769, 0x3a85d6d2, 0x3a85d6d2, 0x3a85d6d2, 0x8a641f04, 0x8a641f04, 0x8a641f04, 0x7c546359, 0x7c546359, 0x7c546359, 0xc9cbf769, 0x4b7b64da, 0x4b7b64da, 0xc9cbf769, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x777a27c3, 0x27c0f669, 0x777a27c3, 0x2d17f90b, 0x5387d57f, 0x5387d57f, 0x7006da7b, 0x7006da7b, 0x7006da7b, 0x1b68e24c, 0x1b68e24c, 0x1b68e24c, 0xf1e5ad08, 0xf1e5ad08, 0xf1e5ad08, 0x5387d57f, 0x2d17f90b, 0x2d17f90b, 0x5387d57f, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x41be488, 0x10a8b80, 0x41be488, 0x8ef5079, 0xf83ee7aa, 0xf83ee7aa, 0x2878254f, 0x2878254f, 0x2878254f, 0x276fe92c, 0x276fe92c, 0x276fe92c, 0x8acd1796, 0x8acd1796, 0x8acd1796, 0xf83ee7aa, 0x8ef5079, 0x8ef5079, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x829e1c0b, 0x98fc4c82, 0x829e1c0b, 0xe851600f, 0x724366e5, 0x724366e5, 0xcf3b3ce5, 0xcf3b3ce5, 0xcf3b3ce5, 0x71bd6b3d, 0x71bd6b3d, 0x71bd6b3d, 0xf1277c35, 0xf1277c35, 0xf1277c35, 0x724366e5, 0xe851600f, 0xe851600f, 0x724366e5, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0x988bff89, 0x360aa3, 0x988bff89, 0xb969ebc8, 0x5387d57f, 0x5387d57f, 0x34eb1f93, 0x34eb1f93, 0x34eb1f93, 0x93664fb, 0x93664fb, 0x93664fb, 0x32daf25d, 0x32daf25d, 0x32daf25d, 0x5387d57f, 0xb969ebc8, 0xb969ebc8, 0x5387d57f, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x1af0e1a7, 0x22d5dcf9, 0x1af0e1a7, 0xb14bdac7, 0xf83ee7aa, 0xf83ee7aa, 0xaf036644, 0xaf036644, 0xaf036644, 0xca369995, 0xca369995, 0xca369995, 0x7322a523, 0x7322a523, 0x7322a523, 0xf83ee7aa, 0xb14bdac7, 0xb14bdac7, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x215221e5, 0xb06fc278, 0x215221e5, 0x5efe916d, 0x724366e5, 0x724366e5, 0xc5ba9481, 0xc5ba9481, 0xc5ba9481, 0x7822101c, 0x7822101c, 0x7822101c, 0xdced54af, 0xdced54af, 0xdced54af, 0x724366e5, 0x5efe916d, 0x5efe916d, 0x724366e5, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xe11a4694, 0xbbbe3fc6, 0xe11a4694, 0x1b4fe3cd, 0x1c955882, 0x1c955882, 0x91e2ab2e, 0x91e2ab2e, 0x91e2ab2e, 0xa3f4711a, 0xa3f4711a, 0xa3f4711a, 0x8e60438a, 0x8e60438a, 0x8e60438a, 0x1c955882, 0x1b4fe3cd, 0x1b4fe3cd, 0x1c955882, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xefbaabe7, 0x3495026, 0xefbaabe7, 0xcd72e5e5, 0x4d266f7a, 0x4d266f7a, 0x72a19422, 0x72a19422, 0x72a19422, 0x99cf4a01, 0x99cf4a01, 0x99cf4a01, 0xabac6a64, 0xabac6a64, 0xabac6a64, 0x4d266f7a, 0xcd72e5e5, 0xcd72e5e5, 0x4d266f7a, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x3c0ef702, 0x3f11d781, 0x3c0ef702, 0xa76922cf, 0x1ed9d731, 0x1ed9d731, 0x3e6ebbaf, 0x3e6ebbaf, 0x3e6ebbaf, 0x56ce4d7c, 0x56ce4d7c, 0x56ce4d7c, 0xda62a4cd, 0xda62a4cd, 0xda62a4cd, 0x1ed9d731, 0xa76922cf, 0xa76922cf, 0x1ed9d731, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x77cd4576, 0x277794dc, 0x77cd4576, 0x3b992568, 0x5387d57f, 0x5387d57f, 0x7006da7b, 0x7006da7b, 0x7006da7b, 0x1b68e24c, 0x1b68e24c, 0x1b68e24c, 0xf1e5ad08, 0xf1e5ad08, 0xf1e5ad08, 0x5387d57f, 0x3b992568, 0x3b992568, 0x5387d57f, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xc3dd5340, 0xc6cc3c48, 0xc3dd5340, 0xd784ce1d, 0xf83ee7aa, 0xf83ee7aa, 0x2878254f, 0x2878254f, 0x2878254f, 0x276fe92c, 0x276fe92c, 0x276fe92c, 0x8acd1796, 0x8acd1796, 0x8acd1796, 0xf83ee7aa, 0xd784ce1d, 0xd784ce1d, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xe7d07de8, 0xfdb22d61, 0xe7d07de8, 0xabaf4800, 0x724366e5, 0x724366e5, 0xcf3b3ce5, 0xcf3b3ce5, 0xcf3b3ce5, 0x71bd6b3d, 0x71bd6b3d, 0x71bd6b3d, 0xf1277c35, 0xf1277c35, 0xf1277c35, 0x724366e5, 0xabaf4800, 0xabaf4800, 0x724366e5, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0x95de900c, 0xd636526, 0x95de900c, 0xd8ec3f4c, 0x5387d57f, 0x5387d57f, 0x34eb1f93, 0x34eb1f93, 0x34eb1f93, 0x93664fb, 0x93664fb, 0x93664fb, 0x32daf25d, 0x32daf25d, 0x32daf25d, 0x5387d57f, 0xd8ec3f4c, 0xd8ec3f4c, 0x5387d57f, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x30b67eb, 0x3b2e5ab5, 0x30b67eb, 0x98670b01, 0xf83ee7aa, 0xf83ee7aa, 0xaf036644, 0xaf036644, 0xaf036644, 0xca369995, 0xca369995, 0xca369995, 0x7322a523, 0x7322a523, 0x7322a523, 0xf83ee7aa, 0x98670b01, 0x98670b01, 0xf83ee7aa, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0xd983e2ac, 0x48be0131, 0xd983e2ac, 0x530b9651, 0x724366e5, 0x724366e5, 0xc5ba9481, 0xc5ba9481, 0xc5ba9481, 0x7822101c, 0x7822101c, 0x7822101c, 0xdced54af, 0xdced54af, 0xdced54af, 0x724366e5, 0x530b9651, 0x530b9651, 0x724366e5, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x9a81713b, 0xc0250869, 0x9a81713b, 0x1e1ca5c, 0x1c955882, 0x1c955882, 0x91e2ab2e, 0x91e2ab2e, 0x91e2ab2e, 0xa3f4711a, 0xa3f4711a, 0xa3f4711a, 0x8e60438a, 0x8e60438a, 0x8e60438a, 0x1c955882, 0x1e1ca5c, 0x1e1ca5c, 0x1c955882, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x96e0b961, 0x7a1342a0, 0x96e0b961, 0xa351e8aa, 0x4d266f7a, 0x4d266f7a, 0x72a19422, 0x72a19422, 0x72a19422, 0x99cf4a01, 0x99cf4a01, 0x99cf4a01, 0xabac6a64, 0xabac6a64, 0xabac6a64, 0x4d266f7a, 0xa351e8aa, 0xa351e8aa, 0x4d266f7a, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe8167345, 0xeb0953c6, 0xe8167345, 0xde2c498f, 0x1ed9d731, 0x1ed9d731, 0x3e6ebbaf, 0x3e6ebbaf, 0x3e6ebbaf, 0x56ce4d7c, 0x56ce4d7c, 0x56ce4d7c, 0xda62a4cd, 0xda62a4cd, 0xda62a4cd, 0x1ed9d731, 0xde2c498f, 0xde2c498f, 0x1ed9d731, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x4dffe2bf, 0xb80cc838, 0x4dffe2bf, 0x995e8cb5, 0x9813a416, 0x9813a416, 0xe85391b9, 0xe85391b9, 0xe85391b9, 0xda81995d, 0xda81995d, 0xda81995d, 0xe9064220, 0xe9064220, 0xe9064220, 0x9813a416, 0x995e8cb5, 0x995e8cb5, 0x9813a416, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xdfa7599b, 0x62e4ef, 0xdfa7599b, 0xddd9770a, 0x5fcf013d, 0x5fcf013d, 0x55ffe784, 0x55ffe784, 0x55ffe784, 0x2c6d082c, 0x2c6d082c, 0x2c6d082c, 0xed8bba6b, 0xed8bba6b, 0xed8bba6b, 0x5fcf013d, 0xddd9770a, 0xddd9770a, 0x5fcf013d, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd0b32d83, 0x3f4fd498, 0xd0b32d83, 0xe6a90251, 0xdd28f52b, 0xdd28f52b, 0xa719aebf, 0xa719aebf, 0xa719aebf, 0xcd8b1348, 0xcd8b1348, 0xcd8b1348, 0x1b91449d, 0x1b91449d, 0x1b91449d, 0xdd28f52b, 0xe6a90251, 0xe6a90251, 0xdd28f52b, }, 20 }, + { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, 0x7f1853ba, }, 5 }, + { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, 0xff1957f0, }, 5 }, + { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, 0xcb45d8c5, }, 5 }, +diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c +index 76cc182..8af5a67 100644 +--- a/grub-core/tests/video_checksum.c ++++ b/grub-core/tests/video_checksum.c +@@ -468,7 +468,7 @@ grub_video_checksum_get_modename (void) + return buf; + } + +-//#define GENERATE_MODE 1 ++#define GENERATE_MODE 1 + //#define SAVE_ALL_IMAGES + //#define COLLECT_TIME_STATISTICS 1 + +diff --git a/include/grub/normal.h b/include/grub/normal.h +index c32bc96..d753fc1 100644 +--- a/include/grub/normal.h ++++ b/include/grub/normal.h +@@ -48,9 +48,23 @@ extern int grub_normal_exit_level; + /* Defined in `main.c'. */ + void grub_enter_normal_mode (const char *config); + void grub_normal_execute (const char *config, int nested, int batch); +-void grub_menu_init_page (int nested, int edit, int *num_entries, ++struct grub_term_screen_geometry ++{ ++ /* The number of entries shown at a time. */ ++ int num_entries; ++ int first_entry_y; ++ int first_entry_x; ++ int entry_width; ++ int timeout_y; ++ int timeout_lines; ++ int border; ++ int right_margin; ++}; ++ ++void grub_menu_init_page (int nested, int edit, ++ struct grub_term_screen_geometry *geo, + struct grub_term_output *term); +-void grub_normal_init_page (struct grub_term_output *term); ++void grub_normal_init_page (struct grub_term_output *term, int y); + char *grub_file_getline (grub_file_t file); + void grub_cmdline_run (int nested); + +diff --git a/include/grub/term.h b/include/grub/term.h +index 565d14f..9ba33f2 100644 +--- a/include/grub/term.h ++++ b/include/grub/term.h +@@ -124,25 +124,12 @@ grub_term_color_state; + + /* Menu-related geometrical constants. */ + +-/* The number of lines of "GRUB version..." at the top. */ +-#define GRUB_TERM_INFO_HEIGHT 1 +- + /* The number of columns/lines between messages/borders/etc. */ + #define GRUB_TERM_MARGIN 1 + + /* The number of columns of scroll information. */ + #define GRUB_TERM_SCROLL_WIDTH 1 + +-/* The Y position of the top border. */ +-#define GRUB_TERM_TOP_BORDER_Y (GRUB_TERM_MARGIN + GRUB_TERM_INFO_HEIGHT \ +- + GRUB_TERM_MARGIN) +- +-/* The X position of the left border. */ +-#define GRUB_TERM_LEFT_BORDER_X GRUB_TERM_MARGIN +- +-/* The Y position of the first entry. */ +-#define GRUB_TERM_FIRST_ENTRY_Y (GRUB_TERM_TOP_BORDER_Y + 1) +- + struct grub_term_input + { + /* The next terminal. */ +@@ -340,13 +327,6 @@ static inline unsigned grub_term_height (struct grub_term_output *term) + return (term->getwh(term)&0xFF); + } + +-/* The width of the border. */ +-static inline unsigned +-grub_term_border_width (struct grub_term_output *term) +-{ +- return grub_term_width (term) - GRUB_TERM_MARGIN * 2; +-} +- + static inline grub_uint16_t + grub_term_getxy (struct grub_term_output *term) + { +diff --git a/include/grub/unicode.h b/include/grub/unicode.h +index d38ddbf..07a2dec 100644 +--- a/include/grub/unicode.h ++++ b/include/grub/unicode.h +@@ -210,6 +210,7 @@ enum + GRUB_UNICODE_UPARROW = 0x2191, + GRUB_UNICODE_RIGHTARROW = 0x2192, + GRUB_UNICODE_DOWNARROW = 0x2193, ++ GRUB_UNICODE_UPDOWNARROW = 0x2195, + GRUB_UNICODE_LIGHT_HLINE = 0x2500, + GRUB_UNICODE_HLINE = 0x2501, + GRUB_UNICODE_LIGHT_VLINE = 0x2502, +-- +1.8.2.1 + diff --git a/grub-2.00-quiet-boot.patch b/0468-Don-t-write-messages-to-the-screen.patch similarity index 82% rename from grub-2.00-quiet-boot.patch rename to 0468-Don-t-write-messages-to-the-screen.patch index 860bbf1..fd18cf6 100644 --- a/grub-2.00-quiet-boot.patch +++ b/0468-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ -From 2736f156ba9977bb59f42d6c206a22429dad3daf Mon Sep 17 00:00:00 2001 -From: Fedora Ninjas +From 4bd4022c48a2086b78725859f4c6f61aac5660c6 Mon Sep 17 00:00:00 2001 +From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH] Don't write messages to the screen +Subject: [PATCH 468/471] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't @@ -9,10 +9,10 @@ very appealing. --- grub-core/boot/i386/pc/boot.S | 3 --- grub-core/boot/i386/pc/diskboot.S | 5 ----- - grub-core/gettext/gettext.c | 14 -------------- + grub-core/gettext/gettext.c | 15 --------------- grub-core/kern/main.c | 5 ----- - util/grub.d/10_linux.in | 6 ------ - 5 files changed, 33 deletions(-) + util/grub.d/10_linux.in | 7 ------- + 5 files changed, 35 deletions(-) diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S index c0880c6..f45b982 100644 @@ -45,10 +45,10 @@ index d030a14..a494d02 100644 movw $LOCAL(firstlist), %di diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c -index 569f985..fa32ced 100644 +index 259251d..c06358c 100644 --- a/grub-core/gettext/gettext.c +++ b/grub-core/gettext/gettext.c -@@ -422,13 +422,9 @@ grub_gettext_env_write_lang (struct grub_env_var *var +@@ -433,13 +433,9 @@ grub_gettext_env_write_lang (struct grub_env_var *var grub_err_t err; err = grub_gettext_init_ext (&main_context, val, grub_env_get ("locale_dir"), grub_env_get ("prefix")); @@ -62,7 +62,7 @@ index 569f985..fa32ced 100644 return grub_strdup (val); } -@@ -440,8 +436,6 @@ grub_gettext_reread_prefix (const char *val) +@@ -451,8 +447,6 @@ grub_gettext_reread_prefix (const char *val) err = grub_gettext_init_ext (&main_context, grub_env_get ("lang"), grub_env_get ("locale_dir"), val); @@ -71,7 +71,7 @@ index 569f985..fa32ced 100644 } static char * -@@ -451,8 +445,6 @@ read_main (struct grub_env_var *var +@@ -462,8 +456,6 @@ read_main (struct grub_env_var *var grub_err_t err; err = grub_gettext_init_ext (&main_context, grub_env_get ("lang"), val, grub_env_get ("prefix")); @@ -80,16 +80,17 @@ index 569f985..fa32ced 100644 return grub_strdup (val); } -@@ -463,8 +455,6 @@ read_secondary (struct grub_env_var *var +@@ -474,9 +466,6 @@ read_secondary (struct grub_env_var *var grub_err_t err; err = grub_gettext_init_ext (&secondary_context, grub_env_get ("lang"), val, 0); - if (err) - grub_print_error (); - +- return grub_strdup (val); } -@@ -491,12 +481,8 @@ GRUB_MOD_INIT (gettext) + +@@ -502,12 +491,8 @@ GRUB_MOD_INIT (gettext) err = grub_gettext_init_ext (&main_context, lang, grub_env_get ("locale_dir"), grub_env_get ("prefix")); @@ -119,10 +120,10 @@ index 8ab7794..da47b18 100644 grub_boot_time ("Before loading embedded modules."); diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index d7ea670..83b0c70 100644 +index d7ea670..5ed7695 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -132,10 +132,8 @@ linux_entry () +@@ -132,29 +132,22 @@ linux_entry () fi printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" fi @@ -133,7 +134,9 @@ index d7ea670..83b0c70 100644 linuxefi ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} EOF else -@@ -145,16 +143,12 @@ EOF + sed "s/^/$submenu_indentation/" << EOF +- echo '$(echo "$message" | grub_quote)' + linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} EOF fi if test -n "${initrd}" ; then @@ -153,4 +156,3 @@ index d7ea670..83b0c70 100644 -- 1.8.2.1 - diff --git a/grub-2.00-no-header.patch b/0469-Don-t-print-GNU-GRUB-header.patch similarity index 59% rename from grub-2.00-no-header.patch rename to 0469-Don-t-print-GNU-GRUB-header.patch index f44692b..34f9440 100644 --- a/grub-2.00-no-header.patch +++ b/0469-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ -From ebe8edc5062f2d0cba0a355b827134e01345d727 Mon Sep 17 00:00:00 2001 -From: Fedora Ninjas +From e600b91cdae6a5e2bbf93f4062a2d005cd5681f3 Mon Sep 17 00:00:00 2001 +From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH] Don't print GNU GRUB header +Subject: [PATCH 469/471] Don't print GNU GRUB header No one cares. --- @@ -9,10 +9,10 @@ No one cares. 1 file changed, 2 insertions(+) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index b40d987..ee5d4e2 100644 +index 70f6162..3344e0a 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c -@@ -241,6 +241,7 @@ grub_normal_init_page (struct grub_term_output *term) +@@ -251,6 +251,7 @@ grub_normal_init_page (struct grub_term_output *term, grub_term_cls (term); @@ -20,7 +20,7 @@ index b40d987..ee5d4e2 100644 msg_formatted = grub_xasprintf (msg, PACKAGE_VERSION); if (!msg_formatted) return; -@@ -262,6 +263,7 @@ grub_normal_init_page (struct grub_term_output *term) +@@ -274,6 +275,7 @@ grub_normal_init_page (struct grub_term_output *term, grub_putcode ('\n', term); grub_putcode ('\n', term); grub_free (unicode_msg); diff --git a/0470-Don-t-draw-a-border-around-the-menu.patch b/0470-Don-t-draw-a-border-around-the-menu.patch new file mode 100644 index 0000000..6b558b3 --- /dev/null +++ b/0470-Don-t-draw-a-border-around-the-menu.patch @@ -0,0 +1,69 @@ +From 7e4ef1b81a27e6e69e5e615a38f9ec10137f43e6 Mon Sep 17 00:00:00 2001 +From: William Jon McCann +Date: Wed, 15 May 2013 16:47:33 -0400 +Subject: [PATCH 470/471] Don't draw a border around the menu + +It looks cleaner without it. +--- + grub-core/normal/menu_text.c | 38 -------------------------------------- + 1 file changed, 38 deletions(-) + +diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c +index b6ec32a..faf1d3e 100644 +--- a/grub-core/normal/menu_text.c ++++ b/grub-core/normal/menu_text.c +@@ -108,42 +108,6 @@ grub_print_message_indented (const char *msg, int margin_left, int margin_right, + grub_print_message_indented_real (msg, margin_left, margin_right, term, 0); + } + +-static void +-draw_border (struct grub_term_output *term, const struct grub_term_screen_geometry *geo) +-{ +- int i; +- +- grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); +- +- grub_term_gotoxy (term, geo->first_entry_x - 1, geo->first_entry_y - 1); +- grub_putcode (GRUB_UNICODE_CORNER_UL, term); +- for (i = 0; i < geo->entry_width + 1; i++) +- grub_putcode (GRUB_UNICODE_HLINE, term); +- grub_putcode (GRUB_UNICODE_CORNER_UR, term); +- +- for (i = 0; i < geo->num_entries; i++) +- { +- grub_term_gotoxy (term, geo->first_entry_x - 1, geo->first_entry_y + i); +- grub_putcode (GRUB_UNICODE_VLINE, term); +- grub_term_gotoxy (term, geo->first_entry_x + geo->entry_width + 1, +- geo->first_entry_y + i); +- grub_putcode (GRUB_UNICODE_VLINE, term); +- } +- +- grub_term_gotoxy (term, geo->first_entry_x - 1, +- geo->first_entry_y - 1 + geo->num_entries + 1); +- grub_putcode (GRUB_UNICODE_CORNER_LL, term); +- for (i = 0; i < geo->entry_width + 1; i++) +- grub_putcode (GRUB_UNICODE_HLINE, term); +- grub_putcode (GRUB_UNICODE_CORNER_LR, term); +- +- grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL); +- +- grub_term_gotoxy (term, geo->first_entry_x - 1, +- (geo->first_entry_y - 1 + geo->num_entries +- + GRUB_TERM_MARGIN + 1)); +-} +- + static int + print_message (int nested, int edit, struct grub_term_output *term, int dry_run) + { +@@ -396,8 +360,6 @@ grub_menu_init_page (int nested, int edit, + + grub_term_normal_color = grub_color_menu_normal; + grub_term_highlight_color = grub_color_menu_highlight; +- if (geo->border) +- draw_border (term, geo); + grub_term_normal_color = old_color_normal; + grub_term_highlight_color = old_color_highlight; + geo->timeout_y = geo->first_entry_y + geo->num_entries +-- +1.8.2.1 + diff --git a/0471-Don-t-add-to-highlighted-row.patch b/0471-Don-t-add-to-highlighted-row.patch new file mode 100644 index 0000000..bb5bd5f --- /dev/null +++ b/0471-Don-t-add-to-highlighted-row.patch @@ -0,0 +1,26 @@ +From 86ce8133e947621554f185ce50af44a7b599479d Mon Sep 17 00:00:00 2001 +From: William Jon McCann +Date: Wed, 15 May 2013 17:49:45 -0400 +Subject: [PATCH 471/471] Don't add '*' to highlighted row + +It is already highlighted. +--- + grub-core/normal/menu_text.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c +index faf1d3e..3bf8a53 100644 +--- a/grub-core/normal/menu_text.c ++++ b/grub-core/normal/menu_text.c +@@ -200,7 +200,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, + unicode_title[i] = ' '; + + if (data->geo.num_entries > 1) +- grub_putcode (highlight ? '*' : ' ', data->term); ++ grub_putcode (' ', data->term); + + grub_print_ucs4_menu (unicode_title, + unicode_title + len, +-- +1.8.2.1 + diff --git a/grub-2.00-bzrignore.patch b/grub-2.00-bzrignore.patch new file mode 100644 index 0000000..f4268aa --- /dev/null +++ b/grub-2.00-bzrignore.patch @@ -0,0 +1,186 @@ +From: Peter Jones +Date: Mon, 3 Jun 2013 13:27:00 -0400 +Subject: [PATCH] Fix missing bzrignore + +grub's release tarball has no bzrignore in it, so we need to fix that since +our patches come from the bzr tree. + +--- + +diff --git a/.bzrignore b/.bzrignore +new file mode 100644 +index 0000000..64aa4c9 +--- /dev/null ++++ b/.bzrignore +@@ -0,0 +1,171 @@ ++00_header ++10_* ++20_linux_xen ++30_os-prober ++40_custom ++41_custom ++*.1 ++*.8 ++aclocal.m4 ++ascii.bitmaps ++ascii.h ++autom4te.cache ++build_env.mk ++.bzrignore ++config.cache ++config.guess ++config.h ++config-util.h ++config-util.h.in ++config.log ++config.status ++config.sub ++configure ++DISTLIST ++docs/*.info ++docs/stamp-vti ++docs/version.texi ++*.elf ++example_grub_script_test ++example_scripted_test ++example_unit_test ++*.exec ++genkernsyms.sh ++gensymlist.sh ++gentrigtables ++grub-bin2h ++grub_cmd_echo ++grub_cmd_regexp ++grub-editenv ++grub-emu ++grub_emu_init.c ++grub_emu_init.h ++grub-fstest ++grub_fstest_init.c ++grub_fstest_init.h ++grub-install ++grub-kbdcomp ++grub-macho2img ++grub-menulst2cfg ++grub-mk* ++grub-mount ++grub-pe2elf ++grub-probe ++grub_probe_init.c ++grub_probe_init.h ++grub-reboot ++grub_script_blanklines ++grub_script_blockarg ++grub_script_break ++grub-script-check ++grub_script_check_init.c ++grub_script_check_init.h ++grub_script_comments ++grub_script_continue ++grub_script_dollar ++grub_script_echo1 ++grub_script_echo_keywords ++grub_script_expansion ++grub_script_final_semicolon ++grub_script_for1 ++grub_script_functions ++grub_script_if ++grub_script_not ++grub_script_return ++grub_script_setparams ++grub_script_shift ++grub_script_vars1 ++grub_script_while1 ++grub_script.tab.c ++grub_script.tab.h ++grub_script.yy.c ++grub_script.yy.h ++grub-set-default ++grub-setup ++grub_setup_init.c ++grub_setup_init.h ++grub-shell ++grub-shell-tester ++*.img ++*.image ++include/grub/cpu ++include/grub/machine ++install-sh ++lib/libgcrypt-grub ++libgrub_a_init.c ++*.lst ++*.marker ++Makefile ++*.mod ++mod-*.c ++missing ++partmap_test ++*.pf2 ++*.pp ++po/*.mo ++po/grub.pot ++po/POTFILES ++po/stamp-po ++stamp-h ++stamp-h1 ++stamp-h.in ++symlist.c ++symlist.h ++trigtables.c ++update-grub_lib ++unidata.c ++Makefile.in ++GPATH ++GRTAGS ++GSYMS ++GTAGS ++Makefile.tpl ++compile ++depcomp ++mdate-sh ++texinfo.tex ++grub-core/lib/libgcrypt-grub ++**/.deps ++**/.deps-util ++**/.deps-core ++**/.dirstamp ++Makefile.util.am ++contrib ++grub-core/Makefile.core.am ++grub-core/Makefile.gcry.def ++grub-core/contrib ++grub-core/gdb_grub ++grub-core/genmod.sh ++grub-core/gensyminfo.sh ++grub-core/gmodule.pl ++grub-core/modinfo.sh ++grub-core/*.module ++grub-core/*.pp ++util/bash-completion.d/grub ++grub-core/gnulib/alloca.h ++grub-core/gnulib/arg-nonnull.h ++grub-core/gnulib/c++defs.h ++grub-core/gnulib/charset.alias ++grub-core/gnulib/configmake.h ++grub-core/gnulib/getopt.h ++grub-core/gnulib/langinfo.h ++grub-core/gnulib/ref-add.sed ++grub-core/gnulib/ref-del.sed ++grub-core/gnulib/stdio.h ++grub-core/gnulib/stdlib.h ++grub-core/gnulib/string.h ++grub-core/gnulib/strings.h ++grub-core/gnulib/sys ++grub-core/gnulib/unistd.h ++grub-core/gnulib/warn-on-use.h ++grub-core/gnulib/wchar.h ++grub-core/gnulib/wctype.h ++grub-core/rs_decoder.S ++widthspec.bin ++widthspec.h ++docs/stamp-1 ++docs/version-dev.texi ++Makefile.utilgcry.def ++po/*.po ++po/*.gmo ++po/LINGUAS diff --git a/grub2.spec b/grub2.spec index c9398ea..0f5a62c 100644 --- a/grub2.spec +++ b/grub2.spec @@ -41,7 +41,7 @@ Name: grub2 Epoch: 1 Version: 2.00 -Release: 18%{?dist}.0 +Release: 18%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base @@ -53,6 +53,7 @@ Source3: README.Fedora Source4: http://unifoundry.com/unifont-5.1.20080820.pcf.gz Source5: theme.tar.bz2 #Source6: grub-cd.cfg +Patch0000: grub-2.00-bzrignore.patch Patch0001: 0001-Add-monochrome-text-support-mda_text-aka-hercules-in.patch Patch0002: 0002-missing-file-from-last-commit.patch Patch0003: 0003-grub-core-loader-i386-linux.c-find_efi_mmap_size-Don.patch @@ -103,325 +104,427 @@ Patch0047: 0047-grub-core-fs-affs.c-grub_affs_mount-Support-AFFS-boo.patch Patch0048: 0048-util-grub-mkconfig_lib.in-is_path_readable_by_grub-R.patch Patch0049: 0049-Makefile.util.def-grub-mknetdir-Move-to-prefix-bin.patch Patch0050: 0050-grub-core-loader-i386-linux.c-allocate_pages-Fix-spe.patch -Patch0051: 0051-grub-core-Makefile.am-moddep.lst-Use-AWK-instead-of-.patch -Patch0052: 0052-grub-core-commands-configfile.c-GRUB_MOD_INIT-Correc.patch -Patch0053: 0053-Fix-ordering-and-tab-indentation-of-NetBSD-boot-menu.patch -Patch0054: 0054-grub-core-net-bootp.c-parse_dhcp_vendor-Fix-double-i.patch -Patch0055: 0055-include-grub-types.h-Fix-functionality-unaffecting-t.patch -Patch0056: 0056-Support-big-endian-UFS1.patch -Patch0057: 0057-Fix-big-endian-mtime.patch -Patch0058: 0058-grub-core-fs-ufs.c-grub_ufs_dir-Stop-if-direntlen-is.patch -Patch0059: 0059-util-getroot.c-convert_system_partition_to_system_di.patch -Patch0060: 0060-util-grub-mkfont.c-argp_parser-Fix-a-typo-which-prev.patch -Patch0061: 0061-grub-core-term-gfxterm.c-grub_virtual_screen_setup-G.patch -Patch0062: 0062-grub-core-gfxmenu-view.c-init_terminal-Avoid-making-.patch -Patch0063: 0063-grub-core-kern-ieee1275-init.c-grub_machine_get_boot.patch -Patch0064: 0064-util-grub-install.in-Remove-stale-TODO.patch -Patch0065: 0065-util-grub-install.in-Follow-the-symbolic-link-parame.patch -Patch0066: 0066-grub-core-disk-cryptodisk.c-grub_cmd_cryptomount-Str.patch -Patch0067: 0067-docs-grub.texi-Network-Update-instructions-on-genera.patch -Patch0068: 0068-util-grub.d-20_linux_xen.in-Addmissing-assignment-to.patch -Patch0069: 0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch -Patch0070: 0070-Apply-program-name-transformations-at-build-time-rat.patch -Patch0071: 0071-neater-gnulib-backport.patch -Patch0072: 0072-util-grub-mkconfig.in-Accept-GRUB_TERMINAL_OUTPUT-vg.patch -Patch0073: 0073-grub-core-bus-usb-ehci.c-grub_ehci_pci_iter-Remove-i.patch -Patch0074: 0074-Remove-several-trivially-unnecessary-uses-of-nested-.patch -Patch0075: 0075-docs-grub.texi-configfile-Explain-environment-variab.patch -Patch0076: 0076-Fix-failing-printf-test.patch -Patch0077: 0077-grub-core-tests-lib-test.c-grub_test_run-Return-non-.patch -Patch0078: 0078-docs-grub.texi-Invoking-grub-mount-New-section.patch -Patch0079: 0079-docs-grub.texi-Invoking-grub-mkrelpath-New-section.patch -Patch0080: 0080-grub-core-fs-iso9660.c-grub_iso9660_susp_iterate-Avo.patch -Patch0081: 0081-configure.ac-Extend-Wno-trampolines-to-host.patch -Patch0082: 0082-util-grub.d-10_kfreebsd.in-Fix-improper-references-t.patch -Patch0083: 0083-util-grub.d-10_kfreebsd.in-Correct-the-patch-to-zpoo.patch -Patch0084: 0084-grub-core-disk-diskfilter.c-grub_diskfilter_write-Ca.patch -Patch0085: 0085-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch -Patch0086: 0086-grub-core-fs-ntfs.c-Eliminate-useless-divisions-in-f.patch -Patch0087: 0087-grub-core-fs-ext2.c-grub_ext2_read_block-Use-shifts-.patch -Patch0088: 0088-grub-core-fs-minix.c-grub_minix_read_file-Simplify-a.patch -Patch0089: 0089-docs-grub.texi-grub_cpu-New-subsection.patch -Patch0090: 0090-grub-core-io-bufio.c-grub_bufio_open-Use-grub_zalloc.patch -Patch0091: 0091-grub-core-kern-disk.c-grub_disk_write-Fix-sector-num.patch -Patch0092: 0092-Support-Apple-FAT-binaries-on-non-Apple-platforms.patch -Patch0093: 0093-grub-core-fs-ntfs.c-Ue-more-appropriate-types.patch -Patch0094: 0094-Import-gcrypt-public-key-cryptography-and-implement-.patch -Patch0095: 0095-Clean-up-dangling-references-to-grub-setup.patch -Patch0096: 0096-autogen.sh-Do-not-try-to-delete-nonexistant-files.patch -Patch0097: 0097-Remove-autogenerated-files-from-VCS.patch -Patch0098: 0098-grub-core-lib-libgcrypt_wrap-mem.c-_gcry_log_bug-Mak.patch -Patch0099: 0099-grub-core-lib-libgcrypt_wrap-mem.c-gcry_x-alloc-Make.patch -Patch0100: 0100-grub-core-commands-verify.c-Mark-messages-for-transl.patch -Patch0101: 0101-Remove-nested-functions-from-PCI-iterators.patch -Patch0102: 0102-util-grub-mkimage.c-generate_image-Fix-size-of-publi.patch -Patch0103: 0103-New-command-list_trusted.patch -Patch0104: 0104-Fix-compilation-with-older-compilers.patch -Patch0105: 0105-grub-core-kern-emu-hostdisk.c-read_device_map-Explic.patch -Patch0106: 0106-Remove-nested-functions-from-memory-map-iterators.patch -Patch0107: 0107-Remove-nested-functions-from-script-reading-and-pars.patch -Patch0108: 0108-grub-core-script-lexer.c-grub_script_lexer_init-Rena.patch -Patch0109: 0109-Improve-bidi-handling-in-entry-editor.patch -Patch0110: 0110-New-terminal-outputs-using-serial-morse-and-spkmodem.patch -Patch0111: 0111-Add-new-command-pcidump.patch -Patch0112: 0112-Rewrite-spkmodem-to-use-PIT-for-timing.-Double-the-s.patch -Patch0113: 0113-Add-license-header-to-spkmodem-recv.c.patch -Patch0114: 0114-Fix-typos-for-developer-and-development.patch -Patch0115: 0115-Remove-nested-functions-from-device-iterators.patch -Patch0116: 0116-Remove-nested-functions-from-ELF-iterators.patch -Patch0117: 0117-util-grub-script-check.c-main-Uniform-the-error-mess.patch -Patch0118: 0118-docs-grub.texi-Simple-configuration-Clarify-GRUB_HID.patch -Patch0119: 0119-Split-long-USB-transfers-into-short-ones.patch -Patch0120: 0120-include-grub-elf.h-Update-ARM-definitions-based-on-b.patch -Patch0121: 0121-conf-Makefile.common-Fix-autogen-rules-to-pass-defin.patch -Patch0122: 0122-grub-core-loader-i386-linux.c-grub_cmd_initrd-Don-t-.patch -Patch0123: 0123-util-grub-mkimage.c-main-Postpone-freeing-arguments..patch -Patch0124: 0124-docs-grub.texi-Multi-boot-manual-config-Fix-typo-for.patch -Patch0125: 0125-Remove-nested-functions-from-filesystem-directory-it.patch -Patch0126: 0126-grub-core-partmap-msdos.c-embed_signatures-Add-the-s.patch -Patch0127: 0127-Improve-spkmomdem-reliability-by-adding-a-separator-.patch -Patch0128: 0128-grub-core-commands-lsmmap.c-Fix-unused-variable-on-e.patch -Patch0129: 0129-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate-Fi.patch -Patch0130: 0130-Fix-powerpc-and-sparc64-build-failures-caused-by-un-.patch -Patch0131: 0131-grub-core-commands-ls.c-grub_ls_print_devices-Add-mi.patch -Patch0132: 0132-Make-color-variables-global-instead-of-it-being-per-.patch -Patch0133: 0133-Improve-spkmomdem-reliability-by-adding-a-separator-.patch -Patch0134: 0134-grub-core-normal-term.c-print_ucs4_terminal-Don-t-ou.patch -Patch0135: 0135-Improve-spkmodem-reliability-by-adding-a-separator-b.patch -Patch0136: 0136-Remove-nested-functions-from-USB-iterators.patch -Patch0137: 0137-grub-core-font-font.c-blit_comb-do_blit-Make-static-.patch -Patch0138: 0138-include-grub-kernel.h-FOR_MODULES-Adjust-to-preserve.patch -Patch0139: 0139-grub-core-lib-libgcrypt_wrap-cipher_wrap.h-Include-s.patch -Patch0140: 0140-util-grub-reboot.in-usage-Document-the-need-for.patch -Patch0141: 0141-Improve-FreeDOS-direct-loading-support-compatibility.patch -Patch0142: 0142-grub-core-normal-menu_text.c-grub_menu_init_page-Fix.patch -Patch0143: 0143-util-grub-install.in-change-misleading-comment-about.patch -Patch0144: 0144-grub-core-fs-xfs.c-grub_xfs_read_block-Fix-computati.patch -Patch0145: 0145-grub-core-bus-usb-serial-common.c-grub_usbserial_att.patch -Patch0146: 0146-grub-core-bus-usb-usb.c-grub_usb_device_attach-Add-m.patch -Patch0147: 0147-grub-core-commands-lsacpi.c-Show-more-info.-Hide-som.patch -Patch0148: 0148-Missing-part-of-last-commit.patch -Patch0149: 0149-Implement-USBDebug-full-USB-stack-variant.patch -Patch0150: 0150-grub-core-fs-fshelp.c-find_file-Set-oldnode-to-zero-.patch -Patch0151: 0151-grub-core-disk-cryptodisk.c-grub_cryptodisk_scan_dev.patch -Patch0152: 0152-grub-core-commands-lsacpi.c-Fix-types-on-64-bit-plat.patch -Patch0153: 0153-Support-Openfirmware-disks-with-non-512B-sectors.patch -Patch0154: 0154-Implement-new-command-cmosdump.patch -Patch0155: 0155-grub-core-normal-misc.c-grub_normal_print_device_inf.patch -Patch0156: 0156-Makefile.util.def-Add-partmap-msdos.c-to-common-libr.patch -Patch0157: 0157-grub-core-normal-menu_entry.c-insert_string-fix-off-.patch -Patch0158: 0158-grub-core-normal-menu_entry.c-update_screen-remove.patch -Patch0159: 0159-grub-core-disk-efi-efidisk.c-grub_efidisk_get_device.patch -Patch0160: 0160-grub-core-partmap-msdos.c-grub_partition_msdos_itera.patch -Patch0161: 0161-Remove-nested-functions-from-disk-and-file-read-hook.patch -Patch0162: 0162-grub-core-loader-machoXX.c-Remove-nested-functions.patch -Patch0163: 0163-util-grub-fstest.c-Remove-nested-functions.patch -Patch0164: 0164-grub-core-commands-parttool.c-grub_cmd_parttool-Move.patch -Patch0165: 0165-grub-core-fs-iso9660.c-Remove-nested-functions.patch -Patch0166: 0166-grub-core-fs-minix.c-Remove-nested-functions.patch -Patch0167: 0167-grub-core-fs-jfs.c-Remove-nested-functions.patch -Patch0168: 0168-grub-core-lib-arg.c-grub_arg_show_help-Move-showargs.patch -Patch0169: 0169-grub-core-kern-i386-coreboot-mmap.c-grub_linuxbios_t.patch -Patch0170: 0170-Enable-linux16-on-non-BIOS-systems-for-i.a.-memtest.patch -Patch0171: 0171-grub-core-kern-main.c-grub_set_prefix_and_root-Strip.patch -Patch0172: 0172-grub-core-disk-efi-efidisk.c-Transform-iterate_child.patch -Patch0173: 0173-grub-core-loader-i386-pc-linux.c-grub_cmd_linux-Fix-.patch -Patch0174: 0174-Remove-nested-functions-from-videoinfo-iterators.patch -Patch0175: 0175-grub-core-gentrigtables.c-Make-tables-const.patch -Patch0176: 0176-grub-core-kern-emu-hostdisk.c-read_device_map-Remove.patch -Patch0177: 0177-util-grub-editenv.c-list_variables-Move-print_var-ou.patch -Patch0178: 0178-grub-core-fs-hfsplus.c-grub_hfsplus_btree_iterate_no.patch -Patch0179: 0179-grub-core-fs-hfs.c-Remove-nested-functions.patch -Patch0180: 0180-grub-core-commands-loadenv.c-grub_cmd_list_env-Move-.patch -Patch0181: 0181-grub-core-normal-charset.c-grub_bidi_logical_to_visu.patch -Patch0182: 0182-grub-core-script-execute.c-gettext_append-Remove-nes.patch -Patch0183: 0183-grub-core-lib-ia64-longjmp.S-Fix-the-name-of-longjmp.patch -Patch0184: 0184-Make-elfload-not-use-hooks.-Opt-for-flags-and-iterat.patch -Patch0185: 0185-grub-core-kern-term.c-grub_term_normal_color.patch -Patch0186: 0186-Move-to-more-hookless-approach-in-IEEE1275-devices-h.patch -Patch0187: 0187-include-grub-mips-loongson-cmos.h-Fix-high-CMOS-addr.patch -Patch0188: 0188-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch -Patch0189: 0189-grub-core-disk-ieee1275-nand.c-Fix-compilation-on.patch -Patch0190: 0190-grub-core-kern-env.c-include-grub-env.h-Change-itera.patch -Patch0191: 0191-grub-core-commands-regexp.c-set_matches-Move-setvar-.patch -Patch0192: 0192-grub-core-script-execute.c-grub_script_arglist_to_ar.patch -Patch0193: 0193-Remove-all-trampoline-support.-Add-Wtrampolines-when.patch -Patch0194: 0194-grub-core-term-terminfo.c-grub_terminfo_cls-Issue-an.patch -Patch0195: 0195-Lift-up-core-size-limits-on-some-platforms.-Fix-pote.patch -Patch0196: 0196-grub-core-normal-crypto.c-read_crypto_list-Fix-incor.patch -Patch0197: 0197-grub-core-commands-acpi.c-grub_acpi_create_ebda-Don-.patch -Patch0198: 0198-grub-core-fs-iso9660.c-add_part-Remove-always_inline.patch -Patch0199: 0199-grub-core-fs-fshelp.c-grub_fshelp_log2blksize-Remove.patch -Patch0200: 0200-Avoid-costly-64-bit-division-in-grub_get_time_ms-on-.patch -Patch0201: 0201-grub-core-fs-hfs.c-grub_hfs_read_file-Avoid-divmod64.patch -Patch0202: 0202-Adjust-types-in-gdb-module-to-have-intended-unsigned.patch -Patch0203: 0203-grub-core-video-i386-pc-vbe.c.patch -Patch0204: 0204-include-grub-datetime.h-grub_datetime2unixtime-Fix-u.patch -Patch0205: 0205-grub-core-loader-i386-pc-plan9.c-fill_disk-Fix-types.patch -Patch0206: 0206-grub-core-commands-verify.c-grub_verify_signature-Us.patch -Patch0207: 0207-grub-core-lib-arg.c-grub_arg_list_alloc-Use-shifts-r.patch -Patch0208: 0208-grub-core-loader-i386-bsdXX.c-grub_openbsd_find_ramd.patch -Patch0209: 0209-Resend-a-packet-if-we-got-the-wrong-buffer-in-status.patch -Patch0210: 0210-Better-estimate-the-maximum-USB-transfer-size.patch -Patch0211: 0211-remove-get_endpoint_descriptor-and-change-all-functi.patch -Patch0212: 0212-Implement-boot-time-analysis-framework.patch -Patch0213: 0213-Fix-USB-devices-not-being-detected-when-requested.patch -Patch0214: 0214-Initialize-USB-ports-in-parallel-to-speed-up-boot.patch -Patch0215: 0215-include-grub-boottime.h-Add-missing-file.patch -Patch0216: 0216-Fix-a-conflict-between-ports-structures-with-2-contr.patch -Patch0217: 0217-New-commands-cbmemc-lscoreboot-coreboot_boottime-to-.patch -Patch0218: 0218-grub-core-commands-boottime.c-Fix-copyright-header.patch -Patch0219: 0219-Slight-improve-in-USB-related-boot-time-checkpoints.patch -Patch0220: 0220-grub-core-commands-verify.c-hashes-Add-several-hashe.patch -Patch0221: 0221-po-POTFILES.in-Regenerate.patch -Patch0222: 0222-grub-core-commands-i386-coreboot-cbls.c-Fix-typos-an.patch -Patch0223: 0223-Add-ability-to-generate-newc-additions-on-runtime.patch -Patch0224: 0224-grub-core-fs-zfs-zfs.c-Fix-incorrect-handling-of-spe.patch -Patch0225: 0225-grub-core-term-at_keyboard.c-Increase-robustness-on-.patch -Patch0226: 0226-Add-new-proc-filesystem-framework-and-put-luks_scrip.patch -Patch0227: 0227-grub-core-Makefile.core.def-vbe-Disable-on-coreboot-.patch -Patch0228: 0228-util-grub-mkconfig_lib.in-prepare_grub_to_access_dev.patch -Patch0229: 0229-grub-core-Makefile.core.def-vga-Disable-on-coreboot-.patch -Patch0230: 0230-util-grub.d-20_linux_xen.in-Automatically-add-no-rea.patch -Patch0231: 0231-Replace-the-region-at-0-from-coreboot-tables-to-avai.patch -Patch0232: 0232-grub-core-normal-menu.c-Wait-if-there-were-errors-sh.patch -Patch0233: 0233-grub-core-disk-ahci.c-Give-more-time-for-AHCI-reques.patch -Patch0234: 0234-grub-core-gfxmenu-font.c-grub_font_get_string_width-.patch -Patch0235: 0235-grub-core-commands-acpihalt.c-skip_ext_op-Add-suppor.patch -Patch0236: 0236-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch -Patch0237: 0237-grub-core-commands-verify.c-Fix-hash-algorithms-valu.patch -Patch0238: 0238-INSTALL-Mention-xorriso-requirement.patch -Patch0239: 0239-grub-core-partmap-apple.c-apple_partition_map_iterat.patch -Patch0240: 0240-grub-core-gfxmenu-gui_circular_progress.c-Fix-off-by.patch -Patch0241: 0241-grub-core-gfxmenu-view.c-Fix-off-by-one-error.patch -Patch0242: 0242-grub-core-gfxmenu-gui_circular_progress.c-Take-both-.patch -Patch0243: 0243-grub-core-gfxmenu-gui_progress_bar.c-Handle-padding-.patch -Patch0244: 0244-include-grub-elf.h-Add-missing-ARM-relocation-codes-.patch -Patch0245: 0245-util-grub-mount.c-fuse_init-Return-error-if-fuse_mai.patch -Patch0246: 0246-Fix-screen-corruption-in-menu-entry-editor-and-simpl.patch -Patch0247: 0247-grub-core-term-i386-pc-console.c-grub_console_getwh-.patch -Patch0248: 0248-grub-core-commands-verify.c-Save-verified-file-to-av.patch -Patch0249: 0249-grub-core-lib-posix_wrap-locale.h-GRUB_UTIL-Include-.patch -Patch0250: 0250-util-grub-setup.c-setup-Handle-some-corner-cases.patch -Patch0251: 0251-grub-core-bus-usb-usbtrans.c-grub_usb_bulk_readwrite.patch -Patch0252: 0252-Use-TSC-as-a-possible-time-source-on-i386-ieee1275.patch -Patch0253: 0253-grub-core-disk-efi-efidisk.c-Handle-partitions-on-no.patch -Patch0254: 0254-Unify-file-copying-setup-across-different-install-sc.patch -Patch0255: 0255-util-grub-mkimage.c-Introduce-new-define-EFI32_HEADE.patch -Patch0256: 0256-docs-grub.texi-Document-menuentry-id-option.patch -Patch0257: 0257-docs-grub.texi-Document-more-user-commands.patch -Patch0258: 0258-Move-GRUB_CHAR_BIT-to-types.h.patch -Patch0259: 0259-include-grub-bsdlabel.h-Use-enums.patch -Patch0260: 0260-grub-core-commands-verify.c-Use-GRUB_CHAR_BIT.patch -Patch0261: 0261-Add-new-defines-GRUB_RSDP_SIGNATURE_SIZE-and-GRUB_RS.patch -Patch0262: 0262-Replace-8-with-GRUB_CHAR_BIT-in-several-places-when-.patch -Patch0263: 0263-grub-core-commands-acpi.c-Use-sizeof-rather-than-har.patch -Patch0264: 0264-util-grub-mkfont.c-Prefer-enum-to-define.patch -Patch0265: 0265-Use-GRUB_PROPERLY_ALIGNED_ARRAY-in-grub-core-disk-cr.patch -Patch0266: 0266-util-grub.d-30_os-prober.in-Support-btrrfs-linux-pro.patch -Patch0267: 0267-util-grub-install_header-Use-PACKAGE-.mo-in-message-.patch -Patch0268: 0268-conf-Makefile.extra-dist-EXTRA_DIST-Add.patch -Patch0269: 0269-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch +Patch0051: 0051-grub-core-commands-configfile.c-GRUB_MOD_INIT-Correc.patch +Patch0052: 0052-grub-core-Makefile.am-moddep.lst-Use-AWK-instead-of-.patch +Patch0053: 0053-Add-missing-ChangeLog.patch +Patch0054: 0054-Fix-ordering-and-tab-indentation-of-NetBSD-boot-menu.patch +Patch0055: 0055-grub-core-net-bootp.c-parse_dhcp_vendor-Fix-double-i.patch +Patch0056: 0056-include-grub-types.h-Fix-functionality-unaffecting-t.patch +Patch0057: 0057-Support-big-endian-UFS1.patch +Patch0058: 0058-Fix-big-endian-mtime.patch +Patch0059: 0059-grub-core-fs-ufs.c-grub_ufs_dir-Stop-if-direntlen-is.patch +Patch0060: 0060-util-getroot.c-convert_system_partition_to_system_di.patch +Patch0061: 0061-util-grub-mkfont.c-argp_parser-Fix-a-typo-which-prev.patch +Patch0062: 0062-grub-core-term-gfxterm.c-grub_virtual_screen_setup-G.patch +Patch0063: 0063-grub-core-gfxmenu-view.c-init_terminal-Avoid-making-.patch +Patch0064: 0064-grub-core-kern-ieee1275-init.c-grub_machine_get_boot.patch +Patch0065: 0065-util-grub-install.in-Remove-stale-TODO.patch +Patch0066: 0066-util-grub-install.in-Follow-the-symbolic-link-parame.patch +Patch0067: 0067-grub-core-disk-cryptodisk.c-grub_cmd_cryptomount-Str.patch +Patch0068: 0068-docs-grub.texi-Network-Update-instructions-on-genera.patch +Patch0069: 0069-util-grub.d-20_linux_xen.in-Addmissing-assignment-to.patch +Patch0070: 0070-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch +Patch0071: 0071-Apply-program-name-transformations-at-build-time-rat.patch +Patch0072: 0072-neater-gnulib-backport.patch +Patch0073: 0073-util-grub-mkconfig.in-Accept-GRUB_TERMINAL_OUTPUT-vg.patch +Patch0074: 0074-grub-core-bus-usb-ehci.c-grub_ehci_pci_iter-Remove-i.patch +Patch0075: 0075-Remove-several-trivially-unnecessary-uses-of-nested-.patch +Patch0076: 0076-docs-grub.texi-configfile-Explain-environment-variab.patch +Patch0077: 0077-Fix-failing-printf-test.patch +Patch0078: 0078-grub-core-tests-lib-test.c-grub_test_run-Return-non-.patch +Patch0079: 0079-docs-grub.texi-Invoking-grub-mount-New-section.patch +Patch0080: 0080-docs-grub.texi-Invoking-grub-mkrelpath-New-section.patch +Patch0081: 0081-grub-core-fs-iso9660.c-grub_iso9660_susp_iterate-Avo.patch +Patch0082: 0082-configure.ac-Extend-Wno-trampolines-to-host.patch +Patch0083: 0083-util-grub.d-10_kfreebsd.in-Fix-improper-references-t.patch +Patch0084: 0084-util-grub.d-10_kfreebsd.in-Correct-the-patch-to-zpoo.patch +Patch0085: 0085-grub-core-disk-diskfilter.c-grub_diskfilter_write-Ca.patch +Patch0086: 0086-grub-core-fs-nilfs2.c-grub_nilfs2_palloc_groups_per_.patch +Patch0087: 0087-grub-core-fs-ntfs.c-Eliminate-useless-divisions-in-f.patch +Patch0088: 0088-grub-core-fs-ext2.c-grub_ext2_read_block-Use-shifts-.patch +Patch0089: 0089-grub-core-fs-minix.c-grub_minix_read_file-Simplify-a.patch +Patch0090: 0090-docs-grub.texi-grub_cpu-New-subsection.patch +Patch0091: 0091-grub-core-io-bufio.c-grub_bufio_open-Use-grub_zalloc.patch +Patch0092: 0092-grub-core-kern-disk.c-grub_disk_write-Fix-sector-num.patch +Patch0093: 0093-Support-Apple-FAT-binaries-on-non-Apple-platforms.patch +Patch0094: 0094-grub-core-fs-ntfs.c-Ue-more-appropriate-types.patch +Patch0095: 0095-Import-gcrypt-public-key-cryptography-and-implement-.patch +Patch0096: 0096-Clean-up-dangling-references-to-grub-setup.patch +Patch0097: 0097-autogen.sh-Do-not-try-to-delete-nonexistant-files.patch +Patch0098: 0098-Remove-autogenerated-files-from-VCS.patch +Patch0099: 0099-grub-core-lib-libgcrypt_wrap-mem.c-_gcry_log_bug-Mak.patch +Patch0100: 0100-grub-core-lib-libgcrypt_wrap-mem.c-gcry_x-alloc-Make.patch +Patch0101: 0101-grub-core-commands-verify.c-Mark-messages-for-transl.patch +Patch0102: 0102-Remove-nested-functions-from-PCI-iterators.patch +Patch0103: 0103-util-grub-mkimage.c-generate_image-Fix-size-of-publi.patch +Patch0104: 0104-New-command-list_trusted.patch +Patch0105: 0105-Fix-compilation-with-older-compilers.patch +Patch0106: 0106-grub-core-kern-emu-hostdisk.c-read_device_map-Explic.patch +Patch0107: 0107-Remove-nested-functions-from-memory-map-iterators.patch +Patch0108: 0108-Remove-nested-functions-from-script-reading-and-pars.patch +Patch0109: 0109-grub-core-script-lexer.c-grub_script_lexer_init-Rena.patch +Patch0110: 0110-Improve-bidi-handling-in-entry-editor.patch +Patch0111: 0111-New-terminal-outputs-using-serial-morse-and-spkmodem.patch +Patch0112: 0112-Add-new-command-pcidump.patch +Patch0113: 0113-Rewrite-spkmodem-to-use-PIT-for-timing.-Double-the-s.patch +Patch0114: 0114-Add-license-header-to-spkmodem-recv.c.patch +Patch0115: 0115-Fix-typos-for-developer-and-development.patch +Patch0116: 0116-Remove-nested-functions-from-device-iterators.patch +Patch0117: 0117-Remove-nested-functions-from-ELF-iterators.patch +Patch0118: 0118-util-grub-script-check.c-main-Uniform-the-error-mess.patch +Patch0119: 0119-docs-grub.texi-Simple-configuration-Clarify-GRUB_HID.patch +Patch0120: 0120-Split-long-USB-transfers-into-short-ones.patch +Patch0121: 0121-include-grub-elf.h-Update-ARM-definitions-based-on-b.patch +Patch0122: 0122-conf-Makefile.common-Fix-autogen-rules-to-pass-defin.patch +Patch0123: 0123-grub-core-loader-i386-linux.c-grub_cmd_initrd-Don-t-.patch +Patch0124: 0124-util-grub-mkimage.c-main-Postpone-freeing-arguments..patch +Patch0125: 0125-docs-grub.texi-Multi-boot-manual-config-Fix-typo-for.patch +Patch0126: 0126-Remove-nested-functions-from-filesystem-directory-it.patch +Patch0127: 0127-grub-core-partmap-msdos.c-embed_signatures-Add-the-s.patch +Patch0128: 0128-Improve-spkmomdem-reliability-by-adding-a-separator-.patch +Patch0129: 0129-grub-core-commands-lsmmap.c-Fix-unused-variable-on-e.patch +Patch0130: 0130-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate-Fi.patch +Patch0131: 0131-Fix-powerpc-and-sparc64-build-failures-caused-by-un-.patch +Patch0132: 0132-grub-core-commands-ls.c-grub_ls_print_devices-Add-mi.patch +Patch0133: 0133-Make-color-variables-global-instead-of-it-being-per-.patch +Patch0134: 0134-Improve-spkmomdem-reliability-by-adding-a-separator-.patch +Patch0135: 0135-grub-core-normal-term.c-print_ucs4_terminal-Don-t-ou.patch +Patch0136: 0136-Improve-spkmodem-reliability-by-adding-a-separator-b.patch +Patch0137: 0137-Remove-nested-functions-from-USB-iterators.patch +Patch0138: 0138-grub-core-font-font.c-blit_comb-do_blit-Make-static-.patch +Patch0139: 0139-include-grub-kernel.h-FOR_MODULES-Adjust-to-preserve.patch +Patch0140: 0140-grub-core-lib-libgcrypt_wrap-cipher_wrap.h-Include-s.patch +Patch0141: 0141-util-grub-reboot.in-usage-Document-the-need-for.patch +Patch0142: 0142-Improve-FreeDOS-direct-loading-support-compatibility.patch +Patch0143: 0143-grub-core-normal-menu_text.c-grub_menu_init_page-Fix.patch +Patch0144: 0144-util-grub-install.in-change-misleading-comment-about.patch +Patch0145: 0145-grub-core-fs-xfs.c-grub_xfs_read_block-Fix-computati.patch +Patch0146: 0146-grub-core-bus-usb-serial-common.c-grub_usbserial_att.patch +Patch0147: 0147-grub-core-bus-usb-usb.c-grub_usb_device_attach-Add-m.patch +Patch0148: 0148-grub-core-commands-lsacpi.c-Show-more-info.-Hide-som.patch +Patch0149: 0149-Missing-part-of-last-commit.patch +Patch0150: 0150-Implement-USBDebug-full-USB-stack-variant.patch +Patch0151: 0151-grub-core-fs-fshelp.c-find_file-Set-oldnode-to-zero-.patch +Patch0152: 0152-grub-core-disk-cryptodisk.c-grub_cryptodisk_scan_dev.patch +Patch0153: 0153-grub-core-commands-lsacpi.c-Fix-types-on-64-bit-plat.patch +Patch0154: 0154-Support-Openfirmware-disks-with-non-512B-sectors.patch +Patch0155: 0155-Implement-new-command-cmosdump.patch +Patch0156: 0156-grub-core-normal-misc.c-grub_normal_print_device_inf.patch +Patch0157: 0157-Makefile.util.def-Add-partmap-msdos.c-to-common-libr.patch +Patch0158: 0158-grub-core-normal-menu_entry.c-insert_string-fix-off-.patch +Patch0159: 0159-grub-core-normal-menu_entry.c-update_screen-remove.patch +Patch0160: 0160-grub-core-disk-efi-efidisk.c-grub_efidisk_get_device.patch +Patch0161: 0161-grub-core-partmap-msdos.c-grub_partition_msdos_itera.patch +Patch0162: 0162-Remove-nested-functions-from-disk-and-file-read-hook.patch +Patch0163: 0163-grub-core-loader-machoXX.c-Remove-nested-functions.patch +Patch0164: 0164-util-grub-fstest.c-Remove-nested-functions.patch +Patch0165: 0165-grub-core-commands-parttool.c-grub_cmd_parttool-Move.patch +Patch0166: 0166-grub-core-fs-iso9660.c-Remove-nested-functions.patch +Patch0167: 0167-grub-core-fs-minix.c-Remove-nested-functions.patch +Patch0168: 0168-grub-core-fs-jfs.c-Remove-nested-functions.patch +Patch0169: 0169-grub-core-lib-arg.c-grub_arg_show_help-Move-showargs.patch +Patch0170: 0170-grub-core-kern-i386-coreboot-mmap.c-grub_linuxbios_t.patch +Patch0171: 0171-Enable-linux16-on-non-BIOS-systems-for-i.a.-memtest.patch +Patch0172: 0172-grub-core-kern-main.c-grub_set_prefix_and_root-Strip.patch +Patch0173: 0173-grub-core-disk-efi-efidisk.c-Transform-iterate_child.patch +Patch0174: 0174-grub-core-loader-i386-pc-linux.c-grub_cmd_linux-Fix-.patch +Patch0175: 0175-Remove-nested-functions-from-videoinfo-iterators.patch +Patch0176: 0176-grub-core-gentrigtables.c-Make-tables-const.patch +Patch0177: 0177-grub-core-kern-emu-hostdisk.c-read_device_map-Remove.patch +Patch0178: 0178-util-grub-editenv.c-list_variables-Move-print_var-ou.patch +Patch0179: 0179-grub-core-fs-hfsplus.c-grub_hfsplus_btree_iterate_no.patch +Patch0180: 0180-grub-core-fs-hfs.c-Remove-nested-functions.patch +Patch0181: 0181-grub-core-commands-loadenv.c-grub_cmd_list_env-Move-.patch +Patch0182: 0182-grub-core-normal-charset.c-grub_bidi_logical_to_visu.patch +Patch0183: 0183-grub-core-script-execute.c-gettext_append-Remove-nes.patch +Patch0184: 0184-grub-core-lib-ia64-longjmp.S-Fix-the-name-of-longjmp.patch +Patch0185: 0185-Make-elfload-not-use-hooks.-Opt-for-flags-and-iterat.patch +Patch0186: 0186-grub-core-kern-term.c-grub_term_normal_color.patch +Patch0187: 0187-Move-to-more-hookless-approach-in-IEEE1275-devices-h.patch +Patch0188: 0188-include-grub-mips-loongson-cmos.h-Fix-high-CMOS-addr.patch +Patch0189: 0189-include-grub-cmos.h-Handle-high-CMOS-addresses-on-sp.patch +Patch0190: 0190-grub-core-disk-ieee1275-nand.c-Fix-compilation-on.patch +Patch0191: 0191-grub-core-kern-env.c-include-grub-env.h-Change-itera.patch +Patch0192: 0192-grub-core-commands-regexp.c-set_matches-Move-setvar-.patch +Patch0193: 0193-grub-core-script-execute.c-grub_script_arglist_to_ar.patch +Patch0194: 0194-Remove-all-trampoline-support.-Add-Wtrampolines-when.patch +Patch0195: 0195-grub-core-term-terminfo.c-grub_terminfo_cls-Issue-an.patch +Patch0196: 0196-Lift-up-core-size-limits-on-some-platforms.-Fix-pote.patch +Patch0197: 0197-grub-core-normal-crypto.c-read_crypto_list-Fix-incor.patch +Patch0198: 0198-grub-core-commands-acpi.c-grub_acpi_create_ebda-Don-.patch +Patch0199: 0199-grub-core-fs-iso9660.c-add_part-Remove-always_inline.patch +Patch0200: 0200-grub-core-fs-fshelp.c-grub_fshelp_log2blksize-Remove.patch +Patch0201: 0201-Avoid-costly-64-bit-division-in-grub_get_time_ms-on-.patch +Patch0202: 0202-grub-core-fs-hfs.c-grub_hfs_read_file-Avoid-divmod64.patch +Patch0203: 0203-Adjust-types-in-gdb-module-to-have-intended-unsigned.patch +Patch0204: 0204-grub-core-video-i386-pc-vbe.c.patch +Patch0205: 0205-include-grub-datetime.h-grub_datetime2unixtime-Fix-u.patch +Patch0206: 0206-grub-core-loader-i386-pc-plan9.c-fill_disk-Fix-types.patch +Patch0207: 0207-grub-core-commands-verify.c-grub_verify_signature-Us.patch +Patch0208: 0208-grub-core-lib-arg.c-grub_arg_list_alloc-Use-shifts-r.patch +Patch0209: 0209-grub-core-loader-i386-bsdXX.c-grub_openbsd_find_ramd.patch +Patch0210: 0210-Resend-a-packet-if-we-got-the-wrong-buffer-in-status.patch +Patch0211: 0211-Better-estimate-the-maximum-USB-transfer-size.patch +Patch0212: 0212-remove-get_endpoint_descriptor-and-change-all-functi.patch +Patch0213: 0213-Implement-boot-time-analysis-framework.patch +Patch0214: 0214-Fix-USB-devices-not-being-detected-when-requested.patch +Patch0215: 0215-Initialize-USB-ports-in-parallel-to-speed-up-boot.patch +Patch0216: 0216-include-grub-boottime.h-Add-missing-file.patch +Patch0217: 0217-Fix-a-conflict-between-ports-structures-with-2-contr.patch +Patch0218: 0218-New-commands-cbmemc-lscoreboot-coreboot_boottime-to-.patch +Patch0219: 0219-grub-core-commands-boottime.c-Fix-copyright-header.patch +Patch0220: 0220-Slight-improve-in-USB-related-boot-time-checkpoints.patch +Patch0221: 0221-grub-core-commands-verify.c-hashes-Add-several-hashe.patch +Patch0222: 0222-po-POTFILES.in-Regenerate.patch +Patch0223: 0223-grub-core-commands-i386-coreboot-cbls.c-Fix-typos-an.patch +Patch0224: 0224-Add-ability-to-generate-newc-additions-on-runtime.patch +Patch0225: 0225-grub-core-fs-zfs-zfs.c-Fix-incorrect-handling-of-spe.patch +Patch0226: 0226-grub-core-term-at_keyboard.c-Increase-robustness-on-.patch +Patch0227: 0227-Add-new-proc-filesystem-framework-and-put-luks_scrip.patch +Patch0228: 0228-grub-core-Makefile.core.def-vbe-Disable-on-coreboot-.patch +Patch0229: 0229-util-grub-mkconfig_lib.in-prepare_grub_to_access_dev.patch +Patch0230: 0230-grub-core-Makefile.core.def-vga-Disable-on-coreboot-.patch +Patch0231: 0231-util-grub.d-20_linux_xen.in-Automatically-add-no-rea.patch +Patch0232: 0232-Replace-the-region-at-0-from-coreboot-tables-to-avai.patch +Patch0233: 0233-grub-core-normal-menu.c-Wait-if-there-were-errors-sh.patch +Patch0234: 0234-grub-core-disk-ahci.c-Give-more-time-for-AHCI-reques.patch +Patch0235: 0235-grub-core-gfxmenu-font.c-grub_font_get_string_width-.patch +Patch0236: 0236-grub-core-commands-acpihalt.c-skip_ext_op-Add-suppor.patch +Patch0237: 0237-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch +Patch0238: 0238-grub-core-commands-verify.c-Fix-hash-algorithms-valu.patch +Patch0239: 0239-INSTALL-Mention-xorriso-requirement.patch +Patch0240: 0240-grub-core-partmap-apple.c-apple_partition_map_iterat.patch +Patch0241: 0241-grub-core-gfxmenu-gui_circular_progress.c-Fix-off-by.patch +Patch0242: 0242-grub-core-gfxmenu-view.c-Fix-off-by-one-error.patch +Patch0243: 0243-grub-core-gfxmenu-gui_circular_progress.c-Take-both-.patch +Patch0244: 0244-grub-core-gfxmenu-gui_progress_bar.c-Handle-padding-.patch +Patch0245: 0245-include-grub-elf.h-Add-missing-ARM-relocation-codes-.patch +Patch0246: 0246-util-grub-mount.c-fuse_init-Return-error-if-fuse_mai.patch +Patch0247: 0247-Fix-screen-corruption-in-menu-entry-editor-and-simpl.patch +Patch0248: 0248-grub-core-term-i386-pc-console.c-grub_console_getwh-.patch +Patch0249: 0249-grub-core-commands-verify.c-Save-verified-file-to-av.patch +Patch0250: 0250-grub-core-lib-posix_wrap-locale.h-GRUB_UTIL-Include-.patch +Patch0251: 0251-util-grub-setup.c-setup-Handle-some-corner-cases.patch +Patch0252: 0252-grub-core-bus-usb-usbtrans.c-grub_usb_bulk_readwrite.patch +Patch0253: 0253-Use-TSC-as-a-possible-time-source-on-i386-ieee1275.patch +Patch0254: 0254-grub-core-disk-efi-efidisk.c-Handle-partitions-on-no.patch +Patch0255: 0255-Unify-file-copying-setup-across-different-install-sc.patch +Patch0256: 0256-util-grub-mkimage.c-Introduce-new-define-EFI32_HEADE.patch +Patch0257: 0257-docs-grub.texi-Document-menuentry-id-option.patch +Patch0258: 0258-docs-grub.texi-Document-more-user-commands.patch +Patch0259: 0259-Move-GRUB_CHAR_BIT-to-types.h.patch +Patch0260: 0260-include-grub-bsdlabel.h-Use-enums.patch +Patch0261: 0261-grub-core-commands-verify.c-Use-GRUB_CHAR_BIT.patch +Patch0262: 0262-Add-new-defines-GRUB_RSDP_SIGNATURE_SIZE-and-GRUB_RS.patch +Patch0263: 0263-Replace-8-with-GRUB_CHAR_BIT-in-several-places-when-.patch +Patch0264: 0264-grub-core-commands-acpi.c-Use-sizeof-rather-than-har.patch +Patch0265: 0265-util-grub-mkfont.c-Prefer-enum-to-define.patch +Patch0266: 0266-Use-GRUB_PROPERLY_ALIGNED_ARRAY-in-grub-core-disk-cr.patch +Patch0267: 0267-util-grub.d-30_os-prober.in-Support-btrrfs-linux-pro.patch +Patch0268: 0268-util-grub-install_header-Use-PACKAGE-.mo-in-message-.patch +Patch0269: 0269-conf-Makefile.extra-dist-EXTRA_DIST-Add.patch Patch0270: 0270-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch -Patch0271: 0271-docs-grub-dev.texi-Move-itemize-after-subsection-to-.patch -Patch0272: 0272-grub-core-term-i386-pc-console.c-Fix-cursor-moving-a.patch -Patch0273: 0273-grub-core-Makefile.core.def-Add-kern-elfXX.c-to-elf-.patch -Patch0274: 0274-Fix-ia64-efi-image-generation-on-big-endian-machines.patch -Patch0275: 0275-autogen.sh-Use-h-not-f-to-test-for-existence-of-symb.patch -Patch0276: 0276-Fix-missing-PVs-if-they-don-t-contain-interesting-LV.patch -Patch0277: 0277-util-grub.d-30_os-prober.in-Add-onstr-to-entries-for.patch -Patch0278: 0278-Use-ACPI-shutdown-intests-as-traditional-port-was-re.patch -Patch0279: 0279-Import-new-gnulib.patch -Patch0280: 0280-docs-grub.texi-Fix-description-of-GRUB_CMDLINE_XEN-a.patch -Patch0281: 0281-Merge-powerpc-grub-mkrescue-flavour-with-common.-Use.patch -Patch0282: 0282-Support-i386-ieee1275-grub-mkrescue-and-make-check-o.patch -Patch0283: 0283-tests-partmap_test.in-Fix-missing-qemudisk-setting.patch -Patch0284: 0284-tests-grub_cmd_date.in-New-test-for-datetime.patch -Patch0285: 0285-docs-grub.texi-Update-coreboot-status-info.patch -Patch0286: 0286-Turn-off-QEMU-ACPI-way-since-new-releases-don-t-have.patch -Patch0287: 0287-tests-util-grub-shell.in-Fix-it-on-powerpc.patch -Patch0288: 0288-Disable-partmap-check-on-i386-ieee1275-due-to-openfi.patch -Patch0289: 0289-grub-core-net-drivers-ieee1275-ofnet.c-Don-t-attempt.patch -Patch0290: 0290-grub-core-net-http.c-Fix-bad-free.patch -Patch0291: 0291-Fix-handling-of-split-transfers.patch -Patch0292: 0292-grub-core-bus-usb-ehci.c-grub_ehci_fini_hw-Ignore-er.patch -Patch0293: 0293-util-grub-mkimage.c-Document-memdisk-implying-prefix.patch -Patch0294: 0294-Handle-Japanese-special-keys.patch -Patch0295: 0295-Replace-stpcpy-with-grub_stpcpy-in-tools.patch -Patch0296: 0296-Better-support-Apple-Intel-Macs-on-CD.patch -Patch0297: 0297-util-grub-mkrescue.in-Fix-wrong-architecture-for-ppc.patch -Patch0298: 0298-docs-man-grub-glue-efi.h2m-Add-missing-file.patch -Patch0299: 0299-Fix-memory-leaks-in-ofnet.patch -Patch0300: 0300-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch -Patch0301: 0301-grub-core-disk-ieee1275-ofdisk.c-Iterate-over-bootpa.patch -Patch0302: 0302-Allow-IEEE1275-ports-on-path-even-if-it-wasn-t-detec.patch -Patch0303: 0303-Support-mkrescue-on-sparc64.patch -Patch0304: 0304-Support-grub-shell-on-sparc64.patch -Patch0305: 0305-tests-partmap_test.in-Skip-on-sparc64.patch -Patch0306: 0306-tests-grub_cmd_date.in-Add-missing-exit-1.patch -Patch0307: 0307-Move-GRUB-out-of-system-area-when-using-xorriso-1.2..patch -Patch0308: 0308-grub-core-loader-i386-linux.c-Remove-useless-leftove.patch -Patch0309: 0309-docs-grub-dev.texi-Rearrange-menu-to-match-the-secti.patch -Patch0310: 0310-Add-option-to-compress-files-on-install-image-creati.patch -Patch0311: 0311-grub-core-lib-posix_wrap-sys-types.h-Make-WORDS_BIGE.patch -Patch0312: 0312-grub-core-disk-ieee1275-ofdisk.c-Fix-CD-ROM-and-boot.patch -Patch0313: 0313-grub-core-kern-ieee1275-openfw.c-grub_ieee1275_deval.patch -Patch0314: 0314-tests-grub_script_expansion.in-Use-fixed-string-grep.patch -Patch0315: 0315-tests-grub_cmd_date.in-Skip-on-sparc64.patch -Patch0316: 0316-Fix-DMRAID-partition-handling.patch -Patch0317: 0317-grub-core-disk-efi-efidisk.c-Limit-disk-read-or-writ.patch -Patch0318: 0318-autogen.sh-Use-f-in-addition-for-h-when-checking-fil.patch -Patch0319: 0319-grub-core-disk-efi-efidisk.c-Really-limit-transfer-c.patch -Patch0320: 0320-build-aux-snippet-Add-missing-gnulib-files.patch -Patch0321: 0321-grub-core-disk-efi-efidisk.c-Detect-floppies-by-ACPI.patch -Patch0322: 0322-util-grub-mkrescue.in-Add-GPT-for-EFI-boot.patch -Patch0323: 0323-Add-support-for-pseries-and-other-bootinfo-machines-.patch -Patch0324: 0324-util-grub.d-30_os-prober.in-Add-onstr-to-linux-entri.patch -Patch0325: 0325-grub-core-kern-elfXX.c-grub_elfXX_load-Handle.patch -Patch0326: 0326-grub-core-commands-videotest.c-grub_cmd_videotest-Fi.patch -Patch0327: 0327-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch -Patch0328: 0328-grub-core-kern-ieee1275-init.c-grub_claim_heap-Impro.patch -Patch0329: 0329-grub-core-lib-efi-relocator.c-grub_relocator_firmwar.patch -Patch0330: 0330-grub-core-Makefile.core.def-legacycfg-Enable-on-EFI.patch -Patch0331: 0331-grub-core-kern-mm.c-grub_mm_init_region-Fix-conditio.patch -Patch0332: 0332-Support-coreboot-framebuffer.patch -Patch0333: 0333-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate_it.patch -Patch0334: 0334-Move-mips-arc-link-address.-Previous-link-address-wa.patch -Patch0335: 0335-grub-core-kern-dl.c-grub_dl_resolve_symbols-Handle-m.patch -Patch0336: 0336-util-grub-mkrescue.in-Add-mips-arc-support.patch -Patch0337: 0337-Add-missing-video-ids-to-coreboot-and-ieee1275-video.patch -Patch0338: 0338-grub-core-disk-ata.c-grub_ata_real_open-Use-grub_err.patch -Patch0339: 0339-grub-core-loader-i386-linux.c-grub_linux_boot-Defaul.patch -Patch0340: 0340-grub-core-normal-menu_text.c-print_entry-Put-an-aste.patch -Patch0341: 0341-util-grub-install.in-Fix-target-fo-qemu_mips.patch -Patch0342: 0342-Don-t-say-GNU-Linux-in-generated-menus.patch -Patch0343: 0343-Migrate-PPC-from-Yaboot-to-Grub2.patch -Patch0344: 0344-Add-fw_path-variable-revised.patch -Patch0345: 0345-Don-t-set-boot-device-on-ppc-ieee1275.patch -Patch0346: 0346-Add-support-for-linuxefi.patch -Patch0347: 0347-Add-support-for-crappy-cd-craparino.patch -Patch0348: 0348-Use-linuxefi-and-initrdefi-where-appropriate.patch -Patch0349: 0349-Don-t-allow-insmod-when-secure-boot-is-enabled.patch -Patch0351: 0351-Pass-x-hex-hex-straight-through-unmolested.patch -Patch0352: 0352-Fix-crash-on-http.patch -Patch0353: 0353-Issue-separate-DNS-queries-for-ipv4-and-ipv6.patch -Patch0354: 0354-IBM-client-architecture-CAS-reboot-support.patch -Patch0355: 0355-for-ppc-include-all-modules-in-the-core-image.patch -Patch0356: 0356-Add-vlan-tag-support.patch -Patch0357: 0357-Add-X-option-to-printf-functions.patch -Patch0358: 0358-DHCP-client-ID-and-UUID-options-added.patch -Patch0359: 0359-Search-for-specific-config-file-for-netboot.patch -Patch0360: 0360-Add-bootpath-device-to-the-list.patch -Patch0361: 0361-add-GRUB_DISABLE_SUBMENU-option.patch -Patch0362: 0362-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch -Patch0363: 0363-Move-bash-completion-script-922997.patch -Patch0364: 0002-configure.ac-Don-t-use-extended-registers-on-x86_64.patch -Patch0365: 0003-configure.ac-Don-t-disable-extended-registers-on-emu.patch -Patch0366: 0004-conf-Makefile.common-Poison-float-and-double-on-non-.patch -Patch0367: grub-2.00-quiet-boot.patch -Patch0368: grub-2.00-no-header.patch - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Patch0271: 0271-grub-core-normal-term.c-Few-more-fixes-for-menu-entr.patch +Patch0272: 0272-docs-grub-dev.texi-Move-itemize-after-subsection-to-.patch +Patch0273: 0273-grub-core-term-i386-pc-console.c-Fix-cursor-moving-a.patch +Patch0274: 0274-grub-core-Makefile.core.def-Add-kern-elfXX.c-to-elf-.patch +Patch0275: 0275-Fix-ia64-efi-image-generation-on-big-endian-machines.patch +Patch0276: 0276-autogen.sh-Use-h-not-f-to-test-for-existence-of-symb.patch +Patch0277: 0277-Fix-missing-PVs-if-they-don-t-contain-interesting-LV.patch +Patch0278: 0278-util-grub.d-30_os-prober.in-Add-onstr-to-entries-for.patch +Patch0279: 0279-Use-ACPI-shutdown-intests-as-traditional-port-was-re.patch +Patch0280: 0280-Import-new-gnulib.patch +Patch0281: 0281-docs-grub.texi-Fix-description-of-GRUB_CMDLINE_XEN-a.patch +Patch0282: 0282-Merge-powerpc-grub-mkrescue-flavour-with-common.-Use.patch +Patch0283: 0283-Support-i386-ieee1275-grub-mkrescue-and-make-check-o.patch +Patch0284: 0284-tests-partmap_test.in-Fix-missing-qemudisk-setting.patch +Patch0285: 0285-tests-grub_cmd_date.in-New-test-for-datetime.patch +Patch0286: 0286-docs-grub.texi-Update-coreboot-status-info.patch +Patch0287: 0287-Turn-off-QEMU-ACPI-way-since-new-releases-don-t-have.patch +Patch0288: 0288-tests-util-grub-shell.in-Fix-it-on-powerpc.patch +Patch0289: 0289-Disable-partmap-check-on-i386-ieee1275-due-to-openfi.patch +Patch0290: 0290-grub-core-net-drivers-ieee1275-ofnet.c-Don-t-attempt.patch +Patch0291: 0291-grub-core-net-http.c-Fix-bad-free.patch +Patch0292: 0292-Fix-handling-of-split-transfers.patch +Patch0293: 0293-grub-core-bus-usb-ehci.c-grub_ehci_fini_hw-Ignore-er.patch +Patch0294: 0294-util-grub-mkimage.c-Document-memdisk-implying-prefix.patch +Patch0295: 0295-Handle-Japanese-special-keys.patch +Patch0296: 0296-Replace-stpcpy-with-grub_stpcpy-in-tools.patch +Patch0297: 0297-Better-support-Apple-Intel-Macs-on-CD.patch +Patch0298: 0298-util-grub-mkrescue.in-Fix-wrong-architecture-for-ppc.patch +Patch0299: 0299-docs-man-grub-glue-efi.h2m-Add-missing-file.patch +Patch0300: 0300-Fix-memory-leaks-in-ofnet.patch +Patch0301: 0301-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch +Patch0302: 0302-grub-core-disk-ieee1275-ofdisk.c-Iterate-over-bootpa.patch +Patch0303: 0303-Allow-IEEE1275-ports-on-path-even-if-it-wasn-t-detec.patch +Patch0304: 0304-Support-mkrescue-on-sparc64.patch +Patch0305: 0305-Support-grub-shell-on-sparc64.patch +Patch0306: 0306-tests-partmap_test.in-Skip-on-sparc64.patch +Patch0307: 0307-tests-grub_cmd_date.in-Add-missing-exit-1.patch +Patch0308: 0308-Move-GRUB-out-of-system-area-when-using-xorriso-1.2..patch +Patch0309: 0309-grub-core-loader-i386-linux.c-Remove-useless-leftove.patch +Patch0310: 0310-docs-grub-dev.texi-Rearrange-menu-to-match-the-secti.patch +Patch0311: 0311-Add-option-to-compress-files-on-install-image-creati.patch +Patch0312: 0312-grub-core-lib-posix_wrap-sys-types.h-Make-WORDS_BIGE.patch +Patch0313: 0313-grub-core-disk-ieee1275-ofdisk.c-Fix-CD-ROM-and-boot.patch +Patch0314: 0314-grub-core-kern-ieee1275-openfw.c-grub_ieee1275_deval.patch +Patch0315: 0315-tests-grub_script_expansion.in-Use-fixed-string-grep.patch +Patch0316: 0316-tests-grub_cmd_date.in-Skip-on-sparc64.patch +Patch0317: 0317-Fix-DMRAID-partition-handling.patch +Patch0318: 0318-grub-core-disk-efi-efidisk.c-Limit-disk-read-or-writ.patch +Patch0319: 0319-autogen.sh-Use-f-in-addition-for-h-when-checking-fil.patch +Patch0320: 0320-grub-core-disk-efi-efidisk.c-Really-limit-transfer-c.patch +Patch0321: 0321-build-aux-snippet-Add-missing-gnulib-files.patch +Patch0322: 0322-grub-core-disk-efi-efidisk.c-Detect-floppies-by-ACPI.patch +Patch0323: 0323-util-grub-mkrescue.in-Add-GPT-for-EFI-boot.patch +Patch0324: 0324-Add-support-for-pseries-and-other-bootinfo-machines-.patch +Patch0325: 0325-util-grub.d-30_os-prober.in-Add-onstr-to-linux-entri.patch +Patch0326: 0326-grub-core-kern-elfXX.c-grub_elfXX_load-Handle.patch +Patch0327: 0327-grub-core-commands-videotest.c-grub_cmd_videotest-Fi.patch +Patch0328: 0328-grub-core-kern-ieee1275-cmain.c-grub_ieee1275_find_o.patch +Patch0329: 0329-grub-core-kern-ieee1275-init.c-grub_claim_heap-Impro.patch +Patch0330: 0330-grub-core-lib-efi-relocator.c-grub_relocator_firmwar.patch +Patch0331: 0331-grub-core-Makefile.core.def-legacycfg-Enable-on-EFI.patch +Patch0332: 0332-grub-core-kern-mm.c-grub_mm_init_region-Fix-conditio.patch +Patch0333: 0333-Support-coreboot-framebuffer.patch +Patch0334: 0334-grub-core-disk-arc-arcdisk.c-grub_arcdisk_iterate_it.patch +Patch0335: 0335-Move-mips-arc-link-address.-Previous-link-address-wa.patch +Patch0336: 0336-grub-core-kern-dl.c-grub_dl_resolve_symbols-Handle-m.patch +Patch0337: 0337-util-grub-mkrescue.in-Add-mips-arc-support.patch +Patch0338: 0338-Add-missing-video-ids-to-coreboot-and-ieee1275-video.patch +Patch0339: 0339-grub-core-disk-ata.c-grub_ata_real_open-Use-grub_err.patch +Patch0340: 0340-grub-core-loader-i386-linux.c-grub_linux_boot-Defaul.patch +Patch0341: 0341-grub-core-normal-menu_text.c-print_entry-Put-an-aste.patch +Patch0342: 0342-util-grub-install.in-Fix-target-fo-qemu_mips.patch +Patch0343: 0343-grub-core-term-arc-console.c-Assume-that-console-is-.patch +Patch0344: 0344-util-grub-mkrescue.in-Alias-sashARCS-as-sash.patch +Patch0345: 0345-Make-check-work-on-mips-arc.patch +Patch0346: 0346-grub-core-term-ieee1275-console.c-grub_console_dimen.patch +Patch0347: 0347-util-grub-mkrescue.in-Move-all-files-that-don-t-have.patch +Patch0348: 0348-util-grub-mkrescue.in-Fix-loongson-filename.patch +Patch0349: 0349-tests-partmap_test.in-Add-missing-double-semicolon.patch +Patch0350: 0350-grub-core-boot-powerpc-bootinfo.txt.in-Missing-updat.patch +Patch0351: 0351-Add-serial-on-ARC-platform.patch +Patch0352: 0352-Enable-mipsel-arc.patch +Patch0353: 0353-configure.ac-Fix-loongson-conditional.patch +Patch0354: 0354-util-grub-mkrescue.in-Rename-i386-ieee1275-core-imag.patch +Patch0355: 0355-Add-test-to-check-that-different-boot-mediums-work.patch +Patch0356: 0356-tests-pseries_test.in-New-test.patch +Patch0357: 0357-util-getroot.c-exec_pipe-Put-proper-if-s-so-that-its.patch +Patch0358: 0358-grub-core-Makefile.core.def-Fix-grub-emu-and-grub-em.patch +Patch0359: 0359-Replace-libcurses-with-our-own-vt100-handling-for-th.patch +Patch0360: 0360-Make-make-check-work-on-emu.patch +Patch0361: 0361-Fix-pseries-test.patch +Patch0362: 0362-Improve-AHCI-detection-and-command-issuing.patch +Patch0363: 0363-Implement-grub_machine_get_bootlocation-for-ARC.patch +Patch0364: 0364-Core-compression-test.patch +Patch0365: 0365-grub-core-loader-multiboot_mbi2.c-grub_multiboot_loa.patch +Patch0366: 0366-grub-core-disk-ahci.c-grub_ahci_pciinit-Fix-handling.patch +Patch0367: 0367-util-ieee1275-ofpath.c-of_path_of_scsi-Fix-path-outp.patch +Patch0368: 0368-grub-core-term-ns8250.c-Systematically-probe-ports-b.patch +Patch0369: 0369-missing-file.patch +Patch0370: 0370-include-grub-macho.h-Set-GRUB_MACHO_FAT_EFI_MAGIC-as.patch +Patch0371: 0371-grub-core-term-morse.c-Macroify-dih-and-dah.patch +Patch0372: 0372-Move-directory-override-directorry-to-grub-install_h.patch +Patch0373: 0373-Remove-POTFILES.in-and-regenerate-it-in-autogen.sh.patch +Patch0374: 0374-INSTALL-Document-linguas.sh.patch +Patch0375: 0375-grub-core-commands-probe.c-Add-missing-grub_device_c.patch +Patch0376: 0376-grub-core-kern-file.c-Use-const-char-rather-than-cas.patch +Patch0377: 0377-include-grub-efi-api.h-GRUB_EFI_DEVICE_PATH_LENGTH-U.patch +Patch0378: 0378-grub-core-disk-ahci.c-Fix-compilation-for-amd64-form.patch +Patch0379: 0379-grub-core-io-lzopio.c-Use-GRUB_PROPERLY_ALIGNED_ARRA.patch +Patch0380: 0380-New-command-nativedisk.patch +Patch0381: 0381-grub-core-commands-nativedisk.c-Ignore-unknown-files.patch +Patch0382: 0382-docs-grub.texi-Add-a-comment-about-usefullness-of-na.patch +Patch0383: 0383-grub-core-lib-arg.c-grub_arg_show_help-Fix-a-NULL-po.patch +Patch0384: 0384-grub-core-kern-mips-arc-init.c-Fix-prefix-detection.patch +Patch0385: 0385-include-grub-list.h-FOR_LIST_ELEMENTS_SAFE-Fix-a-NUL.patch +Patch0386: 0386-grub-core-script-execute.c-grub_script_arglist_to_ar.patch +Patch0387: 0387-grub-core-bus-usb-uhci.c-Fix-DMA-handling-and-enable.patch +Patch0388: 0388-grub-core-commands-nativedisk.c-Customize-the-list-o.patch +Patch0389: 0389-Enforce-disabling-of-firmware-disk-drivers-when-nati.patch +Patch0390: 0390-Add-few-new-tests.patch +Patch0391: 0391-Unify-more-code-in-grub-install_header.patch +Patch0392: 0392-grub-core-gfxmenu-gui_list.c-Refresh-first_shown_ent.patch +Patch0393: 0393-Make-PCI-init-in-i386-qemu-port-more-robust.patch +Patch0394: 0394-grub-core-gfxmenu-circular_progress.c-Set-start_angl.patch +Patch0395: 0395-configure.ac-Use-mcmodel-large-on-x86_64-emu-as-well.patch +Patch0396: 0396-grub-core-partmap-amiga.c-Fix-size-of-checksummed-bl.patch +Patch0397: 0397-grub-core-kern-mips-loongson-init.c-Support-halt-for.patch +Patch0398: 0398-include-grub-arc-arc.h-Account-for-missing-other-per.patch +Patch0399: 0399-Add-few-more-tests.patch +Patch0400: 0400-grub-core-commands-videotest.c-Reduce-flickering-and.patch +Patch0401: 0401-First-automated-video-test-running-videotest-and-com.patch +Patch0402: 0402-grub-core-loader-i386-linux.c-grub_linux_setup_video.patch +Patch0403: 0403-grub-core-tests-videotest_checksum.c-videotest_check.patch +Patch0404: 0404-Add-missing-exports-on-mips.patch +Patch0405: 0405-Several-fixes-to-ieee1275-and-big-endian-video.patch +Patch0406: 0406-grub-core-normal-term.c-print_ucs4_real-Fix-startwid.patch +Patch0407: 0407-grub-core-gfxmenu-view.c-grub_gfxmenu_view_new-Clear.patch +Patch0408: 0408-include-grub-gui.h-grub_gfxmenu_timeout_unregister-F.patch +Patch0409: 0409-grub-core-video-fb-fbblit.c-grub_video_fbblit_blend_.patch +Patch0410: 0410-grub-core-gfxmenu-gfxmenu.c-grub_gfxmenu_try-Allow-s.patch +Patch0411: 0411-New-series-of-tests-for-gfxterm-and-gfxmenu.patch +Patch0412: 0412-grub-core-tests-video_checksum.c-Don-t-set-GENERATE_.patch +Patch0413: 0413-Rename-grub-core-tests-checksums.c-into-grub-core-te.patch +Patch0414: 0414-grub-core-font-font.c-grub_font_construct_glyph-Fix-.patch +Patch0415: 0415-Fix-test-a-and-o-precedence.patch +Patch0416: 0416-grub-core-gettext-gettext.c-Try-lang.gmo-as-well.patch +Patch0417: 0417-grub-core-normal-menu.c-run_menu-Fix-timeout-referen.patch +Patch0418: 0418-Fix-several-memory-leaks.patch +Patch0419: 0419-grub-core-normal-main.c-Fix-freed-memory-dereference.patch +Patch0420: 0420-grub-core-normal-menu_text.c-menu_clear_timeout-Clea.patch +Patch0421: 0421-grub-core-tests-lib-functional_test.c-Don-t-stop-on-.patch +Patch0422: 0422-Speed-up-gfxterm-by-saving-intermediate-results-in-i.patch +Patch0423: 0423-More-video-checks.patch +Patch0424: 0424-Speed-up-gfxterm-by-slightly-agglomerating-mallocs.patch +Patch0425: 0425-Agglomerate-more-mallocs-to-speed-up-gfxterm.patch +Patch0426: 0426-Factor-out-human-size-printing.patch +Patch0427: 0427-grub-core-commands-testspeed.c-New-command-testspeed.patch +Patch0428: 0428-Reimplement-grub-reboot-to-not-depend-on-saved_entry.patch +Patch0429: 0429-grub-core-font-font.c-Use-grub_dprintf-for-debug-sta.patch +Patch0430: 0430-tests-priority_queue_unit_test.cc-New-test.patch +Patch0431: 0431-grub-core-video-readers-jpeg.c-Use-grub_dprintf-for-.patch +Patch0432: 0432-grub-core-loader-linux.c-Use-grub_dprintf-for-debug-.patch +Patch0433: 0433-Mark-few-forgotten-strings-for-translation.patch +Patch0434: 0434-Simplify-few-strings.patch +Patch0435: 0435-autogen.sh-Exclude-unused-libgcrypt-files-from-trans.patch +Patch0436: 0436-tests-gettext_strings_test.in-A-test-to-check-for-st.patch +Patch0437: 0437-New-variables-net_default_-to-determine-MAC-IP-of-de.patch +Patch0438: 0438-grub-core-tests-setjmp_test.c-New-test.patch +Patch0439: 0439-Menu-color-test.patch +Patch0440: 0440-grub-core-commands-videoinfo.c-Use-paletted-rather-t.patch +Patch0441: 0441-Compressed-HFS-support.patch +Patch0442: 0442-Don-t-say-GNU-Linux-in-generated-menus.patch +Patch0443: 0443-Migrate-PPC-from-Yaboot-to-Grub2.patch +Patch0444: 0444-Add-fw_path-variable-revised.patch +Patch0445: 0445-Don-t-set-boot-device-on-ppc-ieee1275.patch +Patch0446: 0446-Add-support-for-linuxefi.patch +Patch0447: 0447-Add-support-for-crappy-cd-craparino.patch +Patch0448: 0448-Use-linuxefi-and-initrdefi-where-appropriate.patch +Patch0449: 0449-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +Patch0450: 0450-Pass-x-hex-hex-straight-through-unmolested.patch +Patch0451: 0451-Fix-crash-on-http.patch +Patch0452: 0452-Issue-separate-DNS-queries-for-ipv4-and-ipv6.patch +Patch0453: 0453-IBM-client-architecture-CAS-reboot-support.patch +Patch0454: 0454-Add-vlan-tag-support.patch +Patch0455: 0455-Add-X-option-to-printf-functions.patch +Patch0456: 0456-DHCP-client-ID-and-UUID-options-added.patch +Patch0457: 0457-Search-for-specific-config-file-for-netboot.patch +Patch0458: 0458-Add-bootpath-device-to-the-list.patch +Patch0459: 0459-add-GRUB_DISABLE_SUBMENU-option.patch +Patch0460: 0460-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +Patch0461: 0461-Move-bash-completion-script-922997.patch +Patch0462: 0462-for-ppc-reset-console-display-attr-when-clear-screen.patch +Patch0463: 0463-grub-core-term-efi-console.c-Fix-compile-error.patch +Patch0464: 0464-configure.ac-Don-t-use-extended-registers-on-x86_64.patch +Patch0465: 0465-configure.ac-Don-t-disable-extended-registers-on-emu.patch +Patch0466: 0466-conf-Makefile.common-Poison-float-and-double-on-non-.patch +Patch0467: 0467-Progressively-skip-menu-elements-on-small-terminals-.patch +Patch0468: 0468-Don-t-write-messages-to-the-screen.patch +Patch0469: 0469-Don-t-print-GNU-GRUB-header.patch +Patch0470: 0470-Don-t-draw-a-border-around-the-menu.patch +Patch0471: 0471-Don-t-add-to-highlighted-row.patch BuildRequires: flex bison binutils python BuildRequires: ncurses-devel xz-devel @@ -437,7 +540,6 @@ BuildRequires: autoconf automake autogen device-mapper-devel BuildRequires: freetype-devel gettext-devel git BuildRequires: texinfo BuildRequires: dejavu-sans-fonts -BuildRequires: fuse-devel BuildRequires: help2man %ifarch %{efiarchs} BuildRequires: pesign >= 0.99-8 @@ -536,6 +638,7 @@ cd grub-efi-%{tarversion} --with-platform=efi \ --with-grubdir=%{name} \ --program-transform-name=s,grub,%{name}, \ + --disable-grub-mount \ --disable-werror make %{?_smp_mflags} GRUB_MODULES=" all_video boot btrfs cat chain configfile echo efifwsetup \ @@ -546,12 +649,10 @@ GRUB_MODULES=" all_video boot btrfs cat chain configfile echo efifwsetup \ mdraid09 mdraid1x blscfg multiboot2 multiboot" ./grub-mkimage -O %{grubefiarch} -o %{grubeficdname}.orig -p /EFI/BOOT \ -d grub-core ${GRUB_MODULES} -#%%pesign -s -i %{grubeficdname}.orig -o %{grubeficdname} -/home/pjones/devel/github.com/pesign/src/client -s -i %{grubeficdname}.orig -o %{grubeficdname} -t "OpenSC Card (Test Signing CA)" -c "/CN=Test CA" +%pesign -s -i %{grubeficdname}.orig -o %{grubeficdname} ./grub-mkimage -O %{grubefiarch} -o %{grubefiname}.orig -p /EFI/%{efidir} \ -d grub-core ${GRUB_MODULES} -#%%pesign -s -i %{grubefiname}.orig -o %{grubefiname} -/home/pjones/devel/github.com/pesign/src/client -s -i %{grubefiname}.orig -o %{grubefiname} -t "OpenSC Card (Test Signing CA)" -c "/CN=Test CA" +%pesign -s -i %{grubefiname}.orig -o %{grubefiname} cd .. %endif @@ -577,6 +678,7 @@ cd grub-%{tarversion} --with-platform=%{platform} \ --with-grubdir=%{name} \ --program-transform-name=s,grub,%{name}, \ + --disable-grub-mount \ --disable-werror make %{?_smp_mflags} @@ -795,6 +897,9 @@ fi %{_datarootdir}/grub/themes/starfield %changelog +* Fri Jun 07 2013 Peter Jones - 2.00-18 +- Rebase to upstream snapshot. + * Fri May 10 2013 Matthias Clasen - 2.00-18 - Move the starfield theme to a subpackage (#962004) - Don't allow SSE or MMX on UEFI builds (#949761)