Merge mainline into arm
This commit is contained in:
commit
ae27e4d323
111 changed files with 5378 additions and 3001 deletions
37
.bzrignore
37
.bzrignore
|
@ -7,11 +7,14 @@
|
|||
*.1
|
||||
*.8
|
||||
aclocal.m4
|
||||
ahci_test
|
||||
ascii.bitmaps
|
||||
ascii.h
|
||||
autom4te.cache
|
||||
build_env.mk
|
||||
.bzrignore
|
||||
cdboot_test
|
||||
cmp_test
|
||||
config.cache
|
||||
config.guess
|
||||
config.h
|
||||
|
@ -21,22 +24,29 @@ config.log
|
|||
config.status
|
||||
config.sub
|
||||
configure
|
||||
core_compress_test
|
||||
DISTLIST
|
||||
docs/*.info
|
||||
docs/stamp-vti
|
||||
docs/version.texi
|
||||
ehci_test
|
||||
*.elf
|
||||
example_grub_script_test
|
||||
example_scripted_test
|
||||
example_unit_test
|
||||
*.exec
|
||||
fddboot_test
|
||||
genkernsyms.sh
|
||||
gensymlist.sh
|
||||
gentrigtables
|
||||
gettext_strings_test
|
||||
grub-bin2h
|
||||
grub-bios-setup
|
||||
grub_cmd_date
|
||||
grub_cmd_echo
|
||||
grub_cmd_regexp
|
||||
grub_cmd_set_date
|
||||
grub_cmd_sleep
|
||||
grub-editenv
|
||||
grub-emu
|
||||
grub_emu_init.c
|
||||
|
@ -44,6 +54,7 @@ grub_emu_init.h
|
|||
grub-fstest
|
||||
grub_fstest_init.c
|
||||
grub_fstest_init.h
|
||||
grub_func_test
|
||||
grub-install
|
||||
grub-kbdcomp
|
||||
grub-macho2img
|
||||
|
@ -67,15 +78,22 @@ grub_script_continue
|
|||
grub_script_dollar
|
||||
grub_script_echo1
|
||||
grub_script_echo_keywords
|
||||
grub_script_escape_comma
|
||||
grub_script_eval
|
||||
grub_script_expansion
|
||||
grub_script_final_semicolon
|
||||
grub_script_for1
|
||||
grub_script_functions
|
||||
grub_script_gettext
|
||||
grub_script_if
|
||||
grub_script_leading_whitespace
|
||||
grub_script_no_commands
|
||||
grub_script_not
|
||||
grub_script_return
|
||||
grub_script_setparams
|
||||
grub_script_shift
|
||||
grub_script_strcmp
|
||||
grub_script_test
|
||||
grub_script_vars1
|
||||
grub_script_while1
|
||||
grub_script.tab.c
|
||||
|
@ -89,6 +107,9 @@ grub_setup_init.h
|
|||
grub-shell
|
||||
grub-shell-tester
|
||||
grub-sparc64-setup
|
||||
gzcompress_test
|
||||
hddboot_test
|
||||
help_test
|
||||
*.img
|
||||
*.image
|
||||
include/grub/cpu
|
||||
|
@ -96,27 +117,38 @@ include/grub/machine
|
|||
install-sh
|
||||
lib/libgcrypt-grub
|
||||
libgrub_a_init.c
|
||||
*.log
|
||||
*.lst
|
||||
lzocompress_test
|
||||
*.marker
|
||||
Makefile
|
||||
*.mod
|
||||
mod-*.c
|
||||
missing
|
||||
netboot_test
|
||||
ohci_test
|
||||
partmap_test
|
||||
pata_test
|
||||
*.pf2
|
||||
*.pp
|
||||
po/*.mo
|
||||
po/grub.pot
|
||||
po/POTFILES
|
||||
po/stamp-po
|
||||
printf_test
|
||||
priority_queue_unit_test
|
||||
pseries_test
|
||||
stamp-h
|
||||
stamp-h1
|
||||
stamp-h.in
|
||||
symlist.c
|
||||
symlist.h
|
||||
trigtables.c
|
||||
*.trs
|
||||
uhci_test
|
||||
update-grub_lib
|
||||
unidata.c
|
||||
xzcompress_test
|
||||
Makefile.in
|
||||
GPATH
|
||||
GRTAGS
|
||||
|
@ -178,3 +210,8 @@ grub-core/lib/dtc-grub
|
|||
grub-core/Makefile.libfdt.def
|
||||
po/POTFILES.in
|
||||
po/POTFILES-shell.in
|
||||
grub-glue-efi
|
||||
grub-render-label
|
||||
grub-core/gnulib/locale.h
|
||||
grub-core/gnulib/unitypes.h
|
||||
grub-core/gnulib/uniwidth.h
|
||||
|
|
338
ChangeLog
338
ChangeLog
|
@ -7,6 +7,344 @@
|
|||
* grub-core/lib/dtc/libfdt-grub.diff: Remove extraneous uintptr_t
|
||||
declaration.
|
||||
|
||||
2013-07-16 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/loader/multiboot_elfxx.c: Check eip after v2p translation
|
||||
and not before.
|
||||
Reported by: Leon Drugi.
|
||||
|
||||
2013-07-16 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/kern/powerpc/ieee1275/startup.S: Handle unaligned bss.
|
||||
Reported by: Paulo Flabiano Smorigo.
|
||||
|
||||
2013-07-14 Vladimir Testov <vladimir.testov@rosalab.ru>
|
||||
|
||||
* grub-core/gfxmenu/gui_list.c: USe viewport when drawing strings.
|
||||
|
||||
2013-07-14 Vladimir Testov <vladimir.testov@rosalab.ru>
|
||||
|
||||
* grub-core/gfxmenu/gui_list.c: Fix height calculation.
|
||||
|
||||
2013-07-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/fs/zfs/zfs.c: Stylistic fixes.
|
||||
|
||||
2013-07-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/fs/zfs/zfs.c: Run emacs indent on file.
|
||||
|
||||
2013-07-14 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* grub-core/net/bootp.c: Export net_* variables.
|
||||
* grub-core/net/net.c: Likewise.
|
||||
|
||||
2013-07-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/fs/zfs/zfs.c: Remove brackets around return value.
|
||||
|
||||
2013-07-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/fs/zfs/zfs_lz4.c: Add missing packed attribute.
|
||||
|
||||
2013-07-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/fs/zfs/zfs.c (nvlist_next_nvpair): Fix improper cast.
|
||||
|
||||
2013-07-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/fs/zfs/zfs_lz4.c: Remove restrict keyword.
|
||||
|
||||
2013-07-14 Massimo Maggi <me@massimo-maggi.eu>
|
||||
|
||||
* grub-core/fs/zfs/zfs.c (nvlist_next_nvpair): Error is encode_size
|
||||
<= 0.
|
||||
|
||||
2013-07-14 Massimo Maggi <me@massimo-maggi.eu>
|
||||
|
||||
* grub-core/fs/zfs/zfs.c: Split nvpair iterators into separate
|
||||
functions.
|
||||
|
||||
2013-07-14 Massimo Maggi <me@massimo-maggi.eu>
|
||||
|
||||
* grub-core/fs/zfs/zfs_lz4.c: New file.
|
||||
* grub-core/fs/zfs/zfs.c: Tie up lz4 decompression.
|
||||
|
||||
2013-07-14 Massimo Maggi <me@massimo-maggi.eu>
|
||||
|
||||
* grub-core/fs/zfs/zfs.c: Check for feature compatibility.
|
||||
|
||||
2013-07-14 Massimo Maggi <me@massimo-maggi.eu>
|
||||
|
||||
* grub-core/fs/zfs/zfs.c (uberblock_verify): Accept version 5000.
|
||||
(check_pool_label): Likewise.
|
||||
* include/grub/zfs/zfs.h: Rewrite SPA_VERSION_* macros.
|
||||
|
||||
2013-07-14 Massimo Maggi <me@massimo-maggi.eu>
|
||||
|
||||
* grub-core/fs/zfs/zfsinfo.c (print_vdev_info): Fix RAIDZ reporting.
|
||||
|
||||
2013-07-13 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* docs/grub.texi (Commands): Document postition parameters
|
||||
for menuentry command.
|
||||
|
||||
2013-07-13 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* util/grub-mknetdir.in: Remove stray line from help output.
|
||||
|
||||
2013-07-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Remove early sm712 init as there is no reason for it (the "watchdog"
|
||||
effect was due to wrong GPIO map).
|
||||
|
||||
2013-07-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/commands/pcidump.c: Remove static variables.
|
||||
|
||||
2013-07-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/commands/sleep.c: Refresh screen before sleeping.
|
||||
|
||||
2013-07-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* configure.ac: Move delimiter after the infos.
|
||||
|
||||
2013-07-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/bus/usb/usbhub.c: Fix recheck logic.
|
||||
|
||||
2013-07-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* util/grub-mkfont.c (write_font_ascii_bitmap): Fix handling of glyphs
|
||||
not filling whole 8x16 space.
|
||||
|
||||
2013-07-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/normal/charset.c (bidi_line_wrap): Fix spurios warning.
|
||||
|
||||
2013-07-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* configure.ac: Indicate which liblzma is used if any.
|
||||
|
||||
2013-06-21 Paul Wise <pabs3@bonedaddy.net>
|
||||
2013-06-21 Craig Sanders <savannah@taz.net.au>
|
||||
|
||||
* util/grub-reboot.in: Document submenu usage.
|
||||
|
||||
2013-06-25 Colin Watson <cjwatson@ubuntu.com>
|
||||
|
||||
* .bzrignore: Update with a number of new test-related files.
|
||||
|
||||
2013-06-25 Colin Watson <cjwatson@ubuntu.com>
|
||||
|
||||
* util/grub-script-check.c: Fail on scripts containing no
|
||||
commands, to guard against corrupted grub-mkconfig setups that
|
||||
produce no useful output.
|
||||
* tests/grub_script_no_commands.in: New test.
|
||||
* Makefile.util.def (grub_script_no_commands): Add.
|
||||
Reported by Hans Putter. Fixes Debian bug #713886.
|
||||
|
||||
2013-06-16 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* grub-core/disk/diskfilter.c: Forgot to remove comment
|
||||
from previous commit.
|
||||
|
||||
2013-06-16 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* grub-core/term/gfxterm.c (grub_virtual_screen_setup): Use
|
||||
grub_term_normal_color, do not hardcode GRUB_TERM_DEFAULT_NORMAL_COLOR.
|
||||
|
||||
2013-06-16 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* conf/Makefile.extra-dist: Add grub-core/fs/cpio_common.c.
|
||||
|
||||
2013-06-16 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* grub-core/disk/diskfilter.c (scan_devices): Iteratively
|
||||
rescan diskfilter devices until nothing new is found.
|
||||
|
||||
2013-06-16 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Fix casts when compiling coreboot-specific code for 64-bit EFI.
|
||||
|
||||
2013-06-16 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Don't try to detect cbfs on *-emu.
|
||||
|
||||
2013-06-16 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/term/gfxterm.c: USe right background color when scrolling.
|
||||
|
||||
2013-06-16 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Add support for processed coreboot payload chainloading.
|
||||
|
||||
2013-06-16 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Enable coreboot information commands even when not loaded as
|
||||
coreboot payload (e.g. when loaded from SeaBIOS-as-payload).
|
||||
|
||||
2013-06-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Support for cbfs. Also factor out the part which is common
|
||||
for all archives to a separate module. This splits tar from cpio
|
||||
as they are very different but keeps cpio, cpio_be, odc and newc
|
||||
together since they're very similar.
|
||||
|
||||
2013-06-15 David Michael <fedora.dm0@gmail.com>
|
||||
|
||||
* configure.ac (FREETYPE): Change AC_CHECK_PROGS to AC_CHECK_TOOLS.
|
||||
(freetype_cflags,freetype_libs): Change freetype-config to $FREETYPE.
|
||||
|
||||
2013-06-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* tests/grub_script_eval.in: Really add the eval test.
|
||||
|
||||
2013-06-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Move flavour-specific parts out of common cpio.c file and
|
||||
rename remaining to cpio_common.c
|
||||
|
||||
2013-06-07 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* grub-core/script/execute.c (grub_script_execute_sourcecode): Split
|
||||
off new function grub_script_execute_new_scope. Change callers to use
|
||||
either of them as appropriate.
|
||||
* grub-core/commands/eval.c: New command eval.
|
||||
* docs/grub.texi (Commands): Document it.
|
||||
|
||||
2013-06-07 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* grub-core/kern/corecmd.c (grub_core_cmd_set): Use grub_env_get
|
||||
to fetch values when listing.
|
||||
|
||||
2013-06-07 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
Fix make dist on non-pc.
|
||||
|
||||
2013-06-07 Francesco Lavra <francescolavra.fl@gmail.com>
|
||||
|
||||
* grub-core/kern/corecmd.c (grub_core_cmd_ls): Fix handling of paths
|
||||
without a device name.
|
||||
|
||||
2013-06-07 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Remove enable_executable_check as it's not needed anymore.
|
||||
Reported by: dougray.
|
||||
|
||||
2013-06-07 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/disk/diskfilter.c (insert_array): Fix order to discover
|
||||
ambigouos RAID before discovering RAIDs on top of it.
|
||||
Reported by: bodom.
|
||||
|
||||
2013-06-07 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Fix typo (failback vs fallback).
|
||||
|
||||
2013-05-31 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* util/grub.d/30_os-prober.in: Add support for probing EFI
|
||||
System Partition (as of os-prober 1.58).
|
||||
|
||||
2013-05-31 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* configure.ac: Add yet another path to unifont. For parabola.
|
||||
|
||||
2013-05-30 Josh Triplett <josh@joshtriplett.org>
|
||||
|
||||
* grub-core/normal/cmdline.c (grub_cmdline_get): Fix Ctrl-u
|
||||
handling to copy the killed characters to the kill buffer as
|
||||
UCS4 stored as grub_uint32_t rather than as 8-bit characters
|
||||
stored as char. Eliminates UCS4 truncation and corruption
|
||||
observed when killing characters with Ctrl-u and yanking them
|
||||
back with Ctrl-y.
|
||||
|
||||
2013-05-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Detach optional parts of gfxterm and integrate in with coreboot init.
|
||||
|
||||
2013-05-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Move blit and fill dispatcher to appropriate files to decrease export
|
||||
and relocation overhead.
|
||||
|
||||
2013-05-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/font/font.c, include/grub/font.h: Inline simple font
|
||||
functions.
|
||||
|
||||
2013-05-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/Makefile.am: Fix compilation problem with some
|
||||
automake versions.
|
||||
|
||||
2013-05-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* configure.ac: Add Ubuntu path to unifont and report unifont path used.
|
||||
|
||||
2013-05-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* Makefile.am, conf/Makefile.common: Fix compilation problem with some
|
||||
automake versions.
|
||||
|
||||
2013-05-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/commands/acpihalt.c: Fix handling of DSDT in presence of
|
||||
SSDT.
|
||||
|
||||
2013-05-15 Radosław Szymczyszyn <lavrin@gmail.com>
|
||||
|
||||
* grub-core/partmap/dfly.c: New partition map.
|
||||
|
||||
2013-05-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/kern/corecmd.c (grub_core_cmd_ls): Fix empty path
|
||||
checking.
|
||||
Reported by: Francesco Lavra.
|
||||
|
||||
2013-05-14 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* gentpl.py: Replace EXTRA_DIST with dist_noinst_DATA or
|
||||
dist_<directory>_DATA. EXTRA_DIST is ignored by automake inside
|
||||
false conditions.
|
||||
* conf/Makefile.common: define dist_grubconf_DATA
|
||||
|
||||
2013-05-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Progressively skip menu elements on small terminals rather
|
||||
than crashing.
|
||||
|
||||
2013-05-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/normal/cmdline.c (grub_cmdline_get): Fix off-by-one error
|
||||
to avoid losing last column.
|
||||
|
||||
2013-05-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* po/exclude.pot: Add missing string "%C".
|
||||
|
||||
2013-05-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* tests/util/grub-shell.in: Remove the temporary directory on grub-emu
|
||||
after the test.
|
||||
|
||||
2013-05-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* util/grub-install.in: Gettextize "Not found" message.
|
||||
|
||||
2013-05-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Fix distfiles list.
|
||||
Reported by: Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
2013-05-11 Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
|
||||
|
||||
* grub-core/net/bootp.c (grub_cmd_bootp): Check if there is any card
|
||||
present.
|
||||
* include/grub/err.h (grub_err_t): New enum value GRUB_ERR_NET_NO_CARD.
|
||||
|
||||
2013-05-11 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/tests/setjmp_test.c: Ignore missing noreturn.
|
||||
|
|
26
Makefile.am
26
Makefile.am
|
@ -71,15 +71,15 @@ starfield_theme_files = $(srcdir)/themes/starfield/blob_w.png $(srcdir)/themes/s
|
|||
if COND_STARFIELD
|
||||
starfield_DATA = dejavu_10.pf2 dejavu_12.pf2 dejavu_bold_14.pf2 dejavu_14.pf2 dejavu_16.pf2 $(starfield_theme_files)
|
||||
dejavu_10.pf2: $(DJVU_FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont -s 10 -o $@ $(DJVU_FONT_SOURCE)
|
||||
./grub-mkfont -s 10 -o $@ $(DJVU_FONT_SOURCE)
|
||||
dejavu_12.pf2: $(DJVU_FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont -s 12 -o $@ $(DJVU_FONT_SOURCE)
|
||||
./grub-mkfont -s 12 -o $@ $(DJVU_FONT_SOURCE)
|
||||
dejavu_14.pf2: $(DJVU_FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont -s 14 -o $@ $(DJVU_FONT_SOURCE)
|
||||
./grub-mkfont -s 14 -o $@ $(DJVU_FONT_SOURCE)
|
||||
dejavu_bold_14.pf2: $(DJVU_FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont -b -s 14 -o $@ $(DJVU_FONT_SOURCE)
|
||||
./grub-mkfont -b -s 14 -o $@ $(DJVU_FONT_SOURCE)
|
||||
dejavu_16.pf2: $(DJVU_FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont -s 16 -o $@ $(DJVU_FONT_SOURCE)
|
||||
./grub-mkfont -s 16 -o $@ $(DJVU_FONT_SOURCE)
|
||||
else
|
||||
starfield_DATA =
|
||||
endif
|
||||
|
@ -88,7 +88,7 @@ EXTRA_DIST += $(starfield_theme_files)
|
|||
EXTRA_DIST += $(srcdir)/themes/starfield/src/slider_s.xcf $(srcdir)/themes/starfield/src/slider_n.xcf $(srcdir)/themes/starfield/src/slider_c.xcf $(srcdir)/themes/starfield/src/blob_nw.xcf $(srcdir)/themes/starfield/src/bootmenu/center.xcf $(srcdir)/themes/starfield/src/bootmenu/corner.xcf $(srcdir)/themes/starfield/src/bootmenu/side.xcf $(srcdir)/themes/starfield/src/terminalbox/side.xcf $(srcdir)/themes/starfield/src/terminalbox/corner.xcf $(srcdir)/themes/starfield/src/terminalbox/center.xcf
|
||||
|
||||
unicode.pf2: $(FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont -o $@ $(FONT_SOURCE)
|
||||
./grub-mkfont -o $@ $(FONT_SOURCE)
|
||||
CLEANFILES += unicode.pf2
|
||||
|
||||
# Arrows and lines are needed to draw the menu, so always include them
|
||||
|
@ -96,27 +96,27 @@ UNICODE_ARROWS=0x2190-0x2193
|
|||
UNICODE_LINES=0x2501-0x251B
|
||||
|
||||
ascii.pf2: $(FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont -o $@ $(FONT_SOURCE) -r 0x0-0x7f,$(UNICODE_ARROWS),$(UNICODE_LINES)
|
||||
./grub-mkfont -o $@ $(FONT_SOURCE) -r 0x0-0x7f,$(UNICODE_ARROWS),$(UNICODE_LINES)
|
||||
CLEANFILES += ascii.pf2
|
||||
|
||||
euro.pf2: $(FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont -o $@ $(FONT_SOURCE) -r 0x0-0x4ff,0x1e00-0x1fff,$(UNICODE_ARROWS),$(UNICODE_LINES)
|
||||
./grub-mkfont -o $@ $(FONT_SOURCE) -r 0x0-0x4ff,0x1e00-0x1fff,$(UNICODE_ARROWS),$(UNICODE_LINES)
|
||||
CLEANFILES += euro.pf2
|
||||
|
||||
ascii.bitmaps: $(FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont --ascii-bitmaps -o $@ $(FONT_SOURCE)
|
||||
./grub-mkfont --ascii-bitmaps -o $@ $(FONT_SOURCE)
|
||||
CLEANFILES += ascii.bitmaps
|
||||
|
||||
ascii.h: ascii.bitmaps grub-bin2h
|
||||
$(builddir)/grub-bin2h ascii_bitmaps < $< > $@
|
||||
./grub-bin2h ascii_bitmaps < $< > $@
|
||||
CLEANFILES += ascii.h $(top_builddir)/grub-core/include/ascii.h
|
||||
|
||||
widthspec.bin: $(FONT_SOURCE) grub-mkfont
|
||||
$(builddir)/grub-mkfont --width-spec -o $@ $(FONT_SOURCE)
|
||||
./grub-mkfont --width-spec -o $@ $(FONT_SOURCE)
|
||||
CLEANFILES += widthspec.bin
|
||||
|
||||
widthspec.h: widthspec.bin grub-bin2h
|
||||
$(builddir)/grub-bin2h widthspec < $< > $@
|
||||
./grub-bin2h widthspec < $< > $@
|
||||
CLEANFILES += widthspec.h
|
||||
|
||||
# Install config.h into platformdir
|
||||
|
@ -376,7 +376,7 @@ if COND_powerpc_ieee1275
|
|||
BOOTCHECKS = bootcheck-linux-ppc
|
||||
endif
|
||||
|
||||
EXTRA_DIST += grub-core/tests/boot/kbsd.init-i386.S grub-core/tests/boot/kbsd.init-x86_64.S grub-core/tests/boot/kbsd.spec.txt grub-core/tests/boot/kernel-8086.S grub-core/tests/boot/kernel-i386.S grub-core/tests/boot/kfreebsd-aout.cfg grub-core/tests/boot/kfreebsd.cfg grub-core/tests/boot/kfreebsd.init-i386.S grub-core/tests/boot/kfreebsd.init-x86_64.S grub-core/tests/boot/knetbsd.cfg grub-core/tests/boot/kopenbsd.cfg grub-core/tests/boot/kopenbsdlabel.txt grub-core/tests/boot/linux16.cfg grub-core/tests/boot/linux.cfg grub-core/tests/boot/linux.init-i386.S grub-core/tests/boot/linux.init-mips.S grub-core/tests/boot/linux.init-ppc.S grub-core/tests/boot/linux.init-x86_64.S grub-core/tests/boot/linux-ppc.cfg grub-core/tests/boot/multiboot2.cfg grub-core/tests/boot/multiboot.cfg grub-core/tests/boot/ntldr.cfg grub-core/tests/boot/pc-chainloader.cfg
|
||||
EXTRA_DIST += grub-core/tests/boot/kbsd.init-i386.S grub-core/tests/boot/kbsd.init-x86_64.S grub-core/tests/boot/kbsd.spec.txt grub-core/tests/boot/kernel-8086.S grub-core/tests/boot/kernel-i386.S grub-core/tests/boot/kfreebsd-aout.cfg grub-core/tests/boot/kfreebsd.cfg grub-core/tests/boot/kfreebsd.init-i386.S grub-core/tests/boot/kfreebsd.init-x86_64.S grub-core/tests/boot/knetbsd.cfg grub-core/tests/boot/kopenbsd.cfg grub-core/tests/boot/kopenbsdlabel.txt grub-core/tests/boot/linux16.cfg grub-core/tests/boot/linux.cfg grub-core/tests/boot/linux.init-i386.S grub-core/tests/boot/linux.init-mips.S grub-core/tests/boot/linux.init-ppc.S grub-core/tests/boot/linux.init-x86_64.S grub-core/tests/boot/linux-ppc.cfg grub-core/tests/boot/multiboot2.cfg grub-core/tests/boot/multiboot.cfg grub-core/tests/boot/ntldr.cfg grub-core/tests/boot/pc-chainloader.cfg grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
|
||||
.PHONY: bootcheck-linux-i386 bootcheck-linux-x86_64 \
|
||||
bootcheck-kfreebsd-i386 bootcheck-kfreebsd-x86_64 \
|
||||
|
|
|
@ -75,6 +75,8 @@ library = {
|
|||
common = grub-core/fs/afs.c;
|
||||
common = grub-core/fs/bfs.c;
|
||||
common = grub-core/fs/btrfs.c;
|
||||
common = grub-core/fs/cbfs.c;
|
||||
common = grub-core/fs/archelp.c;
|
||||
common = grub-core/fs/cpio.c;
|
||||
common = grub-core/fs/cpio_be.c;
|
||||
common = grub-core/fs/odc.c;
|
||||
|
@ -111,6 +113,7 @@ library = {
|
|||
common = grub-core/fs/zfs/zfs.c;
|
||||
common = grub-core/fs/zfs/zfsinfo.c;
|
||||
common = grub-core/fs/zfs/zfs_lzjb.c;
|
||||
common = grub-core/fs/zfs/zfs_lz4.c;
|
||||
common = grub-core/fs/zfs/zfs_sha256.c;
|
||||
common = grub-core/fs/zfs/zfs_fletcher.c;
|
||||
common = grub-core/lib/envblk.c;
|
||||
|
@ -130,6 +133,7 @@ library = {
|
|||
common = grub-core/partmap/dvh.c;
|
||||
common = grub-core/partmap/sunpc.c;
|
||||
common = grub-core/partmap/bsdlabel.c;
|
||||
common = grub-core/partmap/dfly.c;
|
||||
common = grub-core/script/function.c;
|
||||
common = grub-core/script/lexer.c;
|
||||
common = grub-core/script/main.c;
|
||||
|
@ -552,6 +556,7 @@ script = {
|
|||
testcase;
|
||||
name = gettext_strings_test;
|
||||
common = tests/gettext_strings_test.in;
|
||||
extra_dist = po/exclude.pot;
|
||||
};
|
||||
|
||||
script = {
|
||||
|
@ -590,6 +595,12 @@ script = {
|
|||
common = tests/example_grub_script_test.in;
|
||||
};
|
||||
|
||||
script = {
|
||||
testcase;
|
||||
name = grub_script_eval;
|
||||
common = tests/grub_script_eval.in;
|
||||
};
|
||||
|
||||
script = {
|
||||
testcase;
|
||||
name = grub_script_test;
|
||||
|
@ -740,6 +751,12 @@ script = {
|
|||
common = tests/grub_script_not.in;
|
||||
};
|
||||
|
||||
script = {
|
||||
testcase;
|
||||
name = grub_script_no_commands;
|
||||
common = tests/grub_script_no_commands.in;
|
||||
};
|
||||
|
||||
script = {
|
||||
testcase;
|
||||
name = partmap_test;
|
||||
|
|
26
acinclude.m4
26
acinclude.m4
|
@ -313,32 +313,6 @@ else
|
|||
fi
|
||||
])
|
||||
|
||||
dnl Check if the C compiler generates calls to `__enable_execute_stack()'.
|
||||
AC_DEFUN([grub_CHECK_ENABLE_EXECUTE_STACK],[
|
||||
AC_MSG_CHECKING([whether `$CC' generates calls to `__enable_execute_stack()'])
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([[
|
||||
void f (int (*p) (void));
|
||||
void g (int i)
|
||||
{
|
||||
int nestedfunc (void) { return i; }
|
||||
f (nestedfunc);
|
||||
}
|
||||
]])])
|
||||
if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -S conftest.c]) && test -s conftest.s; then
|
||||
true
|
||||
else
|
||||
AC_MSG_ERROR([${CC-cc} failed to produce assembly code])
|
||||
fi
|
||||
if grep __enable_execute_stack conftest.s >/dev/null 2>&1; then
|
||||
NEED_ENABLE_EXECUTE_STACK=1
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
NEED_ENABLE_EXECUTE_STACK=0
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
rm -f conftest*
|
||||
])
|
||||
|
||||
|
||||
dnl Check if the C compiler supports `-fstack-protector'.
|
||||
AC_DEFUN([grub_CHECK_STACK_PROTECTOR],[
|
||||
|
|
|
@ -27,7 +27,7 @@ if COND_i386_ieee1275
|
|||
endif
|
||||
if COND_mips_loongson
|
||||
CFLAGS_PLATFORM += -mexplicit-relocs
|
||||
CPPFLAGS_PLATFORM = -DUSE_ASCII_FAILBACK
|
||||
CPPFLAGS_PLATFORM = -DUSE_ASCII_FALLBACK
|
||||
endif
|
||||
if COND_mips
|
||||
CFLAGS_PLATFORM += -mflush-func=grub_red_herring
|
||||
|
@ -58,7 +58,7 @@ CPPFLAGS_DEFAULT += -I$(top_srcdir)/include
|
|||
CPPFLAGS_DEFAULT += -I$(top_builddir)/include
|
||||
CPPFLAGS_DEFAULT += -I$(top_srcdir)/grub-core/lib/libgcrypt-grub/include
|
||||
CPPFLAGS_DEFAULT += -I$(top_srcdir)/grub-core/lib/libgcrypt-grub/src/
|
||||
CCASFLAGS_DEFAULT = -DASM_FILE=1
|
||||
CCASFLAGS_DEFAULT = $(CPPFLAGS_DEFAULT) -DASM_FILE=1
|
||||
|
||||
LDADD_KERNEL =
|
||||
|
||||
|
@ -157,7 +157,7 @@ bin_PROGRAMS =
|
|||
platform_DATA =
|
||||
sbin_PROGRAMS =
|
||||
check_SCRIPTS =
|
||||
grubconf_DATA =
|
||||
dist_grubconf_DATA =
|
||||
check_PROGRAMS =
|
||||
noinst_SCRIPTS =
|
||||
noinst_PROGRAMS =
|
||||
|
|
|
@ -27,18 +27,20 @@ EXTRA_DIST += grub-core/gensymlist.sh
|
|||
EXTRA_DIST += grub-core/genemuinit.sh
|
||||
EXTRA_DIST += grub-core/genemuinitheader.sh
|
||||
|
||||
EXTRA_DIST += grub-core/lib/libgcrypt/cipher
|
||||
EXTRA_DIST += grub-core/lib/dtc
|
||||
EXTRA_DIST += grub-core/lib/libgcrypt
|
||||
EXTRA_DIST += grub-core/lib/libgcrypt-grub/mpi/generic
|
||||
EXTRA_DIST += $(shell find $(top_srcdir)/include -name '*.h')
|
||||
EXTRA_DIST += $(shell find $(top_srcdir)/grub-core/lib -name '*.h')
|
||||
EXTRA_DIST += $(shell find $(top_srcdir)/grub-core/gnulib -name '*.h')
|
||||
EXTRA_DIST += grub-core/efiemu/runtime/config.h
|
||||
EXTRA_DIST += grub-core/lib/libgcrypt/src/gcrypt.h.in
|
||||
|
||||
EXTRA_DIST += grub-core/lib/LzmaDec.c
|
||||
|
||||
EXTRA_DIST += grub-core/fs/cpio_common.c
|
||||
|
||||
EXTRA_DIST += BUGS
|
||||
EXTRA_DIST += util/i386/efi/grub-dumpdevtree
|
||||
EXTRA_DIST += util/spkmodem-recv.c
|
||||
EXTRA_DIST += util/import_gcrypth.sed
|
||||
|
||||
EXTRA_DIST += m4/gnulib-cache.m4
|
||||
|
@ -55,3 +57,4 @@ EXTRA_DIST += m4/printf-posix.m4
|
|||
EXTRA_DIST += m4/threadlib.m4
|
||||
EXTRA_DIST += m4/uintmax_t.m4
|
||||
EXTRA_DIST += m4/visibility.m4
|
||||
EXTRA_DIST += m4/math_h.m4
|
||||
|
|
|
@ -39,8 +39,6 @@
|
|||
#define GRUB_BOOT_DIR_NAME "@bootdirname@"
|
||||
/* Default grub directory name */
|
||||
#define GRUB_DIR_NAME "@grubdirname@"
|
||||
/* Define to 1 if GCC generates calls to __enable_execute_stack(). */
|
||||
#define NEED_ENABLE_EXECUTE_STACK @NEED_ENABLE_EXECUTE_STACK@
|
||||
/* Define to 1 if GCC generates calls to __register_frame_info(). */
|
||||
#define NEED_REGISTER_FRAME_INFO @NEED_REGISTER_FRAME_INFO@
|
||||
|
||||
|
|
19
configure.ac
19
configure.ac
|
@ -285,7 +285,7 @@ fi
|
|||
FONT_SOURCE=
|
||||
|
||||
for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
|
||||
for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont /usr/share/fonts/uni; do
|
||||
for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont /usr/share/fonts/uni /usr/share/fonts/truetype/unifont /usr/share/fonts/misc; do
|
||||
if test -f "$dir/unifont.$ext"; then
|
||||
FONT_SOURCE="$dir/unifont.$ext"
|
||||
break 2
|
||||
|
@ -960,7 +960,7 @@ fi
|
|||
|
||||
if test x"$grub_mkfont_excuse" = x ; then
|
||||
# Check for freetype libraries.
|
||||
AC_CHECK_PROGS([FREETYPE], [freetype-config])
|
||||
AC_CHECK_TOOLS([FREETYPE], [freetype-config])
|
||||
if test "x$FREETYPE" = x ; then
|
||||
grub_mkfont_excuse=["need freetype2 library"]
|
||||
fi
|
||||
|
@ -968,8 +968,8 @@ fi
|
|||
|
||||
if test x"$grub_mkfont_excuse" = x ; then
|
||||
# Check for freetype libraries.
|
||||
freetype_cflags=`freetype-config --cflags`
|
||||
freetype_libs=`freetype-config --libs`
|
||||
freetype_cflags=`$FREETYPE --cflags`
|
||||
freetype_libs=`$FREETYPE --libs`
|
||||
SAVED_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $freetype_cflags"
|
||||
AC_CHECK_HEADERS([ft2build.h], [],
|
||||
|
@ -1153,7 +1153,6 @@ AC_SUBST(BSS_START_SYMBOL)
|
|||
AC_SUBST(END_SYMBOL)
|
||||
AC_SUBST(PACKAGE)
|
||||
AC_SUBST(VERSION)
|
||||
AC_SUBST(NEED_ENABLE_EXECUTE_STACK)
|
||||
AC_SUBST(NEED_REGISTER_FRAME_INFO)
|
||||
|
||||
#
|
||||
|
@ -1307,5 +1306,15 @@ echo With libzfs support: Yes
|
|||
else
|
||||
echo With libzfs support: No "($libzfs_excuse)"
|
||||
fi
|
||||
if test "x$FONT_SOURCE" = x ; then
|
||||
echo "Without unifont"
|
||||
else
|
||||
echo "With unifont from $FONT_SOURCE"
|
||||
fi
|
||||
if test "x$LIBLZMA" = x ; then
|
||||
echo "Without liblzma (no support for XZ-compressed mips images)"
|
||||
else
|
||||
echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)"
|
||||
fi
|
||||
echo "*******************************************************"
|
||||
]
|
||||
|
|
|
@ -3264,7 +3264,7 @@ These commands can only be used in the menu:
|
|||
@deffn Command menuentry @var{title} @
|
||||
[@option{--class=class} @dots{}] [@option{--users=users}] @
|
||||
[@option{--unrestricted}] [@option{--hotkey=key}] [@option{--id=id}] @
|
||||
@{ @var{command}; @dots{} @}
|
||||
[@var{arg} @dots{}] @{ @var{command}; @dots{} @}
|
||||
This defines a GRUB menu entry named @var{title}. When this entry is
|
||||
selected from the menu, GRUB will set the @var{chosen} environment variable
|
||||
to value of @option{--id} if @option{--id} is given, execute the list of
|
||||
|
@ -3288,6 +3288,9 @@ The @option{--hotkey} option associates a hotkey with a menu entry.
|
|||
The @option{--id} may be used to associate unique identifier with a menu entry.
|
||||
@var{id} is string of ASCII aphanumeric characters, underscore and hyphen
|
||||
and should not start with a digit.
|
||||
|
||||
All other arguments including @var{title} are passed as positional parameters
|
||||
when list of commands is executed with @var{title} always assigned to @code{$1}.
|
||||
@end deffn
|
||||
|
||||
|
||||
|
@ -3436,6 +3439,7 @@ you forget a command, you can run the command @command{help}
|
|||
* devicetree:: Load a device tree blob
|
||||
* drivemap:: Map a drive to another
|
||||
* echo:: Display a line of text
|
||||
* eval:: Evaluate agruments as GRUB commands
|
||||
* export:: Export an environment variable
|
||||
* false:: Do nothing, unsuccessfully
|
||||
* gettext:: Translate a string
|
||||
|
@ -3824,6 +3828,15 @@ character will print that character.
|
|||
@end deffn
|
||||
|
||||
|
||||
@node eval
|
||||
@subsection eval
|
||||
|
||||
@deffn Command eval string ...
|
||||
Concatenate arguments together using single space as separator and evaluate
|
||||
result as sequence of GRUB commands.
|
||||
@end deffn
|
||||
|
||||
|
||||
@node export
|
||||
@subsection export
|
||||
|
||||
|
|
18
gentpl.py
18
gentpl.py
|
@ -54,7 +54,7 @@ GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"]
|
|||
GROUPS["usb"] = GROUPS["pci"]
|
||||
|
||||
# If gfxterm is main output console integrate it into kernel
|
||||
GROUPS["videoinkernel"] = ["mips_loongson", "mips_qemu_mips"]
|
||||
GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot" ]
|
||||
GROUPS["videomodules"] = GRUB_PLATFORMS[:];
|
||||
for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i)
|
||||
|
||||
|
@ -387,7 +387,7 @@ def module(platform):
|
|||
r += var_set(cname() + "_CCASFLAGS", "$(AM_CCASFLAGS) $(CCASFLAGS_MODULE) " + platform_ccasflags(platform))
|
||||
# r += var_set(cname() + "_DEPENDENCIES", platform_dependencies(platform) + " " + platform_ldadd(platform))
|
||||
|
||||
r += gvar_add("EXTRA_DIST", extra_dist())
|
||||
r += gvar_add("dist_noinst_DATA", extra_dist())
|
||||
r += gvar_add("BUILT_SOURCES", "$(nodist_" + cname() + "_SOURCES)")
|
||||
r += gvar_add("CLEANFILES", "$(nodist_" + cname() + "_SOURCES)")
|
||||
|
||||
|
@ -415,7 +415,7 @@ def kernel(platform):
|
|||
r += var_set(cname() + "_STRIPFLAGS", "$(AM_STRIPFLAGS) $(STRIPFLAGS_KERNEL) " + platform_stripflags(platform))
|
||||
# r += var_set(cname() + "_DEPENDENCIES", platform_dependencies(platform) + " " + platform_ldadd(platform))
|
||||
|
||||
r += gvar_add("EXTRA_DIST", extra_dist())
|
||||
r += gvar_add("dist_noinst_DATA", extra_dist())
|
||||
r += gvar_add("BUILT_SOURCES", "$(nodist_" + cname() + "_SOURCES)")
|
||||
r += gvar_add("CLEANFILES", "$(nodist_" + cname() + "_SOURCES)")
|
||||
|
||||
|
@ -448,7 +448,7 @@ def image(platform):
|
|||
r += var_set(cname() + "_OBJCOPYFLAGS", "$(OBJCOPYFLAGS_IMAGE) " + platform_objcopyflags(platform))
|
||||
# r += var_set(cname() + "_DEPENDENCIES", platform_dependencies(platform) + " " + platform_ldadd(platform))
|
||||
|
||||
r += gvar_add("EXTRA_DIST", extra_dist())
|
||||
r += gvar_add("dist_noinst_DATA", extra_dist())
|
||||
r += gvar_add("BUILT_SOURCES", "$(nodist_" + cname() + "_SOURCES)")
|
||||
r += gvar_add("CLEANFILES", "$(nodist_" + cname() + "_SOURCES)")
|
||||
|
||||
|
@ -481,7 +481,7 @@ def library(platform):
|
|||
r += var_add(cname() + "_CCASFLAGS", first_time("$(AM_CCASFLAGS) $(CCASFLAGS_LIBRARY) ") + platform_ccasflags(platform))
|
||||
# r += var_add(cname() + "_DEPENDENCIES", platform_dependencies(platform) + " " + platform_ldadd(platform))
|
||||
|
||||
r += gvar_add("EXTRA_DIST", extra_dist())
|
||||
r += gvar_add("dist_noinst_DATA", extra_dist())
|
||||
r += first_time(gvar_add("BUILT_SOURCES", "$(nodist_" + cname() + "_SOURCES)"))
|
||||
r += first_time(gvar_add("CLEANFILES", "$(nodist_" + cname() + "_SOURCES)"))
|
||||
return r
|
||||
|
@ -520,15 +520,14 @@ def program(platform, test=False):
|
|||
r += var_set(cname() + "_CCASFLAGS", "$(AM_CCASFLAGS) $(CCASFLAGS_PROGRAM) " + platform_ccasflags(platform))
|
||||
# r += var_set(cname() + "_DEPENDENCIES", platform_dependencies(platform) + " " + platform_ldadd(platform))
|
||||
|
||||
r += gvar_add("EXTRA_DIST", extra_dist())
|
||||
r += gvar_add("dist_noinst_DATA", extra_dist())
|
||||
r += gvar_add("BUILT_SOURCES", "$(nodist_" + cname() + "_SOURCES)")
|
||||
r += gvar_add("CLEANFILES", "$(nodist_" + cname() + "_SOURCES)")
|
||||
return r
|
||||
|
||||
def data(platform):
|
||||
r = gvar_add("EXTRA_DIST", platform_sources(platform))
|
||||
r += gvar_add("EXTRA_DIST", extra_dist())
|
||||
r += var_add(installdir() + "_DATA", platform_sources(platform))
|
||||
r = var_add("dist_" + installdir() + "_DATA", platform_sources(platform))
|
||||
r += gvar_add("dist_noinst_DATA", extra_dist())
|
||||
return r
|
||||
|
||||
def script(platform):
|
||||
|
@ -546,6 +545,7 @@ chmod a+x [+ name +]
|
|||
""")
|
||||
|
||||
r += gvar_add("CLEANFILES", "[+ name +]")
|
||||
r += gvar_add("EXTRA_DIST", extra_dist())
|
||||
r += gvar_add("dist_noinst_DATA", platform_sources(platform))
|
||||
return r
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ CCAS=$(TARGET_CC)
|
|||
|
||||
if COND_GRUB_MKFONT
|
||||
if COND_HAVE_FONT_SOURCE
|
||||
TARGET_CFLAGS += -DUSE_ASCII_FAILBACK=1 -DHAVE_UNIFONT_WIDTHSPEC=1
|
||||
TARGET_CFLAGS += -DUSE_ASCII_FALLBACK=1 -DHAVE_UNIFONT_WIDTHSPEC=1
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -37,18 +37,9 @@ CLEANFILES += gentrigtables
|
|||
|
||||
# trigtables.c
|
||||
trigtables.c: gentrigtables gentrigtables.c $(top_srcdir)/configure.ac
|
||||
$(builddir)/gentrigtables > $@
|
||||
./gentrigtables > $@
|
||||
CLEANFILES += trigtables.c
|
||||
|
||||
gensm712: video/sm712.c
|
||||
$(BUILD_CC) -DGENINIT -o $@ -I$(top_builddir) -I$(top_builddir)/include -I$(top_srcdir)/include $(CPPFLAGS) $<
|
||||
CLEANFILES += gensm712
|
||||
|
||||
# trigtables.c
|
||||
sm712_start.S: gensm712 video/sm712.c $(top_srcdir)/configure.ac
|
||||
$(builddir)/gensm712 > $@
|
||||
CLEANFILES += sm712_start.S
|
||||
|
||||
# XXX Use Automake's LEX & YACC support
|
||||
grub_script.tab.h: script/parser.y
|
||||
$(YACC) -d -p grub_script_yy -b grub_script $<
|
||||
|
@ -60,12 +51,9 @@ grub_script.yy.h: script/yylex.l
|
|||
$(LEX) -o grub_script.yy.c --header-file=grub_script.yy.h $<
|
||||
grub_script.yy.c: grub_script.yy.h
|
||||
|
||||
rs_decoder.S: $(srcdir)/lib/reed_solomon.c
|
||||
rs_decoder.h: $(srcdir)/lib/reed_solomon.c
|
||||
$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Os -I$(top_builddir) -S -DSTANDALONE -o $@ $< -g0 -mregparm=3 -ffreestanding
|
||||
|
||||
boot/i386/pc/startup_raw.S: $(builddir)/rs_decoder.S
|
||||
boot/mips/loongson/fwstart.S: $(builddir)/sm712_start.S
|
||||
|
||||
CLEANFILES += grub_script.yy.c grub_script.yy.h
|
||||
|
||||
include $(srcdir)/Makefile.core.am
|
||||
|
@ -112,6 +100,11 @@ if COND_i386_coreboot
|
|||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
|
||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/coreboot/lbio.h
|
||||
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/i386/pc/int.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/bufio.h
|
||||
endif
|
||||
|
||||
if COND_i386_multiboot
|
||||
|
@ -158,12 +151,10 @@ if COND_mips_qemu_mips
|
|||
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h
|
||||
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
|
||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h
|
||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/serial.h
|
||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/loader.h
|
||||
|
@ -177,12 +168,10 @@ KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h
|
|||
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
|
||||
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
|
||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h
|
||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h
|
||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/cs5536.h
|
||||
|
|
|
@ -80,7 +80,7 @@ kernel = {
|
|||
mips_qemu_mips_ldflags = '-Wl,-Ttext,0x80200000';
|
||||
|
||||
mips_arc_cppflags = '-DGRUB_DECOMPRESSOR_LINK_ADDR=$(TARGET_DECOMPRESSOR_LINK_ADDR)';
|
||||
mips_loongson_cppflags = '-DUSE_ASCII_FAILBACK';
|
||||
mips_loongson_cppflags = '-DUSE_ASCII_FALLBACK';
|
||||
i386_qemu_cppflags = '-DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR)';
|
||||
emu_cflags = '$(CFLAGS_GNULIB)';
|
||||
emu_cppflags = '$(CPPFLAGS_GNULIB)';
|
||||
|
@ -151,6 +151,7 @@ kernel = {
|
|||
i386_multiboot = kern/i386/coreboot/init.c;
|
||||
i386_qemu = kern/i386/qemu/init.c;
|
||||
i386_coreboot_multiboot_qemu = term/i386/pc/vga_text.c;
|
||||
i386_coreboot = video/i386/coreboot/cbfb.c;
|
||||
|
||||
efi = disk/efi/efidisk.c;
|
||||
efi = kern/efi/efi.c;
|
||||
|
@ -185,6 +186,7 @@ kernel = {
|
|||
i386_qemu = kern/i386/qemu/mmap.c;
|
||||
|
||||
i386_coreboot = kern/i386/coreboot/mmap.c;
|
||||
i386_coreboot = kern/i386/coreboot/cbtable.c;
|
||||
|
||||
i386_multiboot = kern/i386/multiboot_mmap.c;
|
||||
|
||||
|
@ -196,6 +198,7 @@ kernel = {
|
|||
mips_qemu_mips = term/ns8250.c;
|
||||
mips_qemu_mips = term/serial.c;
|
||||
mips_qemu_mips = term/at_keyboard.c;
|
||||
mips_qemu_mips = commands/boot.c;
|
||||
mips_qemu_mips = commands/keylayouts.c;
|
||||
mips_qemu_mips = term/i386/pc/vga_text.c;
|
||||
mips_qemu_mips = kern/vga_init.c;
|
||||
|
@ -210,6 +213,7 @@ kernel = {
|
|||
mips_loongson = bus/pci.c;
|
||||
mips_loongson = kern/mips/loongson/init.c;
|
||||
mips_loongson = term/at_keyboard.c;
|
||||
mips_loongson = commands/boot.c;
|
||||
mips_loongson = term/serial.c;
|
||||
mips_loongson = video/sm712.c;
|
||||
mips_loongson = video/sis315pro.c;
|
||||
|
@ -250,17 +254,12 @@ kernel = {
|
|||
videoinkernel = font/font.c;
|
||||
videoinkernel = font/font_cmd.c;
|
||||
videoinkernel = io/bufio.c;
|
||||
videoinkernel = video/bitmap.c;
|
||||
videoinkernel = video/bitmap_scale.c;
|
||||
videoinkernel = video/colors.c;
|
||||
videoinkernel = video/fb/fbblit.c;
|
||||
videoinkernel = video/fb/fbfill.c;
|
||||
videoinkernel = video/fb/fbutil.c;
|
||||
videoinkernel = video/fb/video_fb.c;
|
||||
videoinkernel = video/video.c;
|
||||
|
||||
videoinkernel = commands/boot.c;
|
||||
|
||||
extra_dist = kern/i386/int.S;
|
||||
extra_dist = kern/i386/realmode.S;
|
||||
extra_dist = boot/i386/pc/lzma_decode.S;
|
||||
|
@ -419,6 +418,7 @@ image = {
|
|||
image = {
|
||||
name = lzma_decompress;
|
||||
i386_pc = boot/i386/pc/startup_raw.S;
|
||||
i386_pc_nodist = rs_decoder.h;
|
||||
|
||||
objcopyflags = '-O binary';
|
||||
ldflags = '$(TARGET_IMG_LDFLAGS) $(TARGET_IMG_BASE_LDOPT),0x8200';
|
||||
|
@ -581,22 +581,33 @@ module = {
|
|||
enable = x86;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = cbtable;
|
||||
common = kern/i386/coreboot/cbtable.c;
|
||||
enable = i386_pc;
|
||||
enable = i386_efi;
|
||||
enable = i386_qemu;
|
||||
enable = i386_multiboot;
|
||||
enable = i386_ieee1275;
|
||||
enable = x86_64_efi;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = cbtime;
|
||||
common = commands/i386/coreboot/cb_timestamps.c;
|
||||
enable = i386_coreboot;
|
||||
enable = x86;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = cbls;
|
||||
common = commands/i386/coreboot/cbls.c;
|
||||
enable = i386_coreboot;
|
||||
enable = x86;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = cbmemc;
|
||||
common = term/i386/coreboot/cbmemc.c;
|
||||
enable = i386_coreboot;
|
||||
enable = x86;
|
||||
};
|
||||
|
||||
module = {
|
||||
|
@ -679,7 +690,12 @@ module = {
|
|||
name = boot;
|
||||
common = commands/boot.c;
|
||||
i386_pc = lib/i386/pc/biosnum.c;
|
||||
enable = videomodules;
|
||||
enable = x86;
|
||||
enable = emu;
|
||||
enable = sparc64_ieee1275;
|
||||
enable = powerpc_ieee1275;
|
||||
enable = mips_arc;
|
||||
enable = ia64_efi;
|
||||
};
|
||||
|
||||
module = {
|
||||
|
@ -721,6 +737,11 @@ module = {
|
|||
common = commands/echo.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = eval;
|
||||
common = commands/eval.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = extcmd;
|
||||
common = commands/extcmd.c;
|
||||
|
@ -1161,6 +1182,16 @@ module = {
|
|||
cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/minilzo -DMINILZO_HAVE_CONFIG_H';
|
||||
};
|
||||
|
||||
module = {
|
||||
name = archelp;
|
||||
common = fs/archelp.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = cbfs;
|
||||
common = fs/cbfs.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = cpio;
|
||||
common = fs/cpio.c;
|
||||
|
@ -1327,6 +1358,7 @@ module = {
|
|||
name = zfs;
|
||||
common = fs/zfs/zfs.c;
|
||||
common = fs/zfs/zfs_lzjb.c;
|
||||
common = fs/zfs/zfs_lz4.c;
|
||||
common = fs/zfs/zfs_sha256.c;
|
||||
common = fs/zfs/zfs_fletcher.c;
|
||||
};
|
||||
|
@ -1683,6 +1715,11 @@ module = {
|
|||
common = partmap/sunpc.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = part_dfly;
|
||||
common = partmap/dfly.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = msdospart;
|
||||
common = parttool/msdospart.c;
|
||||
|
@ -1700,6 +1737,11 @@ module = {
|
|||
enable = videomodules;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = gfxterm_background;
|
||||
common = term/gfxterm_background.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = serial;
|
||||
common = term/serial.c;
|
||||
|
@ -1801,13 +1843,11 @@ module = {
|
|||
module = {
|
||||
name = bitmap;
|
||||
common = video/bitmap.c;
|
||||
enable = videomodules;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = bitmap_scale;
|
||||
common = video/bitmap_scale.c;
|
||||
enable = videomodules;
|
||||
};
|
||||
|
||||
module = {
|
||||
|
@ -1856,22 +1896,20 @@ module = {
|
|||
module = {
|
||||
name = video;
|
||||
common = video/video.c;
|
||||
common = video/colors.c;
|
||||
enable = videomodules;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = video_colors;
|
||||
common = video/colors.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = ieee1275_fb;
|
||||
ieee1275 = video/ieee1275.c;
|
||||
enable = powerpc_ieee1275;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = coreboot_fb;
|
||||
common = video/i386/coreboot/cbfb.c;
|
||||
enable = i386_coreboot;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = sdl;
|
||||
emu = video/emu/sdl.c;
|
||||
|
@ -1991,7 +2029,7 @@ module = {
|
|||
module = {
|
||||
name = keylayouts;
|
||||
common = commands/keylayouts.c;
|
||||
enable = videomodules;
|
||||
enable = x86;
|
||||
};
|
||||
|
||||
module = {
|
||||
|
|
|
@ -119,7 +119,7 @@ LOCAL (codestart):
|
|||
|
||||
#include "../../../kern/i386/realmode.S"
|
||||
|
||||
#include <rs_decoder.S>
|
||||
#include <rs_decoder.h>
|
||||
|
||||
.text
|
||||
|
||||
|
|
|
@ -754,140 +754,3 @@ continue:
|
|||
#endif
|
||||
|
||||
cached_continue:
|
||||
#ifndef FULOONG2F
|
||||
/* We have to init video early enough or watchdog will reboot us. */
|
||||
|
||||
/* Setup PCI controller. */
|
||||
|
||||
lui $t0, %hi (GRUB_CPU_LOONGSON_PCI_HIT1_SEL_LO)
|
||||
lui $t1, %hi(0x8000000c)
|
||||
addiu $t1, $t1, %lo(0x8000000c)
|
||||
|
||||
sw $t1, %lo (GRUB_CPU_LOONGSON_PCI_HIT1_SEL_LO) ($t0)
|
||||
li $t1, 0xffffffff
|
||||
sw $t1, %lo (GRUB_CPU_LOONGSON_PCI_HIT1_SEL_HI) ($t0)
|
||||
|
||||
li $t0, GRUB_MACHINE_PCI_CONTROLLER_HEADER
|
||||
li $t1, (GRUB_PCI_COMMAND_PARITY_ERROR | GRUB_PCI_COMMAND_BUS_MASTER \
|
||||
| GRUB_PCI_COMMAND_MEM_ENABLED)
|
||||
sh $t0, GRUB_PCI_REG_COMMAND ($t1)
|
||||
li $t1, ((1 << GRUB_PCI_STATUS_DEVSEL_TIMING_SHIFT) \
|
||||
| GRUB_PCI_STATUS_FAST_B2B_CAPABLE \
|
||||
| GRUB_PCI_STATUS_66MHZ_CAPABLE \
|
||||
| GRUB_PCI_STATUS_CAPABILITIES)
|
||||
sh $t0, GRUB_PCI_REG_STATUS ($t1)
|
||||
li $t0, 0xff
|
||||
sw $t0, GRUB_PCI_REG_CACHELINE ($t1)
|
||||
lui $t1, %hi(0x80000000 | GRUB_PCI_ADDR_MEM_TYPE_64 \
|
||||
| GRUB_PCI_ADDR_MEM_PREFETCH)
|
||||
addiu $t1, $t1, %lo(0x80000000 | GRUB_PCI_ADDR_MEM_TYPE_64 \
|
||||
| GRUB_PCI_ADDR_MEM_PREFETCH)
|
||||
sw $t0, GRUB_PCI_REG_ADDRESS_REG0 ($t1)
|
||||
sw $zero, GRUB_PCI_REG_ADDRESS_REG1 ($t1)
|
||||
|
||||
/* Find video. */
|
||||
/* $t4 chooses device in priority encoding. */
|
||||
/* Resulting value is kept in GRUB_MACHINE_PCI_CONF_CTRL_REG.
|
||||
This way we don't need to sacrifice a register for it. */
|
||||
retry_sm712:
|
||||
/* We have only one bus (0). Function is 0. */
|
||||
lui $t0, %hi(GRUB_MACHINE_PCI_CONF_CTRL_REG_ADDR)
|
||||
lui $t1, %hi(GRUB_MACHINE_PCI_CONFSPACE)
|
||||
lui $t3, %hi(GRUB_SM712_PCIID)
|
||||
addiu $t3, $t3, %lo(GRUB_SM712_PCIID)
|
||||
ori $t4, $zero, 1
|
||||
1:
|
||||
andi $t4, $t4, ((1 << GRUB_PCI_NUM_DEVICES) - 1)
|
||||
/* In case of failure try again. SM712 may be slow to come up. */
|
||||
beql $t4, $zero, retry_sm712
|
||||
nop
|
||||
sw $t4, %lo(GRUB_MACHINE_PCI_CONF_CTRL_REG_ADDR) ($t0)
|
||||
lw $t2, (%lo(GRUB_MACHINE_PCI_CONFSPACE) + GRUB_PCI_REG_PCI_ID) ($t1)
|
||||
bnel $t2, $t3, 1b
|
||||
sll $t4, $t4, 1
|
||||
|
||||
/* FIXME: choose address dynamically if needed. */
|
||||
#define SM712_MAP 0x04000000
|
||||
|
||||
lui $t2, %hi(SM712_MAP)
|
||||
sw $t4, %lo(GRUB_MACHINE_PCI_CONF_CTRL_REG_ADDR) ($t0)
|
||||
sw $t2, (%lo(GRUB_MACHINE_PCI_CONFSPACE) + GRUB_PCI_REG_ADDRESS_REG0) ($t1)
|
||||
|
||||
/* Set latency. */
|
||||
li $t2, 0x8
|
||||
sw $t4, %lo(GRUB_MACHINE_PCI_CONF_CTRL_REG_ADDR) ($t0)
|
||||
sw $t2, (%lo(GRUB_MACHINE_PCI_CONFSPACE) + GRUB_PCI_REG_CACHELINE) ($t1)
|
||||
|
||||
/* Enable address spaces. */
|
||||
li $t2, 0x7
|
||||
sw $t4, %lo(GRUB_MACHINE_PCI_CONF_CTRL_REG_ADDR) ($t0)
|
||||
sw $t2, (%lo(GRUB_MACHINE_PCI_CONFSPACE) + GRUB_PCI_REG_COMMAND) ($t1)
|
||||
|
||||
lui $t3, %hi(GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_SR_INDEX)
|
||||
li $t2, 0x18
|
||||
sb $t2, %lo(GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_SR_INDEX)($t3)
|
||||
|
||||
lui $t3, %hi(GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_SR_DATA)
|
||||
li $t2, 0x11
|
||||
sb $t2, %lo(GRUB_MACHINE_PCI_IO_BASE + GRUB_VGA_IO_SR_DATA)($t3)
|
||||
|
||||
li $t2, ((((SM712_MAP & ~GRUB_MACHINE_PCI_WIN_OFFSET_MASK) \
|
||||
>> GRUB_MACHINE_PCI_WIN_SHIFT) \
|
||||
& GRUB_MACHINE_PCI_WIN_MASK))
|
||||
lui $t3, %hi(0xbfe00110)
|
||||
addiu $t3, $t3, %lo(0xbfe00110)
|
||||
sw $t2, 0 ($t3)
|
||||
li $t2, (GRUB_MACHINE_PCI_WIN1_ADDR \
|
||||
| (SM712_MAP & GRUB_MACHINE_PCI_WIN_OFFSET_MASK))
|
||||
|
||||
lui $t3, %hi(GRUB_SM712_REG_BASE)
|
||||
addiu $t3, $t3, %lo(GRUB_SM712_REG_BASE)
|
||||
addu $t2, $t2, $t3
|
||||
lui $t0, %hi(init_table - 0x20000000)
|
||||
addiu $t0, $t0, %lo(init_table - 0x20000000)
|
||||
lui $t1, %hi(init_table_end - 0x20000000)
|
||||
addiu $t1, $t1, %lo(init_table_end - 0x20000000)
|
||||
li $t5, 0x80
|
||||
addiu $t6, $t2, 0x3c0
|
||||
|
||||
table_cont:
|
||||
lb $t3, 0($t0)
|
||||
andi $t5, $t3, 0x80
|
||||
andi $t3, $t3, 0x7f
|
||||
addu $t3, $t3, $t6
|
||||
lb $t4, 1($t0)
|
||||
|
||||
bne $zero, $t5, 1f
|
||||
addiu $t0, $t0, 2
|
||||
b 2f
|
||||
sb $t4, 0($t3)
|
||||
1:
|
||||
lb $t4, 0($t3)
|
||||
2:
|
||||
bne $t0, $t1, table_cont
|
||||
nop
|
||||
|
||||
lui $t3, %hi(0x40c000 - GRUB_SM712_REG_BASE)
|
||||
addiu $t3, $t3, %lo(0x40c000 - GRUB_SM712_REG_BASE)
|
||||
addu $t1, $t2, $t3
|
||||
sw $zero, 0xc ($t1)
|
||||
sw $zero, 0x40 ($t1)
|
||||
li $t3, 0x20000
|
||||
sw $t3, 0x0 ($t1)
|
||||
lui $t3, %hi(0x1020100)
|
||||
addiu $t3, $t3, %lo(0x1020100)
|
||||
sw $t3, 0x10 ($t1)
|
||||
|
||||
li $t4, 0x16
|
||||
sb $t4, GRUB_VGA_IO_SR_INDEX($t2)
|
||||
|
||||
lb $t4, GRUB_VGA_IO_SR_DATA($t2)
|
||||
|
||||
b init_end
|
||||
nop
|
||||
init_table:
|
||||
#include "sm712_start.S"
|
||||
init_table_end:
|
||||
.align 4
|
||||
init_end:
|
||||
#endif
|
||||
|
|
|
@ -688,10 +688,12 @@ grub_usb_poll_devices (int wait_for_completion)
|
|||
* addressed properly, timeout happened */
|
||||
hub->controller->dev->pending_reset = 0;
|
||||
npending--;
|
||||
speed = hub->controller->dev->detect_dev (hub->controller,
|
||||
i, &changed);
|
||||
}
|
||||
}
|
||||
if (!hub->controller->dev->pending_reset)
|
||||
speed = hub->controller->dev->detect_dev (hub->controller,
|
||||
i, &changed);
|
||||
|
||||
if (changed)
|
||||
{
|
||||
detach_device (hub->devices[i]);
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#define grub_dprintf(cond, args...) printf ( args )
|
||||
#define grub_printf printf
|
||||
|
@ -184,7 +185,6 @@ get_sleep_type (grub_uint8_t *table, grub_uint8_t *ptr, grub_uint8_t *end,
|
|||
grub_uint8_t *scope, int scope_len)
|
||||
{
|
||||
grub_uint8_t *prev = table;
|
||||
int sleep_type = -2;
|
||||
|
||||
if (!ptr)
|
||||
ptr = table + sizeof (struct grub_acpi_table_header);
|
||||
|
@ -233,14 +233,11 @@ get_sleep_type (grub_uint8_t *table, grub_uint8_t *ptr, grub_uint8_t *end,
|
|||
switch (*ptr2)
|
||||
{
|
||||
case GRUB_ACPI_OPCODE_ZERO:
|
||||
sleep_type = 0;
|
||||
break;
|
||||
return 0;
|
||||
case GRUB_ACPI_OPCODE_ONE:
|
||||
sleep_type = 1;
|
||||
break;
|
||||
return 1;
|
||||
case GRUB_ACPI_OPCODE_BYTE_CONST:
|
||||
sleep_type = ptr2[1];
|
||||
break;
|
||||
return ptr2[1];
|
||||
default:
|
||||
grub_printf ("Unknown data type in _S5: 0x%x\n", *ptr2);
|
||||
return -1;
|
||||
|
@ -286,8 +283,7 @@ get_sleep_type (grub_uint8_t *table, grub_uint8_t *ptr, grub_uint8_t *end,
|
|||
}
|
||||
}
|
||||
|
||||
grub_dprintf ("acpi", "TYP = %d\n", sleep_type);
|
||||
return sleep_type;
|
||||
return -2;
|
||||
}
|
||||
|
||||
#ifdef GRUB_DSDT_TEST
|
||||
|
@ -317,7 +313,7 @@ main (int argc, char **argv)
|
|||
}
|
||||
if (fread (buf, 1, len, f) != len)
|
||||
{
|
||||
printf (_("cannot read `%s': %s"), strerror (errno));
|
||||
printf (_("cannot read `%s': %s"), argv[1], strerror (errno));
|
||||
free (buf);
|
||||
fclose (f);
|
||||
return 2;
|
||||
|
@ -369,11 +365,13 @@ grub_acpi_halt (void)
|
|||
grub_dprintf ("acpi", "PM1a port=%x\n", port);
|
||||
|
||||
if (grub_memcmp (dsdt->signature, "DSDT",
|
||||
sizeof (dsdt->signature)) == 0)
|
||||
sizeof (dsdt->signature)) == 0
|
||||
&& sleep_type < 0)
|
||||
sleep_type = get_sleep_type (buf, NULL, buf + dsdt->length,
|
||||
NULL, 0);
|
||||
}
|
||||
else if (grub_memcmp ((void *) (grub_addr_t) *entry_ptr, "SSDT", 4) == 0)
|
||||
else if (grub_memcmp ((void *) (grub_addr_t) *entry_ptr, "SSDT", 4) == 0
|
||||
&& sleep_type < 0)
|
||||
{
|
||||
struct grub_acpi_table_header *ssdt
|
||||
= (struct grub_acpi_table_header *) (grub_addr_t) *entry_ptr;
|
||||
|
@ -385,13 +383,10 @@ grub_acpi_halt (void)
|
|||
}
|
||||
}
|
||||
|
||||
grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n", sleep_type, port);
|
||||
if (port && sleep_type >= 0 && sleep_type < 8)
|
||||
{
|
||||
grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n", sleep_type, port);
|
||||
|
||||
grub_outw (GRUB_ACPI_SLP_EN | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET),
|
||||
port & 0xffff);
|
||||
}
|
||||
grub_outw (GRUB_ACPI_SLP_EN | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET),
|
||||
port & 0xffff);
|
||||
|
||||
grub_millisleep (1500);
|
||||
|
||||
|
|
71
grub-core/commands/eval.c
Normal file
71
grub-core/commands/eval.c
Normal file
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2009 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/dl.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/script_sh.h>
|
||||
#include <grub/command.h>
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/term.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
static grub_err_t
|
||||
grub_cmd_eval (grub_command_t cmd __attribute__((__unused__)),
|
||||
int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
grub_size_t size = argc; /* +1 for final zero */
|
||||
char *str, *p;
|
||||
grub_err_t ret;
|
||||
|
||||
if (argc == 0)
|
||||
return GRUB_ERR_NONE;
|
||||
|
||||
for (i = 0; i < argc; i++)
|
||||
size += grub_strlen (argv[i]);
|
||||
|
||||
str = p = grub_malloc (size);
|
||||
if (!str)
|
||||
return grub_errno;
|
||||
|
||||
for (i = 0; i < argc; i++)
|
||||
{
|
||||
p = grub_stpcpy (p, argv[i]);
|
||||
*p++ = ' ';
|
||||
}
|
||||
*--p = '\0';
|
||||
|
||||
ret = grub_script_execute_sourcecode (str);
|
||||
grub_free (str);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static grub_command_t cmd;
|
||||
|
||||
GRUB_MOD_INIT(eval)
|
||||
{
|
||||
cmd = grub_register_command ("eval", grub_cmd_eval, N_("STRING ..."),
|
||||
N_("Evaluate arguments as GRUB commands"));
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(eval)
|
||||
{
|
||||
grub_unregister_command (cmd);
|
||||
}
|
||||
|
|
@ -84,7 +84,8 @@ iterate_linuxbios_table (grub_linuxbios_table_item_t table_item,
|
|||
|
||||
grub_printf (": %dx%dx%d pitch=%d lfb=0x%llx %d/%d/%d/%d %d/%d/%d/%d",
|
||||
fb->width, fb->height,
|
||||
fb->bpp, fb->pitch, fb->lfb,
|
||||
fb->bpp, fb->pitch,
|
||||
(unsigned long long) fb->lfb,
|
||||
fb->red_mask_size, fb->green_mask_size,
|
||||
fb->blue_mask_size, fb->reserved_mask_size,
|
||||
fb->red_field_pos, fb->green_field_pos,
|
||||
|
|
|
@ -78,8 +78,12 @@ get_uuid (const char *name, char **uuid, int getnative)
|
|||
break;
|
||||
|
||||
/* Virtual disks. */
|
||||
/* GRUB dynamically generated files. */
|
||||
case GRUB_DISK_DEVICE_PROCFS_ID:
|
||||
/* To access through host OS routines (grub-emu only). */
|
||||
case GRUB_DISK_DEVICE_HOST_ID:
|
||||
/* To access coreboot roms. */
|
||||
case GRUB_DISK_DEVICE_CBFSDISK_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",
|
||||
|
|
|
@ -27,9 +27,12 @@
|
|||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
static grub_uint32_t pciid_check_mask, pciid_check_value;
|
||||
static int bus, device, function;
|
||||
static int check_bus, check_device, check_function;
|
||||
struct iter_cxt
|
||||
{
|
||||
grub_uint32_t pciid_check_mask, pciid_check_value;
|
||||
int bus, device, function;
|
||||
int check_bus, check_device, check_function;
|
||||
};
|
||||
|
||||
static const struct grub_arg_option options[] =
|
||||
{
|
||||
|
@ -42,21 +45,22 @@ static const struct grub_arg_option options[] =
|
|||
|
||||
static int
|
||||
grub_pcidump_iter (grub_pci_device_t dev, grub_pci_id_t pciid,
|
||||
void *data __attribute__ ((unused)))
|
||||
void *data)
|
||||
{
|
||||
struct iter_cxt *ctx = data;
|
||||
grub_pci_address_t addr;
|
||||
int i;
|
||||
|
||||
if ((pciid & pciid_check_mask) != pciid_check_value)
|
||||
if ((pciid & ctx->pciid_check_mask) != ctx->pciid_check_value)
|
||||
return 0;
|
||||
|
||||
if (check_bus && grub_pci_get_bus (dev) != bus)
|
||||
if (ctx->check_bus && grub_pci_get_bus (dev) != ctx->bus)
|
||||
return 0;
|
||||
|
||||
if (check_device && grub_pci_get_device (dev) != device)
|
||||
if (ctx->check_device && grub_pci_get_device (dev) != ctx->device)
|
||||
return 0;
|
||||
|
||||
if (check_function && grub_pci_get_function (dev) != function)
|
||||
if (ctx->check_function && grub_pci_get_function (dev) != ctx->function)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < 256; i += 4)
|
||||
|
@ -76,37 +80,43 @@ grub_cmd_pcidump (grub_extcmd_context_t ctxt,
|
|||
char **argv __attribute__ ((unused)))
|
||||
{
|
||||
const char *ptr;
|
||||
|
||||
pciid_check_value = 0;
|
||||
pciid_check_mask = 0;
|
||||
struct iter_cxt ctx =
|
||||
{
|
||||
.pciid_check_value = 0,
|
||||
.pciid_check_mask = 0,
|
||||
.check_bus = 0,
|
||||
.check_device = 0,
|
||||
.check_function = 0,
|
||||
.bus = 0,
|
||||
.function = 0,
|
||||
.device = 0
|
||||
};
|
||||
|
||||
if (ctxt->state[0].set)
|
||||
{
|
||||
ptr = ctxt->state[0].arg;
|
||||
pciid_check_value |= (grub_strtoul (ptr, (char **) &ptr, 16) & 0xffff);
|
||||
ctx.pciid_check_value |= (grub_strtoul (ptr, (char **) &ptr, 16) & 0xffff);
|
||||
if (grub_errno == GRUB_ERR_BAD_NUMBER)
|
||||
{
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
ptr = ctxt->state[0].arg;
|
||||
}
|
||||
else
|
||||
pciid_check_mask |= 0xffff;
|
||||
ctx.pciid_check_mask |= 0xffff;
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
if (*ptr != ':')
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("missing `%c' symbol"), ':');
|
||||
ptr++;
|
||||
pciid_check_value |= (grub_strtoul (ptr, (char **) &ptr, 16) & 0xffff)
|
||||
ctx.pciid_check_value |= (grub_strtoul (ptr, (char **) &ptr, 16) & 0xffff)
|
||||
<< 16;
|
||||
if (grub_errno == GRUB_ERR_BAD_NUMBER)
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
else
|
||||
pciid_check_mask |= 0xffff0000;
|
||||
ctx.pciid_check_mask |= 0xffff0000;
|
||||
}
|
||||
|
||||
pciid_check_value &= pciid_check_mask;
|
||||
|
||||
check_bus = check_device = check_function = 0;
|
||||
ctx.pciid_check_value &= ctx.pciid_check_mask;
|
||||
|
||||
if (ctxt->state[1].set)
|
||||
{
|
||||
|
@ -114,52 +124,52 @@ grub_cmd_pcidump (grub_extcmd_context_t ctxt,
|
|||
|
||||
ptr = ctxt->state[1].arg;
|
||||
optr = ptr;
|
||||
bus = grub_strtoul (ptr, (char **) &ptr, 16);
|
||||
ctx.bus = grub_strtoul (ptr, (char **) &ptr, 16);
|
||||
if (grub_errno == GRUB_ERR_BAD_NUMBER)
|
||||
{
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
ptr = optr;
|
||||
}
|
||||
else
|
||||
check_bus = 1;
|
||||
ctx.check_bus = 1;
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
if (*ptr != ':')
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("missing `%c' symbol"), ':');
|
||||
ptr++;
|
||||
optr = ptr;
|
||||
device = grub_strtoul (ptr, (char **) &ptr, 16);
|
||||
ctx.device = grub_strtoul (ptr, (char **) &ptr, 16);
|
||||
if (grub_errno == GRUB_ERR_BAD_NUMBER)
|
||||
{
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
ptr = optr;
|
||||
}
|
||||
else
|
||||
check_device = 1;
|
||||
ctx.check_device = 1;
|
||||
if (*ptr == '.')
|
||||
{
|
||||
ptr++;
|
||||
function = grub_strtoul (ptr, (char **) &ptr, 16);
|
||||
ctx.function = grub_strtoul (ptr, (char **) &ptr, 16);
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
check_function = 1;
|
||||
ctx.check_function = 1;
|
||||
}
|
||||
}
|
||||
|
||||
grub_pci_iterate (grub_pcidump_iter, NULL);
|
||||
grub_pci_iterate (grub_pcidump_iter, &ctx);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static grub_extcmd_t cmd;
|
||||
|
||||
GRUB_MOD_INIT(setpci)
|
||||
GRUB_MOD_INIT(pcidump)
|
||||
{
|
||||
cmd = grub_register_extcmd ("pcidump", grub_cmd_pcidump, 0,
|
||||
N_("[-s POSITION] [-d DEVICE]"),
|
||||
N_("Dump PCI configuration space."), options);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(setpci)
|
||||
GRUB_MOD_FINI(pcidump)
|
||||
{
|
||||
grub_unregister_extcmd (cmd);
|
||||
}
|
||||
|
|
|
@ -78,6 +78,8 @@ grub_cmd_sleep (grub_extcmd_context_t ctxt, int argc, char **args)
|
|||
return 0;
|
||||
}
|
||||
|
||||
grub_refresh ();
|
||||
|
||||
pos = grub_term_save_pos ();
|
||||
|
||||
for (; n; n--)
|
||||
|
|
|
@ -219,6 +219,8 @@ scan_devices (const char *arname)
|
|||
grub_disk_pull_t pull;
|
||||
struct grub_diskfilter_vg *vg;
|
||||
struct grub_diskfilter_lv *lv = NULL;
|
||||
int scan_depth;
|
||||
int need_rescan;
|
||||
|
||||
for (pull = 0; pull < GRUB_DISK_PULL_MAX; pull++)
|
||||
for (p = grub_disk_dev_list; p; p = p->next)
|
||||
|
@ -231,16 +233,26 @@ scan_devices (const char *arname)
|
|||
return;
|
||||
}
|
||||
|
||||
for (vg = array_list; vg; vg = vg->next)
|
||||
scan_depth = 0;
|
||||
need_rescan = 1;
|
||||
while (need_rescan && scan_depth++ < 100)
|
||||
{
|
||||
if (vg->lvs)
|
||||
for (lv = vg->lvs; lv; lv = lv->next)
|
||||
if (!lv->scanned && lv->fullname && lv->became_readable_at)
|
||||
{
|
||||
scan_disk (lv->fullname, 1);
|
||||
lv->scanned = 1;
|
||||
}
|
||||
need_rescan = 0;
|
||||
for (vg = array_list; vg; vg = vg->next)
|
||||
{
|
||||
if (vg->lvs)
|
||||
for (lv = vg->lvs; lv; lv = lv->next)
|
||||
if (!lv->scanned && lv->fullname && lv->became_readable_at)
|
||||
{
|
||||
scan_disk (lv->fullname, 1);
|
||||
lv->scanned = 1;
|
||||
need_rescan = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (need_rescan)
|
||||
grub_error (GRUB_ERR_UNKNOWN_DEVICE, "DISKFILTER scan depth exceeded");
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -1045,10 +1057,14 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id,
|
|||
{
|
||||
struct grub_diskfilter_pv *pv;
|
||||
|
||||
grub_dprintf ("diskfilter", "Inserting %s into %s (%s)\n", disk->name,
|
||||
grub_dprintf ("diskfilter", "Inserting %s (+%lld,%lld) into %s (%s)\n", disk->name,
|
||||
(unsigned long long) grub_partition_get_start (disk->partition),
|
||||
(unsigned long long) grub_disk_get_size (disk),
|
||||
array->name, diskfilter->name);
|
||||
#ifdef GRUB_UTIL
|
||||
grub_util_info ("Inserting %s into %s (%s)\n", disk->name,
|
||||
grub_util_info ("Inserting %s (+%lld,%lld) into %s (%s)\n", disk->name,
|
||||
(unsigned long long) grub_partition_get_start (disk->partition),
|
||||
(unsigned long long) grub_disk_get_size (disk),
|
||||
array->name, diskfilter->name);
|
||||
array->driver = diskfilter;
|
||||
#endif
|
||||
|
@ -1092,14 +1108,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id,
|
|||
/* Add the device to the array. */
|
||||
for (lv = array->lvs; lv; lv = lv->next)
|
||||
if (!lv->became_readable_at && lv->fullname && is_lv_readable (lv, 0))
|
||||
{
|
||||
lv->became_readable_at = ++inscnt;
|
||||
if (is_lv_readable (lv, 1))
|
||||
{
|
||||
scan_disk (lv->fullname, 1);
|
||||
lv->scanned = 1;
|
||||
}
|
||||
}
|
||||
lv->became_readable_at = ++inscnt;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
#ifdef USE_ASCII_FAILBACK
|
||||
#ifdef USE_ASCII_FALLBACK
|
||||
#include "ascii.h"
|
||||
#endif
|
||||
|
||||
|
@ -55,23 +55,6 @@ struct char_index_entry
|
|||
#define FONT_WEIGHT_BOLD 200
|
||||
#define ASCII_BITMAP_SIZE 16
|
||||
|
||||
struct grub_font
|
||||
{
|
||||
char *name;
|
||||
grub_file_t file;
|
||||
char *family;
|
||||
short point_size;
|
||||
short weight;
|
||||
short max_char_width;
|
||||
short max_char_height;
|
||||
short ascent;
|
||||
short descent;
|
||||
short leading;
|
||||
grub_uint32_t num_chars;
|
||||
struct char_index_entry *char_index;
|
||||
grub_uint16_t *bmp_idx;
|
||||
};
|
||||
|
||||
/* Definition of font registry. */
|
||||
struct grub_font_node *grub_font_list;
|
||||
|
||||
|
@ -127,14 +110,14 @@ static struct grub_font null_font;
|
|||
/* Flag to ensure module is initialized only once. */
|
||||
static grub_uint8_t font_loader_initialized;
|
||||
|
||||
#ifdef USE_ASCII_FAILBACK
|
||||
#ifdef USE_ASCII_FALLBACK
|
||||
static struct grub_font_glyph *ascii_font_glyph[0x80];
|
||||
#endif
|
||||
|
||||
static struct grub_font_glyph *
|
||||
ascii_glyph_lookup (grub_uint32_t code)
|
||||
{
|
||||
#ifdef USE_ASCII_FAILBACK
|
||||
#ifdef USE_ASCII_FALLBACK
|
||||
static int ascii_failback_initialized = 0;
|
||||
|
||||
if (code >= 0x80)
|
||||
|
@ -909,20 +892,6 @@ grub_font_get_max_char_width (grub_font_t font)
|
|||
return font->max_char_width;
|
||||
}
|
||||
|
||||
/* Get the maximum height of any character in the font in pixels. */
|
||||
int
|
||||
grub_font_get_max_char_height (grub_font_t font)
|
||||
{
|
||||
return font->max_char_height;
|
||||
}
|
||||
|
||||
/* Get the distance in pixels from the top of characters to the baseline. */
|
||||
int
|
||||
grub_font_get_ascent (grub_font_t font)
|
||||
{
|
||||
return font->ascent;
|
||||
}
|
||||
|
||||
/* Get the distance in pixels from the baseline to the lowest descenders
|
||||
(for instance, in a lowercase 'y', 'g', etc.). */
|
||||
int
|
||||
|
|
|
@ -61,7 +61,7 @@ lsfonts_command (grub_command_t cmd __attribute__ ((unused)),
|
|||
|
||||
static grub_command_t cmd_loadfont, cmd_lsfonts;
|
||||
|
||||
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
|
||||
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_COREBOOT)
|
||||
void grub_font_init (void)
|
||||
#else
|
||||
GRUB_MOD_INIT(font)
|
||||
|
@ -78,7 +78,7 @@ GRUB_MOD_INIT(font)
|
|||
0, N_("List the loaded fonts."));
|
||||
}
|
||||
|
||||
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
|
||||
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_COREBOOT)
|
||||
void grub_font_fini (void)
|
||||
#else
|
||||
GRUB_MOD_FINI(font)
|
||||
|
|
298
grub-core/fs/archelp.c
Normal file
298
grub-core/fs/archelp.c
Normal file
|
@ -0,0 +1,298 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/archelp.h>
|
||||
#include <grub/err.h>
|
||||
#include <grub/fs.h>
|
||||
#include <grub/disk.h>
|
||||
#include <grub/dl.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
static inline void
|
||||
canonicalize (char *name)
|
||||
{
|
||||
char *iptr, *optr;
|
||||
for (iptr = name, optr = name; *iptr; )
|
||||
{
|
||||
while (*iptr == '/')
|
||||
iptr++;
|
||||
if (iptr[0] == '.' && (iptr[1] == '/' || iptr[1] == 0))
|
||||
{
|
||||
iptr += 2;
|
||||
continue;
|
||||
}
|
||||
if (iptr[0] == '.' && iptr[1] == '.' && (iptr[2] == '/' || iptr[2] == 0))
|
||||
{
|
||||
iptr += 3;
|
||||
if (optr == name)
|
||||
continue;
|
||||
for (optr -= 2; optr >= name && *optr != '/'; optr--);
|
||||
optr++;
|
||||
continue;
|
||||
}
|
||||
while (*iptr && *iptr != '/')
|
||||
*optr++ = *iptr++;
|
||||
if (*iptr)
|
||||
*optr++ = *iptr++;
|
||||
}
|
||||
*optr = 0;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
handle_symlink (struct grub_archelp_data *data,
|
||||
struct grub_archelp_ops *arcops,
|
||||
const char *fn, char **name,
|
||||
grub_uint32_t mode, int *restart)
|
||||
{
|
||||
grub_size_t flen;
|
||||
char *target;
|
||||
char *ptr;
|
||||
char *lastslash;
|
||||
grub_size_t prefixlen;
|
||||
char *rest;
|
||||
char *linktarget;
|
||||
|
||||
*restart = 0;
|
||||
|
||||
if ((mode & GRUB_ARCHELP_ATTR_TYPE) != GRUB_ARCHELP_ATTR_LNK
|
||||
|| !arcops->get_link_target)
|
||||
return GRUB_ERR_NONE;
|
||||
flen = grub_strlen (fn);
|
||||
if (grub_memcmp (*name, fn, flen) != 0
|
||||
|| ((*name)[flen] != 0 && (*name)[flen] != '/'))
|
||||
return GRUB_ERR_NONE;
|
||||
rest = *name + flen;
|
||||
lastslash = rest;
|
||||
if (*rest)
|
||||
rest++;
|
||||
while (lastslash >= *name && *lastslash != '/')
|
||||
lastslash--;
|
||||
if (lastslash >= *name)
|
||||
prefixlen = lastslash - *name;
|
||||
else
|
||||
prefixlen = 0;
|
||||
|
||||
if (prefixlen)
|
||||
prefixlen++;
|
||||
|
||||
linktarget = arcops->get_link_target (data);
|
||||
if (!linktarget)
|
||||
return grub_errno;
|
||||
if (linktarget[0] == '\0')
|
||||
return GRUB_ERR_NONE;
|
||||
target = grub_malloc (grub_strlen (linktarget) + grub_strlen (*name) + 2);
|
||||
if (!target)
|
||||
return grub_errno;
|
||||
|
||||
grub_strcpy (target + prefixlen, linktarget);
|
||||
grub_free (linktarget);
|
||||
if (target[prefixlen] == '/')
|
||||
{
|
||||
ptr = grub_stpcpy (target, target + prefixlen);
|
||||
ptr = grub_stpcpy (ptr, rest);
|
||||
*ptr = 0;
|
||||
grub_dprintf ("archelp", "symlink redirected %s to %s\n",
|
||||
*name, target);
|
||||
grub_free (*name);
|
||||
|
||||
canonicalize (target);
|
||||
*name = target;
|
||||
*restart = 1;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
if (prefixlen)
|
||||
{
|
||||
grub_memcpy (target, *name, prefixlen);
|
||||
target[prefixlen-1] = '/';
|
||||
}
|
||||
grub_strcat (target, rest);
|
||||
grub_dprintf ("archelp", "symlink redirected %s to %s\n",
|
||||
*name, target);
|
||||
grub_free (*name);
|
||||
canonicalize (target);
|
||||
*name = target;
|
||||
*restart = 1;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
grub_err_t
|
||||
grub_archelp_dir (struct grub_archelp_data *data,
|
||||
struct grub_archelp_ops *arcops,
|
||||
const char *path_in,
|
||||
grub_fs_dir_hook_t hook, void *hook_data)
|
||||
{
|
||||
char *prev, *name, *path, *ptr;
|
||||
grub_size_t len;
|
||||
int symlinknest = 0;
|
||||
|
||||
path = grub_strdup (path_in + 1);
|
||||
if (!path)
|
||||
return grub_errno;
|
||||
canonicalize (path);
|
||||
for (ptr = path + grub_strlen (path) - 1; ptr >= path && *ptr == '/'; ptr--)
|
||||
*ptr = 0;
|
||||
|
||||
prev = 0;
|
||||
|
||||
len = grub_strlen (path);
|
||||
while (1)
|
||||
{
|
||||
grub_int32_t mtime;
|
||||
grub_uint32_t mode;
|
||||
grub_err_t err;
|
||||
|
||||
if (arcops->find_file (data, &name, &mtime, &mode))
|
||||
goto fail;
|
||||
|
||||
if (mode == GRUB_ARCHELP_ATTR_END)
|
||||
break;
|
||||
|
||||
canonicalize (name);
|
||||
|
||||
if (grub_memcmp (path, name, len) == 0
|
||||
&& (name[len] == 0 || name[len] == '/' || len == 0))
|
||||
{
|
||||
char *p, *n;
|
||||
|
||||
n = name + len;
|
||||
while (*n == '/')
|
||||
n++;
|
||||
|
||||
p = grub_strchr (n, '/');
|
||||
if (p)
|
||||
*p = 0;
|
||||
|
||||
if (((!prev) || (grub_strcmp (prev, name) != 0)) && *n != 0)
|
||||
{
|
||||
struct grub_dirhook_info info;
|
||||
grub_memset (&info, 0, sizeof (info));
|
||||
info.dir = (p != NULL) || ((mode & GRUB_ARCHELP_ATTR_TYPE)
|
||||
== GRUB_ARCHELP_ATTR_DIR);
|
||||
if (!(mode & GRUB_ARCHELP_ATTR_NOTIME))
|
||||
{
|
||||
info.mtime = mtime;
|
||||
info.mtimeset = 1;
|
||||
}
|
||||
if (hook (n, &info, hook_data))
|
||||
{
|
||||
grub_free (name);
|
||||
goto fail;
|
||||
}
|
||||
grub_free (prev);
|
||||
prev = name;
|
||||
}
|
||||
else
|
||||
{
|
||||
int restart = 0;
|
||||
err = handle_symlink (data, arcops, name,
|
||||
&path, mode, &restart);
|
||||
grub_free (name);
|
||||
if (err)
|
||||
goto fail;
|
||||
if (restart)
|
||||
{
|
||||
len = grub_strlen (path);
|
||||
if (++symlinknest == 8)
|
||||
{
|
||||
grub_error (GRUB_ERR_SYMLINK_LOOP,
|
||||
N_("too deep nesting of symlinks"));
|
||||
goto fail;
|
||||
}
|
||||
arcops->rewind (data);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
grub_free (name);
|
||||
}
|
||||
|
||||
fail:
|
||||
|
||||
grub_free (path);
|
||||
grub_free (prev);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
grub_err_t
|
||||
grub_archelp_open (struct grub_archelp_data *data,
|
||||
struct grub_archelp_ops *arcops,
|
||||
const char *name_in)
|
||||
{
|
||||
char *fn;
|
||||
char *name = grub_strdup (name_in + 1);
|
||||
int symlinknest = 0;
|
||||
|
||||
if (!name)
|
||||
return grub_errno;
|
||||
|
||||
canonicalize (name);
|
||||
|
||||
while (1)
|
||||
{
|
||||
grub_uint32_t mode;
|
||||
int restart;
|
||||
|
||||
if (arcops->find_file (data, &fn, NULL, &mode))
|
||||
goto fail;
|
||||
|
||||
if (mode == GRUB_ARCHELP_ATTR_END)
|
||||
{
|
||||
grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("file `%s' not found"), name_in);
|
||||
break;
|
||||
}
|
||||
|
||||
canonicalize (fn);
|
||||
|
||||
if (handle_symlink (data, arcops, fn, &name, mode, &restart))
|
||||
{
|
||||
grub_free (fn);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (restart)
|
||||
{
|
||||
arcops->rewind (data);
|
||||
if (++symlinknest == 8)
|
||||
{
|
||||
grub_error (GRUB_ERR_SYMLINK_LOOP,
|
||||
N_("too deep nesting of symlinks"));
|
||||
goto fail;
|
||||
}
|
||||
goto no_match;
|
||||
}
|
||||
|
||||
if (grub_strcmp (name, fn) != 0)
|
||||
goto no_match;
|
||||
|
||||
grub_free (fn);
|
||||
grub_free (name);
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
|
||||
no_match:
|
||||
|
||||
grub_free (fn);
|
||||
}
|
||||
|
||||
fail:
|
||||
grub_free (name);
|
||||
|
||||
return grub_errno;
|
||||
}
|
382
grub-core/fs/cbfs.c
Normal file
382
grub-core/fs/cbfs.c
Normal file
|
@ -0,0 +1,382 @@
|
|||
/* cbfs.c - cbfs and tar filesystem. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/misc.h>
|
||||
#include <grub/disk.h>
|
||||
#include <grub/archelp.h>
|
||||
|
||||
#include <grub/file.h>
|
||||
#include <grub/mm.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/cbfs_core.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
|
||||
struct grub_archelp_data
|
||||
{
|
||||
grub_disk_t disk;
|
||||
grub_off_t hofs, next_hofs;
|
||||
grub_off_t dofs;
|
||||
grub_off_t size;
|
||||
grub_off_t cbfs_start;
|
||||
grub_off_t cbfs_end;
|
||||
grub_off_t cbfs_align;
|
||||
};
|
||||
|
||||
static grub_err_t
|
||||
grub_cbfs_find_file (struct grub_archelp_data *data, char **name,
|
||||
grub_int32_t *mtime,
|
||||
grub_uint32_t *mode)
|
||||
{
|
||||
grub_size_t offset;
|
||||
for (;;
|
||||
data->dofs = data->hofs + offset,
|
||||
data->next_hofs = ALIGN_UP (data->dofs + data->size, data->cbfs_align))
|
||||
{
|
||||
struct cbfs_file hd;
|
||||
grub_size_t namesize;
|
||||
|
||||
data->hofs = data->next_hofs;
|
||||
|
||||
if (data->hofs >= data->cbfs_end)
|
||||
{
|
||||
*mode = GRUB_ARCHELP_ATTR_END;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
if (grub_disk_read (data->disk, 0, data->hofs, sizeof (hd), &hd))
|
||||
return grub_errno;
|
||||
|
||||
if (grub_memcmp (hd.magic, CBFS_FILE_MAGIC, sizeof (hd.magic)) != 0)
|
||||
{
|
||||
*mode = GRUB_ARCHELP_ATTR_END;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
data->size = grub_be_to_cpu32 (hd.len);
|
||||
(void) mtime;
|
||||
offset = grub_be_to_cpu32 (hd.offset);
|
||||
|
||||
if (mode)
|
||||
*mode = GRUB_ARCHELP_ATTR_FILE | GRUB_ARCHELP_ATTR_NOTIME;
|
||||
|
||||
namesize = offset;
|
||||
if (namesize >= sizeof (hd))
|
||||
namesize -= sizeof (hd);
|
||||
if (namesize == 0)
|
||||
continue;
|
||||
*name = grub_malloc (namesize + 1);
|
||||
if (*name == NULL)
|
||||
return grub_errno;
|
||||
|
||||
if (grub_disk_read (data->disk, 0, data->hofs + sizeof (hd),
|
||||
namesize, *name))
|
||||
{
|
||||
grub_free (*name);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
if ((*name)[0] == '\0')
|
||||
{
|
||||
grub_free (*name);
|
||||
*name = NULL;
|
||||
continue;
|
||||
}
|
||||
|
||||
(*name)[namesize] = 0;
|
||||
|
||||
data->dofs = data->hofs + offset;
|
||||
data->next_hofs = ALIGN_UP (data->dofs + data->size, data->cbfs_align);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
grub_cbfs_rewind (struct grub_archelp_data *data)
|
||||
{
|
||||
data->next_hofs = data->cbfs_start;
|
||||
}
|
||||
|
||||
static struct grub_archelp_ops arcops =
|
||||
{
|
||||
.find_file = grub_cbfs_find_file,
|
||||
.rewind = grub_cbfs_rewind
|
||||
};
|
||||
|
||||
static int
|
||||
validate_head (struct cbfs_header *head)
|
||||
{
|
||||
return (head->magic == grub_cpu_to_be32_compile_time (CBFS_HEADER_MAGIC)
|
||||
&& (head->version
|
||||
== grub_cpu_to_be32_compile_time (CBFS_HEADER_VERSION1)
|
||||
|| head->version
|
||||
== grub_cpu_to_be32_compile_time (CBFS_HEADER_VERSION2))
|
||||
&& (grub_be_to_cpu32 (head->bootblocksize)
|
||||
< grub_be_to_cpu32 (head->romsize))
|
||||
&& (grub_be_to_cpu32 (head->offset)
|
||||
< grub_be_to_cpu32 (head->romsize))
|
||||
&& (grub_be_to_cpu32 (head->offset)
|
||||
+ grub_be_to_cpu32 (head->bootblocksize)
|
||||
< grub_be_to_cpu32 (head->romsize))
|
||||
&& head->align != 0
|
||||
&& (head->align & (head->align - 1)) == 0
|
||||
&& head->romsize != 0);
|
||||
}
|
||||
|
||||
static struct grub_archelp_data *
|
||||
grub_cbfs_mount (grub_disk_t disk)
|
||||
{
|
||||
struct cbfs_file hd;
|
||||
struct grub_archelp_data *data;
|
||||
grub_uint32_t ptr;
|
||||
grub_off_t header_off;
|
||||
struct cbfs_header head;
|
||||
|
||||
if (grub_disk_read (disk, grub_disk_get_size (disk) - 1,
|
||||
GRUB_DISK_SECTOR_SIZE - sizeof (ptr),
|
||||
sizeof (ptr), &ptr))
|
||||
goto fail;
|
||||
|
||||
ptr = grub_cpu_to_le32 (ptr);
|
||||
header_off = (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS)
|
||||
+ (grub_int32_t) ptr;
|
||||
|
||||
if (grub_disk_read (disk, 0, header_off,
|
||||
sizeof (head), &head))
|
||||
goto fail;
|
||||
|
||||
if (!validate_head (&head))
|
||||
goto fail;
|
||||
|
||||
data = (struct grub_archelp_data *) grub_zalloc (sizeof (*data));
|
||||
if (!data)
|
||||
goto fail;
|
||||
|
||||
data->cbfs_start = (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS)
|
||||
- (grub_be_to_cpu32 (head.romsize) - grub_be_to_cpu32 (head.offset));
|
||||
data->cbfs_end = (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS)
|
||||
- grub_be_to_cpu32 (head.bootblocksize);
|
||||
data->cbfs_align = grub_be_to_cpu32 (head.align);
|
||||
|
||||
if (data->cbfs_start >= (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS))
|
||||
goto fail;
|
||||
if (data->cbfs_end > (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS))
|
||||
data->cbfs_end = (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS);
|
||||
|
||||
data->next_hofs = data->cbfs_start;
|
||||
|
||||
if (grub_disk_read (disk, 0, data->cbfs_start, sizeof (hd), &hd))
|
||||
goto fail;
|
||||
|
||||
if (grub_memcmp (hd.magic, CBFS_FILE_MAGIC, sizeof (CBFS_FILE_MAGIC) - 1))
|
||||
goto fail;
|
||||
|
||||
data->disk = disk;
|
||||
|
||||
return data;
|
||||
|
||||
fail:
|
||||
grub_error (GRUB_ERR_BAD_FS, "not a cbfs filesystem");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cbfs_dir (grub_device_t device, const char *path_in,
|
||||
grub_fs_dir_hook_t hook, void *hook_data)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
grub_err_t err;
|
||||
|
||||
data = grub_cbfs_mount (device->disk);
|
||||
if (!data)
|
||||
return grub_errno;
|
||||
|
||||
err = grub_archelp_dir (data, &arcops,
|
||||
path_in, hook, hook_data);
|
||||
|
||||
grub_free (data);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cbfs_open (grub_file_t file, const char *name_in)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
grub_err_t err;
|
||||
|
||||
data = grub_cbfs_mount (file->device->disk);
|
||||
if (!data)
|
||||
return grub_errno;
|
||||
|
||||
err = grub_archelp_open (data, &arcops, name_in);
|
||||
if (err)
|
||||
{
|
||||
grub_free (data);
|
||||
}
|
||||
else
|
||||
{
|
||||
file->data = data;
|
||||
file->size = data->size;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
static grub_ssize_t
|
||||
grub_cbfs_read (grub_file_t file, char *buf, grub_size_t len)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
|
||||
data = file->data;
|
||||
return (grub_disk_read (data->disk, 0, data->dofs + file->offset,
|
||||
len, buf)) ? -1 : (grub_ssize_t) len;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cbfs_close (grub_file_t file)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
|
||||
data = file->data;
|
||||
grub_free (data);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
#if (defined (__i386__) || defined (__x86_64__)) && !defined (GRUB_UTIL) && !defined (GRUB_MACHINE_EMU)
|
||||
|
||||
static char *cbfsdisk_addr;
|
||||
static grub_off_t cbfsdisk_size = 0;
|
||||
|
||||
static int
|
||||
grub_cbfsdisk_iterate (grub_disk_dev_iterate_hook_t hook, void *hook_data,
|
||||
grub_disk_pull_t pull)
|
||||
{
|
||||
if (pull != GRUB_DISK_PULL_NONE)
|
||||
return 0;
|
||||
|
||||
return hook ("cbfsdisk", hook_data);
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cbfsdisk_open (const char *name, grub_disk_t disk)
|
||||
{
|
||||
if (grub_strcmp (name, "cbfsdisk"))
|
||||
return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "not a cbfsdisk");
|
||||
|
||||
disk->total_sectors = cbfsdisk_size / GRUB_DISK_SECTOR_SIZE;
|
||||
disk->id = (unsigned long) "cbfs";
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static void
|
||||
grub_cbfsdisk_close (grub_disk_t disk __attribute((unused)))
|
||||
{
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cbfsdisk_read (grub_disk_t disk __attribute((unused)),
|
||||
grub_disk_addr_t sector,
|
||||
grub_size_t size, char *buf)
|
||||
{
|
||||
grub_memcpy (buf, cbfsdisk_addr + (sector << GRUB_DISK_SECTOR_BITS),
|
||||
size << GRUB_DISK_SECTOR_BITS);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cbfsdisk_write (grub_disk_t disk __attribute__ ((unused)),
|
||||
grub_disk_addr_t sector __attribute__ ((unused)),
|
||||
grub_size_t size __attribute__ ((unused)),
|
||||
const char *buf __attribute__ ((unused)))
|
||||
{
|
||||
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
|
||||
"rom flashing isn't implemented yet");
|
||||
}
|
||||
|
||||
static struct grub_disk_dev grub_cbfsdisk_dev =
|
||||
{
|
||||
.name = "cbfsdisk",
|
||||
.id = GRUB_DISK_DEVICE_CBFSDISK_ID,
|
||||
.iterate = grub_cbfsdisk_iterate,
|
||||
.open = grub_cbfsdisk_open,
|
||||
.close = grub_cbfsdisk_close,
|
||||
.read = grub_cbfsdisk_read,
|
||||
.write = grub_cbfsdisk_write,
|
||||
.next = 0
|
||||
};
|
||||
|
||||
static void
|
||||
init_cbfsdisk (void)
|
||||
{
|
||||
grub_uint32_t ptr;
|
||||
struct cbfs_header *head;
|
||||
|
||||
ptr = *(grub_uint32_t *) 0xfffffffc;
|
||||
head = (struct cbfs_header *) (grub_addr_t) ptr;
|
||||
|
||||
if (!validate_head (head))
|
||||
return;
|
||||
|
||||
cbfsdisk_size = ALIGN_UP (grub_be_to_cpu32 (head->romsize),
|
||||
GRUB_DISK_SECTOR_SIZE);
|
||||
cbfsdisk_addr = (void *) (grub_addr_t) (0x100000000ULL - cbfsdisk_size);
|
||||
|
||||
grub_disk_dev_register (&grub_cbfsdisk_dev);
|
||||
}
|
||||
|
||||
static void
|
||||
fini_cbfsdisk (void)
|
||||
{
|
||||
if (! cbfsdisk_size)
|
||||
return;
|
||||
grub_disk_dev_unregister (&grub_cbfsdisk_dev);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static struct grub_fs grub_cbfs_fs = {
|
||||
.name = "cbfs",
|
||||
.dir = grub_cbfs_dir,
|
||||
.open = grub_cbfs_open,
|
||||
.read = grub_cbfs_read,
|
||||
.close = grub_cbfs_close,
|
||||
#ifdef GRUB_UTIL
|
||||
.reserved_first_sector = 0,
|
||||
.blocklist_install = 0,
|
||||
#endif
|
||||
};
|
||||
|
||||
GRUB_MOD_INIT (cbfs)
|
||||
{
|
||||
#if (defined (__i386__) || defined (__x86_64__)) && !defined (GRUB_UTIL) && !defined (GRUB_MACHINE_EMU)
|
||||
init_cbfsdisk ();
|
||||
#endif
|
||||
grub_fs_register (&grub_cbfs_fs);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI (cbfs)
|
||||
{
|
||||
grub_fs_unregister (&grub_cbfs_fs);
|
||||
#if (defined (__i386__) || defined (__x86_64__)) && !defined (GRUB_UTIL) && !defined (GRUB_MACHINE_EMU)
|
||||
fini_cbfsdisk ();
|
||||
#endif
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
/* cpio.c - cpio and tar filesystem. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,2009 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -17,66 +17,11 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/file.h>
|
||||
#include <grub/mm.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/disk.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/i18n.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
#define ATTR_TYPE 0160000
|
||||
#define ATTR_FILE 0100000
|
||||
#define ATTR_DIR 0040000
|
||||
#define ATTR_LNK 0120000
|
||||
|
||||
#ifdef MODE_ODC
|
||||
#define ALIGN_CPIO(x) x
|
||||
#define MAGIC "070707"
|
||||
struct head
|
||||
{
|
||||
char magic[6];
|
||||
char dev[6];
|
||||
char ino[6];
|
||||
char mode[6];
|
||||
char uid[6];
|
||||
char gid[6];
|
||||
char nlink[6];
|
||||
char rdev[6];
|
||||
char mtime[11];
|
||||
char namesize[6];
|
||||
char filesize[11];
|
||||
} __attribute__ ((packed));
|
||||
#elif defined (MODE_NEWC)
|
||||
#define ALIGN_CPIO(x) (ALIGN_UP ((x), 4))
|
||||
#define MAGIC "070701"
|
||||
#define MAGIC2 "070702"
|
||||
struct head
|
||||
{
|
||||
char magic[6];
|
||||
char ino[8];
|
||||
char mode[8];
|
||||
char uid[8];
|
||||
char gid[8];
|
||||
char nlink[8];
|
||||
char mtime[8];
|
||||
char filesize[8];
|
||||
char devmajor[8];
|
||||
char devminor[8];
|
||||
char rdevmajor[8];
|
||||
char rdevminor[8];
|
||||
char namesize[8];
|
||||
char check[8];
|
||||
} __attribute__ ((packed));
|
||||
#elif !defined (MODE_USTAR)
|
||||
/* cpio support */
|
||||
#define ALIGN_CPIO(x) (ALIGN_UP ((x), 2))
|
||||
#ifdef MODE_BIGENDIAN
|
||||
#define MAGIC "\x71\xc7"
|
||||
#else
|
||||
#define MAGIC "\xc7\x71"
|
||||
#endif
|
||||
struct head
|
||||
{
|
||||
grub_uint16_t magic[1];
|
||||
|
@ -91,693 +36,26 @@ struct head
|
|||
grub_uint16_t namesize[1];
|
||||
grub_uint16_t filesize[2];
|
||||
} __attribute__ ((packed));
|
||||
#else
|
||||
/* tar support */
|
||||
#define MAGIC "ustar"
|
||||
struct head
|
||||
{
|
||||
char name[100];
|
||||
char mode[8];
|
||||
char uid[8];
|
||||
char gid[8];
|
||||
char size[12];
|
||||
char mtime[12];
|
||||
char chksum[8];
|
||||
char typeflag;
|
||||
char linkname[100];
|
||||
char magic[6];
|
||||
char version[2];
|
||||
char uname[32];
|
||||
char gname[32];
|
||||
char devmajor[8];
|
||||
char devminor[8];
|
||||
char prefix[155];
|
||||
} __attribute__ ((packed));
|
||||
#endif
|
||||
|
||||
struct grub_cpio_data
|
||||
{
|
||||
grub_disk_t disk;
|
||||
grub_off_t hofs;
|
||||
grub_off_t dofs;
|
||||
grub_off_t size;
|
||||
#ifdef MODE_USTAR
|
||||
char *linkname;
|
||||
grub_size_t linkname_alloc;
|
||||
#endif
|
||||
};
|
||||
|
||||
static grub_dl_t my_mod;
|
||||
|
||||
static inline void
|
||||
canonicalize (char *name)
|
||||
{
|
||||
char *iptr, *optr;
|
||||
for (iptr = name, optr = name; *iptr; )
|
||||
{
|
||||
while (*iptr == '/')
|
||||
iptr++;
|
||||
if (iptr[0] == '.' && (iptr[1] == '/' || iptr[1] == 0))
|
||||
{
|
||||
iptr += 2;
|
||||
continue;
|
||||
}
|
||||
if (iptr[0] == '.' && iptr[1] == '.' && (iptr[2] == '/' || iptr[2] == 0))
|
||||
{
|
||||
iptr += 3;
|
||||
if (optr == name)
|
||||
continue;
|
||||
for (optr -= 2; optr >= name && *optr != '/'; optr--);
|
||||
optr++;
|
||||
continue;
|
||||
}
|
||||
while (*iptr && *iptr != '/')
|
||||
*optr++ = *iptr++;
|
||||
if (*iptr)
|
||||
*optr++ = *iptr++;
|
||||
}
|
||||
*optr = 0;
|
||||
}
|
||||
|
||||
#if defined (MODE_ODC) || defined (MODE_USTAR)
|
||||
static inline unsigned long long
|
||||
read_number (const char *str, grub_size_t size)
|
||||
{
|
||||
unsigned long long ret = 0;
|
||||
while (size-- && *str >= '0' && *str <= '7')
|
||||
ret = (ret << 3) | (*str++ & 0xf);
|
||||
return ret;
|
||||
}
|
||||
#elif defined (MODE_NEWC)
|
||||
static inline unsigned long long
|
||||
read_number (const char *str, grub_size_t size)
|
||||
{
|
||||
unsigned long long ret = 0;
|
||||
while (size-- && grub_isxdigit (*str))
|
||||
{
|
||||
char dig = *str++;
|
||||
if (dig >= '0' && dig <= '9')
|
||||
dig &= 0xf;
|
||||
else if (dig >= 'a' && dig <= 'f')
|
||||
dig -= 'a' - 10;
|
||||
else
|
||||
dig -= 'A' - 10;
|
||||
ret = (ret << 4) | (dig);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
static inline unsigned long long
|
||||
read_number (const grub_uint16_t *arr, grub_size_t size)
|
||||
{
|
||||
long long ret = 0;
|
||||
#ifdef MODE_BIGENDIAN
|
||||
while (size--)
|
||||
ret = (ret << 16) | grub_be_to_cpu16 (*arr++);
|
||||
#else
|
||||
while (size--)
|
||||
ret = (ret << 16) | grub_le_to_cpu16 (*arr++);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_find_file (struct grub_cpio_data *data, char **name,
|
||||
grub_int32_t *mtime, grub_disk_addr_t *ofs,
|
||||
grub_uint32_t *mode)
|
||||
{
|
||||
#ifndef MODE_USTAR
|
||||
struct head hd;
|
||||
grub_size_t namesize;
|
||||
grub_uint32_t modeval;
|
||||
#define FSNAME "cpiofs"
|
||||
|
||||
if (grub_disk_read (data->disk, 0, data->hofs, sizeof (hd), &hd))
|
||||
return grub_errno;
|
||||
#include "cpio_common.c"
|
||||
|
||||
if (grub_memcmp (hd.magic, MAGIC, sizeof (hd.magic)) != 0
|
||||
#ifdef MAGIC2
|
||||
&& grub_memcmp (hd.magic, MAGIC2, sizeof (hd.magic)) != 0
|
||||
#endif
|
||||
)
|
||||
return grub_error (GRUB_ERR_BAD_FS, "invalid cpio archive");
|
||||
data->size = read_number (hd.filesize, ARRAY_SIZE (hd.filesize));
|
||||
if (mtime)
|
||||
*mtime = read_number (hd.mtime, ARRAY_SIZE (hd.mtime));
|
||||
modeval = read_number (hd.mode, ARRAY_SIZE (hd.mode));
|
||||
namesize = read_number (hd.namesize, ARRAY_SIZE (hd.namesize));
|
||||
|
||||
if (mode)
|
||||
*mode = modeval;
|
||||
|
||||
*name = grub_malloc (namesize + 1);
|
||||
if (*name == NULL)
|
||||
return grub_errno;
|
||||
|
||||
if (grub_disk_read (data->disk, 0, data->hofs + sizeof (hd),
|
||||
namesize, *name))
|
||||
{
|
||||
grub_free (*name);
|
||||
return grub_errno;
|
||||
}
|
||||
(*name)[namesize] = 0;
|
||||
|
||||
if (data->size == 0 && modeval == 0 && namesize == 11
|
||||
&& grub_memcmp(*name, "TRAILER!!!", 11) == 0)
|
||||
{
|
||||
*ofs = 0;
|
||||
grub_free (*name);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
canonicalize (*name);
|
||||
|
||||
data->dofs = data->hofs + ALIGN_CPIO (sizeof (hd) + namesize);
|
||||
*ofs = data->dofs + ALIGN_CPIO (data->size);
|
||||
#else
|
||||
struct head hd;
|
||||
int reread = 0, have_longname = 0, have_longlink = 0;
|
||||
|
||||
for (reread = 0; reread < 3; reread++)
|
||||
{
|
||||
if (grub_disk_read (data->disk, 0, data->hofs, sizeof (hd), &hd))
|
||||
return grub_errno;
|
||||
|
||||
if (!hd.name[0] && !hd.prefix[0])
|
||||
{
|
||||
*ofs = 0;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
if (grub_memcmp (hd.magic, MAGIC, sizeof (MAGIC) - 1))
|
||||
return grub_error (GRUB_ERR_BAD_FS, "invalid tar archive");
|
||||
|
||||
if (hd.typeflag == 'L')
|
||||
{
|
||||
grub_err_t err;
|
||||
grub_size_t namesize = read_number (hd.size, sizeof (hd.size));
|
||||
*name = grub_malloc (namesize + 1);
|
||||
if (*name == NULL)
|
||||
return grub_errno;
|
||||
err = grub_disk_read (data->disk, 0,
|
||||
data->hofs + GRUB_DISK_SECTOR_SIZE, namesize,
|
||||
*name);
|
||||
(*name)[namesize] = 0;
|
||||
if (err)
|
||||
return err;
|
||||
data->hofs += GRUB_DISK_SECTOR_SIZE
|
||||
+ ((namesize + GRUB_DISK_SECTOR_SIZE - 1) &
|
||||
~(GRUB_DISK_SECTOR_SIZE - 1));
|
||||
have_longname = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (hd.typeflag == 'K')
|
||||
{
|
||||
grub_err_t err;
|
||||
grub_size_t linksize = read_number (hd.size, sizeof (hd.size));
|
||||
if (data->linkname_alloc < linksize + 1)
|
||||
{
|
||||
char *n;
|
||||
n = grub_malloc (2 * (linksize + 1));
|
||||
if (!n)
|
||||
return grub_errno;
|
||||
grub_free (data->linkname);
|
||||
data->linkname = n;
|
||||
data->linkname_alloc = 2 * (linksize + 1);
|
||||
}
|
||||
|
||||
err = grub_disk_read (data->disk, 0,
|
||||
data->hofs + GRUB_DISK_SECTOR_SIZE, linksize,
|
||||
data->linkname);
|
||||
if (err)
|
||||
return err;
|
||||
data->linkname[linksize] = 0;
|
||||
data->hofs += GRUB_DISK_SECTOR_SIZE
|
||||
+ ((linksize + GRUB_DISK_SECTOR_SIZE - 1) &
|
||||
~(GRUB_DISK_SECTOR_SIZE - 1));
|
||||
have_longlink = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!have_longname)
|
||||
{
|
||||
grub_size_t extra_size = 0;
|
||||
|
||||
while (extra_size < sizeof (hd.prefix)
|
||||
&& hd.prefix[extra_size])
|
||||
extra_size++;
|
||||
*name = grub_malloc (sizeof (hd.name) + extra_size + 2);
|
||||
if (*name == NULL)
|
||||
return grub_errno;
|
||||
if (hd.prefix[0])
|
||||
{
|
||||
grub_memcpy (*name, hd.prefix, extra_size);
|
||||
(*name)[extra_size++] = '/';
|
||||
}
|
||||
grub_memcpy (*name + extra_size, hd.name, sizeof (hd.name));
|
||||
(*name)[extra_size + sizeof (hd.name)] = 0;
|
||||
}
|
||||
|
||||
data->size = read_number (hd.size, sizeof (hd.size));
|
||||
data->dofs = data->hofs + GRUB_DISK_SECTOR_SIZE;
|
||||
*ofs = data->dofs + ((data->size + GRUB_DISK_SECTOR_SIZE - 1) &
|
||||
~(GRUB_DISK_SECTOR_SIZE - 1));
|
||||
if (mtime)
|
||||
*mtime = read_number (hd.mtime, sizeof (hd.mtime));
|
||||
if (mode)
|
||||
{
|
||||
*mode = read_number (hd.mode, sizeof (hd.mode));
|
||||
switch (hd.typeflag)
|
||||
{
|
||||
/* Hardlink. */
|
||||
case '1':
|
||||
/* Symlink. */
|
||||
case '2':
|
||||
*mode |= ATTR_LNK;
|
||||
break;
|
||||
case '0':
|
||||
*mode |= ATTR_FILE;
|
||||
break;
|
||||
case '5':
|
||||
*mode |= ATTR_DIR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!have_longlink)
|
||||
{
|
||||
if (data->linkname_alloc < 101)
|
||||
{
|
||||
char *n;
|
||||
n = grub_malloc (101);
|
||||
if (!n)
|
||||
return grub_errno;
|
||||
grub_free (data->linkname);
|
||||
data->linkname = n;
|
||||
data->linkname_alloc = 101;
|
||||
}
|
||||
grub_memcpy (data->linkname, hd.linkname, sizeof (hd.linkname));
|
||||
data->linkname[100] = 0;
|
||||
}
|
||||
|
||||
canonicalize (*name);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
#endif
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static struct grub_cpio_data *
|
||||
grub_cpio_mount (grub_disk_t disk)
|
||||
{
|
||||
struct head hd;
|
||||
struct grub_cpio_data *data;
|
||||
|
||||
if (grub_disk_read (disk, 0, 0, sizeof (hd), &hd))
|
||||
goto fail;
|
||||
|
||||
if (grub_memcmp (hd.magic, MAGIC, sizeof (MAGIC) - 1)
|
||||
#ifdef MAGIC2
|
||||
&& grub_memcmp (hd.magic, MAGIC2, sizeof (MAGIC2) - 1)
|
||||
#endif
|
||||
)
|
||||
goto fail;
|
||||
|
||||
data = (struct grub_cpio_data *) grub_zalloc (sizeof (*data));
|
||||
if (!data)
|
||||
goto fail;
|
||||
|
||||
data->disk = disk;
|
||||
|
||||
return data;
|
||||
|
||||
fail:
|
||||
grub_error (GRUB_ERR_BAD_FS, "not a "
|
||||
#ifdef MODE_USTAR
|
||||
"tar"
|
||||
#else
|
||||
"cpio"
|
||||
#endif
|
||||
" filesystem");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
handle_symlink (struct grub_cpio_data *data,
|
||||
const char *fn, char **name,
|
||||
grub_uint32_t mode, int *restart)
|
||||
{
|
||||
grub_size_t flen;
|
||||
char *target;
|
||||
#ifndef MODE_USTAR
|
||||
grub_err_t err;
|
||||
#endif
|
||||
char *ptr;
|
||||
char *lastslash;
|
||||
grub_size_t prefixlen;
|
||||
char *rest;
|
||||
grub_size_t size;
|
||||
|
||||
*restart = 0;
|
||||
|
||||
if ((mode & ATTR_TYPE) != ATTR_LNK)
|
||||
return GRUB_ERR_NONE;
|
||||
flen = grub_strlen (fn);
|
||||
if (grub_memcmp (*name, fn, flen) != 0
|
||||
|| ((*name)[flen] != 0 && (*name)[flen] != '/'))
|
||||
return GRUB_ERR_NONE;
|
||||
rest = *name + flen;
|
||||
lastslash = rest;
|
||||
if (*rest)
|
||||
rest++;
|
||||
while (lastslash >= *name && *lastslash != '/')
|
||||
lastslash--;
|
||||
if (lastslash >= *name)
|
||||
prefixlen = lastslash - *name;
|
||||
else
|
||||
prefixlen = 0;
|
||||
|
||||
if (prefixlen)
|
||||
prefixlen++;
|
||||
|
||||
#ifdef MODE_USTAR
|
||||
size = grub_strlen (data->linkname);
|
||||
#else
|
||||
size = data->size;
|
||||
#endif
|
||||
if (size == 0)
|
||||
return GRUB_ERR_NONE;
|
||||
target = grub_malloc (size + grub_strlen (*name) + 2);
|
||||
if (!target)
|
||||
return grub_errno;
|
||||
|
||||
#ifdef MODE_USTAR
|
||||
grub_memcpy (target + prefixlen, data->linkname, size);
|
||||
#else
|
||||
err = grub_disk_read (data->disk, 0, data->dofs, data->size,
|
||||
target + prefixlen);
|
||||
if (err)
|
||||
return err;
|
||||
#endif
|
||||
if (target[prefixlen] == '/')
|
||||
{
|
||||
grub_memmove (target, target + prefixlen, size);
|
||||
ptr = target + size;
|
||||
ptr = grub_stpcpy (ptr, rest);
|
||||
*ptr = 0;
|
||||
grub_dprintf ("cpio", "symlink redirected %s to %s\n",
|
||||
*name, target);
|
||||
grub_free (*name);
|
||||
|
||||
canonicalize (target);
|
||||
*name = target;
|
||||
*restart = 1;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
if (prefixlen)
|
||||
{
|
||||
grub_memcpy (target, *name, prefixlen);
|
||||
target[prefixlen-1] = '/';
|
||||
}
|
||||
ptr = target + prefixlen + size;
|
||||
ptr = grub_stpcpy (ptr, rest);
|
||||
*ptr = 0;
|
||||
grub_dprintf ("cpio", "symlink redirected %s to %s\n",
|
||||
*name, target);
|
||||
grub_free (*name);
|
||||
canonicalize (target);
|
||||
*name = target;
|
||||
*restart = 1;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_dir (grub_device_t device, const char *path_in,
|
||||
grub_fs_dir_hook_t hook, void *hook_data)
|
||||
{
|
||||
struct grub_cpio_data *data;
|
||||
grub_disk_addr_t ofs;
|
||||
char *prev, *name, *path, *ptr;
|
||||
grub_size_t len;
|
||||
int symlinknest = 0;
|
||||
|
||||
path = grub_strdup (path_in + 1);
|
||||
if (!path)
|
||||
return grub_errno;
|
||||
canonicalize (path);
|
||||
for (ptr = path + grub_strlen (path) - 1; ptr >= path && *ptr == '/'; ptr--)
|
||||
*ptr = 0;
|
||||
|
||||
grub_dl_ref (my_mod);
|
||||
|
||||
prev = 0;
|
||||
|
||||
data = grub_cpio_mount (device->disk);
|
||||
if (!data)
|
||||
{
|
||||
grub_free (path);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
len = grub_strlen (path);
|
||||
data->hofs = 0;
|
||||
while (1)
|
||||
{
|
||||
grub_int32_t mtime;
|
||||
grub_uint32_t mode;
|
||||
grub_err_t err;
|
||||
|
||||
if (grub_cpio_find_file (data, &name, &mtime, &ofs, &mode))
|
||||
goto fail;
|
||||
|
||||
if (!ofs)
|
||||
break;
|
||||
|
||||
if (grub_memcmp (path, name, len) == 0
|
||||
&& (name[len] == 0 || name[len] == '/' || len == 0))
|
||||
{
|
||||
char *p, *n;
|
||||
|
||||
n = name + len;
|
||||
while (*n == '/')
|
||||
n++;
|
||||
|
||||
p = grub_strchr (n, '/');
|
||||
if (p)
|
||||
*p = 0;
|
||||
|
||||
if (((!prev) || (grub_strcmp (prev, name) != 0)) && *n != 0)
|
||||
{
|
||||
struct grub_dirhook_info info;
|
||||
grub_memset (&info, 0, sizeof (info));
|
||||
info.dir = (p != NULL) || ((mode & ATTR_TYPE) == ATTR_DIR);
|
||||
info.mtime = mtime;
|
||||
info.mtimeset = 1;
|
||||
|
||||
if (hook (n, &info, hook_data))
|
||||
{
|
||||
grub_free (name);
|
||||
goto fail;
|
||||
}
|
||||
grub_free (prev);
|
||||
prev = name;
|
||||
}
|
||||
else
|
||||
{
|
||||
int restart = 0;
|
||||
err = handle_symlink (data, name, &path, mode, &restart);
|
||||
grub_free (name);
|
||||
if (err)
|
||||
goto fail;
|
||||
if (restart)
|
||||
{
|
||||
len = grub_strlen (path);
|
||||
if (++symlinknest == 8)
|
||||
{
|
||||
grub_error (GRUB_ERR_SYMLINK_LOOP,
|
||||
N_("too deep nesting of symlinks"));
|
||||
goto fail;
|
||||
}
|
||||
ofs = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
grub_free (name);
|
||||
data->hofs = ofs;
|
||||
}
|
||||
|
||||
fail:
|
||||
|
||||
grub_free (path);
|
||||
grub_free (prev);
|
||||
#ifdef MODE_USTAR
|
||||
grub_free (data->linkname);
|
||||
#endif
|
||||
grub_free (data);
|
||||
|
||||
grub_dl_unref (my_mod);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_open (grub_file_t file, const char *name_in)
|
||||
{
|
||||
struct grub_cpio_data *data;
|
||||
grub_disk_addr_t ofs;
|
||||
char *fn;
|
||||
char *name = grub_strdup (name_in + 1);
|
||||
int symlinknest = 0;
|
||||
|
||||
if (!name)
|
||||
return grub_errno;
|
||||
|
||||
canonicalize (name);
|
||||
|
||||
grub_dl_ref (my_mod);
|
||||
|
||||
data = grub_cpio_mount (file->device->disk);
|
||||
if (!data)
|
||||
{
|
||||
grub_free (name);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
data->hofs = 0;
|
||||
while (1)
|
||||
{
|
||||
grub_uint32_t mode;
|
||||
int restart;
|
||||
|
||||
if (grub_cpio_find_file (data, &fn, NULL, &ofs, &mode))
|
||||
goto fail;
|
||||
|
||||
if (!ofs)
|
||||
{
|
||||
grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("file `%s' not found"), name_in);
|
||||
break;
|
||||
}
|
||||
|
||||
if (handle_symlink (data, fn, &name, mode, &restart))
|
||||
{
|
||||
grub_free (fn);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (restart)
|
||||
{
|
||||
ofs = 0;
|
||||
if (++symlinknest == 8)
|
||||
{
|
||||
grub_error (GRUB_ERR_SYMLINK_LOOP,
|
||||
N_("too deep nesting of symlinks"));
|
||||
goto fail;
|
||||
}
|
||||
goto no_match;
|
||||
}
|
||||
|
||||
if (grub_strcmp (name, fn) != 0)
|
||||
goto no_match;
|
||||
|
||||
file->data = data;
|
||||
file->size = data->size;
|
||||
grub_free (fn);
|
||||
grub_free (name);
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
|
||||
no_match:
|
||||
|
||||
grub_free (fn);
|
||||
data->hofs = ofs;
|
||||
}
|
||||
|
||||
fail:
|
||||
#ifdef MODE_USTAR
|
||||
grub_free (data->linkname);
|
||||
#endif
|
||||
grub_free (data);
|
||||
grub_free (name);
|
||||
|
||||
grub_dl_unref (my_mod);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
static grub_ssize_t
|
||||
grub_cpio_read (grub_file_t file, char *buf, grub_size_t len)
|
||||
{
|
||||
struct grub_cpio_data *data;
|
||||
|
||||
data = file->data;
|
||||
return (grub_disk_read (data->disk, 0, data->dofs + file->offset,
|
||||
len, buf)) ? -1 : (grub_ssize_t) len;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_close (grub_file_t file)
|
||||
{
|
||||
struct grub_cpio_data *data;
|
||||
|
||||
data = file->data;
|
||||
#ifdef MODE_USTAR
|
||||
grub_free (data->linkname);
|
||||
#endif
|
||||
grub_free (data);
|
||||
|
||||
grub_dl_unref (my_mod);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
static struct grub_fs grub_cpio_fs = {
|
||||
#ifdef MODE_USTAR
|
||||
.name = "tarfs",
|
||||
#elif defined (MODE_ODC)
|
||||
.name = "odc",
|
||||
#elif defined (MODE_NEWC)
|
||||
.name = "newc",
|
||||
#else
|
||||
.name = "cpiofs",
|
||||
#endif
|
||||
.dir = grub_cpio_dir,
|
||||
.open = grub_cpio_open,
|
||||
.read = grub_cpio_read,
|
||||
.close = grub_cpio_close,
|
||||
#ifdef GRUB_UTIL
|
||||
.reserved_first_sector = 0,
|
||||
.blocklist_install = 0,
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef MODE_USTAR
|
||||
GRUB_MOD_INIT (tar)
|
||||
#elif defined (MODE_ODC)
|
||||
GRUB_MOD_INIT (odc)
|
||||
#elif defined (MODE_NEWC)
|
||||
GRUB_MOD_INIT (newc)
|
||||
#elif defined (MODE_BIGENDIAN)
|
||||
GRUB_MOD_INIT (cpio_be)
|
||||
#else
|
||||
GRUB_MOD_INIT (cpio)
|
||||
#endif
|
||||
{
|
||||
grub_fs_register (&grub_cpio_fs);
|
||||
my_mod = mod;
|
||||
}
|
||||
|
||||
#ifdef MODE_USTAR
|
||||
GRUB_MOD_FINI (tar)
|
||||
#elif defined (MODE_ODC)
|
||||
GRUB_MOD_FINI (odc)
|
||||
#elif defined (MODE_NEWC)
|
||||
GRUB_MOD_FINI (newc)
|
||||
#elif defined (MODE_BIGENDIAN)
|
||||
GRUB_MOD_FINI (cpio_be)
|
||||
#else
|
||||
GRUB_MOD_FINI (cpio)
|
||||
#endif
|
||||
{
|
||||
grub_fs_unregister (&grub_cpio_fs);
|
||||
}
|
||||
|
|
|
@ -1,2 +1,61 @@
|
|||
#define MODE_BIGENDIAN 1
|
||||
#include "cpio.c"
|
||||
/* cpio.c - cpio and tar filesystem. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/misc.h>
|
||||
|
||||
#define ALIGN_CPIO(x) (ALIGN_UP ((x), 2))
|
||||
#define MAGIC "\x71\xc7"
|
||||
|
||||
struct head
|
||||
{
|
||||
grub_uint16_t magic[1];
|
||||
grub_uint16_t dev;
|
||||
grub_uint16_t ino;
|
||||
grub_uint16_t mode[1];
|
||||
grub_uint16_t uid;
|
||||
grub_uint16_t gid;
|
||||
grub_uint16_t nlink;
|
||||
grub_uint16_t rdev;
|
||||
grub_uint16_t mtime[2];
|
||||
grub_uint16_t namesize[1];
|
||||
grub_uint16_t filesize[2];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
static inline unsigned long long
|
||||
read_number (const grub_uint16_t *arr, grub_size_t size)
|
||||
{
|
||||
long long ret = 0;
|
||||
while (size--)
|
||||
ret = (ret << 16) | grub_be_to_cpu16 (*arr++);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define FSNAME "cpiofs_be"
|
||||
|
||||
#include "cpio_common.c"
|
||||
|
||||
GRUB_MOD_INIT (cpio_be)
|
||||
{
|
||||
grub_fs_register (&grub_cpio_fs);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI (cpio_be)
|
||||
{
|
||||
grub_fs_unregister (&grub_cpio_fs);
|
||||
}
|
||||
|
|
230
grub-core/fs/cpio_common.c
Normal file
230
grub-core/fs/cpio_common.c
Normal file
|
@ -0,0 +1,230 @@
|
|||
/* cpio.c - cpio and tar filesystem. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/file.h>
|
||||
#include <grub/mm.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/disk.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/archelp.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
struct grub_archelp_data
|
||||
{
|
||||
grub_disk_t disk;
|
||||
grub_off_t hofs;
|
||||
grub_off_t next_hofs;
|
||||
grub_off_t dofs;
|
||||
grub_off_t size;
|
||||
};
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_find_file (struct grub_archelp_data *data, char **name,
|
||||
grub_int32_t *mtime, grub_uint32_t *mode)
|
||||
{
|
||||
struct head hd;
|
||||
grub_size_t namesize;
|
||||
grub_uint32_t modeval;
|
||||
|
||||
data->hofs = data->next_hofs;
|
||||
|
||||
if (grub_disk_read (data->disk, 0, data->hofs, sizeof (hd), &hd))
|
||||
return grub_errno;
|
||||
|
||||
if (grub_memcmp (hd.magic, MAGIC, sizeof (hd.magic)) != 0
|
||||
#ifdef MAGIC2
|
||||
&& grub_memcmp (hd.magic, MAGIC2, sizeof (hd.magic)) != 0
|
||||
#endif
|
||||
)
|
||||
return grub_error (GRUB_ERR_BAD_FS, "invalid cpio archive");
|
||||
data->size = read_number (hd.filesize, ARRAY_SIZE (hd.filesize));
|
||||
if (mtime)
|
||||
*mtime = read_number (hd.mtime, ARRAY_SIZE (hd.mtime));
|
||||
modeval = read_number (hd.mode, ARRAY_SIZE (hd.mode));
|
||||
namesize = read_number (hd.namesize, ARRAY_SIZE (hd.namesize));
|
||||
|
||||
if (mode)
|
||||
*mode = modeval;
|
||||
|
||||
*name = grub_malloc (namesize + 1);
|
||||
if (*name == NULL)
|
||||
return grub_errno;
|
||||
|
||||
if (grub_disk_read (data->disk, 0, data->hofs + sizeof (hd),
|
||||
namesize, *name))
|
||||
{
|
||||
grub_free (*name);
|
||||
return grub_errno;
|
||||
}
|
||||
(*name)[namesize] = 0;
|
||||
|
||||
if (data->size == 0 && modeval == 0 && namesize == 11
|
||||
&& grub_memcmp(*name, "TRAILER!!!", 11) == 0)
|
||||
{
|
||||
*mode = GRUB_ARCHELP_ATTR_END;
|
||||
grub_free (*name);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
data->dofs = data->hofs + ALIGN_CPIO (sizeof (hd) + namesize);
|
||||
data->next_hofs = data->dofs + ALIGN_CPIO (data->size);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static char *
|
||||
grub_cpio_get_link_target (struct grub_archelp_data *data)
|
||||
{
|
||||
char *ret;
|
||||
grub_err_t err;
|
||||
|
||||
if (data->size == 0)
|
||||
return grub_strdup ("");
|
||||
ret = grub_malloc (data->size + 1);
|
||||
if (!ret)
|
||||
return NULL;
|
||||
|
||||
err = grub_disk_read (data->disk, 0, data->dofs, data->size,
|
||||
ret);
|
||||
if (err)
|
||||
{
|
||||
grub_free (ret);
|
||||
return NULL;
|
||||
}
|
||||
ret[data->size] = '\0';
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
grub_cpio_rewind (struct grub_archelp_data *data)
|
||||
{
|
||||
data->next_hofs = 0;
|
||||
}
|
||||
|
||||
static struct grub_archelp_ops arcops =
|
||||
{
|
||||
.find_file = grub_cpio_find_file,
|
||||
.get_link_target = grub_cpio_get_link_target,
|
||||
.rewind = grub_cpio_rewind
|
||||
};
|
||||
|
||||
static struct grub_archelp_data *
|
||||
grub_cpio_mount (grub_disk_t disk)
|
||||
{
|
||||
struct head hd;
|
||||
struct grub_archelp_data *data;
|
||||
|
||||
if (grub_disk_read (disk, 0, 0, sizeof (hd), &hd))
|
||||
goto fail;
|
||||
|
||||
if (grub_memcmp (hd.magic, MAGIC, sizeof (MAGIC) - 1)
|
||||
#ifdef MAGIC2
|
||||
&& grub_memcmp (hd.magic, MAGIC2, sizeof (MAGIC2) - 1)
|
||||
#endif
|
||||
)
|
||||
goto fail;
|
||||
|
||||
data = (struct grub_archelp_data *) grub_zalloc (sizeof (*data));
|
||||
if (!data)
|
||||
goto fail;
|
||||
|
||||
data->disk = disk;
|
||||
|
||||
return data;
|
||||
|
||||
fail:
|
||||
grub_error (GRUB_ERR_BAD_FS, "not a " FSNAME " filesystem");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_dir (grub_device_t device, const char *path_in,
|
||||
grub_fs_dir_hook_t hook, void *hook_data)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
grub_err_t err;
|
||||
|
||||
data = grub_cpio_mount (device->disk);
|
||||
if (!data)
|
||||
return grub_errno;
|
||||
|
||||
err = grub_archelp_dir (data, &arcops,
|
||||
path_in, hook, hook_data);
|
||||
|
||||
grub_free (data);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_open (grub_file_t file, const char *name_in)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
grub_err_t err;
|
||||
|
||||
data = grub_cpio_mount (file->device->disk);
|
||||
if (!data)
|
||||
return grub_errno;
|
||||
|
||||
err = grub_archelp_open (data, &arcops, name_in);
|
||||
if (err)
|
||||
{
|
||||
grub_free (data);
|
||||
}
|
||||
else
|
||||
{
|
||||
file->data = data;
|
||||
file->size = data->size;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
static grub_ssize_t
|
||||
grub_cpio_read (grub_file_t file, char *buf, grub_size_t len)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
|
||||
data = file->data;
|
||||
return (grub_disk_read (data->disk, 0, data->dofs + file->offset,
|
||||
len, buf)) ? -1 : (grub_ssize_t) len;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_close (grub_file_t file)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
|
||||
data = file->data;
|
||||
grub_free (data);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
static struct grub_fs grub_cpio_fs = {
|
||||
.name = FSNAME,
|
||||
.dir = grub_cpio_dir,
|
||||
.open = grub_cpio_open,
|
||||
.read = grub_cpio_read,
|
||||
.close = grub_cpio_close,
|
||||
#ifdef GRUB_UTIL
|
||||
.reserved_first_sector = 0,
|
||||
.blocklist_install = 0,
|
||||
#endif
|
||||
};
|
|
@ -1,2 +1,73 @@
|
|||
#define MODE_NEWC 1
|
||||
#include "cpio.c"
|
||||
/* cpio.c - cpio and tar filesystem. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/misc.h>
|
||||
|
||||
#define ALIGN_CPIO(x) (ALIGN_UP ((x), 4))
|
||||
#define MAGIC "070701"
|
||||
#define MAGIC2 "070702"
|
||||
struct head
|
||||
{
|
||||
char magic[6];
|
||||
char ino[8];
|
||||
char mode[8];
|
||||
char uid[8];
|
||||
char gid[8];
|
||||
char nlink[8];
|
||||
char mtime[8];
|
||||
char filesize[8];
|
||||
char devmajor[8];
|
||||
char devminor[8];
|
||||
char rdevmajor[8];
|
||||
char rdevminor[8];
|
||||
char namesize[8];
|
||||
char check[8];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
static inline unsigned long long
|
||||
read_number (const char *str, grub_size_t size)
|
||||
{
|
||||
unsigned long long ret = 0;
|
||||
while (size-- && grub_isxdigit (*str))
|
||||
{
|
||||
char dig = *str++;
|
||||
if (dig >= '0' && dig <= '9')
|
||||
dig &= 0xf;
|
||||
else if (dig >= 'a' && dig <= 'f')
|
||||
dig -= 'a' - 10;
|
||||
else
|
||||
dig -= 'A' - 10;
|
||||
ret = (ret << 4) | (dig);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define FSNAME "newc"
|
||||
|
||||
#include "cpio_common.c"
|
||||
|
||||
GRUB_MOD_INIT (newc)
|
||||
{
|
||||
grub_fs_register (&grub_cpio_fs);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI (newc)
|
||||
{
|
||||
grub_fs_unregister (&grub_cpio_fs);
|
||||
}
|
||||
|
|
|
@ -1,2 +1,61 @@
|
|||
#define MODE_ODC 1
|
||||
#include "cpio.c"
|
||||
/* cpio.c - cpio and tar filesystem. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/misc.h>
|
||||
|
||||
#define ALIGN_CPIO(x) x
|
||||
|
||||
#define MAGIC "070707"
|
||||
struct head
|
||||
{
|
||||
char magic[6];
|
||||
char dev[6];
|
||||
char ino[6];
|
||||
char mode[6];
|
||||
char uid[6];
|
||||
char gid[6];
|
||||
char nlink[6];
|
||||
char rdev[6];
|
||||
char mtime[11];
|
||||
char namesize[6];
|
||||
char filesize[11];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
static inline unsigned long long
|
||||
read_number (const char *str, grub_size_t size)
|
||||
{
|
||||
unsigned long long ret = 0;
|
||||
while (size-- && *str >= '0' && *str <= '7')
|
||||
ret = (ret << 3) | (*str++ & 0xf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define FSNAME "odc"
|
||||
|
||||
#include "cpio_common.c"
|
||||
|
||||
GRUB_MOD_INIT (odc)
|
||||
{
|
||||
grub_fs_register (&grub_cpio_fs);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI (odc)
|
||||
{
|
||||
grub_fs_unregister (&grub_cpio_fs);
|
||||
}
|
||||
|
|
|
@ -1,2 +1,338 @@
|
|||
#define MODE_USTAR 1
|
||||
#include "cpio.c"
|
||||
/* cpio.c - cpio and tar filesystem. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/misc.h>
|
||||
#include <grub/disk.h>
|
||||
#include <grub/archelp.h>
|
||||
|
||||
#include <grub/file.h>
|
||||
#include <grub/mm.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/i18n.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
/* tar support */
|
||||
#define MAGIC "ustar"
|
||||
struct head
|
||||
{
|
||||
char name[100];
|
||||
char mode[8];
|
||||
char uid[8];
|
||||
char gid[8];
|
||||
char size[12];
|
||||
char mtime[12];
|
||||
char chksum[8];
|
||||
char typeflag;
|
||||
char linkname[100];
|
||||
char magic[6];
|
||||
char version[2];
|
||||
char uname[32];
|
||||
char gname[32];
|
||||
char devmajor[8];
|
||||
char devminor[8];
|
||||
char prefix[155];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
static inline unsigned long long
|
||||
read_number (const char *str, grub_size_t size)
|
||||
{
|
||||
unsigned long long ret = 0;
|
||||
while (size-- && *str >= '0' && *str <= '7')
|
||||
ret = (ret << 3) | (*str++ & 0xf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct grub_archelp_data
|
||||
{
|
||||
grub_disk_t disk;
|
||||
grub_off_t hofs, next_hofs;
|
||||
grub_off_t dofs;
|
||||
grub_off_t size;
|
||||
char *linkname;
|
||||
grub_size_t linkname_alloc;
|
||||
};
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_find_file (struct grub_archelp_data *data, char **name,
|
||||
grub_int32_t *mtime,
|
||||
grub_uint32_t *mode)
|
||||
{
|
||||
struct head hd;
|
||||
int reread = 0, have_longname = 0, have_longlink = 0;
|
||||
|
||||
data->hofs = data->next_hofs;
|
||||
|
||||
for (reread = 0; reread < 3; reread++)
|
||||
{
|
||||
if (grub_disk_read (data->disk, 0, data->hofs, sizeof (hd), &hd))
|
||||
return grub_errno;
|
||||
|
||||
if (!hd.name[0] && !hd.prefix[0])
|
||||
{
|
||||
*mode = GRUB_ARCHELP_ATTR_END;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
if (grub_memcmp (hd.magic, MAGIC, sizeof (MAGIC) - 1))
|
||||
return grub_error (GRUB_ERR_BAD_FS, "invalid tar archive");
|
||||
|
||||
if (hd.typeflag == 'L')
|
||||
{
|
||||
grub_err_t err;
|
||||
grub_size_t namesize = read_number (hd.size, sizeof (hd.size));
|
||||
*name = grub_malloc (namesize + 1);
|
||||
if (*name == NULL)
|
||||
return grub_errno;
|
||||
err = grub_disk_read (data->disk, 0,
|
||||
data->hofs + GRUB_DISK_SECTOR_SIZE, namesize,
|
||||
*name);
|
||||
(*name)[namesize] = 0;
|
||||
if (err)
|
||||
return err;
|
||||
data->hofs += GRUB_DISK_SECTOR_SIZE
|
||||
+ ((namesize + GRUB_DISK_SECTOR_SIZE - 1) &
|
||||
~(GRUB_DISK_SECTOR_SIZE - 1));
|
||||
have_longname = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (hd.typeflag == 'K')
|
||||
{
|
||||
grub_err_t err;
|
||||
grub_size_t linksize = read_number (hd.size, sizeof (hd.size));
|
||||
if (data->linkname_alloc < linksize + 1)
|
||||
{
|
||||
char *n;
|
||||
n = grub_malloc (2 * (linksize + 1));
|
||||
if (!n)
|
||||
return grub_errno;
|
||||
grub_free (data->linkname);
|
||||
data->linkname = n;
|
||||
data->linkname_alloc = 2 * (linksize + 1);
|
||||
}
|
||||
|
||||
err = grub_disk_read (data->disk, 0,
|
||||
data->hofs + GRUB_DISK_SECTOR_SIZE, linksize,
|
||||
data->linkname);
|
||||
if (err)
|
||||
return err;
|
||||
data->linkname[linksize] = 0;
|
||||
data->hofs += GRUB_DISK_SECTOR_SIZE
|
||||
+ ((linksize + GRUB_DISK_SECTOR_SIZE - 1) &
|
||||
~(GRUB_DISK_SECTOR_SIZE - 1));
|
||||
have_longlink = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!have_longname)
|
||||
{
|
||||
grub_size_t extra_size = 0;
|
||||
|
||||
while (extra_size < sizeof (hd.prefix)
|
||||
&& hd.prefix[extra_size])
|
||||
extra_size++;
|
||||
*name = grub_malloc (sizeof (hd.name) + extra_size + 2);
|
||||
if (*name == NULL)
|
||||
return grub_errno;
|
||||
if (hd.prefix[0])
|
||||
{
|
||||
grub_memcpy (*name, hd.prefix, extra_size);
|
||||
(*name)[extra_size++] = '/';
|
||||
}
|
||||
grub_memcpy (*name + extra_size, hd.name, sizeof (hd.name));
|
||||
(*name)[extra_size + sizeof (hd.name)] = 0;
|
||||
}
|
||||
|
||||
data->size = read_number (hd.size, sizeof (hd.size));
|
||||
data->dofs = data->hofs + GRUB_DISK_SECTOR_SIZE;
|
||||
data->next_hofs = data->dofs + ((data->size + GRUB_DISK_SECTOR_SIZE - 1) &
|
||||
~(GRUB_DISK_SECTOR_SIZE - 1));
|
||||
if (mtime)
|
||||
*mtime = read_number (hd.mtime, sizeof (hd.mtime));
|
||||
if (mode)
|
||||
{
|
||||
*mode = read_number (hd.mode, sizeof (hd.mode));
|
||||
switch (hd.typeflag)
|
||||
{
|
||||
/* Hardlink. */
|
||||
case '1':
|
||||
/* Symlink. */
|
||||
case '2':
|
||||
*mode |= GRUB_ARCHELP_ATTR_LNK;
|
||||
break;
|
||||
case '0':
|
||||
*mode |= GRUB_ARCHELP_ATTR_FILE;
|
||||
break;
|
||||
case '5':
|
||||
*mode |= GRUB_ARCHELP_ATTR_DIR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!have_longlink)
|
||||
{
|
||||
if (data->linkname_alloc < 101)
|
||||
{
|
||||
char *n;
|
||||
n = grub_malloc (101);
|
||||
if (!n)
|
||||
return grub_errno;
|
||||
grub_free (data->linkname);
|
||||
data->linkname = n;
|
||||
data->linkname_alloc = 101;
|
||||
}
|
||||
grub_memcpy (data->linkname, hd.linkname, sizeof (hd.linkname));
|
||||
data->linkname[100] = 0;
|
||||
}
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static char *
|
||||
grub_cpio_get_link_target (struct grub_archelp_data *data)
|
||||
{
|
||||
return grub_strdup (data->linkname);
|
||||
}
|
||||
|
||||
static void
|
||||
grub_cpio_rewind (struct grub_archelp_data *data)
|
||||
{
|
||||
data->next_hofs = 0;
|
||||
}
|
||||
|
||||
static struct grub_archelp_ops arcops =
|
||||
{
|
||||
.find_file = grub_cpio_find_file,
|
||||
.get_link_target = grub_cpio_get_link_target,
|
||||
.rewind = grub_cpio_rewind
|
||||
};
|
||||
|
||||
static struct grub_archelp_data *
|
||||
grub_cpio_mount (grub_disk_t disk)
|
||||
{
|
||||
struct head hd;
|
||||
struct grub_archelp_data *data;
|
||||
|
||||
if (grub_disk_read (disk, 0, 0, sizeof (hd), &hd))
|
||||
goto fail;
|
||||
|
||||
if (grub_memcmp (hd.magic, MAGIC, sizeof (MAGIC) - 1))
|
||||
goto fail;
|
||||
|
||||
data = (struct grub_archelp_data *) grub_zalloc (sizeof (*data));
|
||||
if (!data)
|
||||
goto fail;
|
||||
|
||||
data->disk = disk;
|
||||
|
||||
return data;
|
||||
|
||||
fail:
|
||||
grub_error (GRUB_ERR_BAD_FS, "not a tarfs filesystem");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_dir (grub_device_t device, const char *path_in,
|
||||
grub_fs_dir_hook_t hook, void *hook_data)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
grub_err_t err;
|
||||
|
||||
data = grub_cpio_mount (device->disk);
|
||||
if (!data)
|
||||
return grub_errno;
|
||||
|
||||
err = grub_archelp_dir (data, &arcops,
|
||||
path_in, hook, hook_data);
|
||||
|
||||
grub_free (data->linkname);
|
||||
grub_free (data);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_open (grub_file_t file, const char *name_in)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
grub_err_t err;
|
||||
|
||||
data = grub_cpio_mount (file->device->disk);
|
||||
if (!data)
|
||||
return grub_errno;
|
||||
|
||||
err = grub_archelp_open (data, &arcops, name_in);
|
||||
if (err)
|
||||
{
|
||||
grub_free (data->linkname);
|
||||
grub_free (data);
|
||||
}
|
||||
else
|
||||
{
|
||||
file->data = data;
|
||||
file->size = data->size;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
static grub_ssize_t
|
||||
grub_cpio_read (grub_file_t file, char *buf, grub_size_t len)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
|
||||
data = file->data;
|
||||
return (grub_disk_read (data->disk, 0, data->dofs + file->offset,
|
||||
len, buf)) ? -1 : (grub_ssize_t) len;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cpio_close (grub_file_t file)
|
||||
{
|
||||
struct grub_archelp_data *data;
|
||||
|
||||
data = file->data;
|
||||
grub_free (data->linkname);
|
||||
grub_free (data);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
static struct grub_fs grub_cpio_fs = {
|
||||
.name = "tarfs",
|
||||
.dir = grub_cpio_dir,
|
||||
.open = grub_cpio_open,
|
||||
.read = grub_cpio_read,
|
||||
.close = grub_cpio_close,
|
||||
#ifdef GRUB_UTIL
|
||||
.reserved_first_sector = 0,
|
||||
.blocklist_install = 0,
|
||||
#endif
|
||||
};
|
||||
|
||||
GRUB_MOD_INIT (tar)
|
||||
{
|
||||
grub_fs_register (&grub_cpio_fs);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI (tar)
|
||||
{
|
||||
grub_fs_unregister (&grub_cpio_fs);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1999,2000,2001,2002,2003,2004,2009,2010,2011 Free Software Foundation, Inc.
|
||||
* Copyright 2010 Sun Microsystems, Inc.
|
||||
* Copyright (c) 2012 by Delphix. All rights reserved.
|
||||
*
|
||||
* GRUB is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -153,11 +154,13 @@ ZAP_LEAF_ENTRY(zap_leaf_phys_t *l, int bs, int idx)
|
|||
|
||||
|
||||
/*
|
||||
* Decompression Entry - lzjb
|
||||
* Decompression Entry - lzjb & lz4
|
||||
*/
|
||||
|
||||
extern grub_err_t lzjb_decompress (void *, void *, grub_size_t, grub_size_t);
|
||||
|
||||
extern grub_err_t lz4_decompress (void *, void *, grub_size_t, grub_size_t);
|
||||
|
||||
typedef grub_err_t zfs_decomp_func_t (void *s_start, void *d_start,
|
||||
grub_size_t s_len, grub_size_t d_len);
|
||||
typedef struct decomp_entry
|
||||
|
@ -176,10 +179,10 @@ typedef void zio_checksum_t(const void *data, grub_uint64_t size,
|
|||
* Information about each checksum function.
|
||||
*/
|
||||
typedef struct zio_checksum_info {
|
||||
zio_checksum_t *ci_func; /* checksum function for each byteorder */
|
||||
int ci_correctable; /* number of correctable bits */
|
||||
int ci_eck; /* uses zio embedded checksum? */
|
||||
const char *ci_name; /* descriptive name */
|
||||
zio_checksum_t *ci_func; /* checksum function for each byteorder */
|
||||
int ci_correctable; /* number of correctable bits */
|
||||
int ci_eck; /* uses zio embedded checksum? */
|
||||
const char *ci_name; /* descriptive name */
|
||||
} zio_checksum_info_t;
|
||||
|
||||
typedef struct dnode_end
|
||||
|
@ -271,6 +274,20 @@ grub_crypto_cipher_handle_t (*grub_zfs_load_key) (const struct grub_zfs_key *key
|
|||
grub_size_t keysize,
|
||||
grub_uint64_t salt,
|
||||
grub_uint64_t algo) = NULL;
|
||||
/*
|
||||
* List of pool features that the grub implementation of ZFS supports for
|
||||
* read. Note that features that are only required for write do not need
|
||||
* to be listed here since grub opens pools in read-only mode.
|
||||
*/
|
||||
#define MAX_SUPPORTED_FEATURE_STRLEN 50
|
||||
static const char *spa_feature_names[] = {
|
||||
"org.illumos:lz4_compress",NULL
|
||||
};
|
||||
|
||||
static int
|
||||
check_feature(const char *name, grub_uint64_t val, struct grub_zfs_dir_ctx *ctx);
|
||||
static int
|
||||
check_mos_features(dnode_phys_t *mosmdn_phys,grub_zfs_endian_t endian,struct grub_zfs_data* data );
|
||||
|
||||
static grub_err_t
|
||||
zlib_decompress (void *s, void *d,
|
||||
|
@ -330,6 +347,7 @@ static decomp_entry_t decomp_table[ZIO_COMPRESS_FUNCTIONS] = {
|
|||
{"gzip-8", zlib_decompress}, /* ZIO_COMPRESS_GZIP8 */
|
||||
{"gzip-9", zlib_decompress}, /* ZIO_COMPRESS_GZIP9 */
|
||||
{"zle", zle_decompress}, /* ZIO_COMPRESS_ZLE */
|
||||
{"lz4", lz4_decompress}, /* ZIO_COMPRESS_LZ4 */
|
||||
};
|
||||
|
||||
static grub_err_t zio_read_data (blkptr_t * bp, grub_zfs_endian_t endian,
|
||||
|
@ -349,7 +367,7 @@ zfs_log2 (grub_uint64_t num)
|
|||
num = num >> 1;
|
||||
}
|
||||
|
||||
return (i);
|
||||
return i;
|
||||
}
|
||||
|
||||
/* Checksum Functions */
|
||||
|
@ -396,7 +414,7 @@ zio_checksum_verify (zio_cksum_t zc, grub_uint32_t checksum,
|
|||
{
|
||||
grub_dprintf ("zfs", "unknown checksum function %d\n", checksum);
|
||||
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
|
||||
"unknown checksum function %d", checksum);
|
||||
"unknown checksum function %d", checksum);
|
||||
}
|
||||
|
||||
if (ci->ci_eck)
|
||||
|
@ -457,19 +475,19 @@ vdev_uberblock_compare (uberblock_t * ub1, uberblock_t * ub2)
|
|||
|
||||
if (grub_zfs_to_cpu64 (ub1->ub_txg, ub1_endian)
|
||||
< grub_zfs_to_cpu64 (ub2->ub_txg, ub2_endian))
|
||||
return (-1);
|
||||
return -1;
|
||||
if (grub_zfs_to_cpu64 (ub1->ub_txg, ub1_endian)
|
||||
> grub_zfs_to_cpu64 (ub2->ub_txg, ub2_endian))
|
||||
return (1);
|
||||
return 1;
|
||||
|
||||
if (grub_zfs_to_cpu64 (ub1->ub_timestamp, ub1_endian)
|
||||
< grub_zfs_to_cpu64 (ub2->ub_timestamp, ub2_endian))
|
||||
return (-1);
|
||||
return -1;
|
||||
if (grub_zfs_to_cpu64 (ub1->ub_timestamp, ub1_endian)
|
||||
> grub_zfs_to_cpu64 (ub2->ub_timestamp, ub2_endian))
|
||||
return (1);
|
||||
return 1;
|
||||
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -490,15 +508,11 @@ uberblock_verify (uberblock_phys_t * ub, grub_uint64_t offset,
|
|||
|
||||
if (grub_zfs_to_cpu64 (uber->ub_magic, GRUB_ZFS_LITTLE_ENDIAN)
|
||||
== UBERBLOCK_MAGIC
|
||||
&& grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN) > 0
|
||||
&& grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN)
|
||||
<= SPA_VERSION)
|
||||
&& SPA_VERSION_IS_SUPPORTED(grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_LITTLE_ENDIAN)))
|
||||
endian = GRUB_ZFS_LITTLE_ENDIAN;
|
||||
|
||||
if (grub_zfs_to_cpu64 (uber->ub_magic, GRUB_ZFS_BIG_ENDIAN) == UBERBLOCK_MAGIC
|
||||
&& grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN) > 0
|
||||
&& grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN)
|
||||
<= SPA_VERSION)
|
||||
&& SPA_VERSION_IS_SUPPORTED(grub_zfs_to_cpu64 (uber->ub_version, GRUB_ZFS_BIG_ENDIAN)))
|
||||
endian = GRUB_ZFS_BIG_ENDIAN;
|
||||
|
||||
if (endian == GRUB_ZFS_UNKNOWN_ENDIAN)
|
||||
|
@ -555,7 +569,7 @@ find_bestub (uberblock_phys_t * ub_array,
|
|||
if (!ubbest)
|
||||
grub_errno = err;
|
||||
|
||||
return (ubbest);
|
||||
return ubbest;
|
||||
}
|
||||
|
||||
static inline grub_size_t
|
||||
|
@ -771,6 +785,172 @@ fill_vdev_info (struct grub_zfs_data *data,
|
|||
diskdesc, inserted, 0xffffffff);
|
||||
}
|
||||
|
||||
/*
|
||||
* For a given XDR packed nvlist, verify the first 4 bytes and move on.
|
||||
*
|
||||
* An XDR packed nvlist is encoded as (comments from nvs_xdr_create) :
|
||||
*
|
||||
* encoding method/host endian (4 bytes)
|
||||
* nvl_version (4 bytes)
|
||||
* nvl_nvflag (4 bytes)
|
||||
* encoded nvpairs:
|
||||
* encoded size of the nvpair (4 bytes)
|
||||
* decoded size of the nvpair (4 bytes)
|
||||
* name string size (4 bytes)
|
||||
* name string data (sizeof(NV_ALIGN4(string))
|
||||
* data type (4 bytes)
|
||||
* # of elements in the nvpair (4 bytes)
|
||||
* data
|
||||
* 2 zero's for the last nvpair
|
||||
* (end of the entire list) (8 bytes)
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* The nvlist_next_nvpair() function returns a handle to the next nvpair in the
|
||||
* list following nvpair. If nvpair is NULL, the first pair is returned. If
|
||||
* nvpair is the last pair in the nvlist, NULL is returned.
|
||||
*/
|
||||
static const char *
|
||||
nvlist_next_nvpair (const char *nvl, const char *nvpair)
|
||||
{
|
||||
const char *nvp;
|
||||
int encode_size;
|
||||
int name_len;
|
||||
if (nvl == NULL)
|
||||
return NULL;
|
||||
|
||||
if (nvpair == NULL)
|
||||
{
|
||||
/* skip over header, nvl_version and nvl_nvflag */
|
||||
nvpair = nvl + 4 * 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* skip to the next nvpair */
|
||||
encode_size = grub_be_to_cpu32 (grub_get_unaligned32(nvpair));
|
||||
nvpair += encode_size;
|
||||
/*If encode_size equals 0 nvlist_next_nvpair would return
|
||||
* the same pair received in input, leading to an infinite loop.
|
||||
* If encode_size is less than 0, this will move the pointer
|
||||
* backwards, *possibly* examinining two times the same nvpair
|
||||
* and potentially getting into an infinite loop. */
|
||||
if(encode_size <= 0)
|
||||
{
|
||||
grub_dprintf ("zfs", "nvpair with size <= 0\n");
|
||||
grub_error (GRUB_ERR_BAD_FS, "incorrect nvlist");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
/* 8 bytes of 0 marks the end of the list */
|
||||
if (grub_get_unaligned64 (nvpair) == 0)
|
||||
return NULL;
|
||||
/*consistency checks*/
|
||||
if (nvpair + 4 * 3 >= nvl + VDEV_PHYS_SIZE)
|
||||
{
|
||||
grub_dprintf ("zfs", "nvlist overflow\n");
|
||||
grub_error (GRUB_ERR_BAD_FS, "incorrect nvlist");
|
||||
return NULL;
|
||||
}
|
||||
encode_size = grub_be_to_cpu32 (grub_get_unaligned32(nvpair));
|
||||
|
||||
nvp = nvpair + 4*2;
|
||||
name_len = grub_be_to_cpu32 (grub_get_unaligned32 (nvp));
|
||||
nvp += 4;
|
||||
|
||||
nvp = nvp + ((name_len + 3) & ~3); // align
|
||||
if (nvp + 4 >= nvl + VDEV_PHYS_SIZE
|
||||
|| encode_size < 0
|
||||
|| nvp + 4 + encode_size > nvl + VDEV_PHYS_SIZE)
|
||||
{
|
||||
grub_dprintf ("zfs", "nvlist overflow\n");
|
||||
grub_error (GRUB_ERR_BAD_FS, "incorrect nvlist");
|
||||
return NULL;
|
||||
}
|
||||
/* end consistency checks */
|
||||
|
||||
return nvpair;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function returns 0 on success and 1 on failure. On success, a string
|
||||
* containing the name of nvpair is saved in buf.
|
||||
*/
|
||||
static int
|
||||
nvpair_name (const char *nvp, char **buf, int *buflen)
|
||||
{
|
||||
int len;
|
||||
|
||||
/* skip over encode/decode size */
|
||||
nvp += 4 * 2;
|
||||
|
||||
len = grub_be_to_cpu32 (grub_get_unaligned32 (nvp));
|
||||
nvp=nvp+4;
|
||||
|
||||
*buf=(char*)nvp;
|
||||
*buflen=len;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function retrieves the value of the nvpair in the form of enumerated
|
||||
* type data_type_t.
|
||||
*/
|
||||
static int
|
||||
nvpair_type (const char *nvp)
|
||||
{
|
||||
int name_len, type;
|
||||
|
||||
/* skip over encode/decode size */
|
||||
nvp += 4 * 2;
|
||||
|
||||
/* skip over name_len */
|
||||
name_len = grub_be_to_cpu32 (grub_get_unaligned32 (nvp));
|
||||
nvp += 4;
|
||||
|
||||
/* skip over name */
|
||||
nvp = nvp + ((name_len + 3) & ~3); /* align */
|
||||
|
||||
type = grub_be_to_cpu32 (grub_get_unaligned32 (nvp));
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
static int
|
||||
nvpair_value (const char *nvp,char **val,
|
||||
grub_size_t *size_out, grub_size_t *nelm_out)
|
||||
{
|
||||
int name_len,nelm,encode_size;
|
||||
|
||||
/* skip over encode/decode size */
|
||||
encode_size = grub_be_to_cpu32 (grub_get_unaligned32(nvp));
|
||||
nvp += 8;
|
||||
|
||||
/* skip over name_len */
|
||||
name_len = grub_be_to_cpu32 (grub_get_unaligned32 (nvp));
|
||||
nvp += 4;
|
||||
|
||||
/* skip over name */
|
||||
nvp = nvp + ((name_len + 3) & ~3); /* align */
|
||||
|
||||
/* skip over type */
|
||||
nvp += 4;
|
||||
nelm = grub_be_to_cpu32 (grub_get_unaligned32 (nvp));
|
||||
nvp +=4;
|
||||
if (nelm < 1)
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_FS, "empty nvpair");
|
||||
return 0;
|
||||
}
|
||||
*val = (char *) nvp;
|
||||
*size_out = encode_size;
|
||||
if (nelm_out)
|
||||
*nelm_out = nelm;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check the disk label information and retrieve needed vdev name-value pairs.
|
||||
*
|
||||
|
@ -781,7 +961,7 @@ check_pool_label (struct grub_zfs_data *data,
|
|||
int *inserted)
|
||||
{
|
||||
grub_uint64_t pool_state, txg = 0;
|
||||
char *nvlist;
|
||||
char *nvlist,*features;
|
||||
#if 0
|
||||
char *nv;
|
||||
#endif
|
||||
|
@ -845,13 +1025,13 @@ check_pool_label (struct grub_zfs_data *data,
|
|||
}
|
||||
grub_dprintf ("zfs", "check 8 passed\n");
|
||||
|
||||
if (version > SPA_VERSION)
|
||||
if (!SPA_VERSION_IS_SUPPORTED(version))
|
||||
{
|
||||
grub_free (nvlist);
|
||||
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
|
||||
"too new version %llu > %llu",
|
||||
(unsigned long long) version,
|
||||
(unsigned long long) SPA_VERSION);
|
||||
(unsigned long long) SPA_VERSION_BEFORE_FEATURES);
|
||||
}
|
||||
grub_dprintf ("zfs", "check 9 passed\n");
|
||||
|
||||
|
@ -901,7 +1081,31 @@ check_pool_label (struct grub_zfs_data *data,
|
|||
grub_free (nv);
|
||||
}
|
||||
grub_dprintf ("zfs", "check 10 passed\n");
|
||||
|
||||
features = grub_zfs_nvlist_lookup_nvlist(nvlist,
|
||||
ZPOOL_CONFIG_FEATURES_FOR_READ);
|
||||
if (features)
|
||||
{
|
||||
const char *nvp=NULL;
|
||||
char name[MAX_SUPPORTED_FEATURE_STRLEN + 1];
|
||||
char *nameptr;
|
||||
int namelen;
|
||||
while ((nvp = nvlist_next_nvpair(features, nvp)) != NULL)
|
||||
{
|
||||
nvpair_name(nvp, &nameptr,&namelen);
|
||||
if(namelen > MAX_SUPPORTED_FEATURE_STRLEN)
|
||||
namelen = MAX_SUPPORTED_FEATURE_STRLEN;
|
||||
grub_strncpy(name,nameptr,namelen);
|
||||
name[namelen]=0;
|
||||
grub_dprintf("zfs","namelen=%u str=%s\n",namelen,name);
|
||||
if (check_feature(name,1, NULL) != 0)
|
||||
{
|
||||
grub_dprintf("zfs","feature missing in check_pool_label:%s\n",name);
|
||||
err= grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET," check_pool_label missing feature '%s' for read",name);
|
||||
return err;
|
||||
}
|
||||
}
|
||||
}
|
||||
grub_dprintf ("zfs", "check 12 passed (feature flags)\n");
|
||||
grub_free (nvlist);
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
|
@ -1139,7 +1343,7 @@ recovery (grub_uint8_t *bufs[4], grub_size_t s, const int nbufs,
|
|||
for (j = 0; j < nbufs; j++)
|
||||
matrix2[i][j] = 0;
|
||||
for (i = 0; i < nbufs; i++)
|
||||
matrix2[i][i] = 1;
|
||||
matrix2[i][i] = 1;
|
||||
|
||||
for (i = 0; i < nbufs; i++)
|
||||
{
|
||||
|
@ -1246,7 +1450,9 @@ read_device (grub_uint64_t offset, struct grub_zfs_device_desc *desc,
|
|||
break;
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
}
|
||||
return (grub_errno = err);
|
||||
grub_errno = err;
|
||||
|
||||
return err;
|
||||
}
|
||||
case DEVICE_RAIDZ:
|
||||
{
|
||||
|
@ -1854,7 +2060,7 @@ zap_hash (grub_uint64_t salt, const char *name,
|
|||
*/
|
||||
crc &= ~((1ULL << (64 - ZAP_HASHBITS)) - 1);
|
||||
|
||||
return (crc);
|
||||
return crc;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1876,7 +2082,7 @@ name_cmp (const char *s1, const char *s2, grub_size_t n,
|
|||
while (n--)
|
||||
{
|
||||
if (grub_toupper (*t1) != grub_toupper (*t2))
|
||||
return (int) grub_toupper (*t1) - (int) grub_toupper (*t2);
|
||||
return (int) grub_toupper (*t1) - (int) grub_toupper (*t2);
|
||||
|
||||
t1++;
|
||||
t2++;
|
||||
|
@ -2097,11 +2303,11 @@ fzap_iterate (dnode_end_t * zap_dnode, zap_phys_t * zap,
|
|||
for (idx = 0; idx < (1ULL << zap->zap_ptrtbl.zt_shift); idx++)
|
||||
{
|
||||
blkid = grub_zfs_to_cpu64 (((grub_uint64_t *) zap)[idx + (1 << (blksft - 3 - 1))],
|
||||
zap_dnode->endian);
|
||||
zap_dnode->endian);
|
||||
|
||||
for (idx2 = 0; idx2 < idx; idx2++)
|
||||
if (blkid == grub_zfs_to_cpu64 (((grub_uint64_t *) zap)[idx2 + (1 << (blksft - 3 - 1))],
|
||||
zap_dnode->endian))
|
||||
zap_dnode->endian))
|
||||
break;
|
||||
if (idx2 != idx)
|
||||
continue;
|
||||
|
@ -2127,53 +2333,53 @@ fzap_iterate (dnode_end_t * zap_dnode, zap_phys_t * zap,
|
|||
}
|
||||
|
||||
for (chunk = 0; chunk < ZAP_LEAF_NUMCHUNKS (blksft); chunk++)
|
||||
{
|
||||
char *buf;
|
||||
struct zap_leaf_entry *le;
|
||||
char *val;
|
||||
grub_size_t val_length;
|
||||
le = ZAP_LEAF_ENTRY (l, blksft, chunk);
|
||||
{
|
||||
char *buf;
|
||||
struct zap_leaf_entry *le;
|
||||
char *val;
|
||||
grub_size_t val_length;
|
||||
le = ZAP_LEAF_ENTRY (l, blksft, chunk);
|
||||
|
||||
/* Verify the chunk entry */
|
||||
if (le->le_type != ZAP_CHUNK_ENTRY)
|
||||
/* Verify the chunk entry */
|
||||
if (le->le_type != ZAP_CHUNK_ENTRY)
|
||||
continue;
|
||||
|
||||
buf = grub_malloc (grub_zfs_to_cpu16 (le->le_name_length, endian)
|
||||
* name_elem_length + 1);
|
||||
if (zap_leaf_array_get (l, endian, blksft,
|
||||
grub_zfs_to_cpu16 (le->le_name_chunk,
|
||||
endian),
|
||||
grub_zfs_to_cpu16 (le->le_name_length,
|
||||
endian)
|
||||
* name_elem_length, buf))
|
||||
{
|
||||
grub_free (buf);
|
||||
continue;
|
||||
}
|
||||
buf[le->le_name_length * name_elem_length] = 0;
|
||||
|
||||
buf = grub_malloc (grub_zfs_to_cpu16 (le->le_name_length, endian)
|
||||
* name_elem_length + 1);
|
||||
if (zap_leaf_array_get (l, endian, blksft,
|
||||
grub_zfs_to_cpu16 (le->le_name_chunk,
|
||||
endian),
|
||||
grub_zfs_to_cpu16 (le->le_name_length,
|
||||
endian)
|
||||
* name_elem_length, buf))
|
||||
{
|
||||
grub_free (buf);
|
||||
continue;
|
||||
}
|
||||
buf[le->le_name_length * name_elem_length] = 0;
|
||||
val_length = ((int) le->le_value_length
|
||||
* (int) le->le_int_size);
|
||||
val = grub_malloc (grub_zfs_to_cpu16 (val_length, endian));
|
||||
if (zap_leaf_array_get (l, endian, blksft,
|
||||
grub_zfs_to_cpu16 (le->le_value_chunk,
|
||||
endian),
|
||||
val_length, val))
|
||||
{
|
||||
grub_free (buf);
|
||||
grub_free (val);
|
||||
continue;
|
||||
}
|
||||
|
||||
val_length = ((int) le->le_value_length
|
||||
* (int) le->le_int_size);
|
||||
val = grub_malloc (grub_zfs_to_cpu16 (val_length, endian));
|
||||
if (zap_leaf_array_get (l, endian, blksft,
|
||||
grub_zfs_to_cpu16 (le->le_value_chunk,
|
||||
endian),
|
||||
val_length, val))
|
||||
{
|
||||
grub_free (buf);
|
||||
grub_free (val);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (hook (buf, le->le_name_length,
|
||||
val, le->le_value_length, le->le_int_size, hook_data))
|
||||
{
|
||||
grub_free (l);
|
||||
return 1;
|
||||
}
|
||||
grub_free (buf);
|
||||
grub_free (val);
|
||||
}
|
||||
if (hook (buf, le->le_name_length,
|
||||
val, le->le_value_length, le->le_int_size, hook_data))
|
||||
{
|
||||
grub_free (l);
|
||||
return 1;
|
||||
}
|
||||
grub_free (buf);
|
||||
grub_free (val);
|
||||
}
|
||||
grub_free (l);
|
||||
}
|
||||
return 0;
|
||||
|
@ -2567,7 +2773,7 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn,
|
|||
grub_size_t block;
|
||||
grub_size_t blksz;
|
||||
blksz = (grub_zfs_to_cpu16 (dnode_path->dn.dn.dn_datablkszsec,
|
||||
dnode_path->dn.endian)
|
||||
dnode_path->dn.endian)
|
||||
<< SPA_MINBLOCKSHIFT);
|
||||
|
||||
sym_value = grub_malloc (sym_sz);
|
||||
|
@ -2612,11 +2818,11 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn,
|
|||
grub_free (dn_new);
|
||||
}
|
||||
else while (dnode_path != root)
|
||||
{
|
||||
dn_new = dnode_path;
|
||||
dnode_path = dn_new->next;
|
||||
grub_free (dn_new);
|
||||
}
|
||||
{
|
||||
dn_new = dnode_path;
|
||||
dnode_path = dn_new->next;
|
||||
grub_free (dn_new);
|
||||
}
|
||||
}
|
||||
if (dnode_path->dn.dn.dn_bonustype == DMU_OT_SA)
|
||||
{
|
||||
|
@ -2673,11 +2879,11 @@ dnode_get_path (struct subvolume *subvol, const char *path_in, dnode_end_t *dn,
|
|||
grub_free (dn_new);
|
||||
}
|
||||
else while (dnode_path != root)
|
||||
{
|
||||
dn_new = dnode_path;
|
||||
dnode_path = dn_new->next;
|
||||
grub_free (dn_new);
|
||||
}
|
||||
{
|
||||
dn_new = dnode_path;
|
||||
dnode_path = dn_new->next;
|
||||
grub_free (dn_new);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3068,34 +3274,14 @@ dnode_get_fullpath (const char *fullpath, struct subvolume *subvol,
|
|||
return err;
|
||||
}
|
||||
|
||||
/*
|
||||
* For a given XDR packed nvlist, verify the first 4 bytes and move on.
|
||||
*
|
||||
* An XDR packed nvlist is encoded as (comments from nvs_xdr_create) :
|
||||
*
|
||||
* encoding method/host endian (4 bytes)
|
||||
* nvl_version (4 bytes)
|
||||
* nvl_nvflag (4 bytes)
|
||||
* encoded nvpairs:
|
||||
* encoded size of the nvpair (4 bytes)
|
||||
* decoded size of the nvpair (4 bytes)
|
||||
* name string size (4 bytes)
|
||||
* name string data (sizeof(NV_ALIGN4(string))
|
||||
* data type (4 bytes)
|
||||
* # of elements in the nvpair (4 bytes)
|
||||
* data
|
||||
* 2 zero's for the last nvpair
|
||||
* (end of the entire list) (8 bytes)
|
||||
*
|
||||
*/
|
||||
|
||||
static int
|
||||
nvlist_find_value (const char *nvlist_in, const char *name,
|
||||
int valtype, char **val,
|
||||
grub_size_t *size_out, grub_size_t *nelm_out)
|
||||
{
|
||||
int name_len, type, encode_size;
|
||||
const char *nvpair, *nvp_name, *nvlist = nvlist_in;
|
||||
int name_len, type ;
|
||||
const char *nvpair=NULL,*nvlist=nvlist_in;
|
||||
char *nvp_name;
|
||||
|
||||
/* Verify if the 1st and 2nd byte in the nvlist are valid. */
|
||||
/* NOTE: independently of what endianness header announces all
|
||||
|
@ -3108,62 +3294,18 @@ nvlist_find_value (const char *nvlist_in, const char *name,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* skip the header, nvl_version, and nvl_nvflag */
|
||||
nvlist = nvlist + 4 * 3;
|
||||
/*
|
||||
* Loop thru the nvpair list
|
||||
* The XDR representation of an integer is in big-endian byte order.
|
||||
*/
|
||||
while ((encode_size = grub_be_to_cpu32 (grub_get_unaligned32 (nvlist))))
|
||||
while ((nvpair=nvlist_next_nvpair(nvlist,nvpair)))
|
||||
{
|
||||
int nelm;
|
||||
|
||||
if (nvlist + 4 * 4 >= nvlist_in + VDEV_PHYS_SIZE)
|
||||
nvpair_name(nvpair,&nvp_name,&name_len);
|
||||
type = nvpair_type(nvpair);
|
||||
if ((grub_strncmp (nvp_name, name, grub_strlen(name)) == 0) && type == valtype)
|
||||
{
|
||||
grub_dprintf ("zfs", "nvlist overflow\n");
|
||||
grub_error (GRUB_ERR_BAD_FS, "incorrect nvlist");
|
||||
return 0;
|
||||
return nvpair_value(nvpair,val,size_out,nelm_out);
|
||||
}
|
||||
|
||||
nvpair = nvlist + 4 * 2; /* skip the encode/decode size */
|
||||
|
||||
name_len = grub_be_to_cpu32 (grub_get_unaligned32 (nvpair));
|
||||
nvpair += 4;
|
||||
|
||||
nvp_name = nvpair;
|
||||
nvpair = nvpair + ((name_len + 3) & ~3); /* align */
|
||||
|
||||
if (nvpair + 8 >= nvlist_in + VDEV_PHYS_SIZE
|
||||
|| encode_size < 0
|
||||
|| nvpair + 8 + encode_size > nvlist_in + VDEV_PHYS_SIZE)
|
||||
{
|
||||
grub_dprintf ("zfs", "nvlist overflow\n");
|
||||
grub_error (GRUB_ERR_BAD_FS, "incorrect nvlist");
|
||||
return 0;
|
||||
}
|
||||
|
||||
type = grub_be_to_cpu32 (grub_get_unaligned32 (nvpair));
|
||||
nvpair += 4;
|
||||
|
||||
nelm = grub_be_to_cpu32 (grub_get_unaligned32 (nvpair));
|
||||
if (nelm < 1)
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_FS, "empty nvpair");
|
||||
return 0;
|
||||
}
|
||||
|
||||
nvpair += 4;
|
||||
|
||||
if ((grub_strncmp (nvp_name, name, name_len) == 0) && type == valtype)
|
||||
{
|
||||
*val = (char *) nvpair;
|
||||
*size_out = encode_size;
|
||||
if (nelm_out)
|
||||
*nelm_out = nelm;
|
||||
return 1;
|
||||
}
|
||||
|
||||
nvlist += encode_size; /* goto the next nvpair */
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -3420,6 +3562,11 @@ zfs_mount (grub_device_t dev)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (ub->ub_version >= SPA_VERSION_FEATURES &&
|
||||
check_mos_features(&((objset_phys_t *) osp)->os_meta_dnode,ub_endian,
|
||||
data) != 0)
|
||||
return NULL;
|
||||
|
||||
/* Got the MOS. Save it at the memory addr MOS. */
|
||||
grub_memmove (&(data->mos.dn), &((objset_phys_t *) osp)->os_meta_dnode,
|
||||
DNODE_SIZE);
|
||||
|
@ -3831,8 +3978,8 @@ iterate_zap (const char *name, grub_uint64_t val, struct grub_zfs_dir_ctx *ctx)
|
|||
info.mtime = grub_zfs_to_cpu64 (((znode_phys_t *) DN_BONUS (&dn.dn))->zp_mtime[0],
|
||||
dn.endian);
|
||||
}
|
||||
info.dir = (dn.dn.dn_type == DMU_OT_DIRECTORY_CONTENTS);
|
||||
grub_dprintf ("zfs", "type=%d, name=%s\n",
|
||||
info.dir = (dn.dn.dn_type == DMU_OT_DIRECTORY_CONTENTS);
|
||||
grub_dprintf ("zfs", "type=%d, name=%s\n",
|
||||
(int)dn.dn.dn_type, (char *)name);
|
||||
return ctx->hook (name, &info, ctx->hook_data);
|
||||
}
|
||||
|
@ -3987,6 +4134,68 @@ grub_zfs_dir (grub_device_t device, const char *path,
|
|||
return grub_errno;
|
||||
}
|
||||
|
||||
static int
|
||||
check_feature(const char *name, grub_uint64_t val,__attribute__((unused)) struct grub_zfs_dir_ctx *ctx)
|
||||
{
|
||||
int i;
|
||||
if(val ==0) return 0;
|
||||
if(*name==0) return 0;
|
||||
for (i = 0; spa_feature_names[i] != NULL; i++)
|
||||
{
|
||||
if (grub_strcmp(name, spa_feature_names[i]) == 0)
|
||||
return 0;
|
||||
}
|
||||
grub_printf("missing feature for read '%s'\n",name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks whether the MOS features that are active are supported by this
|
||||
* (GRUB's) implementation of ZFS.
|
||||
*
|
||||
* Return:
|
||||
* 0: Success.
|
||||
* errnum: Failure.
|
||||
*/
|
||||
|
||||
static int
|
||||
check_mos_features(dnode_phys_t *mosmdn_phys,grub_zfs_endian_t endian,struct grub_zfs_data* data )
|
||||
{
|
||||
grub_uint64_t objnum;
|
||||
grub_uint8_t errnum = 0;
|
||||
dnode_end_t dn,mosmdn;
|
||||
mzap_phys_t* mzp;
|
||||
grub_zfs_endian_t endianzap;
|
||||
int size;
|
||||
grub_memmove(&(mosmdn.dn),mosmdn_phys,sizeof(dnode_phys_t));
|
||||
mosmdn.endian=endian;
|
||||
errnum = dnode_get(&mosmdn, DMU_POOL_DIRECTORY_OBJECT,
|
||||
DMU_OT_OBJECT_DIRECTORY, &dn,data);
|
||||
if (errnum != 0)
|
||||
return errnum;
|
||||
|
||||
/*
|
||||
* Find the object number for 'features_for_read' and retrieve its
|
||||
* corresponding dnode. Note that we don't check features_for_write
|
||||
* because GRUB is not opening the pool for write.
|
||||
*/
|
||||
errnum = zap_lookup(&dn, DMU_POOL_FEATURES_FOR_READ, &objnum, data,0);
|
||||
if (errnum != 0)
|
||||
return errnum;
|
||||
|
||||
errnum = dnode_get(&mosmdn, objnum, DMU_OTN_ZAP_METADATA, &dn, data);
|
||||
if (errnum != 0)
|
||||
return errnum;
|
||||
|
||||
errnum = dmu_read(&dn, 0, (void**)&mzp, &endianzap,data);
|
||||
if (errnum != 0)
|
||||
return errnum;
|
||||
|
||||
size = grub_zfs_to_cpu16 (dn.dn.dn_datablkszsec, dn.endian) << SPA_MINBLOCKSHIFT;
|
||||
return mzap_iterate (mzp,endianzap, size, check_feature,NULL);
|
||||
}
|
||||
|
||||
|
||||
#ifdef GRUB_UTIL
|
||||
static grub_err_t
|
||||
grub_zfs_embed (grub_device_t device __attribute__ ((unused)),
|
||||
|
@ -4001,7 +4210,7 @@ grub_zfs_embed (grub_device_t device __attribute__ ((unused)),
|
|||
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
|
||||
"ZFS currently supports only PC-BIOS embedding");
|
||||
|
||||
if ((VDEV_BOOT_SIZE >> GRUB_DISK_SECTOR_BITS) < *nsectors)
|
||||
if ((VDEV_BOOT_SIZE >> GRUB_DISK_SECTOR_BITS) < *nsectors)
|
||||
return grub_error (GRUB_ERR_OUT_OF_RANGE,
|
||||
N_("your core.img is unusually large. "
|
||||
"It won't fit in the embedding area"));
|
||||
|
|
313
grub-core/fs/zfs/zfs_lz4.c
Normal file
313
grub-core/fs/zfs/zfs_lz4.c
Normal file
|
@ -0,0 +1,313 @@
|
|||
/*
|
||||
* LZ4 - Fast LZ compression algorithm
|
||||
* Header File
|
||||
* Copyright (C) 2011-2013, Yann Collet.
|
||||
* BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* You can contact the author at :
|
||||
* - LZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html
|
||||
* - LZ4 source repository : http://code.google.com/p/lz4/
|
||||
*/
|
||||
|
||||
#include <grub/err.h>
|
||||
#include <grub/mm.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/types.h>
|
||||
|
||||
static int LZ4_uncompress_unknownOutputSize(const char *source, char *dest,
|
||||
int isize, int maxOutputSize);
|
||||
|
||||
/*
|
||||
* CPU Feature Detection
|
||||
*/
|
||||
|
||||
/* 32 or 64 bits ? */
|
||||
#if (defined(__x86_64__) || defined(__x86_64) || defined(__amd64__) || \
|
||||
defined(__amd64) || defined(__ppc64__) || defined(_WIN64) || \
|
||||
defined(__LP64__) || defined(_LP64))
|
||||
#define LZ4_ARCH64 1
|
||||
#else
|
||||
#define LZ4_ARCH64 0
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Little Endian or Big Endian?
|
||||
* Note: overwrite the below #define if you know your architecture endianess.
|
||||
*/
|
||||
#if (defined(__BIG_ENDIAN__) || defined(__BIG_ENDIAN) || \
|
||||
defined(_BIG_ENDIAN) || defined(_ARCH_PPC) || defined(__PPC__) || \
|
||||
defined(__PPC) || defined(PPC) || defined(__powerpc__) || \
|
||||
defined(__powerpc) || defined(powerpc) || \
|
||||
((defined(__BYTE_ORDER__)&&(__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))))
|
||||
#define LZ4_BIG_ENDIAN 1
|
||||
#else
|
||||
/*
|
||||
* Little Endian assumed. PDP Endian and other very rare endian format
|
||||
* are unsupported.
|
||||
*/
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compiler Options
|
||||
*/
|
||||
|
||||
|
||||
#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
|
||||
|
||||
#define lz4_bswap16(x) ((unsigned short int) ((((x) >> 8) & 0xffu) \
|
||||
| (((x) & 0xffu) << 8)))
|
||||
|
||||
#if (GCC_VERSION >= 302) || (__INTEL_COMPILER >= 800) || defined(__clang__)
|
||||
#define expect(expr, value) (__builtin_expect((expr), (value)))
|
||||
#else
|
||||
#define expect(expr, value) (expr)
|
||||
#endif
|
||||
|
||||
#define likely(expr) expect((expr) != 0, 1)
|
||||
#define unlikely(expr) expect((expr) != 0, 0)
|
||||
|
||||
/* Basic types */
|
||||
#define BYTE grub_uint8_t
|
||||
#define U16 grub_uint16_t
|
||||
#define U32 grub_uint32_t
|
||||
#define S32 grub_int32_t
|
||||
#define U64 grub_uint64_t
|
||||
typedef grub_size_t size_t;
|
||||
|
||||
typedef struct _U16_S {
|
||||
U16 v;
|
||||
} __attribute__ ((packed)) U16_S;
|
||||
typedef struct _U32_S {
|
||||
U32 v;
|
||||
} __attribute__ ((packed)) U32_S;
|
||||
typedef struct _U64_S {
|
||||
U64 v;
|
||||
} __attribute__ ((packed)) U64_S;
|
||||
|
||||
#define A64(x) (((U64_S *)(x))->v)
|
||||
#define A32(x) (((U32_S *)(x))->v)
|
||||
#define A16(x) (((U16_S *)(x))->v)
|
||||
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
#define MINMATCH 4
|
||||
|
||||
#define COPYLENGTH 8
|
||||
#define LASTLITERALS 5
|
||||
|
||||
#define ML_BITS 4
|
||||
#define ML_MASK ((1U<<ML_BITS)-1)
|
||||
#define RUN_BITS (8-ML_BITS)
|
||||
#define RUN_MASK ((1U<<RUN_BITS)-1)
|
||||
|
||||
/*
|
||||
* Architecture-specific macros
|
||||
*/
|
||||
#if LZ4_ARCH64
|
||||
#define STEPSIZE 8
|
||||
#define UARCH U64
|
||||
#define AARCH A64
|
||||
#define LZ4_COPYSTEP(s, d) A64(d) = A64(s); d += 8; s += 8;
|
||||
#define LZ4_COPYPACKET(s, d) LZ4_COPYSTEP(s, d)
|
||||
#define LZ4_SECURECOPY(s, d, e) if (d < e) LZ4_WILDCOPY(s, d, e)
|
||||
#define HTYPE U32
|
||||
#define INITBASE(base) const BYTE* const base = ip
|
||||
#else
|
||||
#define STEPSIZE 4
|
||||
#define UARCH U32
|
||||
#define AARCH A32
|
||||
#define LZ4_COPYSTEP(s, d) A32(d) = A32(s); d += 4; s += 4;
|
||||
#define LZ4_COPYPACKET(s, d) LZ4_COPYSTEP(s, d); LZ4_COPYSTEP(s, d);
|
||||
#define LZ4_SECURECOPY LZ4_WILDCOPY
|
||||
#define HTYPE const BYTE*
|
||||
#define INITBASE(base) const int base = 0
|
||||
#endif
|
||||
|
||||
#if (defined(LZ4_BIG_ENDIAN) && !defined(BIG_ENDIAN_NATIVE_BUT_INCOMPATIBLE))
|
||||
#define LZ4_READ_LITTLEENDIAN_16(d, s, p) \
|
||||
{ U16 v = A16(p); v = lz4_bswap16(v); d = (s) - v; }
|
||||
#define LZ4_WRITE_LITTLEENDIAN_16(p, i) \
|
||||
{ U16 v = (U16)(i); v = lz4_bswap16(v); A16(p) = v; p += 2; }
|
||||
#else
|
||||
#define LZ4_READ_LITTLEENDIAN_16(d, s, p) { d = (s) - A16(p); }
|
||||
#define LZ4_WRITE_LITTLEENDIAN_16(p, v) { A16(p) = v; p += 2; }
|
||||
#endif
|
||||
|
||||
/* Macros */
|
||||
#define LZ4_WILDCOPY(s, d, e) do { LZ4_COPYPACKET(s, d) } while (d < e);
|
||||
|
||||
/* Decompression functions */
|
||||
grub_err_t
|
||||
lz4_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len);
|
||||
|
||||
grub_err_t
|
||||
lz4_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len)
|
||||
{
|
||||
const BYTE *src = s_start;
|
||||
U32 bufsiz = (src[0] << 24) | (src[1] << 16) | (src[2] << 8) |
|
||||
src[3];
|
||||
|
||||
/* invalid compressed buffer size encoded at start */
|
||||
if (bufsiz + 4 > s_len)
|
||||
return grub_error(GRUB_ERR_BAD_FS,"lz4 decompression failed.");
|
||||
|
||||
/*
|
||||
* Returns 0 on success (decompression function returned non-negative)
|
||||
* and appropriate error on failure (decompression function returned negative).
|
||||
*/
|
||||
return (LZ4_uncompress_unknownOutputSize((char*)s_start + 4, d_start, bufsiz,
|
||||
d_len) < 0)?grub_error(GRUB_ERR_BAD_FS,"lz4 decompression failed."):0;
|
||||
}
|
||||
|
||||
static int
|
||||
LZ4_uncompress_unknownOutputSize(const char *source,
|
||||
char *dest, int isize, int maxOutputSize)
|
||||
{
|
||||
/* Local Variables */
|
||||
const BYTE * ip = (const BYTE *) source;
|
||||
const BYTE *const iend = ip + isize;
|
||||
const BYTE * ref;
|
||||
|
||||
BYTE * op = (BYTE *) dest;
|
||||
BYTE *const oend = op + maxOutputSize;
|
||||
BYTE *cpy;
|
||||
|
||||
size_t dec[] = { 0, 3, 2, 3, 0, 0, 0, 0 };
|
||||
|
||||
/* Main Loop */
|
||||
while (ip < iend) {
|
||||
BYTE token;
|
||||
int length;
|
||||
|
||||
/* get runlength */
|
||||
token = *ip++;
|
||||
if ((length = (token >> ML_BITS)) == RUN_MASK) {
|
||||
int s = 255;
|
||||
while ((ip < iend) && (s == 255)) {
|
||||
s = *ip++;
|
||||
length += s;
|
||||
}
|
||||
}
|
||||
/* copy literals */
|
||||
cpy = op + length;
|
||||
if ((cpy > oend - COPYLENGTH) ||
|
||||
(ip + length > iend - COPYLENGTH)) {
|
||||
if (cpy > oend)
|
||||
/*
|
||||
* Error: request to write beyond destination
|
||||
* buffer.
|
||||
*/
|
||||
goto _output_error;
|
||||
if (ip + length > iend)
|
||||
/*
|
||||
* Error : request to read beyond source
|
||||
* buffer.
|
||||
*/
|
||||
goto _output_error;
|
||||
grub_memcpy(op, ip, length);
|
||||
op += length;
|
||||
ip += length;
|
||||
if (ip < iend)
|
||||
/* Error : LZ4 format violation */
|
||||
goto _output_error;
|
||||
/* Necessarily EOF, due to parsing restrictions. */
|
||||
break;
|
||||
}
|
||||
LZ4_WILDCOPY(ip, op, cpy);
|
||||
ip -= (op - cpy);
|
||||
op = cpy;
|
||||
|
||||
/* get offset */
|
||||
LZ4_READ_LITTLEENDIAN_16(ref, cpy, ip);
|
||||
ip += 2;
|
||||
if (ref < (BYTE * const) dest)
|
||||
/*
|
||||
* Error: offset creates reference outside of
|
||||
* destination buffer.
|
||||
*/
|
||||
goto _output_error;
|
||||
|
||||
/* get matchlength */
|
||||
if ((length = (token & ML_MASK)) == ML_MASK) {
|
||||
while (ip < iend) {
|
||||
int s = *ip++;
|
||||
length += s;
|
||||
if (s == 255)
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* copy repeated sequence */
|
||||
if unlikely(op - ref < STEPSIZE) {
|
||||
#if LZ4_ARCH64
|
||||
size_t dec2table[] = { 0, 0, 0, -1, 0, 1, 2, 3 };
|
||||
size_t dec2 = dec2table[op - ref];
|
||||
#else
|
||||
const int dec2 = 0;
|
||||
#endif
|
||||
*op++ = *ref++;
|
||||
*op++ = *ref++;
|
||||
*op++ = *ref++;
|
||||
*op++ = *ref++;
|
||||
ref -= dec[op - ref];
|
||||
A32(op) = A32(ref);
|
||||
op += STEPSIZE - 4;
|
||||
ref -= dec2;
|
||||
} else {
|
||||
LZ4_COPYSTEP(ref, op);
|
||||
}
|
||||
cpy = op + length - (STEPSIZE - 4);
|
||||
if (cpy > oend - COPYLENGTH) {
|
||||
if (cpy > oend)
|
||||
/*
|
||||
* Error: request to write outside of
|
||||
* destination buffer.
|
||||
*/
|
||||
goto _output_error;
|
||||
LZ4_SECURECOPY(ref, op, (oend - COPYLENGTH));
|
||||
while (op < cpy)
|
||||
*op++ = *ref++;
|
||||
op = cpy;
|
||||
if (op == oend)
|
||||
/*
|
||||
* Check EOF (should never happen, since last
|
||||
* 5 bytes are supposed to be literals).
|
||||
*/
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
LZ4_SECURECOPY(ref, op, cpy);
|
||||
op = cpy; /* correction */
|
||||
}
|
||||
|
||||
/* end of decoding */
|
||||
return (int)(((char *)op) - dest);
|
||||
|
||||
/* write overflow error detected */
|
||||
_output_error:
|
||||
return (int)(-(((char *)ip) - source));
|
||||
}
|
|
@ -132,21 +132,31 @@ print_vdev_info (char *nvlist, int tab)
|
|||
grub_free (path);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
char is_mirror=(grub_strcmp(type,VDEV_TYPE_MIRROR) == 0);
|
||||
char is_raidz=(grub_strcmp(type,VDEV_TYPE_RAIDZ) == 0);
|
||||
|
||||
if (grub_strcmp (type, VDEV_TYPE_MIRROR) == 0)
|
||||
if (is_mirror || is_raidz)
|
||||
{
|
||||
int nelm, i;
|
||||
|
||||
nelm = grub_zfs_nvlist_lookup_nvlist_array_get_nelm
|
||||
(nvlist, ZPOOL_CONFIG_CHILDREN);
|
||||
|
||||
if(is_mirror){
|
||||
grub_puts_ (N_("This VDEV is a mirror"));
|
||||
}
|
||||
else if(is_raidz){
|
||||
grub_uint64_t parity;
|
||||
grub_zfs_nvlist_lookup_uint64(nvlist,"nparity",&parity);
|
||||
grub_printf_ (N_("This VDEV is a RAIDZ%llu\n"),(unsigned long long)parity);
|
||||
}
|
||||
print_tabs (tab);
|
||||
if (nelm <= 0)
|
||||
{
|
||||
grub_puts_ (N_("Incorrect mirror"));
|
||||
grub_puts_ (N_("Incorrect VDEV"));
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
grub_printf_ (N_("Mirror with %d children\n"), nelm);
|
||||
grub_printf_ (N_("VDEV with %d children\n"), nelm);
|
||||
print_state (nvlist, tab);
|
||||
for (i = 0; i < nelm; i++)
|
||||
{
|
||||
|
@ -162,14 +172,14 @@ print_vdev_info (char *nvlist, int tab)
|
|||
total element number. And the number itself is fine,
|
||||
only the element isn't.
|
||||
*/
|
||||
grub_printf_ (N_("Mirror element number %d isn't correct\n"), i);
|
||||
grub_printf_ (N_("VDEV element number %d isn't correct\n"), i);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* TRANSLATORS: it's the element carying the number %d, not
|
||||
total element number. This is used in enumeration
|
||||
"Element number 1", "Element number 2", ... */
|
||||
grub_printf_ (N_("Mirror element number %d:\n"), i);
|
||||
grub_printf_ (N_("VDEV element number %d:\n"), i);
|
||||
print_vdev_info (child, tab + 1);
|
||||
|
||||
grub_free (child);
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <grub/font.h>
|
||||
#include <grub/gui_string_util.h>
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/color.h>
|
||||
|
||||
static const char *align_options[] =
|
||||
{
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <grub/gui_string_util.h>
|
||||
#include <grub/gfxmenu_view.h>
|
||||
#include <grub/gfxwidgets.h>
|
||||
#include <grub/color.h>
|
||||
|
||||
struct grub_gui_list_impl
|
||||
{
|
||||
|
@ -101,9 +102,13 @@ get_num_shown_items (list_impl_t self)
|
|||
grub_gfxmenu_box_t box = self->menu_box;
|
||||
int box_top_pad = box->get_top_pad (box);
|
||||
int box_bottom_pad = box->get_bottom_pad (box);
|
||||
grub_gfxmenu_box_t selbox = self->selected_item_box;
|
||||
int sel_top_pad = selbox->get_top_pad (selbox);
|
||||
int sel_bottom_pad = selbox->get_bottom_pad (selbox);
|
||||
|
||||
return (self->bounds.height + item_vspace - 2 * boxpad
|
||||
- box_top_pad - box_bottom_pad) / (item_height + item_vspace);
|
||||
- sel_top_pad - sel_bottom_pad
|
||||
- box_top_pad - box_bottom_pad) / (item_height + item_vspace);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -244,6 +249,19 @@ draw_menu (list_impl_t self, int num_shown_items)
|
|||
oviewport.width - 2 * boxpad,
|
||||
oviewport.height - 2 * boxpad);
|
||||
|
||||
int cwidth = oviewport.width - 2 * boxpad - 2;
|
||||
if (selbox->get_border_width)
|
||||
cwidth -= selbox->get_border_width (selbox);
|
||||
selbox->set_content_size (selbox, cwidth, item_height);
|
||||
|
||||
int string_left_offset = self->icon_width + icon_text_space;
|
||||
int string_top_offset = (item_height - (ascent + descent)) / 2 + ascent;
|
||||
|
||||
grub_video_rect_t svpsave, sviewport;
|
||||
sviewport.x = sel_leftpad + string_left_offset;
|
||||
sviewport.width = cwidth - string_left_offset;
|
||||
sviewport.height = item_height;
|
||||
|
||||
for (visible_index = 0, menu_index = self->first_shown_index;
|
||||
visible_index < num_shown_items && menu_index < self->view->menu->size;
|
||||
visible_index++, menu_index++)
|
||||
|
@ -253,10 +271,6 @@ draw_menu (list_impl_t self, int num_shown_items)
|
|||
|
||||
if (is_selected)
|
||||
{
|
||||
int cwidth = oviewport.width - 2 * boxpad - 2;
|
||||
if (selbox->get_border_width)
|
||||
cwidth -= selbox->get_border_width (selbox);
|
||||
selbox->set_content_size (selbox, cwidth, item_height - 1);
|
||||
selbox->draw (selbox, 0,
|
||||
item_top - sel_toppad);
|
||||
}
|
||||
|
@ -278,12 +292,15 @@ draw_menu (list_impl_t self, int num_shown_items)
|
|||
((is_selected && self->selected_item_color_set)
|
||||
? self->selected_item_color
|
||||
: self->item_color);
|
||||
|
||||
sviewport.y = item_top;
|
||||
grub_gui_set_viewport (&sviewport, &svpsave);
|
||||
grub_font_draw_string (item_title,
|
||||
font,
|
||||
grub_video_map_rgba_color (text_color),
|
||||
sel_leftpad + self->icon_width + icon_text_space,
|
||||
(item_top + (item_height - (ascent + descent))
|
||||
/ 2 + ascent));
|
||||
0,
|
||||
string_top_offset);
|
||||
grub_gui_restore_viewport (&svpsave);
|
||||
|
||||
item_top += item_height + item_vspace;
|
||||
}
|
||||
|
@ -396,7 +413,8 @@ list_get_minimal_size (void *vself, unsigned *width, unsigned *height)
|
|||
unsigned width_s;
|
||||
|
||||
grub_gfxmenu_box_t selbox = self->selected_item_box;
|
||||
int sel_toppad = selbox->get_top_pad (selbox);
|
||||
int sel_top_pad = selbox->get_top_pad (selbox);
|
||||
int sel_bottom_pad = selbox->get_bottom_pad (selbox);
|
||||
|
||||
*width = grub_font_get_string_width (self->item_font, "Typical OS");
|
||||
width_s = grub_font_get_string_width (self->selected_item_font,
|
||||
|
@ -410,7 +428,8 @@ list_get_minimal_size (void *vself, unsigned *width, unsigned *height)
|
|||
*height = (item_height * num_items
|
||||
+ item_vspace * (num_items - 1)
|
||||
+ 2 * boxpad
|
||||
+ box_top_pad + box_bottom_pad + sel_toppad);
|
||||
+ box_top_pad + box_bottom_pad
|
||||
+ sel_top_pad + sel_bottom_pad);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <grub/gfxmenu_view.h>
|
||||
#include <grub/gfxwidgets.h>
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/color.h>
|
||||
|
||||
struct grub_gui_progress_bar
|
||||
{
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include <grub/gfxwidgets.h>
|
||||
#include <grub/gfxmenu_view.h>
|
||||
#include <grub/gui.h>
|
||||
#include <grub/color.h>
|
||||
|
||||
/* Construct a new box widget using ABSPATTERN to find the pixmap files for
|
||||
it, storing the new box instance at *BOXPTR.
|
||||
|
|
|
@ -40,7 +40,7 @@ grub_core_cmd_set (struct grub_command *cmd __attribute__ ((unused)),
|
|||
{
|
||||
struct grub_env_var *env;
|
||||
FOR_SORTED_ENV (env)
|
||||
grub_printf ("%s=%s\n", env->name, env->value);
|
||||
grub_printf ("%s=%s\n", env->name, grub_env_get (env->name));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -139,13 +139,13 @@ grub_core_cmd_ls (struct grub_command *cmd __attribute__ ((unused)),
|
|||
else
|
||||
path++;
|
||||
|
||||
if (! path && ! device_name)
|
||||
if (! *path && ! device_name)
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid argument");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (! path)
|
||||
if (! *path)
|
||||
{
|
||||
if (grub_errno == GRUB_ERR_UNKNOWN_FS)
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
|
|
83
grub-core/kern/i386/coreboot/cbtable.c
Normal file
83
grub-core/kern/i386/coreboot/cbtable.c
Normal file
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008,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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/i386/coreboot/memory.h>
|
||||
#include <grub/i386/coreboot/lbio.h>
|
||||
#include <grub/types.h>
|
||||
#include <grub/err.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/dl.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
/* Helper for grub_linuxbios_table_iterate. */
|
||||
static int
|
||||
check_signature (grub_linuxbios_table_header_t tbl_header)
|
||||
{
|
||||
if (! grub_memcmp (tbl_header->signature, "LBIO", 4))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_err_t
|
||||
grub_linuxbios_table_iterate (int (*hook) (grub_linuxbios_table_item_t,
|
||||
void *),
|
||||
void *hook_data)
|
||||
{
|
||||
grub_linuxbios_table_header_t table_header;
|
||||
grub_linuxbios_table_item_t table_item;
|
||||
|
||||
/* Assuming table_header is aligned to its size (8 bytes). */
|
||||
|
||||
for (table_header = (grub_linuxbios_table_header_t) 0x500;
|
||||
table_header < (grub_linuxbios_table_header_t) 0x1000; table_header++)
|
||||
if (check_signature (table_header))
|
||||
goto signature_found;
|
||||
|
||||
for (table_header = (grub_linuxbios_table_header_t) 0xf0000;
|
||||
table_header < (grub_linuxbios_table_header_t) 0x100000; table_header++)
|
||||
if (check_signature (table_header))
|
||||
goto signature_found;
|
||||
|
||||
grub_fatal ("Could not find coreboot table\n");
|
||||
|
||||
signature_found:
|
||||
|
||||
table_item =
|
||||
(grub_linuxbios_table_item_t) ((long) table_header +
|
||||
(long) table_header->header_size);
|
||||
for (; table_item < (grub_linuxbios_table_item_t) ((long) table_header
|
||||
+ (long) table_header->header_size
|
||||
+ (long) table_header->table_size);
|
||||
table_item = (grub_linuxbios_table_item_t) ((long) table_item + (long) table_item->size))
|
||||
{
|
||||
if (table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK
|
||||
&& check_signature ((grub_linuxbios_table_header_t) (grub_addr_t)
|
||||
*(grub_uint64_t *) (table_item + 1)))
|
||||
{
|
||||
table_header = (grub_linuxbios_table_header_t) (grub_addr_t)
|
||||
*(grub_uint64_t *) (table_item + 1);
|
||||
goto signature_found;
|
||||
}
|
||||
if (hook (table_item, hook_data))
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -34,6 +34,7 @@
|
|||
#include <grub/cpu/io.h>
|
||||
#include <grub/cpu/floppy.h>
|
||||
#include <grub/cpu/tsc.h>
|
||||
#include <grub/video.h>
|
||||
|
||||
extern grub_uint8_t _start[];
|
||||
extern grub_uint8_t _end[];
|
||||
|
@ -89,6 +90,8 @@ grub_machine_init (void)
|
|||
{
|
||||
modend = grub_modules_get_end ();
|
||||
|
||||
grub_video_coreboot_fb_early_init ();
|
||||
|
||||
grub_vga_text_init ();
|
||||
|
||||
#ifdef GRUB_MACHINE_MULTIBOOT
|
||||
|
@ -96,6 +99,11 @@ grub_machine_init (void)
|
|||
#endif
|
||||
grub_machine_mmap_iterate (heap_init, NULL);
|
||||
|
||||
grub_video_coreboot_fb_late_init ();
|
||||
|
||||
grub_font_init ();
|
||||
grub_gfxterm_init ();
|
||||
|
||||
grub_tsc_init ();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2007,2008 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2007,2008,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
|
||||
|
@ -22,63 +22,6 @@
|
|||
#include <grub/err.h>
|
||||
#include <grub/misc.h>
|
||||
|
||||
/* Helper for grub_linuxbios_table_iterate. */
|
||||
static int
|
||||
check_signature (grub_linuxbios_table_header_t tbl_header)
|
||||
{
|
||||
if (! grub_memcmp (tbl_header->signature, "LBIO", 4))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_err_t
|
||||
grub_linuxbios_table_iterate (int (*hook) (grub_linuxbios_table_item_t,
|
||||
void *),
|
||||
void *hook_data)
|
||||
{
|
||||
grub_linuxbios_table_header_t table_header;
|
||||
grub_linuxbios_table_item_t table_item;
|
||||
|
||||
/* Assuming table_header is aligned to its size (8 bytes). */
|
||||
|
||||
for (table_header = (grub_linuxbios_table_header_t) 0x500;
|
||||
table_header < (grub_linuxbios_table_header_t) 0x1000; table_header++)
|
||||
if (check_signature (table_header))
|
||||
goto signature_found;
|
||||
|
||||
for (table_header = (grub_linuxbios_table_header_t) 0xf0000;
|
||||
table_header < (grub_linuxbios_table_header_t) 0x100000; table_header++)
|
||||
if (check_signature (table_header))
|
||||
goto signature_found;
|
||||
|
||||
grub_fatal ("Could not find coreboot table\n");
|
||||
|
||||
signature_found:
|
||||
|
||||
table_item =
|
||||
(grub_linuxbios_table_item_t) ((long) table_header +
|
||||
(long) table_header->header_size);
|
||||
for (; table_item < (grub_linuxbios_table_item_t) ((long) table_header
|
||||
+ (long) table_header->header_size
|
||||
+ (long) table_header->table_size);
|
||||
table_item = (grub_linuxbios_table_item_t) ((long) table_item + (long) table_item->size))
|
||||
{
|
||||
if (table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK
|
||||
&& check_signature ((grub_linuxbios_table_header_t) (grub_addr_t)
|
||||
*(grub_uint64_t *) (table_item + 1)))
|
||||
{
|
||||
table_header = (grub_linuxbios_table_header_t) (grub_addr_t)
|
||||
*(grub_uint64_t *) (table_item + 1);
|
||||
goto signature_found;
|
||||
}
|
||||
if (hook (table_item, hook_data))
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Context for grub_machine_mmap_iterate. */
|
||||
struct grub_machine_mmap_iterate_ctx
|
||||
{
|
||||
|
|
|
@ -69,8 +69,6 @@ grub_machine_init (void)
|
|||
grub_serial_init ();
|
||||
|
||||
grub_boot_init ();
|
||||
|
||||
grub_gfxterm_init ();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -34,14 +34,31 @@ _start:
|
|||
/* Stage1 won't zero BSS for us. In other cases, why not do it again? */
|
||||
lis 6, (__bss_start - 4)@h
|
||||
ori 6, 6, (__bss_start - 4)@l
|
||||
|
||||
2: stb 2, 4(6)
|
||||
addi 6, 6, 1
|
||||
andi. 7, 6, 3
|
||||
cmpi 0, 1, 7, 0
|
||||
bne 2b
|
||||
|
||||
lis 7, (_end - 4)@h
|
||||
ori 7, 7, (_end - 4)@l
|
||||
subf 7, 6, 7
|
||||
subi 8, 7, 1
|
||||
andi. 8, 8, 3
|
||||
addi 8, 8, 1
|
||||
sub 7, 7, 8
|
||||
|
||||
srwi 7, 7, 2 /* We store 4 bytes at a time. */
|
||||
mtctr 7
|
||||
2: stwu 2, 4(6) /* We know r2 is already 0 from above. */
|
||||
bdnz 2b
|
||||
|
||||
mtctr 8
|
||||
2: stb 2, 4(6) /* We know r2 is already 0 from above. */
|
||||
addi 6, 6, 1
|
||||
bdnz 2b
|
||||
|
||||
/* Store r5 in grub_ieee1275_entry_fn. */
|
||||
lis 9, grub_ieee1275_entry_fn@ha
|
||||
stw 5, grub_ieee1275_entry_fn@l(9)
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <grub/i386/relocator.h>
|
||||
#include <grub/command.h>
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/cbfs_core.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
|
@ -55,14 +56,176 @@ grub_chain_unload (void)
|
|||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
load_elf (grub_file_t file, const char *filename)
|
||||
{
|
||||
grub_elf_t elf;
|
||||
Elf32_Phdr *phdr;
|
||||
grub_err_t err;
|
||||
|
||||
elf = grub_elf_file (file, filename);
|
||||
if (!elf)
|
||||
return grub_errno;
|
||||
|
||||
if (!grub_elf_is_elf32 (elf))
|
||||
return grub_error (GRUB_ERR_BAD_OS, "only ELF32 can be coreboot payload");
|
||||
|
||||
entry = elf->ehdr.ehdr32.e_entry;
|
||||
|
||||
FOR_ELF32_PHDRS(elf, phdr)
|
||||
{
|
||||
grub_uint8_t *load_addr;
|
||||
grub_relocator_chunk_t ch;
|
||||
|
||||
if (phdr->p_type != PT_LOAD)
|
||||
continue;
|
||||
|
||||
err = grub_relocator_alloc_chunk_addr (relocator, &ch,
|
||||
phdr->p_paddr, phdr->p_memsz);
|
||||
if (err)
|
||||
{
|
||||
elf->file = 0;
|
||||
grub_elf_close (elf);
|
||||
return err;
|
||||
}
|
||||
|
||||
load_addr = get_virtual_current_address (ch);
|
||||
|
||||
if (grub_file_seek (elf->file, phdr->p_offset) == (grub_off_t) -1)
|
||||
{
|
||||
elf->file = 0;
|
||||
grub_elf_close (elf);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
if (phdr->p_filesz)
|
||||
{
|
||||
grub_ssize_t read;
|
||||
read = grub_file_read (elf->file, load_addr, phdr->p_filesz);
|
||||
if (read != (grub_ssize_t) phdr->p_filesz)
|
||||
{
|
||||
if (!grub_errno)
|
||||
grub_error (GRUB_ERR_FILE_READ_ERROR,
|
||||
N_("premature end of file %s"),
|
||||
filename);
|
||||
elf->file = 0;
|
||||
grub_elf_close (elf);
|
||||
return grub_errno;
|
||||
}
|
||||
}
|
||||
|
||||
if (phdr->p_filesz < phdr->p_memsz)
|
||||
grub_memset ((load_addr + phdr->p_filesz),
|
||||
0, phdr->p_memsz - phdr->p_filesz);
|
||||
}
|
||||
|
||||
elf->file = 0;
|
||||
grub_elf_close (elf);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
load_segment (grub_file_t file, const char *filename,
|
||||
void *load_addr, grub_uint32_t comp,
|
||||
grub_size_t size)
|
||||
{
|
||||
switch (comp)
|
||||
{
|
||||
case grub_cpu_to_be32_compile_time (CBFS_COMPRESS_NONE):
|
||||
if (grub_file_read (file, load_addr, size)
|
||||
!= (grub_ssize_t) size)
|
||||
{
|
||||
if (!grub_errno)
|
||||
grub_error (GRUB_ERR_FILE_READ_ERROR,
|
||||
N_("premature end of file %s"),
|
||||
filename);
|
||||
return grub_errno;
|
||||
}
|
||||
return GRUB_ERR_NONE;
|
||||
default:
|
||||
return grub_error (GRUB_ERR_BAD_OS, "unsupported compression %d",
|
||||
grub_be_to_cpu32 (comp));
|
||||
}
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
load_chewed (grub_file_t file, const char *filename)
|
||||
{
|
||||
grub_size_t i;
|
||||
for (i = 0;; i++)
|
||||
{
|
||||
struct cbfs_payload_segment segment;
|
||||
grub_err_t err;
|
||||
|
||||
if (grub_file_seek (file, sizeof (segment) * i) == (grub_off_t) -1
|
||||
|| grub_file_read (file, &segment, sizeof (segment))
|
||||
!= sizeof (segment))
|
||||
{
|
||||
if (!grub_errno)
|
||||
return grub_error (GRUB_ERR_BAD_OS,
|
||||
"payload is too short");
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
switch (segment.type)
|
||||
{
|
||||
case PAYLOAD_SEGMENT_PARAMS:
|
||||
break;
|
||||
|
||||
case PAYLOAD_SEGMENT_ENTRY:
|
||||
entry = grub_be_to_cpu64 (segment.load_addr);
|
||||
return GRUB_ERR_NONE;
|
||||
|
||||
case PAYLOAD_SEGMENT_BSS:
|
||||
segment.len = 0;
|
||||
segment.offset = 0;
|
||||
segment.len = 0;
|
||||
case PAYLOAD_SEGMENT_CODE:
|
||||
case PAYLOAD_SEGMENT_DATA:
|
||||
{
|
||||
grub_uint32_t target = grub_be_to_cpu64 (segment.load_addr);
|
||||
grub_uint32_t memsize = grub_be_to_cpu32 (segment.mem_len);
|
||||
grub_uint32_t filesize = grub_be_to_cpu32 (segment.len);
|
||||
grub_uint8_t *load_addr;
|
||||
grub_relocator_chunk_t ch;
|
||||
|
||||
if (memsize < filesize)
|
||||
memsize = filesize;
|
||||
|
||||
err = grub_relocator_alloc_chunk_addr (relocator, &ch,
|
||||
target, memsize);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
load_addr = get_virtual_current_address (ch);
|
||||
|
||||
if (filesize)
|
||||
{
|
||||
if (grub_file_seek (file, grub_be_to_cpu32 (segment.offset))
|
||||
== (grub_off_t) -1)
|
||||
return grub_errno;
|
||||
|
||||
err = load_segment (file, filename, load_addr,
|
||||
segment.compression, filesize);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
if (filesize < memsize)
|
||||
grub_memset ((load_addr + filesize),
|
||||
0, memsize - filesize);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_cmd_chain (grub_command_t cmd __attribute__ ((unused)),
|
||||
int argc, char *argv[])
|
||||
{
|
||||
grub_err_t err;
|
||||
grub_file_t file;
|
||||
grub_elf_t elf;
|
||||
Elf32_Phdr *phdr;
|
||||
grub_uint32_t head;
|
||||
|
||||
if (argc != 1)
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected"));
|
||||
|
@ -80,63 +243,43 @@ grub_cmd_chain (grub_command_t cmd __attribute__ ((unused)),
|
|||
return grub_errno;
|
||||
}
|
||||
|
||||
elf = grub_elf_file (file, argv[0]);
|
||||
if (!elf)
|
||||
if (grub_file_read (file, &head, sizeof (head)) != sizeof (head)
|
||||
|| grub_file_seek (file, 0) == (grub_off_t) -1)
|
||||
{
|
||||
grub_relocator_unload (relocator);
|
||||
relocator = 0;
|
||||
grub_file_close (file);
|
||||
grub_relocator_unload (relocator);
|
||||
relocator = 0;
|
||||
if (!grub_errno)
|
||||
return grub_error (GRUB_ERR_BAD_OS,
|
||||
"payload is too short");
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
if (!grub_elf_is_elf32 (elf))
|
||||
switch (head)
|
||||
{
|
||||
case ELFMAG0 | (ELFMAG1 << 8) | (ELFMAG2 << 16) | (ELFMAG3 << 24):
|
||||
err = load_elf (file, argv[0]);
|
||||
break;
|
||||
case PAYLOAD_SEGMENT_CODE:
|
||||
case PAYLOAD_SEGMENT_DATA:
|
||||
case PAYLOAD_SEGMENT_PARAMS:
|
||||
case PAYLOAD_SEGMENT_BSS:
|
||||
case PAYLOAD_SEGMENT_ENTRY:
|
||||
err = load_chewed (file, argv[0]);
|
||||
break;
|
||||
|
||||
default:
|
||||
err = grub_error (GRUB_ERR_BAD_OS, "unrecognised payload type");
|
||||
break;
|
||||
}
|
||||
grub_file_close (file);
|
||||
if (err)
|
||||
{
|
||||
grub_relocator_unload (relocator);
|
||||
relocator = 0;
|
||||
grub_elf_close (elf);
|
||||
return err;
|
||||
}
|
||||
|
||||
entry = elf->ehdr.ehdr32.e_entry;
|
||||
|
||||
FOR_ELF32_PHDRS(elf, phdr)
|
||||
{
|
||||
grub_uint8_t *load_addr;
|
||||
grub_relocator_chunk_t ch;
|
||||
|
||||
if (phdr->p_type != PT_LOAD)
|
||||
continue;
|
||||
|
||||
err = grub_relocator_alloc_chunk_addr (relocator, &ch,
|
||||
phdr->p_paddr, phdr->p_memsz);
|
||||
if (err)
|
||||
break;
|
||||
|
||||
load_addr = get_virtual_current_address (ch);
|
||||
|
||||
if (grub_file_seek (elf->file, phdr->p_offset) == (grub_off_t) -1)
|
||||
return grub_errno;
|
||||
|
||||
if (phdr->p_filesz)
|
||||
{
|
||||
grub_ssize_t read;
|
||||
read = grub_file_read (elf->file, load_addr, phdr->p_filesz);
|
||||
if (read != (grub_ssize_t) phdr->p_filesz)
|
||||
{
|
||||
if (!grub_errno)
|
||||
grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"),
|
||||
argv[0]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (phdr->p_filesz < phdr->p_memsz)
|
||||
grub_memset ((load_addr + phdr->p_filesz),
|
||||
0, phdr->p_memsz - phdr->p_filesz);
|
||||
}
|
||||
|
||||
grub_elf_close (elf);
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
|
||||
grub_loader_set (grub_chain_boot, grub_chain_unload, 0);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
|
|
@ -75,18 +75,6 @@ CONCAT(grub_multiboot_load_elf, XX) (grub_file_t file, const char *filename, voi
|
|||
if (ehdr->e_phoff + ehdr->e_phnum * ehdr->e_phentsize > MULTIBOOT_SEARCH)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "program header at a too high offset");
|
||||
|
||||
#ifdef MULTIBOOT_LOAD_ELF64
|
||||
# ifdef __mips
|
||||
/* We still in 32-bit mode. */
|
||||
if (ehdr->e_entry < 0xffffffff80000000ULL)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "invalid entry point for ELF64");
|
||||
# else
|
||||
/* We still in 32-bit mode. */
|
||||
if (ehdr->e_entry > 0xffffffff)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "invalid entry point for ELF64");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
phdr_base = (char *) buffer + ehdr->e_phoff;
|
||||
#define phdr(i) ((Elf_Phdr *) (phdr_base + (i) * ehdr->e_phentsize))
|
||||
|
||||
|
@ -142,6 +130,19 @@ CONCAT(grub_multiboot_load_elf, XX) (grub_file_t file, const char *filename, voi
|
|||
{
|
||||
grub_multiboot_payload_eip = (ehdr->e_entry - phdr(i)->p_vaddr)
|
||||
+ phdr(i)->p_paddr;
|
||||
#ifdef MULTIBOOT_LOAD_ELF64
|
||||
# ifdef __mips
|
||||
/* We still in 32-bit mode. */
|
||||
if ((ehdr->e_entry - phdr(i)->p_vaddr)
|
||||
+ phdr(i)->p_paddr < 0xffffffff80000000ULL)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "invalid entry point for ELF64");
|
||||
# else
|
||||
/* We still in 32-bit mode. */
|
||||
if ((ehdr->e_entry - phdr(i)->p_vaddr)
|
||||
+ phdr(i)->p_paddr > 0xffffffff)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "invalid entry point for ELF64");
|
||||
# endif
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ set_env_limn_ro (const char *intername, const char *suffix,
|
|||
grub_env_set (varname, value);
|
||||
value[len] = c;
|
||||
grub_register_variable_hook (varname, 0, grub_env_write_readonly);
|
||||
grub_env_export (varname);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -212,7 +213,10 @@ grub_net_configure_by_dhcp_ack (const char *name,
|
|||
}
|
||||
|
||||
if (is_def)
|
||||
grub_env_set ("net_default_interface", name);
|
||||
{
|
||||
grub_env_set ("net_default_interface", name);
|
||||
grub_env_export ("net_default_interface");
|
||||
}
|
||||
|
||||
if (device && !*device && bp->server_ip)
|
||||
{
|
||||
|
@ -447,6 +451,9 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)),
|
|||
ncards++;
|
||||
}
|
||||
|
||||
if (ncards == 0)
|
||||
return grub_error (GRUB_ERR_NET_NO_CARD, N_("no network card found"));
|
||||
|
||||
ifaces = grub_zalloc (ncards * sizeof (ifaces[0]));
|
||||
if (!ifaces)
|
||||
return grub_errno;
|
||||
|
|
|
@ -891,6 +891,7 @@ grub_net_network_level_interface_register (struct grub_net_network_level_interfa
|
|||
*ptr = '_';
|
||||
grub_env_set (name, buf);
|
||||
grub_register_variable_hook (name, 0, hwaddr_set_env);
|
||||
grub_env_export (name);
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -904,6 +905,7 @@ grub_net_network_level_interface_register (struct grub_net_network_level_interfa
|
|||
*ptr = '_';
|
||||
grub_env_set (name, buf);
|
||||
grub_register_variable_hook (name, 0, addr_set_env);
|
||||
grub_env_export (name);
|
||||
}
|
||||
|
||||
inter->card->num_ifaces++;
|
||||
|
@ -1643,12 +1645,16 @@ GRUB_MOD_INIT(net)
|
|||
{
|
||||
grub_register_variable_hook ("net_default_server", defserver_get_env,
|
||||
defserver_set_env);
|
||||
grub_env_export ("net_default_server");
|
||||
grub_register_variable_hook ("pxe_default_server", defserver_get_env,
|
||||
defserver_set_env);
|
||||
grub_env_export ("pxe_default_server");
|
||||
grub_register_variable_hook ("net_default_ip", defip_get_env,
|
||||
defip_set_env);
|
||||
grub_env_export ("net_default_ip");
|
||||
grub_register_variable_hook ("net_default_mac", defmac_get_env,
|
||||
defmac_set_env);
|
||||
grub_env_export ("net_default_mac");
|
||||
|
||||
cmd_addaddr = grub_register_command ("net_add_addr", grub_cmd_addaddr,
|
||||
/* TRANSLATORS: HWADDRESS stands for
|
||||
|
|
|
@ -547,7 +547,7 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out,
|
|||
{
|
||||
struct grub_unicode_glyph t;
|
||||
unsigned i;
|
||||
int a, b;
|
||||
int a = 0, b = 0;
|
||||
if (pos)
|
||||
{
|
||||
a = pos[visual[start].orig_pos].x;
|
||||
|
|
|
@ -237,9 +237,9 @@ grub_cmdline_get (const char *prompt_translated)
|
|||
|
||||
void cl_set_pos (struct cmdline_term *cl_term)
|
||||
{
|
||||
cl_term->xpos = (cl_term->prompt_len + lpos) % (cl_term->width - 1);
|
||||
cl_term->xpos = (cl_term->prompt_len + lpos) % cl_term->width;
|
||||
cl_term->ypos = cl_term->ystart
|
||||
+ (cl_term->prompt_len + lpos) / (cl_term->width - 1);
|
||||
+ (cl_term->prompt_len + lpos) / cl_term->width;
|
||||
grub_term_gotoxy (cl_term->term, cl_term->xpos, cl_term->ypos);
|
||||
}
|
||||
|
||||
|
@ -587,7 +587,7 @@ grub_cmdline_get (const char *prompt_translated)
|
|||
|
||||
grub_free (kill_buf);
|
||||
|
||||
kill_buf = grub_malloc (n + 1);
|
||||
kill_buf = grub_malloc ((n + 1) * sizeof(grub_uint32_t));
|
||||
if (grub_errno)
|
||||
{
|
||||
grub_print_error ();
|
||||
|
@ -595,8 +595,8 @@ grub_cmdline_get (const char *prompt_translated)
|
|||
}
|
||||
if (kill_buf)
|
||||
{
|
||||
grub_memcpy (kill_buf, buf, n);
|
||||
kill_buf[n] = '\0';
|
||||
grub_memcpy (kill_buf, buf, n * sizeof(grub_uint32_t));
|
||||
kill_buf[n] = 0;
|
||||
}
|
||||
|
||||
lpos = 0;
|
||||
|
|
|
@ -235,7 +235,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;
|
||||
|
@ -260,8 +261,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);
|
||||
|
@ -405,10 +408,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);
|
||||
}
|
||||
|
|
|
@ -245,7 +245,7 @@ grub_menu_execute_entry(grub_menu_entry_t entry, int auto_boot)
|
|||
else
|
||||
grub_env_unset ("default");
|
||||
|
||||
grub_script_execute_sourcecode (entry->sourcecode, entry->argc, entry->args);
|
||||
grub_script_execute_new_scope (entry->sourcecode, entry->argc, entry->args);
|
||||
|
||||
if (errs_before != grub_err_printed_errors)
|
||||
grub_wait_after_message ();
|
||||
|
|
|
@ -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);
|
||||
|
@ -1160,7 +1181,7 @@ run (struct screen *screen)
|
|||
}
|
||||
script[size] = '\0';
|
||||
}
|
||||
grub_script_execute_sourcecode (script, 0, dummy);
|
||||
grub_script_execute_new_scope (script, 0, dummy);
|
||||
grub_free (script);
|
||||
|
||||
if (errs_before != grub_err_printed_errors)
|
||||
|
@ -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++)
|
||||
|
|
|
@ -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;
|
||||
if (data->geo.num_entries > 1)
|
||||
grub_putcode (highlight ? '*' : ' ', data->term);
|
||||
|
||||
i += grub_unicode_aglomerate_comb (unicode_title + i,
|
||||
len - i, &glyph);
|
||||
grub_print_ucs4_menu (unicode_title,
|
||||
unicode_title + len,
|
||||
0,
|
||||
data->geo.right_margin,
|
||||
data->term, 0, 1,
|
||||
GRUB_UNICODE_RIGHTARROW, 0);
|
||||
|
||||
width = grub_term_getcharwidth (term, &glyph);
|
||||
|
||||
grub_unicode_destroy_glyph (&glyph);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
133
grub-core/partmap/dfly.c
Normal file
133
grub-core/partmap/dfly.c
Normal file
|
@ -0,0 +1,133 @@
|
|||
/* dfly.c - Read DragonFly BSD disklabel64. */
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/disk.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/mm.h>
|
||||
#include <grub/partition.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
static struct grub_partition_map grub_dfly_partition_map;
|
||||
|
||||
#define GRUB_PARTITION_DISKLABEL64_HEADER_SIZE 200
|
||||
|
||||
/* Full entry is 64 bytes however we really care only
|
||||
about offset and size which are in first 16 bytes.
|
||||
Avoid using too much stack. */
|
||||
#define GRUB_PARTITION_DISKLABEL64_ENTRY_SIZE 64
|
||||
struct grub_partition_disklabel64_entry
|
||||
{
|
||||
grub_uint64_t boffset;
|
||||
grub_uint64_t bsize;
|
||||
};
|
||||
|
||||
/* Full entry is 200 bytes however we really care only
|
||||
about magic and number of partitions which are in first 16 bytes.
|
||||
Avoid using too much stack. */
|
||||
struct grub_partition_disklabel64
|
||||
{
|
||||
grub_uint32_t magic;
|
||||
#define GRUB_DISKLABEL64_MAGIC ((grub_uint32_t)0xc4464c59)
|
||||
grub_uint32_t crc;
|
||||
grub_uint32_t unused;
|
||||
grub_uint32_t npartitions;
|
||||
};
|
||||
|
||||
static grub_err_t
|
||||
dfly_partition_map_iterate (grub_disk_t disk,
|
||||
grub_partition_iterate_hook_t hook,
|
||||
void *hook_data)
|
||||
{
|
||||
struct grub_partition part;
|
||||
unsigned partno, pos;
|
||||
struct grub_partition_disklabel64 label;
|
||||
|
||||
part.partmap = &grub_dfly_partition_map;
|
||||
|
||||
if (grub_disk_read (disk, 1, 0, sizeof (label), &label))
|
||||
return grub_errno;
|
||||
|
||||
if (label.magic != grub_cpu_to_le32_compile_time (GRUB_DISKLABEL64_MAGIC))
|
||||
{
|
||||
grub_dprintf ("partition",
|
||||
"bad magic (found 0x%" PRIxGRUB_UINT32_T "; "
|
||||
"wanted 0x%" PRIxGRUB_UINT32_T ")\n",
|
||||
grub_le_to_cpu32 (label.magic),
|
||||
GRUB_DISKLABEL64_MAGIC);
|
||||
return grub_error (GRUB_ERR_BAD_PART_TABLE, "disklabel64 not found");
|
||||
}
|
||||
|
||||
pos = GRUB_PARTITION_DISKLABEL64_HEADER_SIZE + GRUB_DISK_SECTOR_SIZE;
|
||||
|
||||
for (partno = 0;
|
||||
partno < grub_le_to_cpu32 (label.npartitions); ++partno)
|
||||
{
|
||||
grub_disk_addr_t sector = pos >> GRUB_DISK_SECTOR_BITS;
|
||||
grub_off_t offset = pos & (GRUB_DISK_SECTOR_SIZE - 1);
|
||||
struct grub_partition_disklabel64_entry dpart;
|
||||
|
||||
pos += GRUB_PARTITION_DISKLABEL64_ENTRY_SIZE;
|
||||
if (grub_disk_read (disk, sector, offset, sizeof (dpart), &dpart))
|
||||
return grub_errno;
|
||||
|
||||
grub_dprintf ("partition",
|
||||
"partition %2d: offset 0x%" PRIxGRUB_UINT64_T ", "
|
||||
"size 0x%" PRIxGRUB_UINT64_T "\n",
|
||||
partno,
|
||||
grub_le_to_cpu64 (dpart.boffset),
|
||||
grub_le_to_cpu64 (dpart.bsize));
|
||||
|
||||
/* Is partition initialized? */
|
||||
if (dpart.bsize == 0)
|
||||
continue;
|
||||
|
||||
part.number = partno;
|
||||
part.start = grub_le_to_cpu64 (dpart.boffset) >> GRUB_DISK_SECTOR_BITS;
|
||||
part.len = grub_le_to_cpu64 (dpart.bsize) >> GRUB_DISK_SECTOR_BITS;
|
||||
|
||||
/* This is counter-intuitive, but part.offset and sector have
|
||||
* the same type, and offset (NOT part.offset) is guaranteed
|
||||
* to fit into part.index. */
|
||||
part.offset = sector;
|
||||
part.index = offset;
|
||||
|
||||
if (hook (disk, &part, hook_data))
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
/* Partition map type. */
|
||||
static struct grub_partition_map grub_dfly_partition_map =
|
||||
{
|
||||
.name = "dfly",
|
||||
.iterate = dfly_partition_map_iterate,
|
||||
};
|
||||
|
||||
GRUB_MOD_INIT(part_dfly)
|
||||
{
|
||||
grub_partition_map_register (&grub_dfly_partition_map);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(part_dfly)
|
||||
{
|
||||
grub_partition_map_unregister (&grub_dfly_partition_map);
|
||||
}
|
|
@ -856,19 +856,10 @@ grub_script_execute_sourcecode_getline (char **line,
|
|||
|
||||
/* Execute a source script. */
|
||||
grub_err_t
|
||||
grub_script_execute_sourcecode (const char *source, int argc, char **args)
|
||||
grub_script_execute_sourcecode (const char *source)
|
||||
{
|
||||
grub_err_t ret = 0;
|
||||
struct grub_script *parsed_script;
|
||||
struct grub_script_scope new_scope;
|
||||
struct grub_script_scope *old_scope;
|
||||
|
||||
new_scope.argv.argc = argc;
|
||||
new_scope.argv.args = args;
|
||||
new_scope.flags = 0;
|
||||
|
||||
old_scope = scope;
|
||||
scope = &new_scope;
|
||||
|
||||
while (source)
|
||||
{
|
||||
|
@ -880,13 +871,35 @@ grub_script_execute_sourcecode (const char *source, int argc, char **args)
|
|||
if (! parsed_script)
|
||||
{
|
||||
ret = grub_errno;
|
||||
grub_free (line);
|
||||
break;
|
||||
}
|
||||
|
||||
ret = grub_script_execute (parsed_script);
|
||||
grub_script_free (parsed_script);
|
||||
grub_free (line);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Execute a source script in new scope. */
|
||||
grub_err_t
|
||||
grub_script_execute_new_scope (const char *source, int argc, char **args)
|
||||
{
|
||||
grub_err_t ret = 0;
|
||||
struct grub_script_scope new_scope;
|
||||
struct grub_script_scope *old_scope;
|
||||
|
||||
new_scope.argv.argc = argc;
|
||||
new_scope.argv.args = args;
|
||||
new_scope.flags = 0;
|
||||
|
||||
old_scope = scope;
|
||||
scope = &new_scope;
|
||||
|
||||
ret = grub_script_execute_sourcecode (source);
|
||||
|
||||
scope = old_scope;
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <grub/bitmap.h>
|
||||
#include <grub/command.h>
|
||||
#include <grub/extcmd.h>
|
||||
#include <grub/bitmap_scale.h>
|
||||
#include <grub/i18n.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
@ -113,7 +112,6 @@ static struct grub_video_render_target *render_target;
|
|||
void (*grub_gfxterm_decorator_hook) (void) = NULL;
|
||||
static struct grub_gfxterm_window window;
|
||||
static struct grub_virtual_screen virtual_screen;
|
||||
static grub_gfxterm_repaint_callback_t repaint_callback;
|
||||
static int repaint_scheduled = 0;
|
||||
static int repaint_was_scheduled = 0;
|
||||
|
||||
|
@ -121,11 +119,7 @@ static void destroy_window (void);
|
|||
|
||||
static struct grub_video_render_target *text_layer;
|
||||
|
||||
static unsigned int bitmap_width;
|
||||
static unsigned int bitmap_height;
|
||||
static struct grub_video_bitmap *bitmap;
|
||||
static int blend_text_bg;
|
||||
static grub_video_rgba_color_t default_bg_color = { 0, 0, 0, 0 };
|
||||
struct grub_gfxterm_background grub_gfxterm_background;
|
||||
|
||||
static struct grub_dirty_region dirty_region;
|
||||
|
||||
|
@ -255,14 +249,14 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y,
|
|||
|
||||
virtual_screen.standard_color_setting = DEFAULT_STANDARD_COLOR;
|
||||
|
||||
virtual_screen.term_color = GRUB_TERM_DEFAULT_NORMAL_COLOR;
|
||||
virtual_screen.term_color = grub_term_normal_color;
|
||||
|
||||
set_term_color (virtual_screen.term_color);
|
||||
|
||||
grub_video_set_active_render_target (render_target);
|
||||
|
||||
virtual_screen.bg_color_display =
|
||||
grub_video_map_rgba_color (default_bg_color);
|
||||
grub_video_map_rgba_color (grub_gfxterm_background.default_bg_color);
|
||||
|
||||
/* Clear out text buffer. */
|
||||
for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++)
|
||||
|
@ -336,7 +330,7 @@ grub_gfxterm_fullscreen (void)
|
|||
&& !(mode_info.mode_type & GRUB_VIDEO_MODE_TYPE_UPDATING_SWAP);
|
||||
|
||||
/* Make sure screen is set to the default background color. */
|
||||
color = grub_video_map_rgba_color (default_bg_color);
|
||||
color = grub_video_map_rgba_color (grub_gfxterm_background.default_bg_color);
|
||||
grub_video_fill_rect (color, 0, 0, mode_info.width, mode_info.height);
|
||||
if (double_redraw)
|
||||
{
|
||||
|
@ -395,7 +389,6 @@ grub_gfxterm_term_init (struct grub_term_output *term __attribute__ ((unused)))
|
|||
static void
|
||||
destroy_window (void)
|
||||
{
|
||||
repaint_callback = 0;
|
||||
grub_virtual_screen_free ();
|
||||
}
|
||||
|
||||
|
@ -433,10 +426,11 @@ redraw_screen_rect (unsigned int x, unsigned int y,
|
|||
(unsigned *) &saved_view.height);
|
||||
grub_video_set_viewport (window.x, window.y, window.width, window.height);
|
||||
|
||||
if (bitmap)
|
||||
if (grub_gfxterm_background.bitmap)
|
||||
{
|
||||
/* Render bitmap as background. */
|
||||
grub_video_blit_bitmap (bitmap, GRUB_VIDEO_BLIT_REPLACE, x, y,
|
||||
grub_video_blit_bitmap (grub_gfxterm_background.bitmap,
|
||||
GRUB_VIDEO_BLIT_REPLACE, x, y,
|
||||
x, y,
|
||||
width, height);
|
||||
|
||||
|
@ -445,20 +439,21 @@ redraw_screen_rect (unsigned int x, unsigned int y,
|
|||
color = virtual_screen.bg_color_display;
|
||||
|
||||
/* Fill right side of the bitmap if needed. */
|
||||
if ((x + width >= bitmap_width) && (y < bitmap_height))
|
||||
if ((x + width >= grub_gfxterm_background.bitmap->mode_info.width)
|
||||
&& (y < grub_gfxterm_background.bitmap->mode_info.height))
|
||||
{
|
||||
int w = (x + width) - bitmap_width;
|
||||
int w = (x + width) - grub_gfxterm_background.bitmap->mode_info.width;
|
||||
int h = height;
|
||||
unsigned int tx = x;
|
||||
|
||||
if (y + height >= bitmap_height)
|
||||
if (y + height >= grub_gfxterm_background.bitmap->mode_info.height)
|
||||
{
|
||||
h = bitmap_height - y;
|
||||
h = grub_gfxterm_background.bitmap->mode_info.height - y;
|
||||
}
|
||||
|
||||
if (bitmap_width > tx)
|
||||
if (grub_gfxterm_background.bitmap->mode_info.width > tx)
|
||||
{
|
||||
tx = bitmap_width;
|
||||
tx = grub_gfxterm_background.bitmap->mode_info.width;
|
||||
}
|
||||
|
||||
/* Render background layer. */
|
||||
|
@ -466,14 +461,14 @@ redraw_screen_rect (unsigned int x, unsigned int y,
|
|||
}
|
||||
|
||||
/* Fill bottom side of the bitmap if needed. */
|
||||
if (y + height >= bitmap_height)
|
||||
if (y + height >= grub_gfxterm_background.bitmap->mode_info.height)
|
||||
{
|
||||
int h = (y + height) - bitmap_height;
|
||||
int h = (y + height) - grub_gfxterm_background.bitmap->mode_info.height;
|
||||
unsigned int ty = y;
|
||||
|
||||
if (bitmap_height > ty)
|
||||
if (grub_gfxterm_background.bitmap->mode_info.height > ty)
|
||||
{
|
||||
ty = bitmap_height;
|
||||
ty = grub_gfxterm_background.bitmap->mode_info.height;
|
||||
}
|
||||
|
||||
/* Render background layer. */
|
||||
|
@ -487,7 +482,7 @@ redraw_screen_rect (unsigned int x, unsigned int y,
|
|||
grub_video_fill_rect (color, x, y, width, height);
|
||||
}
|
||||
|
||||
if (blend_text_bg)
|
||||
if (grub_gfxterm_background.blend_text_bg)
|
||||
/* Render text layer as blended. */
|
||||
grub_video_blit_render_target (text_layer, GRUB_VIDEO_BLIT_BLEND, x, y,
|
||||
x - virtual_screen.offset_x,
|
||||
|
@ -504,9 +499,6 @@ redraw_screen_rect (unsigned int x, unsigned int y,
|
|||
grub_video_set_viewport (saved_view.x, saved_view.y,
|
||||
saved_view.width, saved_view.height);
|
||||
grub_video_set_active_render_target (render_target);
|
||||
|
||||
if (repaint_callback)
|
||||
repaint_callback (x, y, width, height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -561,8 +553,8 @@ dirty_region_add (int x, int y, unsigned int width, unsigned int height)
|
|||
|
||||
if (repaint_scheduled)
|
||||
{
|
||||
dirty_region_add_real (virtual_screen.offset_x, virtual_screen.offset_y,
|
||||
virtual_screen.width, virtual_screen.height);
|
||||
dirty_region_add_real (0, 0,
|
||||
window.width, window.height);
|
||||
repaint_scheduled = 0;
|
||||
repaint_was_scheduled = 1;
|
||||
}
|
||||
|
@ -707,7 +699,7 @@ real_scroll (void)
|
|||
return;
|
||||
|
||||
/* If we have bitmap, re-draw screen, otherwise scroll physical screen too. */
|
||||
if (bitmap)
|
||||
if (grub_gfxterm_background.bitmap)
|
||||
{
|
||||
/* Scroll physical screen. */
|
||||
grub_video_set_active_render_target (text_layer);
|
||||
|
@ -729,7 +721,7 @@ real_scroll (void)
|
|||
|
||||
i = window.double_repaint ? 2 : 1;
|
||||
|
||||
color = virtual_screen.bg_color;
|
||||
color = virtual_screen.bg_color_display;
|
||||
|
||||
while (i--)
|
||||
{
|
||||
|
@ -791,9 +783,6 @@ real_scroll (void)
|
|||
/* Draw cursor if visible. */
|
||||
if (virtual_screen.cursor_state)
|
||||
draw_cursor (1);
|
||||
|
||||
if (repaint_callback)
|
||||
repaint_callback (window.x, window.y, window.width, window.height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1092,145 +1081,6 @@ grub_gfxterm_refresh (struct grub_term_output *term __attribute__ ((unused)))
|
|||
dirty_region_reset ();
|
||||
}
|
||||
|
||||
void
|
||||
grub_gfxterm_set_repaint_callback (grub_gfxterm_repaint_callback_t func)
|
||||
{
|
||||
repaint_callback = func;
|
||||
}
|
||||
|
||||
/* Option array indices. */
|
||||
#define BACKGROUND_CMD_ARGINDEX_MODE 0
|
||||
|
||||
static const struct grub_arg_option background_image_cmd_options[] =
|
||||
{
|
||||
{"mode", 'm', 0, N_("Background image mode."),
|
||||
/* TRANSLATORS: This refers to background image mode (stretched or
|
||||
in left-top corner). Note that GRUB will accept only original
|
||||
keywords stretch and normal, not the translated ones.
|
||||
So please put both in translation
|
||||
e.g. stretch(=%STRETCH%)|normal(=%NORMAL%).
|
||||
The percents mark the translated version. Since many people
|
||||
may not know the word stretch or normal I recommend
|
||||
putting the translation either here or in "Background image mode."
|
||||
string. */
|
||||
N_("stretch|normal"),
|
||||
ARG_TYPE_STRING},
|
||||
{0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
static grub_err_t
|
||||
grub_gfxterm_background_image_cmd (grub_extcmd_context_t ctxt,
|
||||
int argc, char **args)
|
||||
{
|
||||
struct grub_arg_list *state = ctxt->state;
|
||||
|
||||
/* Check that we have video adapter active. */
|
||||
if (grub_video_get_info(NULL) != GRUB_ERR_NONE)
|
||||
return grub_errno;
|
||||
|
||||
/* Destroy existing background bitmap if loaded. */
|
||||
if (bitmap)
|
||||
{
|
||||
grub_video_bitmap_destroy (bitmap);
|
||||
bitmap = 0;
|
||||
blend_text_bg = 0;
|
||||
|
||||
/* Mark whole screen as dirty. */
|
||||
dirty_region_add (0, 0, window.width, window.height);
|
||||
}
|
||||
|
||||
/* If filename was provided, try to load that. */
|
||||
if (argc >= 1)
|
||||
{
|
||||
/* Try to load new one. */
|
||||
grub_video_bitmap_load (&bitmap, args[0]);
|
||||
if (grub_errno != GRUB_ERR_NONE)
|
||||
return grub_errno;
|
||||
|
||||
/* Determine if the bitmap should be scaled to fit the screen. */
|
||||
if (!state[BACKGROUND_CMD_ARGINDEX_MODE].set
|
||||
|| grub_strcmp (state[BACKGROUND_CMD_ARGINDEX_MODE].arg,
|
||||
"stretch") == 0)
|
||||
{
|
||||
if (window.width != grub_video_bitmap_get_width (bitmap)
|
||||
|| window.height != grub_video_bitmap_get_height (bitmap))
|
||||
{
|
||||
struct grub_video_bitmap *scaled_bitmap;
|
||||
grub_video_bitmap_create_scaled (&scaled_bitmap,
|
||||
window.width,
|
||||
window.height,
|
||||
bitmap,
|
||||
GRUB_VIDEO_BITMAP_SCALE_METHOD_BEST);
|
||||
if (grub_errno == GRUB_ERR_NONE)
|
||||
{
|
||||
/* Replace the original bitmap with the scaled one. */
|
||||
grub_video_bitmap_destroy (bitmap);
|
||||
bitmap = scaled_bitmap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* If bitmap was loaded correctly, display it. */
|
||||
if (bitmap)
|
||||
{
|
||||
blend_text_bg = 1;
|
||||
|
||||
/* Determine bitmap dimensions. */
|
||||
bitmap_width = grub_video_bitmap_get_width (bitmap);
|
||||
bitmap_height = grub_video_bitmap_get_height (bitmap);
|
||||
|
||||
/* Mark whole screen as dirty. */
|
||||
dirty_region_add (0, 0, window.width, window.height);
|
||||
}
|
||||
}
|
||||
|
||||
/* All was ok. */
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_gfxterm_background_color_cmd (grub_command_t cmd __attribute__ ((unused)),
|
||||
int argc, char **args)
|
||||
{
|
||||
struct grub_video_render_target *old_target;
|
||||
|
||||
if (argc != 1)
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected"));
|
||||
|
||||
/* Check that we have video adapter active. */
|
||||
if (grub_video_get_info (NULL) != GRUB_ERR_NONE)
|
||||
return grub_errno;
|
||||
|
||||
if (grub_video_parse_color (args[0], &default_bg_color) != GRUB_ERR_NONE)
|
||||
return grub_errno;
|
||||
|
||||
/* Destroy existing background bitmap if loaded. */
|
||||
if (bitmap)
|
||||
{
|
||||
grub_video_bitmap_destroy (bitmap);
|
||||
bitmap = 0;
|
||||
|
||||
/* Mark whole screen as dirty. */
|
||||
dirty_region_add (0, 0, window.width, window.height);
|
||||
}
|
||||
|
||||
/* Set the background and border colors. The background color needs to be
|
||||
compatible with the text layer. */
|
||||
grub_video_get_active_render_target (&old_target);
|
||||
grub_video_set_active_render_target (text_layer);
|
||||
virtual_screen.bg_color = grub_video_map_rgba_color (default_bg_color);
|
||||
grub_video_set_active_render_target (old_target);
|
||||
virtual_screen.bg_color_display =
|
||||
grub_video_map_rgba_color (default_bg_color);
|
||||
blend_text_bg = 1;
|
||||
|
||||
/* Mark whole screen as dirty. */
|
||||
dirty_region_add (0, 0, window.width, window.height);
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static struct grub_term_output grub_video_term =
|
||||
{
|
||||
.name = "gfxterm",
|
||||
|
@ -1250,36 +1100,40 @@ static struct grub_term_output grub_video_term =
|
|||
.next = 0
|
||||
};
|
||||
|
||||
static grub_extcmd_t background_image_cmd_handle;
|
||||
static grub_command_t background_color_cmd_handle;
|
||||
void
|
||||
grub_gfxterm_video_update_color (void)
|
||||
{
|
||||
struct grub_video_render_target *old_target;
|
||||
|
||||
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
|
||||
grub_video_get_active_render_target (&old_target);
|
||||
grub_video_set_active_render_target (text_layer);
|
||||
virtual_screen.bg_color = grub_video_map_rgba_color (grub_gfxterm_background.default_bg_color);
|
||||
grub_video_set_active_render_target (old_target);
|
||||
virtual_screen.bg_color_display =
|
||||
grub_video_map_rgba_color (grub_gfxterm_background.default_bg_color);
|
||||
}
|
||||
|
||||
void
|
||||
grub_gfxterm_get_dimensions (unsigned *width, unsigned *height)
|
||||
{
|
||||
*width = window.width;
|
||||
*height = window.height;
|
||||
}
|
||||
|
||||
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_COREBOOT)
|
||||
void grub_gfxterm_init (void)
|
||||
#else
|
||||
GRUB_MOD_INIT(gfxterm)
|
||||
#endif
|
||||
{
|
||||
grub_term_register_output ("gfxterm", &grub_video_term);
|
||||
background_image_cmd_handle =
|
||||
grub_register_extcmd ("background_image",
|
||||
grub_gfxterm_background_image_cmd, 0,
|
||||
N_("[-m (stretch|normal)] FILE"),
|
||||
N_("Load background image for active terminal."),
|
||||
background_image_cmd_options);
|
||||
background_color_cmd_handle =
|
||||
grub_register_command ("background_color",
|
||||
grub_gfxterm_background_color_cmd,
|
||||
N_("COLOR"),
|
||||
N_("Set background color for active terminal."));
|
||||
}
|
||||
|
||||
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
|
||||
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_COEBOOT)
|
||||
void grub_gfxterm_fini (void)
|
||||
#else
|
||||
GRUB_MOD_FINI(gfxterm)
|
||||
#endif
|
||||
{
|
||||
grub_unregister_command (background_color_cmd_handle);
|
||||
grub_unregister_extcmd (background_image_cmd_handle);
|
||||
grub_term_unregister_output (&grub_video_term);
|
||||
}
|
||||
|
|
190
grub-core/term/gfxterm_background.c
Normal file
190
grub-core/term/gfxterm_background.c
Normal file
|
@ -0,0 +1,190 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/term.h>
|
||||
#include <grub/types.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/font.h>
|
||||
#include <grub/mm.h>
|
||||
#include <grub/env.h>
|
||||
#include <grub/video.h>
|
||||
#include <grub/gfxterm.h>
|
||||
#include <grub/bitmap.h>
|
||||
#include <grub/command.h>
|
||||
#include <grub/extcmd.h>
|
||||
#include <grub/bitmap_scale.h>
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/color.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
/* Option array indices. */
|
||||
enum
|
||||
{
|
||||
BACKGROUND_CMD_ARGINDEX_MODE = 0
|
||||
};
|
||||
|
||||
static const struct grub_arg_option background_image_cmd_options[] =
|
||||
{
|
||||
{"mode", 'm', 0, N_("Background image mode."),
|
||||
/* TRANSLATORS: This refers to background image mode (stretched or
|
||||
in left-top corner). Note that GRUB will accept only original
|
||||
keywords stretch and normal, not the translated ones.
|
||||
So please put both in translation
|
||||
e.g. stretch(=%STRETCH%)|normal(=%NORMAL%).
|
||||
The percents mark the translated version. Since many people
|
||||
may not know the word stretch or normal I recommend
|
||||
putting the translation either here or in "Background image mode."
|
||||
string. */
|
||||
N_("stretch|normal"),
|
||||
ARG_TYPE_STRING},
|
||||
{0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
static grub_err_t
|
||||
grub_gfxterm_background_image_cmd (grub_extcmd_context_t ctxt,
|
||||
int argc, char **args)
|
||||
{
|
||||
struct grub_arg_list *state = ctxt->state;
|
||||
|
||||
/* Check that we have video adapter active. */
|
||||
if (grub_video_get_info(NULL) != GRUB_ERR_NONE)
|
||||
return grub_errno;
|
||||
|
||||
/* Destroy existing background bitmap if loaded. */
|
||||
if (grub_gfxterm_background.bitmap)
|
||||
{
|
||||
grub_video_bitmap_destroy (grub_gfxterm_background.bitmap);
|
||||
grub_gfxterm_background.bitmap = 0;
|
||||
grub_gfxterm_background.blend_text_bg = 0;
|
||||
|
||||
/* Mark whole screen as dirty. */
|
||||
grub_gfxterm_schedule_repaint ();
|
||||
}
|
||||
|
||||
/* If filename was provided, try to load that. */
|
||||
if (argc >= 1)
|
||||
{
|
||||
/* Try to load new one. */
|
||||
grub_video_bitmap_load (&grub_gfxterm_background.bitmap, args[0]);
|
||||
if (grub_errno != GRUB_ERR_NONE)
|
||||
return grub_errno;
|
||||
|
||||
/* Determine if the bitmap should be scaled to fit the screen. */
|
||||
if (!state[BACKGROUND_CMD_ARGINDEX_MODE].set
|
||||
|| grub_strcmp (state[BACKGROUND_CMD_ARGINDEX_MODE].arg,
|
||||
"stretch") == 0)
|
||||
{
|
||||
unsigned int width, height;
|
||||
grub_gfxterm_get_dimensions (&width, &height);
|
||||
if (width
|
||||
!= grub_video_bitmap_get_width (grub_gfxterm_background.bitmap)
|
||||
|| height
|
||||
!= grub_video_bitmap_get_height (grub_gfxterm_background.bitmap))
|
||||
{
|
||||
struct grub_video_bitmap *scaled_bitmap;
|
||||
grub_video_bitmap_create_scaled (&scaled_bitmap,
|
||||
width,
|
||||
height,
|
||||
grub_gfxterm_background.bitmap,
|
||||
GRUB_VIDEO_BITMAP_SCALE_METHOD_BEST);
|
||||
if (grub_errno == GRUB_ERR_NONE)
|
||||
{
|
||||
/* Replace the original bitmap with the scaled one. */
|
||||
grub_video_bitmap_destroy (grub_gfxterm_background.bitmap);
|
||||
grub_gfxterm_background.bitmap = scaled_bitmap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* If bitmap was loaded correctly, display it. */
|
||||
if (grub_gfxterm_background.bitmap)
|
||||
{
|
||||
grub_gfxterm_background.blend_text_bg = 1;
|
||||
|
||||
/* Mark whole screen as dirty. */
|
||||
grub_gfxterm_schedule_repaint ();
|
||||
}
|
||||
}
|
||||
|
||||
/* All was ok. */
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
grub_gfxterm_background_color_cmd (grub_command_t cmd __attribute__ ((unused)),
|
||||
int argc, char **args)
|
||||
{
|
||||
if (argc != 1)
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected"));
|
||||
|
||||
/* Check that we have video adapter active. */
|
||||
if (grub_video_get_info (NULL) != GRUB_ERR_NONE)
|
||||
return grub_errno;
|
||||
|
||||
if (grub_video_parse_color (args[0],
|
||||
&grub_gfxterm_background.default_bg_color)
|
||||
!= GRUB_ERR_NONE)
|
||||
return grub_errno;
|
||||
|
||||
/* Destroy existing background bitmap if loaded. */
|
||||
if (grub_gfxterm_background.bitmap)
|
||||
{
|
||||
grub_video_bitmap_destroy (grub_gfxterm_background.bitmap);
|
||||
grub_gfxterm_background.bitmap = 0;
|
||||
|
||||
/* Mark whole screen as dirty. */
|
||||
grub_gfxterm_schedule_repaint ();
|
||||
}
|
||||
|
||||
/* Set the background and border colors. The background color needs to be
|
||||
compatible with the text layer. */
|
||||
grub_gfxterm_video_update_color ();
|
||||
grub_gfxterm_background.blend_text_bg = 1;
|
||||
|
||||
/* Mark whole screen as dirty. */
|
||||
grub_gfxterm_schedule_repaint ();
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static grub_extcmd_t background_image_cmd_handle;
|
||||
static grub_command_t background_color_cmd_handle;
|
||||
|
||||
GRUB_MOD_INIT(gfxterm_background)
|
||||
{
|
||||
background_image_cmd_handle =
|
||||
grub_register_extcmd ("background_image",
|
||||
grub_gfxterm_background_image_cmd, 0,
|
||||
N_("[-m (stretch|normal)] FILE"),
|
||||
N_("Load background image for active terminal."),
|
||||
background_image_cmd_options);
|
||||
background_color_cmd_handle =
|
||||
grub_register_command ("background_color",
|
||||
grub_gfxterm_background_color_cmd,
|
||||
N_("COLOR"),
|
||||
N_("Set background color for active terminal."));
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(gfxterm_background)
|
||||
{
|
||||
grub_unregister_command (background_color_cmd_handle);
|
||||
grub_unregister_extcmd (background_image_cmd_handle);
|
||||
}
|
|
@ -23,7 +23,7 @@
|
|||
#include <grub/time.h>
|
||||
#include <grub/terminfo.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/machine/lbio.h>
|
||||
#include <grub/i386/coreboot/lbio.h>
|
||||
#include <grub/command.h>
|
||||
#include <grub/normal.h>
|
||||
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
#define MODE_MDA 1
|
||||
#include "vga_text.c"
|
||||
|
||||
GRUB_MOD_INIT(mda_text)
|
||||
{
|
||||
grub_term_register_output ("mda_text", &grub_vga_text_term);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(mda_text)
|
||||
{
|
||||
grub_term_unregister_output (&grub_vga_text_term);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,10 @@
|
|||
#include <grub/vga.h>
|
||||
#include <grub/term.h>
|
||||
|
||||
#if defined (GRUB_MACHINE_COREBOOT)
|
||||
#include <grub/machine/console.h>
|
||||
#endif
|
||||
|
||||
/* MODESET is used for testing to force monochrome or colour mode.
|
||||
You shouldn't use mda_text on vga.
|
||||
*/
|
||||
|
@ -267,24 +271,23 @@ static struct grub_term_output grub_vga_text_term =
|
|||
.flags = GRUB_TERM_CODE_TYPE_CP437,
|
||||
};
|
||||
|
||||
#ifdef MODE_MDA
|
||||
GRUB_MOD_INIT(mda_text)
|
||||
#elif defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) || defined (GRUB_MACHINE_MULTIBOOT)
|
||||
/* FIXME: this is was too spaghetti. */
|
||||
|
||||
#ifndef MODE_MDA
|
||||
|
||||
#if defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) || defined (GRUB_MACHINE_MULTIBOOT)
|
||||
void grub_vga_text_init (void)
|
||||
#else
|
||||
GRUB_MOD_INIT(vga_text)
|
||||
#endif
|
||||
{
|
||||
#ifdef MODE_MDA
|
||||
grub_term_register_output ("mda_text", &grub_vga_text_term);
|
||||
#else
|
||||
grub_term_register_output ("vga_text", &grub_vga_text_term);
|
||||
#ifdef GRUB_MACHINE_COREBOOT
|
||||
if (!grub_video_coreboot_fbtable)
|
||||
#endif
|
||||
grub_term_register_output ("vga_text", &grub_vga_text_term);
|
||||
}
|
||||
|
||||
#ifdef MODE_MDA
|
||||
GRUB_MOD_FINI(mda_text)
|
||||
#elif defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) || defined (GRUB_MACHINE_MULTIBOOT)
|
||||
#if defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) || defined (GRUB_MACHINE_MULTIBOOT)
|
||||
void grub_vga_text_fini (void)
|
||||
#else
|
||||
GRUB_MOD_FINI(vga_text)
|
||||
|
@ -292,3 +295,5 @@ GRUB_MOD_FINI(vga_text)
|
|||
{
|
||||
grub_term_unregister_output (&grub_vga_text_term);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -4,396 +4,420 @@
|
|||
{ "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xbb687653, 0xbb687653, 0xa81427a7, 0xa81427a7, 0x71d7f3b, 0x71d7f3b, 0x25fea6ca, 0x25fea6ca, 0x17c19d74, 0x17c19d74, 0x4779bf48, 0x4779bf48, 0xe424e759, 0xe424e759, 0xb57fb5ae, 0xb57fb5ae, 0xd877002b, 0xd877002b, 0xdd8d7442, 0xdd8d7442, 0xe2536fde, 0xe2536fde, 0x1ebba341, 0x1ebba341, 0xef042176, 0xef042176, 0x6137f228, 0x6137f228, 0xf04a8558, 0xf04a8558, 0xff72172d, 0xff72172d, 0x5f26278f, 0x5f26278f, 0x3ed777c, 0x3ed777c, 0xb1d686e, 0xb1d686e, 0x5cead249, 0x5cead249, 0x271487f6, 0x3b9ece9a, 0xccc3db5e, 0xccc3db5e, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xd594219a, 0xd594219a, 0x254fa44c, 0x254fa44c, 0x30177d61, 0x30177d61, 0x1a576e20, 0x1a576e20, 0xe439395f, 0xe439395f, 0xb289a26f, 0xb289a26f, 0xc9eaceca, 0xc9eaceca, 0x9e76037b, 0x9e76037b, 0xfa098eb4, 0xfa098eb4, 0x5881d993, 0x5881d993, 0x3a4ac117, 0x3a4ac117, 0x203e9716, 0x203e9716, 0x67aed713, 0x67aed713, 0xb740eccb, 0xb740eccb, 0xd50247da, 0xd50247da, 0xe0c382bf, 0xe0c382bf, 0x95d81f9d, 0x95d81f9d, 0x1051b5ac, 0x1051b5ac, 0x71f00e30, 0x71f00e30, 0xe35fe082, 0xe35fe082, 0xeda25a7a, 0xc4543b1e, 0x4725b91c, 0x4725b91c, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd803b53b, 0xd803b53b, 0x70b7ae8b, 0x70b7ae8b, 0xa20d9a15, 0xa20d9a15, 0x6113d33b, 0x6113d33b, 0xfd38d301, 0xfd38d301, 0x8b04db4, 0x8b04db4, 0xdae859df, 0xdae859df, 0x80cf138b, 0x80cf138b, 0xdfa6ef9, 0xdfa6ef9, 0x856adaf0, 0x856adaf0, 0x7023cc2d, 0x7023cc2d, 0xad7e7d54, 0xad7e7d54, 0xde8eff49, 0xde8eff49, 0x34355cc3, 0x34355cc3, 0x25adccda, 0x25adccda, 0x6d6c350d, 0x6d6c350d, 0x1c49b499, 0x1c49b499, 0x8188f1b4, 0x8188f1b4, 0x5556dc0c, 0x5556dc0c, 0xbd9ef1f5, 0xbd9ef1f5, 0x5176575b, 0xd3e2f7f1, 0xccda996c, 0xccda996c, }, 45 },
|
||||
{ "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 },
|
||||
{ "cmdline_cat", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x7dbff368, 0x7dbff368, 0x5a5bdc8d, 0x5a5bdc8d, 0x79753177, 0x79753177, 0xd01ede5b, 0xd01ede5b, 0x13708a73, 0x13708a73, 0x90186de3, 0x90186de3, 0xe63d02a2, 0xe63d02a2, 0x2c9dc262, 0x2c9dc262, 0x3eebd7b, 0x3eebd7b, 0xe8f3a5d8, 0xe8f3a5d8, 0xd38ecfe3, 0xd38ecfe3, 0x51878485, 0x51878485, 0xcbdb6d67, 0xcbdb6d67, 0xca25582, 0xca25582, 0x5bea0484, 0x5bea0484, 0x9ec5f71d, 0x9ec5f71d, 0x3f0bd7bc, 0x3f0bd7bc, 0xdbb0a5d2, 0xdbb0a5d2, 0xea710e2f, 0xea710e2f, 0xd14933fe, 0xd14933fe, 0x4906b783, 0xad94ffeb, 0xf31c9259, 0xf31c9259, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xfeea303f, 0xfeea303f, 0x9a6d5200, 0x9a6d5200, 0x784f6e43, 0x784f6e43, 0xc3973f40, 0xc3973f40, 0x954a7cb1, 0x954a7cb1, 0x8b7c607f, 0x8b7c607f, 0x290bf4b3, 0x290bf4b3, 0x5d67148d, 0x5d67148d, 0x37008df4, 0x37008df4, 0xce9d51c7, 0xce9d51c7, 0xe29b4663, 0xe29b4663, 0xefb7cd59, 0xefb7cd59, 0xe12cc621, 0xe12cc621, 0xd6d4461f, 0xd6d4461f, 0x4d4490ef, 0x4d4490ef, 0x6ce4a360, 0x6ce4a360, 0x812e6359, 0x812e6359, 0xe2f82bc9, 0xe2f82bc9, 0x9621917d, 0x9621917d, 0xbbe37c69, 0xbbe37c69, 0x719d9b99, 0xe95c1cc3, 0xe0476ad0, 0xe0476ad0, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x50b82239, 0x50b82239, 0x82c36c12, 0x82c36c12, 0x6311208d, 0x6311208d, 0x816bd4b3, 0x816bd4b3, 0xc9281fd0, 0xc9281fd0, 0x75767bac, 0x75767bac, 0x52edeac, 0x52edeac, 0xfdb551f7, 0xfdb551f7, 0xba21cd3, 0xba21cd3, 0xf2b3468a, 0xf2b3468a, 0xd5560323, 0xd5560323, 0x12c650f6, 0x12c650f6, 0x3d6c5861, 0x3d6c5861, 0x50062423, 0x50062423, 0x2ce22983, 0x2ce22983, 0x4996bc4d, 0x4996bc4d, 0x50450525, 0x50450525, 0xe1c94312, 0xe1c94312, 0x21224aac, 0x21224aac, 0x94cbe214, 0x94cbe214, 0x4578c664, 0xcb360887, 0x5a749f1d, 0x5a749f1d, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x93fbd3a3, 0x93fbd3a3, 0x1617bee0, 0x1617bee0, 0x4bfbae7f, 0x4bfbae7f, 0xa3558248, 0xa3558248, 0xaf468a11, 0xaf468a11, 0x68ac5986, 0x68ac5986, 0xd8065600, 0xd8065600, 0xef6c6222, 0xef6c6222, 0x1a04371, 0x1a04371, 0xc92981b6, 0xc92981b6, 0x53f9bfc8, 0x53f9bfc8, 0xfef01300, 0xfef01300, 0xce753805, 0xce753805, 0x858f6540, 0x858f6540, 0x6429dae4, 0x6429dae4, 0x19222aa5, 0x19222aa5, 0x3f9a0303, 0x3f9a0303, 0x978a47da, 0x978a47da, 0x6bf7f199, 0x6bf7f199, 0x97dab6d, 0x97dab6d, 0xeb643dbd, 0x550f5f8f, 0xe193f4d2, 0xe193f4d2, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x76ccc774, 0x76ccc774, 0x98fe3b7, 0x98fe3b7, 0xca4fb383, 0xca4fb383, 0x7c96c0b0, 0x7c96c0b0, 0x2e247de1, 0x2e247de1, 0x13eba5d3, 0x13eba5d3, 0xb8eee962, 0xb8eee962, 0xc9e8c791, 0xc9e8c791, 0x42ab69c2, 0x42ab69c2, 0x564457bc, 0x564457bc, 0xcb44a632, 0xcb44a632, 0x9f213022, 0x9f213022, 0xc0a90c8a, 0xc0a90c8a, 0x501e7270, 0x501e7270, 0x1f3d02b1, 0x1f3d02b1, 0x384f7a25, 0x384f7a25, 0xd927326, 0xd927326, 0xd53f190e, 0xd53f190e, 0x14580b31, 0x14580b31, 0xab958892, 0xab958892, 0xea73f407, 0xb83e8860, 0xd809749b, 0xd809749b, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0xccbd401, 0xccbd401, 0x35859629, 0x35859629, 0x269f013b, 0x269f013b, 0xe8c8196, 0xe8c8196, 0x95e2849c, 0x95e2849c, 0xb2019543, 0xb2019543, 0xf739b6c9, 0xf739b6c9, 0xd8227519, 0xd8227519, 0x6b1ae8cf, 0x6b1ae8cf, 0x84fbe9b2, 0x84fbe9b2, 0xed69a305, 0xed69a305, 0x15f4f0cf, 0x15f4f0cf, 0x57ce0973, 0x57ce0973, 0x3f5b0b97, 0x3f5b0b97, 0xc3e87bef, 0xc3e87bef, 0x3ac7584b, 0x3ac7584b, 0xdb95f2c7, 0xdb95f2c7, 0xc1942d4c, 0xc1942d4c, 0x17e9634e, 0x17e9634e, 0xd8dd41a3, 0xd8dd41a3, 0x927a8a2f, 0x93601438, 0x99734c52, 0x99734c52, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xa06498a0, 0xa06498a0, 0xd1336ad7, 0xd1336ad7, 0x68c888e0, 0x68c888e0, 0xf01fb74, 0xf01fb74, 0x6b743235, 0x6b743235, 0xe7b71a49, 0xe7b71a49, 0x798da4d7, 0x798da4d7, 0x5398f44b, 0x5398f44b, 0x4794ee5e, 0x4794ee5e, 0x61c2cb0d, 0x61c2cb0d, 0xad3fcef3, 0xad3fcef3, 0xd9b6f291, 0xd9b6f291, 0xbaf0962d, 0xbaf0962d, 0x11848b9e, 0x11848b9e, 0xb8f3d2bf, 0xb8f3d2bf, 0x3f9978, 0x3f9978, 0xafd76c24, 0xafd76c24, 0xee0b9b9e, 0xee0b9b9e, 0x1f80451e, 0x1f80451e, 0x817e030a, 0x817e030a, 0x64ee9a5d, 0x30cb16a0, 0x9f133607, 0x9f133607, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8004336f, 0x8004336f, 0xad06caa7, 0xad06caa7, 0xe5239f6d, 0xe5239f6d, 0xd1a80f62, 0xd1a80f62, 0x9b64514c, 0x9b64514c, 0xd21e6b10, 0xd21e6b10, 0x7ab967ae, 0x7ab967ae, 0x7d706a4a, 0x7d706a4a, 0xf2b0f702, 0xf2b0f702, 0x9696e0f7, 0x9696e0f7, 0x77e0f417, 0x77e0f417, 0xf45e418d, 0xf45e418d, 0x2e5b6a0a, 0x2e5b6a0a, 0x1be1c567, 0x1be1c567, 0xf8c9e2fa, 0xf8c9e2fa, 0xd574e688, 0xd574e688, 0x3092ce78, 0x3092ce78, 0x265dd1a4, 0x265dd1a4, 0x62543ca1, 0x62543ca1, 0xcabbab6d, 0xcabbab6d, 0xc600820f, 0xd923e667, 0xafaf4e69, 0xafaf4e69, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0x698515fa, 0x698515fa, 0xc313ebe6, 0xc313ebe6, 0x32b9228f, 0x32b9228f, 0xa58d78e8, 0xa58d78e8, 0xf41d5153, 0xf41d5153, 0xdfa3af16, 0xdfa3af16, 0xd4a68422, 0xd4a68422, 0xa7ea67e0, 0xa7ea67e0, 0xaee4c8f6, 0xaee4c8f6, 0x78ddd8aa, 0x78ddd8aa, 0xe662b827, 0xe662b827, 0x190ab892, 0x190ab892, 0x7c1e04ab, 0x7c1e04ab, 0xae4e2ed2, 0xae4e2ed2, 0x9ac52f8d, 0x9ac52f8d, 0x7e7b6776, 0x7e7b6776, 0x21c37700, 0x21c37700, 0x4fc11e7c, 0x4fc11e7c, 0x612a17d, 0x612a17d, 0x1f549440, 0x1f549440, 0xd6ce5af0, 0x224035b9, 0x44f3a671, 0x44f3a671, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0x7a06e04b, 0x7a06e04b, 0x122f59ab, 0x122f59ab, 0x993a50b9, 0x993a50b9, 0x5545f8f, 0x5545f8f, 0xcdd2b587, 0xcdd2b587, 0x18bec138, 0x18bec138, 0xa9b4345d, 0xa9b4345d, 0x92c6eb1c, 0x92c6eb1c, 0x2aa44d63, 0x2aa44d63, 0xc9e7b549, 0xc9e7b549, 0x24732d85, 0x24732d85, 0xeedce06, 0xeedce06, 0x69a732a1, 0x69a732a1, 0xc53906e5, 0xc53906e5, 0x306e0f4b, 0x306e0f4b, 0x895e6f09, 0x895e6f09, 0x27f1c24e, 0x27f1c24e, 0x76a2b606, 0x76a2b606, 0x9fdd1ff3, 0x9fdd1ff3, 0x408d0a19, 0x408d0a19, 0xc9b3f877, 0xc61012d1, 0x84f4c7c7, 0x84f4c7c7, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xc75a4c6f, 0xc75a4c6f, 0xf155d437, 0xf155d437, 0x5c0c9c6d, 0x5c0c9c6d, 0x32b70f0b, 0x32b70f0b, 0x15b49b81, 0x15b49b81, 0xe0ac73bd, 0xe0ac73bd, 0xc1f20b9b, 0xc1f20b9b, 0xf123f819, 0xf123f819, 0xb9d31c70, 0xb9d31c70, 0x1af8bb11, 0x1af8bb11, 0xde51611e, 0xde51611e, 0x555bf1a9, 0x555bf1a9, 0x7fc1c1ac, 0x7fc1c1ac, 0x10f80e90, 0x10f80e90, 0xdf2c47d, 0xdf2c47d, 0x2b0b3367, 0x2b0b3367, 0x10e958fb, 0x10e958fb, 0x84fa0fc1, 0x84fa0fc1, 0x17e0c3af, 0x17e0c3af, 0xfb8ccf09, 0xfb8ccf09, 0xcb360cda, 0xc99cbad4, 0x83b5c166, 0x83b5c166, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x7d9b5dd7, 0x7d9b5dd7, 0x42e1176a, 0x42e1176a, 0x7e2da576, 0x7e2da576, 0xd5a8afa, 0xd5a8afa, 0x3eb2146b, 0x3eb2146b, 0x60d9b3, 0x60d9b3, 0xb893f5ca, 0xb893f5ca, 0xd431b2bf, 0xd431b2bf, 0x8ea1b6a6, 0x8ea1b6a6, 0x4d730ad0, 0x4d730ad0, 0x28d1888b, 0x28d1888b, 0x6d8c3672, 0x6d8c3672, 0x65dec2dd, 0x65dec2dd, 0x9d7c6d99, 0x9d7c6d99, 0xdfcd1eba, 0xdfcd1eba, 0xed4fb650, 0xed4fb650, 0xd9f1574c, 0xd9f1574c, 0x2b05a17e, 0x2b05a17e, 0x64e652f5, 0x64e652f5, 0x5f83fdb1, 0x5f83fdb1, 0x7918b180, 0xa6808ee8, 0xb1a2407c, 0xb1a2407c, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0x93fbd3a3, 0x93fbd3a3, 0x1617bee0, 0x1617bee0, 0x4bfbae7f, 0x4bfbae7f, 0xa3558248, 0xa3558248, 0xaf468a11, 0xaf468a11, 0x68ac5986, 0x68ac5986, 0xd8065600, 0xd8065600, 0xef6c6222, 0xef6c6222, 0x1a04371, 0x1a04371, 0xc92981b6, 0xc92981b6, 0x53f9bfc8, 0x53f9bfc8, 0xfef01300, 0xfef01300, 0xce753805, 0xce753805, 0x858f6540, 0x858f6540, 0x6429dae4, 0x6429dae4, 0x19222aa5, 0x19222aa5, 0x3f9a0303, 0x3f9a0303, 0x978a47da, 0x978a47da, 0x6bf7f199, 0x6bf7f199, 0x97dab6d, 0x97dab6d, 0xeb643dbd, 0x550f5f8f, 0xe193f4d2, 0xe193f4d2, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0x76ccc774, 0x76ccc774, 0x98fe3b7, 0x98fe3b7, 0xca4fb383, 0xca4fb383, 0x7c96c0b0, 0x7c96c0b0, 0x2e247de1, 0x2e247de1, 0x13eba5d3, 0x13eba5d3, 0xb8eee962, 0xb8eee962, 0xc9e8c791, 0xc9e8c791, 0x42ab69c2, 0x42ab69c2, 0x564457bc, 0x564457bc, 0xcb44a632, 0xcb44a632, 0x9f213022, 0x9f213022, 0xc0a90c8a, 0xc0a90c8a, 0x501e7270, 0x501e7270, 0x1f3d02b1, 0x1f3d02b1, 0x384f7a25, 0x384f7a25, 0xd927326, 0xd927326, 0xd53f190e, 0xd53f190e, 0x14580b31, 0x14580b31, 0xab958892, 0xab958892, 0xea73f407, 0xb83e8860, 0xd809749b, 0xd809749b, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xccbd401, 0xccbd401, 0x35859629, 0x35859629, 0x269f013b, 0x269f013b, 0xe8c8196, 0xe8c8196, 0x95e2849c, 0x95e2849c, 0xb2019543, 0xb2019543, 0xf739b6c9, 0xf739b6c9, 0xd8227519, 0xd8227519, 0x6b1ae8cf, 0x6b1ae8cf, 0x84fbe9b2, 0x84fbe9b2, 0xed69a305, 0xed69a305, 0x15f4f0cf, 0x15f4f0cf, 0x57ce0973, 0x57ce0973, 0x3f5b0b97, 0x3f5b0b97, 0xc3e87bef, 0xc3e87bef, 0x3ac7584b, 0x3ac7584b, 0xdb95f2c7, 0xdb95f2c7, 0xc1942d4c, 0xc1942d4c, 0x17e9634e, 0x17e9634e, 0xd8dd41a3, 0xd8dd41a3, 0x927a8a2f, 0x93601438, 0x99734c52, 0x99734c52, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xa06498a0, 0xa06498a0, 0xd1336ad7, 0xd1336ad7, 0x68c888e0, 0x68c888e0, 0xf01fb74, 0xf01fb74, 0x6b743235, 0x6b743235, 0xe7b71a49, 0xe7b71a49, 0x798da4d7, 0x798da4d7, 0x5398f44b, 0x5398f44b, 0x4794ee5e, 0x4794ee5e, 0x61c2cb0d, 0x61c2cb0d, 0xad3fcef3, 0xad3fcef3, 0xd9b6f291, 0xd9b6f291, 0xbaf0962d, 0xbaf0962d, 0x11848b9e, 0x11848b9e, 0xb8f3d2bf, 0xb8f3d2bf, 0x3f9978, 0x3f9978, 0xafd76c24, 0xafd76c24, 0xee0b9b9e, 0xee0b9b9e, 0x1f80451e, 0x1f80451e, 0x817e030a, 0x817e030a, 0x64ee9a5d, 0x30cb16a0, 0x9f133607, 0x9f133607, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x8004336f, 0x8004336f, 0xad06caa7, 0xad06caa7, 0xe5239f6d, 0xe5239f6d, 0xd1a80f62, 0xd1a80f62, 0x9b64514c, 0x9b64514c, 0xd21e6b10, 0xd21e6b10, 0x7ab967ae, 0x7ab967ae, 0x7d706a4a, 0x7d706a4a, 0xf2b0f702, 0xf2b0f702, 0x9696e0f7, 0x9696e0f7, 0x77e0f417, 0x77e0f417, 0xf45e418d, 0xf45e418d, 0x2e5b6a0a, 0x2e5b6a0a, 0x1be1c567, 0x1be1c567, 0xf8c9e2fa, 0xf8c9e2fa, 0xd574e688, 0xd574e688, 0x3092ce78, 0x3092ce78, 0x265dd1a4, 0x265dd1a4, 0x62543ca1, 0x62543ca1, 0xcabbab6d, 0xcabbab6d, 0xc600820f, 0xd923e667, 0xafaf4e69, 0xafaf4e69, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x698515fa, 0x698515fa, 0xc313ebe6, 0xc313ebe6, 0x32b9228f, 0x32b9228f, 0xa58d78e8, 0xa58d78e8, 0xf41d5153, 0xf41d5153, 0xdfa3af16, 0xdfa3af16, 0xd4a68422, 0xd4a68422, 0xa7ea67e0, 0xa7ea67e0, 0xaee4c8f6, 0xaee4c8f6, 0x78ddd8aa, 0x78ddd8aa, 0xe662b827, 0xe662b827, 0x190ab892, 0x190ab892, 0x7c1e04ab, 0x7c1e04ab, 0xae4e2ed2, 0xae4e2ed2, 0x9ac52f8d, 0x9ac52f8d, 0x7e7b6776, 0x7e7b6776, 0x21c37700, 0x21c37700, 0x4fc11e7c, 0x4fc11e7c, 0x612a17d, 0x612a17d, 0x1f549440, 0x1f549440, 0xd6ce5af0, 0x224035b9, 0x44f3a671, 0x44f3a671, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x7a06e04b, 0x7a06e04b, 0x122f59ab, 0x122f59ab, 0x993a50b9, 0x993a50b9, 0x5545f8f, 0x5545f8f, 0xcdd2b587, 0xcdd2b587, 0x18bec138, 0x18bec138, 0xa9b4345d, 0xa9b4345d, 0x92c6eb1c, 0x92c6eb1c, 0x2aa44d63, 0x2aa44d63, 0xc9e7b549, 0xc9e7b549, 0x24732d85, 0x24732d85, 0xeedce06, 0xeedce06, 0x69a732a1, 0x69a732a1, 0xc53906e5, 0xc53906e5, 0x306e0f4b, 0x306e0f4b, 0x895e6f09, 0x895e6f09, 0x27f1c24e, 0x27f1c24e, 0x76a2b606, 0x76a2b606, 0x9fdd1ff3, 0x9fdd1ff3, 0x408d0a19, 0x408d0a19, 0xc9b3f877, 0xc61012d1, 0x84f4c7c7, 0x84f4c7c7, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xc75a4c6f, 0xc75a4c6f, 0xf155d437, 0xf155d437, 0x5c0c9c6d, 0x5c0c9c6d, 0x32b70f0b, 0x32b70f0b, 0x15b49b81, 0x15b49b81, 0xe0ac73bd, 0xe0ac73bd, 0xc1f20b9b, 0xc1f20b9b, 0xf123f819, 0xf123f819, 0xb9d31c70, 0xb9d31c70, 0x1af8bb11, 0x1af8bb11, 0xde51611e, 0xde51611e, 0x555bf1a9, 0x555bf1a9, 0x7fc1c1ac, 0x7fc1c1ac, 0x10f80e90, 0x10f80e90, 0xdf2c47d, 0xdf2c47d, 0x2b0b3367, 0x2b0b3367, 0x10e958fb, 0x10e958fb, 0x84fa0fc1, 0x84fa0fc1, 0x17e0c3af, 0x17e0c3af, 0xfb8ccf09, 0xfb8ccf09, 0xcb360cda, 0xc99cbad4, 0x83b5c166, 0x83b5c166, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x7d9b5dd7, 0x7d9b5dd7, 0x42e1176a, 0x42e1176a, 0x7e2da576, 0x7e2da576, 0xd5a8afa, 0xd5a8afa, 0x3eb2146b, 0x3eb2146b, 0x60d9b3, 0x60d9b3, 0xb893f5ca, 0xb893f5ca, 0xd431b2bf, 0xd431b2bf, 0x8ea1b6a6, 0x8ea1b6a6, 0x4d730ad0, 0x4d730ad0, 0x28d1888b, 0x28d1888b, 0x6d8c3672, 0x6d8c3672, 0x65dec2dd, 0x65dec2dd, 0x9d7c6d99, 0x9d7c6d99, 0xdfcd1eba, 0xdfcd1eba, 0xed4fb650, 0xed4fb650, 0xd9f1574c, 0xd9f1574c, 0x2b05a17e, 0x2b05a17e, 0x64e652f5, 0x64e652f5, 0x5f83fdb1, 0x5f83fdb1, 0x7918b180, 0xa6808ee8, 0xb1a2407c, 0xb1a2407c, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0xbb687653, 0xbb687653, 0xa81427a7, 0xa81427a7, 0x71d7f3b, 0x71d7f3b, 0x25fea6ca, 0x25fea6ca, 0x17c19d74, 0x17c19d74, 0x4779bf48, 0x4779bf48, 0xe424e759, 0xe424e759, 0xb57fb5ae, 0xb57fb5ae, 0xd877002b, 0xd877002b, 0xdd8d7442, 0xdd8d7442, 0xe2536fde, 0xe2536fde, 0x1ebba341, 0x1ebba341, 0xef042176, 0xef042176, 0x6137f228, 0x6137f228, 0xf04a8558, 0xf04a8558, 0xff72172d, 0xff72172d, 0x5f26278f, 0x5f26278f, 0x3ed777c, 0x3ed777c, 0xb1d686e, 0xb1d686e, 0x5cead249, 0x5cead249, 0x271487f6, 0x3b9ece9a, 0xccc3db5e, 0xccc3db5e, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xd594219a, 0xd594219a, 0x254fa44c, 0x254fa44c, 0x30177d61, 0x30177d61, 0x1a576e20, 0x1a576e20, 0xe439395f, 0xe439395f, 0xb289a26f, 0xb289a26f, 0xc9eaceca, 0xc9eaceca, 0x9e76037b, 0x9e76037b, 0xfa098eb4, 0xfa098eb4, 0x5881d993, 0x5881d993, 0x3a4ac117, 0x3a4ac117, 0x203e9716, 0x203e9716, 0x67aed713, 0x67aed713, 0xb740eccb, 0xb740eccb, 0xd50247da, 0xd50247da, 0xe0c382bf, 0xe0c382bf, 0x95d81f9d, 0x95d81f9d, 0x1051b5ac, 0x1051b5ac, 0x71f00e30, 0x71f00e30, 0xe35fe082, 0xe35fe082, 0xeda25a7a, 0xc4543b1e, 0x4725b91c, 0x4725b91c, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd803b53b, 0xd803b53b, 0x70b7ae8b, 0x70b7ae8b, 0xa20d9a15, 0xa20d9a15, 0x6113d33b, 0x6113d33b, 0xfd38d301, 0xfd38d301, 0x8b04db4, 0x8b04db4, 0xdae859df, 0xdae859df, 0x80cf138b, 0x80cf138b, 0xdfa6ef9, 0xdfa6ef9, 0x856adaf0, 0x856adaf0, 0x7023cc2d, 0x7023cc2d, 0xad7e7d54, 0xad7e7d54, 0xde8eff49, 0xde8eff49, 0x34355cc3, 0x34355cc3, 0x25adccda, 0x25adccda, 0x6d6c350d, 0x6d6c350d, 0x1c49b499, 0x1c49b499, 0x8188f1b4, 0x8188f1b4, 0x5556dc0c, 0x5556dc0c, 0xbd9ef1f5, 0xbd9ef1f5, 0x5176575b, 0xd3e2f7f1, 0xccda996c, 0xccda996c, }, 45 },
|
||||
{ "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 },
|
||||
|
|
|
@ -469,7 +469,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
|
||||
|
||||
|
|
|
@ -210,26 +210,6 @@ grub_video_bitmap_load (struct grub_video_bitmap **bitmap,
|
|||
" unsupported format"), filename);
|
||||
}
|
||||
|
||||
/* Return bitmap width. */
|
||||
unsigned int
|
||||
grub_video_bitmap_get_width (struct grub_video_bitmap *bitmap)
|
||||
{
|
||||
if (!bitmap)
|
||||
return 0;
|
||||
|
||||
return bitmap->mode_info.width;
|
||||
}
|
||||
|
||||
/* Return bitmap height. */
|
||||
unsigned int
|
||||
grub_video_bitmap_get_height (struct grub_video_bitmap *bitmap)
|
||||
{
|
||||
if (!bitmap)
|
||||
return 0;
|
||||
|
||||
return bitmap->mode_info.height;
|
||||
}
|
||||
|
||||
/* Return mode info for bitmap. */
|
||||
void grub_video_bitmap_get_mode_info (struct grub_video_bitmap *bitmap,
|
||||
struct grub_video_mode_info *mode_info)
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <grub/misc.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/color.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#include <grub/video.h>
|
||||
|
||||
/* Generic replacing blitter (slow). Works for every supported format. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y, int width, int height,
|
||||
|
@ -68,7 +68,7 @@ grub_video_fbblit_replace (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Block copy replacing blitter. Works with modes multiple of 8 bits. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_directN (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y, int width, int height,
|
||||
|
@ -92,7 +92,7 @@ grub_video_fbblit_replace_directN (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 32bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_32bit_1bit (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -163,7 +163,7 @@ grub_video_fbblit_replace_32bit_1bit (struct grub_video_fbblit_info *dst,
|
|||
|
||||
#ifdef GRUB_HAVE_UNALIGNED_ACCESS
|
||||
/* Optimized replacing blitter for 1-bit to 24-bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_24bit_1bit (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -252,7 +252,7 @@ grub_video_fbblit_replace_24bit_1bit (struct grub_video_fbblit_info *dst,
|
|||
#endif
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 16-bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_16bit_1bit (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -321,7 +321,7 @@ grub_video_fbblit_replace_16bit_1bit (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 8-bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_8bit_1bit (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -389,7 +389,7 @@ grub_video_fbblit_replace_8bit_1bit (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_32bit_indexa (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -434,7 +434,7 @@ grub_video_fbblit_replace_32bit_indexa (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 16bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_24bit_indexa (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -488,7 +488,7 @@ grub_video_fbblit_replace_24bit_indexa (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 16bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_16bit_indexa (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -533,7 +533,7 @@ grub_video_fbblit_replace_16bit_indexa (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 8bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_8bit_indexa (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -578,7 +578,7 @@ grub_video_fbblit_replace_8bit_indexa (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_32bit_indexa (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -620,7 +620,7 @@ grub_video_fbblit_blend_32bit_indexa (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 16bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_24bit_indexa (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -675,7 +675,7 @@ grub_video_fbblit_blend_24bit_indexa (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 16bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_16bit_indexa (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -717,7 +717,7 @@ grub_video_fbblit_blend_16bit_indexa (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for 1-bit to 8bit. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_8bit_indexa (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -760,7 +760,7 @@ grub_video_fbblit_blend_8bit_indexa (struct grub_video_fbblit_info *dst,
|
|||
|
||||
|
||||
/* Optimized replacing blitter for RGBX8888 to BGRX8888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_BGRX8888_RGBX8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -813,7 +813,7 @@ grub_video_fbblit_replace_BGRX8888_RGBX8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for RGB888 to BGRX8888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_BGRX8888_RGB888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -864,7 +864,7 @@ grub_video_fbblit_replace_BGRX8888_RGB888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for RGBX8888 to BGR888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_BGR888_RGBX8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -918,7 +918,7 @@ grub_video_fbblit_replace_BGR888_RGBX8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for RGB888 to BGR888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_BGR888_RGB888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -959,7 +959,7 @@ grub_video_fbblit_replace_BGR888_RGB888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for RGB888 to RGBX8888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_RGBX8888_RGB888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1006,7 +1006,7 @@ grub_video_fbblit_replace_RGBX8888_RGB888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for RGBX8888 to RGB888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_RGB888_RGBX8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1055,7 +1055,7 @@ grub_video_fbblit_replace_RGB888_RGBX8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for RGBX8888 to indexed color. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_index_RGBX8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1098,7 +1098,7 @@ grub_video_fbblit_replace_index_RGBX8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized replacing blitter for RGB888 to indexed color. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_replace_index_RGB888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1146,7 +1146,7 @@ grub_video_fbblit_replace_index_RGB888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Generic blending blitter. Works for every supported format. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y, int width, int height,
|
||||
|
@ -1207,7 +1207,7 @@ grub_video_fbblit_blend (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized blending blitter for RGBA8888 to BGRA8888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_BGRA8888_RGBA8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1288,7 +1288,7 @@ grub_video_fbblit_blend_BGRA8888_RGBA8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized blending blitter for RGBA8888 to BGR888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_BGR888_RGBA8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1382,7 +1382,7 @@ grub_video_fbblit_blend_BGR888_RGBA8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized blending blitter for RGBA888 to RGBA8888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_RGBA8888_RGBA8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1454,7 +1454,7 @@ grub_video_fbblit_blend_RGBA8888_RGBA8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized blending blitter for RGBA8888 to RGB888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_RGB888_RGBA8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1545,7 +1545,7 @@ grub_video_fbblit_blend_RGB888_RGBA8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized blending blitter for RGBA8888 to indexed color. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_index_RGBA8888 (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1615,7 +1615,7 @@ grub_video_fbblit_blend_index_RGBA8888 (struct grub_video_fbblit_info *dst,
|
|||
}
|
||||
|
||||
/* Optimized blending blitter for 1-bit to XXXA8888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_XXXA8888_1bit (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1714,7 +1714,7 @@ grub_video_fbblit_blend_XXXA8888_1bit (struct grub_video_fbblit_info *dst,
|
|||
|
||||
/* Optimized blending blitter for 1-bit to XXX888. */
|
||||
#ifdef GRUB_HAVE_UNALIGNED_ACCESS
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_XXX888_1bit (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1820,7 +1820,7 @@ grub_video_fbblit_blend_XXX888_1bit (struct grub_video_fbblit_info *dst,
|
|||
#endif
|
||||
|
||||
/* Optimized blending blitter for 1-bit to XXX888. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbblit_blend_XXX565_1bit (struct grub_video_fbblit_info *dst,
|
||||
struct grub_video_fbblit_info *src,
|
||||
int x, int y,
|
||||
|
@ -1915,3 +1915,302 @@ grub_video_fbblit_blend_XXX565_1bit (struct grub_video_fbblit_info *dst,
|
|||
GRUB_VIDEO_FB_ADVANCE_POINTER (dstptr, dstrowskip);
|
||||
}
|
||||
}
|
||||
|
||||
/* NOTE: This function assumes that given coordinates are within bounds of
|
||||
handled data. */
|
||||
void
|
||||
grub_video_fb_dispatch_blit (struct grub_video_fbblit_info *target,
|
||||
struct grub_video_fbblit_info *source,
|
||||
enum grub_video_blit_operators oper, int x, int y,
|
||||
unsigned int width, unsigned int height,
|
||||
int offset_x, int offset_y)
|
||||
{
|
||||
if (oper == GRUB_VIDEO_BLIT_REPLACE)
|
||||
{
|
||||
/* Try to figure out more optimized version for replace operator. */
|
||||
switch (source->mode_info->blit_format)
|
||||
{
|
||||
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;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888:
|
||||
grub_video_fbblit_replace_BGRX8888_RGBX8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGR_888:
|
||||
grub_video_fbblit_replace_BGR888_RGBX8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
grub_video_fbblit_replace_RGB888_RGBX8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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;
|
||||
}
|
||||
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;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888:
|
||||
grub_video_fbblit_replace_RGBX8888_RGB888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGR_888:
|
||||
grub_video_fbblit_replace_BGR888_RGB888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
grub_video_fbblit_replace_directN (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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
|
||||
case 3:
|
||||
grub_video_fbblit_replace_24bit_1bit (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
#endif
|
||||
case 2:
|
||||
grub_video_fbblit_replace_16bit_1bit (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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. */
|
||||
grub_video_fbblit_replace (target, source, x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Try to figure out more optimized blend operator. */
|
||||
switch (source->mode_info->blit_format)
|
||||
{
|
||||
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;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888:
|
||||
grub_video_fbblit_blend_RGBA8888_RGBA8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGR_888:
|
||||
grub_video_fbblit_blend_BGR888_RGBA8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
grub_video_fbblit_blend_RGB888_RGBA8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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;
|
||||
}
|
||||
break;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
/* Note: There is really no alpha information here, so blend is
|
||||
changed to replace. */
|
||||
|
||||
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;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888:
|
||||
grub_video_fbblit_replace_RGBX8888_RGB888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGR_888:
|
||||
grub_video_fbblit_replace_BGR888_RGB888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
grub_video_fbblit_replace_directN (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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;
|
||||
}
|
||||
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
|
||||
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
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
#include <grub/video.h>
|
||||
|
||||
/* Generic filler that works for every supported mode. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbfill (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height)
|
||||
|
@ -49,7 +49,7 @@ grub_video_fbfill (struct grub_video_fbblit_info *dst,
|
|||
|
||||
/* Optimized filler for direct color 32 bit modes. It is assumed that color
|
||||
is already mapped to destination format. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbfill_direct32 (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height)
|
||||
|
@ -78,7 +78,7 @@ grub_video_fbfill_direct32 (struct grub_video_fbblit_info *dst,
|
|||
|
||||
/* Optimized filler for direct color 24 bit modes. It is assumed that color
|
||||
is already mapped to destination format. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbfill_direct24 (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height)
|
||||
|
@ -119,7 +119,7 @@ grub_video_fbfill_direct24 (struct grub_video_fbblit_info *dst,
|
|||
|
||||
/* Optimized filler for direct color 16 bit modes. It is assumed that color
|
||||
is already mapped to destination format. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbfill_direct16 (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height)
|
||||
|
@ -148,7 +148,7 @@ grub_video_fbfill_direct16 (struct grub_video_fbblit_info *dst,
|
|||
|
||||
/* Optimized filler for index color. It is assumed that color
|
||||
is already mapped to destination format. */
|
||||
void
|
||||
static void
|
||||
grub_video_fbfill_direct8 (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height)
|
||||
|
@ -175,3 +175,34 @@ grub_video_fbfill_direct8 (struct grub_video_fbblit_info *dst,
|
|||
dstptr += rowskip;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
grub_video_fb_fill_dispatch (struct grub_video_fbblit_info *target,
|
||||
grub_video_color_t color, int x, int y,
|
||||
unsigned int width, unsigned int height)
|
||||
{
|
||||
/* Try to figure out more optimized version. Note that color is already
|
||||
mapped to target format so we can make assumptions based on that. */
|
||||
switch (target->mode_info->bytes_per_pixel)
|
||||
{
|
||||
case 4:
|
||||
grub_video_fbfill_direct32 (target, color, x, y,
|
||||
width, height);
|
||||
return;
|
||||
case 3:
|
||||
grub_video_fbfill_direct24 (target, color, x, y,
|
||||
width, height);
|
||||
return;
|
||||
case 2:
|
||||
grub_video_fbfill_direct16 (target, color, x, y,
|
||||
width, height);
|
||||
return;
|
||||
case 1:
|
||||
grub_video_fbfill_direct8 (target, color, x, y,
|
||||
width, height);
|
||||
return;
|
||||
}
|
||||
|
||||
/* No optimized version found, use default (slow) filler. */
|
||||
grub_video_fbfill (target, color, x, y, width, height);
|
||||
}
|
||||
|
|
|
@ -31,41 +31,6 @@
|
|||
#include <grub/types.h>
|
||||
#include <grub/video.h>
|
||||
|
||||
void *
|
||||
grub_video_fb_get_video_ptr (struct grub_video_fbblit_info *source,
|
||||
unsigned int x, unsigned int y)
|
||||
{
|
||||
grub_uint8_t *ptr = 0;
|
||||
|
||||
switch (source->mode_info->bpp)
|
||||
{
|
||||
case 32:
|
||||
ptr = source->data + y * source->mode_info->pitch + x * 4;
|
||||
break;
|
||||
|
||||
case 24:
|
||||
ptr = source->data + y * source->mode_info->pitch + x * 3;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
case 15:
|
||||
ptr = source->data + y * source->mode_info->pitch + x * 2;
|
||||
break;
|
||||
|
||||
case 8:
|
||||
ptr = source->data + y * source->mode_info->pitch + x;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
/* For 1-bit bitmaps, addressing needs to be done at the bit level
|
||||
and it doesn't make sense, in general, to ask for a pointer
|
||||
to a particular pixel's data. */
|
||||
break;
|
||||
}
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
grub_video_color_t
|
||||
get_pixel (struct grub_video_fbblit_info *source,
|
||||
unsigned int x, unsigned int y)
|
||||
|
|
|
@ -748,335 +748,11 @@ grub_video_fb_fill_rect (grub_video_color_t color, int x, int y,
|
|||
target.mode_info = &framebuffer.render_target->mode_info;
|
||||
target.data = framebuffer.render_target->data;
|
||||
|
||||
/* Try to figure out more optimized version. Note that color is already
|
||||
mapped to target format so we can make assumptions based on that. */
|
||||
switch (target.mode_info->bytes_per_pixel)
|
||||
{
|
||||
case 4:
|
||||
grub_video_fbfill_direct32 (&target, color, x, y,
|
||||
width, height);
|
||||
return GRUB_ERR_NONE;
|
||||
case 3:
|
||||
grub_video_fbfill_direct24 (&target, color, x, y,
|
||||
width, height);
|
||||
return GRUB_ERR_NONE;
|
||||
case 2:
|
||||
grub_video_fbfill_direct16 (&target, color, x, y,
|
||||
width, height);
|
||||
return GRUB_ERR_NONE;
|
||||
case 1:
|
||||
grub_video_fbfill_direct8 (&target, color, x, y,
|
||||
width, height);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
/* No optimized version found, use default (slow) filler. */
|
||||
grub_video_fbfill (&target, color, x, y, width, height);
|
||||
|
||||
grub_video_fb_fill_dispatch (&target, color, x, y,
|
||||
width, height);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
/* NOTE: This function assumes that given coordinates are within bounds of
|
||||
handled data. */
|
||||
static void
|
||||
common_blitter (struct grub_video_fbblit_info *target,
|
||||
struct grub_video_fbblit_info *source,
|
||||
enum grub_video_blit_operators oper, int x, int y,
|
||||
unsigned int width, unsigned int height,
|
||||
int offset_x, int offset_y)
|
||||
{
|
||||
dirty (y, height);
|
||||
|
||||
if (oper == GRUB_VIDEO_BLIT_REPLACE)
|
||||
{
|
||||
/* Try to figure out more optimized version for replace operator. */
|
||||
switch (source->mode_info->blit_format)
|
||||
{
|
||||
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;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGRA_8888:
|
||||
grub_video_fbblit_replace_BGRX8888_RGBX8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGR_888:
|
||||
grub_video_fbblit_replace_BGR888_RGBX8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
grub_video_fbblit_replace_RGB888_RGBX8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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;
|
||||
}
|
||||
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;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888:
|
||||
grub_video_fbblit_replace_RGBX8888_RGB888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGR_888:
|
||||
grub_video_fbblit_replace_BGR888_RGB888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
grub_video_fbblit_replace_directN (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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
|
||||
case 3:
|
||||
grub_video_fbblit_replace_24bit_1bit (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
#endif
|
||||
case 2:
|
||||
grub_video_fbblit_replace_16bit_1bit (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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. */
|
||||
grub_video_fbblit_replace (target, source, x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Try to figure out more optimized blend operator. */
|
||||
switch (source->mode_info->blit_format)
|
||||
{
|
||||
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;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888:
|
||||
grub_video_fbblit_blend_RGBA8888_RGBA8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGR_888:
|
||||
grub_video_fbblit_blend_BGR888_RGBA8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
grub_video_fbblit_blend_RGB888_RGBA8888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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;
|
||||
}
|
||||
break;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
/* Note: There is really no alpha information here, so blend is
|
||||
changed to replace. */
|
||||
|
||||
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;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGBA_8888:
|
||||
grub_video_fbblit_replace_RGBX8888_RGB888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_BGR_888:
|
||||
grub_video_fbblit_replace_BGR888_RGB888 (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
case GRUB_VIDEO_BLIT_FORMAT_RGB_888:
|
||||
grub_video_fbblit_replace_directN (target, source,
|
||||
x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
return;
|
||||
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;
|
||||
}
|
||||
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
|
||||
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
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
grub_err_t
|
||||
grub_video_fb_blit_bitmap (struct grub_video_bitmap *bitmap,
|
||||
enum grub_video_blit_operators oper, int x, int y,
|
||||
|
@ -1162,8 +838,9 @@ grub_video_fb_blit_bitmap (struct grub_video_bitmap *bitmap,
|
|||
target.data = framebuffer.render_target->data;
|
||||
|
||||
/* Do actual blitting. */
|
||||
common_blitter (&target, &source, oper, x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
dirty (y, height);
|
||||
grub_video_fb_dispatch_blit (&target, &source, oper, x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
@ -1253,8 +930,9 @@ grub_video_fb_blit_render_target (struct grub_video_fbrender_target *source,
|
|||
target_info.data = framebuffer.render_target->data;
|
||||
|
||||
/* Do actual blitting. */
|
||||
common_blitter (&target_info, &source_info, oper, x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
dirty (y, height);
|
||||
grub_video_fb_dispatch_blit (&target_info, &source_info, oper, x, y, width, height,
|
||||
offset_x, offset_y);
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
|
|
@ -26,10 +26,9 @@
|
|||
#include <grub/video.h>
|
||||
#include <grub/video_fb.h>
|
||||
#include <grub/machine/lbio.h>
|
||||
#include <grub/machine/console.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
static struct grub_linuxbios_table_framebuffer *cbfb;
|
||||
struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable;
|
||||
|
||||
static struct
|
||||
{
|
||||
|
@ -50,22 +49,22 @@ grub_video_cbfb_fill_mode_info (struct grub_video_mode_info *out)
|
|||
{
|
||||
grub_memset (out, 0, sizeof (*out));
|
||||
|
||||
out->width = cbfb->width;
|
||||
out->height = cbfb->height;
|
||||
out->pitch = cbfb->pitch;
|
||||
out->width = grub_video_coreboot_fbtable->width;
|
||||
out->height = grub_video_coreboot_fbtable->height;
|
||||
out->pitch = grub_video_coreboot_fbtable->pitch;
|
||||
|
||||
out->red_field_pos = cbfb->red_field_pos;
|
||||
out->red_mask_size = cbfb->red_mask_size;
|
||||
out->green_field_pos = cbfb->green_field_pos;
|
||||
out->green_mask_size = cbfb->green_mask_size;
|
||||
out->blue_field_pos = cbfb->blue_field_pos;
|
||||
out->blue_mask_size = cbfb->blue_mask_size;
|
||||
out->reserved_field_pos = cbfb->reserved_field_pos;
|
||||
out->reserved_mask_size = cbfb->reserved_mask_size;
|
||||
out->red_field_pos = grub_video_coreboot_fbtable->red_field_pos;
|
||||
out->red_mask_size = grub_video_coreboot_fbtable->red_mask_size;
|
||||
out->green_field_pos = grub_video_coreboot_fbtable->green_field_pos;
|
||||
out->green_mask_size = grub_video_coreboot_fbtable->green_mask_size;
|
||||
out->blue_field_pos = grub_video_coreboot_fbtable->blue_field_pos;
|
||||
out->blue_mask_size = grub_video_coreboot_fbtable->blue_mask_size;
|
||||
out->reserved_field_pos = grub_video_coreboot_fbtable->reserved_field_pos;
|
||||
out->reserved_mask_size = grub_video_coreboot_fbtable->reserved_mask_size;
|
||||
|
||||
out->mode_type = GRUB_VIDEO_MODE_TYPE_RGB;
|
||||
out->bpp = cbfb->bpp;
|
||||
out->bytes_per_pixel = (cbfb->bpp + 7) / 8;
|
||||
out->bpp = grub_video_coreboot_fbtable->bpp;
|
||||
out->bytes_per_pixel = (grub_video_coreboot_fbtable->bpp + 7) / 8;
|
||||
out->number_of_colors = 256;
|
||||
|
||||
out->blit_format = grub_video_get_blit_format (out);
|
||||
|
@ -79,10 +78,10 @@ grub_video_cbfb_setup (unsigned int width, unsigned int height,
|
|||
{
|
||||
grub_err_t err;
|
||||
|
||||
if (!cbfb)
|
||||
if (!grub_video_coreboot_fbtable)
|
||||
return grub_error (GRUB_ERR_IO, "Couldn't find display device.");
|
||||
|
||||
if (!((width == cbfb->width && height == cbfb->height)
|
||||
if (!((width == grub_video_coreboot_fbtable->width && height == grub_video_coreboot_fbtable->height)
|
||||
|| (width == 0 && height == 0)))
|
||||
return grub_error (GRUB_ERR_IO, "can't set mode %dx%d", width, height);
|
||||
|
||||
|
@ -93,7 +92,7 @@ grub_video_cbfb_setup (unsigned int width, unsigned int height,
|
|||
return err;
|
||||
}
|
||||
|
||||
framebuffer.ptr = (void *) (grub_addr_t) cbfb->lfb;
|
||||
framebuffer.ptr = (void *) (grub_addr_t) grub_video_coreboot_fbtable->lfb;
|
||||
|
||||
grub_dprintf ("video", "CBFB: initialising FB @ %p %dx%dx%d\n",
|
||||
framebuffer.ptr, framebuffer.mode_info.width,
|
||||
|
@ -162,20 +161,26 @@ iterate_linuxbios_table (grub_linuxbios_table_item_t table_item,
|
|||
{
|
||||
if (table_item->tag != GRUB_LINUXBIOS_MEMBER_FRAMEBUFFER)
|
||||
return 0;
|
||||
cbfb = (struct grub_linuxbios_table_framebuffer *) (table_item + 1);
|
||||
grub_video_coreboot_fbtable = (struct grub_linuxbios_table_framebuffer *) (table_item + 1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
GRUB_MOD_INIT(coreboot_fb)
|
||||
void
|
||||
grub_video_coreboot_fb_early_init (void)
|
||||
{
|
||||
grub_linuxbios_table_iterate (iterate_linuxbios_table, 0);
|
||||
}
|
||||
|
||||
if (cbfb)
|
||||
void
|
||||
grub_video_coreboot_fb_late_init (void)
|
||||
{
|
||||
if (grub_video_coreboot_fbtable)
|
||||
grub_video_register (&grub_video_cbfb_adapter);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(coreboot_fb)
|
||||
void
|
||||
grub_video_coreboot_fb_fini (void)
|
||||
{
|
||||
if (cbfb)
|
||||
if (grub_video_coreboot_fbtable)
|
||||
grub_video_unregister (&grub_video_cbfb_adapter);
|
||||
}
|
||||
|
|
63
include/grub/archelp.h
Normal file
63
include/grub/archelp.h
Normal file
|
@ -0,0 +1,63 @@
|
|||
/* archelp.h -- Archive helper functions */
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef GRUB_ARCHELP_HEADER
|
||||
#define GRUB_ARCHELP_HEADER 1
|
||||
|
||||
#include <grub/fs.h>
|
||||
#include <grub/file.h>
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GRUB_ARCHELP_ATTR_TYPE = 0160000,
|
||||
GRUB_ARCHELP_ATTR_FILE = 0100000,
|
||||
GRUB_ARCHELP_ATTR_DIR = 0040000,
|
||||
GRUB_ARCHELP_ATTR_LNK = 0120000,
|
||||
GRUB_ARCHELP_ATTR_NOTIME = 0x80000000,
|
||||
GRUB_ARCHELP_ATTR_END = 0xffffffff
|
||||
} grub_archelp_mode_t;
|
||||
|
||||
struct grub_archelp_data;
|
||||
|
||||
struct grub_archelp_ops
|
||||
{
|
||||
grub_err_t
|
||||
(*find_file) (struct grub_archelp_data *data, char **name,
|
||||
grub_int32_t *mtime,
|
||||
grub_archelp_mode_t *mode);
|
||||
|
||||
char *
|
||||
(*get_link_target) (struct grub_archelp_data *data);
|
||||
|
||||
void
|
||||
(*rewind) (struct grub_archelp_data *data);
|
||||
};
|
||||
|
||||
grub_err_t
|
||||
grub_archelp_dir (struct grub_archelp_data *data,
|
||||
struct grub_archelp_ops *ops,
|
||||
const char *path_in,
|
||||
grub_fs_dir_hook_t hook, void *hook_data);
|
||||
|
||||
grub_err_t
|
||||
grub_archelp_open (struct grub_archelp_data *data,
|
||||
struct grub_archelp_ops *ops,
|
||||
const char *name_in);
|
||||
|
||||
#endif
|
|
@ -59,8 +59,25 @@ grub_err_t EXPORT_FUNC (grub_video_bitmap_destroy) (struct grub_video_bitmap *bi
|
|||
grub_err_t EXPORT_FUNC (grub_video_bitmap_load) (struct grub_video_bitmap **bitmap,
|
||||
const char *filename);
|
||||
|
||||
unsigned int EXPORT_FUNC (grub_video_bitmap_get_width) (struct grub_video_bitmap *bitmap);
|
||||
unsigned int EXPORT_FUNC (grub_video_bitmap_get_height) (struct grub_video_bitmap *bitmap);
|
||||
/* Return bitmap width. */
|
||||
static inline unsigned int
|
||||
grub_video_bitmap_get_width (struct grub_video_bitmap *bitmap)
|
||||
{
|
||||
if (!bitmap)
|
||||
return 0;
|
||||
|
||||
return bitmap->mode_info.width;
|
||||
}
|
||||
|
||||
/* Return bitmap height. */
|
||||
static inline unsigned int
|
||||
grub_video_bitmap_get_height (struct grub_video_bitmap *bitmap)
|
||||
{
|
||||
if (!bitmap)
|
||||
return 0;
|
||||
|
||||
return bitmap->mode_info.height;
|
||||
}
|
||||
|
||||
void EXPORT_FUNC (grub_video_bitmap_get_mode_info) (struct grub_video_bitmap *bitmap,
|
||||
struct grub_video_mode_info *mode_info);
|
||||
|
|
178
include/grub/cbfs_core.h
Normal file
178
include/grub/cbfs_core.h
Normal file
|
@ -0,0 +1,178 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* Copyright (C) 2008 Jordan Crouse <jordan@cosmicpenguin.net>
|
||||
* Copyright (C) 2012 Google, Inc.
|
||||
* Copyright (C) 2013 The Chromium OS Authors. All rights reserved.
|
||||
*
|
||||
* This file is dual-licensed. You can choose between:
|
||||
* - The GNU GPL, version 2, as published by the Free Software Foundation
|
||||
* - The revised BSD license (without advertising clause)
|
||||
*
|
||||
* ---------------------------------------------------------------------------
|
||||
* This program 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; version 2 of the License.
|
||||
*
|
||||
* This program 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 this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
|
||||
* ---------------------------------------------------------------------------
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef _CBFS_CORE_H_
|
||||
#define _CBFS_CORE_H_
|
||||
|
||||
#include <grub/types.h>
|
||||
|
||||
/** These are standard values for the known compression
|
||||
alogrithms that coreboot knows about for stages and
|
||||
payloads. Of course, other CBFS users can use whatever
|
||||
values they want, as long as they understand them. */
|
||||
|
||||
#define CBFS_COMPRESS_NONE 0
|
||||
#define CBFS_COMPRESS_LZMA 1
|
||||
|
||||
/** These are standard component types for well known
|
||||
components (i.e - those that coreboot needs to consume.
|
||||
Users are welcome to use any other value for their
|
||||
components */
|
||||
|
||||
#define CBFS_TYPE_STAGE 0x10
|
||||
#define CBFS_TYPE_PAYLOAD 0x20
|
||||
#define CBFS_TYPE_OPTIONROM 0x30
|
||||
#define CBFS_TYPE_BOOTSPLASH 0x40
|
||||
#define CBFS_TYPE_RAW 0x50
|
||||
#define CBFS_TYPE_VSA 0x51
|
||||
#define CBFS_TYPE_MBI 0x52
|
||||
#define CBFS_TYPE_MICROCODE 0x53
|
||||
#define CBFS_COMPONENT_CMOS_DEFAULT 0xaa
|
||||
#define CBFS_COMPONENT_CMOS_LAYOUT 0x01aa
|
||||
|
||||
#define CBFS_HEADER_MAGIC 0x4F524243
|
||||
#define CBFS_HEADER_VERSION1 0x31313131
|
||||
#define CBFS_HEADER_VERSION2 0x31313132
|
||||
#define CBFS_HEADER_VERSION CBFS_HEADER_VERSION2
|
||||
|
||||
#define CBFS_HEADER_INVALID_ADDRESS ((void*)(0xffffffff))
|
||||
|
||||
/** this is the master cbfs header - it need to be located somewhere available
|
||||
to bootblock (to load romstage). Where it actually lives is up to coreboot.
|
||||
On x86, a pointer to this header will live at 0xFFFFFFFC.
|
||||
For other platforms, you need to define CONFIG_CBFS_HEADER_ROM_OFFSET */
|
||||
|
||||
struct cbfs_header {
|
||||
grub_uint32_t magic;
|
||||
grub_uint32_t version;
|
||||
grub_uint32_t romsize;
|
||||
grub_uint32_t bootblocksize;
|
||||
grub_uint32_t align;
|
||||
grub_uint32_t offset;
|
||||
grub_uint32_t architecture;
|
||||
grub_uint32_t pad[1];
|
||||
} __attribute__((packed));
|
||||
|
||||
/* "Unknown" refers to CBFS headers version 1,
|
||||
* before the architecture was defined (i.e., x86 only).
|
||||
*/
|
||||
#define CBFS_ARCHITECTURE_UNKNOWN 0xFFFFFFFF
|
||||
#define CBFS_ARCHITECTURE_X86 0x00000001
|
||||
#define CBFS_ARCHITECTURE_ARMV7 0x00000010
|
||||
|
||||
/** This is a component header - every entry in the CBFS
|
||||
will have this header.
|
||||
|
||||
This is how the component is arranged in the ROM:
|
||||
|
||||
-------------- <- 0
|
||||
component header
|
||||
-------------- <- sizeof(struct component)
|
||||
component name
|
||||
-------------- <- offset
|
||||
data
|
||||
...
|
||||
-------------- <- offset + len
|
||||
*/
|
||||
|
||||
#define CBFS_FILE_MAGIC "LARCHIVE"
|
||||
|
||||
struct cbfs_file {
|
||||
char magic[8];
|
||||
grub_uint32_t len;
|
||||
grub_uint32_t type;
|
||||
grub_uint32_t checksum;
|
||||
grub_uint32_t offset;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*** Component sub-headers ***/
|
||||
|
||||
/* Following are component sub-headers for the "standard"
|
||||
component types */
|
||||
|
||||
/** This is the sub-header for stage components. Stages are
|
||||
loaded by coreboot during the normal boot process */
|
||||
|
||||
struct cbfs_stage {
|
||||
grub_uint32_t compression; /** Compression type */
|
||||
grub_uint64_t entry; /** entry point */
|
||||
grub_uint64_t load; /** Where to load in memory */
|
||||
grub_uint32_t len; /** length of data to load */
|
||||
grub_uint32_t memlen; /** total length of object in memory */
|
||||
} __attribute__((packed));
|
||||
|
||||
/** this is the sub-header for payload components. Payloads
|
||||
are loaded by coreboot at the end of the boot process */
|
||||
|
||||
struct cbfs_payload_segment {
|
||||
grub_uint32_t type;
|
||||
grub_uint32_t compression;
|
||||
grub_uint32_t offset;
|
||||
grub_uint64_t load_addr;
|
||||
grub_uint32_t len;
|
||||
grub_uint32_t mem_len;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct cbfs_payload {
|
||||
struct cbfs_payload_segment segments;
|
||||
};
|
||||
|
||||
#define PAYLOAD_SEGMENT_CODE 0x45444F43
|
||||
#define PAYLOAD_SEGMENT_DATA 0x41544144
|
||||
#define PAYLOAD_SEGMENT_BSS 0x20535342
|
||||
#define PAYLOAD_SEGMENT_PARAMS 0x41524150
|
||||
#define PAYLOAD_SEGMENT_ENTRY 0x52544E45
|
||||
|
||||
struct cbfs_optionrom {
|
||||
grub_uint32_t compression;
|
||||
grub_uint32_t len;
|
||||
} __attribute__((packed));
|
||||
|
||||
#endif
|
30
include/grub/color.h
Normal file
30
include/grub/color.h
Normal file
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2006,2007,2008,2009 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef GRUB_VIDEO_COLOR_HEADER
|
||||
#define GRUB_VIDEO_COLOR_HEADER 1
|
||||
|
||||
#include <grub/video.h>
|
||||
|
||||
int grub_video_get_named_color (const char *name,
|
||||
grub_video_rgba_color_t *color);
|
||||
|
||||
grub_err_t grub_video_parse_color (const char *s,
|
||||
grub_video_rgba_color_t *color);
|
||||
|
||||
#endif
|
|
@ -46,6 +46,7 @@ enum grub_disk_dev_id
|
|||
GRUB_DISK_DEVICE_ARCDISK_ID,
|
||||
GRUB_DISK_DEVICE_HOSTDISK_ID,
|
||||
GRUB_DISK_DEVICE_PROCFS_ID,
|
||||
GRUB_DISK_DEVICE_CBFSDISK_ID,
|
||||
GRUB_DISK_DEVICE_UBOOTDISK_ID,
|
||||
};
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ typedef enum
|
|||
GRUB_ERR_NET_ROUTE_LOOP,
|
||||
GRUB_ERR_NET_NO_ROUTE,
|
||||
GRUB_ERR_NET_NO_ANSWER,
|
||||
GRUB_ERR_NET_NO_CARD,
|
||||
GRUB_ERR_WAIT,
|
||||
GRUB_ERR_BUG,
|
||||
GRUB_ERR_NET_PORT_CLOSED,
|
||||
|
|
|
@ -29,13 +29,18 @@ struct grub_fat_bpb
|
|||
grub_uint8_t sectors_per_cluster;
|
||||
grub_uint16_t num_reserved_sectors;
|
||||
grub_uint8_t num_fats;
|
||||
/* 0x10 */
|
||||
grub_uint16_t num_root_entries;
|
||||
grub_uint16_t num_total_sectors_16;
|
||||
grub_uint8_t media;
|
||||
/*0 x15 */
|
||||
grub_uint16_t sectors_per_fat_16;
|
||||
grub_uint16_t sectors_per_track;
|
||||
/*0 x19 */
|
||||
grub_uint16_t num_heads;
|
||||
/*0 x1b */
|
||||
grub_uint32_t num_hidden_sectors;
|
||||
/* 0x1f */
|
||||
grub_uint32_t num_total_sectors_32;
|
||||
union
|
||||
{
|
||||
|
|
|
@ -24,159 +24,13 @@
|
|||
|
||||
struct grub_video_fbblit_info;
|
||||
|
||||
/* NOTE: This function assumes that given coordinates are within bounds of
|
||||
handled data. */
|
||||
void
|
||||
grub_video_fbblit_replace (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
|
||||
grub_video_fbblit_replace_directN (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
|
||||
grub_video_fbblit_replace_BGRX8888_RGBX8888 (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
|
||||
grub_video_fbblit_replace_BGRX8888_RGB888 (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
|
||||
grub_video_fbblit_replace_BGR888_RGBX8888 (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
|
||||
grub_video_fbblit_replace_BGR888_RGB888 (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
|
||||
grub_video_fbblit_replace_RGBX8888_RGB888 (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
|
||||
grub_video_fbblit_replace_RGB888_RGBX8888 (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
|
||||
grub_video_fbblit_replace_index_RGBX8888 (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
|
||||
grub_video_fbblit_replace_index_RGB888 (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
|
||||
grub_video_fbblit_blend (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
|
||||
grub_video_fbblit_blend_BGRA8888_RGBA8888 (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
|
||||
grub_video_fbblit_blend_BGR888_RGBA8888 (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
|
||||
grub_video_fbblit_blend_RGBA8888_RGBA8888 (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
|
||||
grub_video_fbblit_blend_RGB888_RGBA8888 (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
|
||||
grub_video_fbblit_blend_index_RGBA8888 (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
|
||||
grub_video_fbblit_replace_32bit_1bit (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
|
||||
grub_video_fbblit_replace_24bit_1bit (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
|
||||
grub_video_fbblit_replace_16bit_1bit (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
|
||||
grub_video_fbblit_replace_8bit_1bit (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
|
||||
grub_video_fbblit_blend_XXXA8888_1bit (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
|
||||
grub_video_fbblit_blend_XXX888_1bit (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
|
||||
grub_video_fbblit_blend_XXX565_1bit (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);
|
||||
grub_video_fb_dispatch_blit (struct grub_video_fbblit_info *target,
|
||||
struct grub_video_fbblit_info *source,
|
||||
enum grub_video_blit_operators oper,
|
||||
int x, int y,
|
||||
unsigned int width, unsigned int height,
|
||||
int offset_x, int offset_y);
|
||||
#endif /* ! GRUB_FBBLIT_HEADER */
|
||||
|
|
|
@ -48,28 +48,8 @@ struct grub_video_fbrender_target
|
|||
};
|
||||
|
||||
void
|
||||
grub_video_fbfill (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height);
|
||||
|
||||
void
|
||||
grub_video_fbfill_direct32 (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height);
|
||||
|
||||
void
|
||||
grub_video_fbfill_direct24 (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height);
|
||||
|
||||
void
|
||||
grub_video_fbfill_direct16 (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height);
|
||||
|
||||
void
|
||||
grub_video_fbfill_direct8 (struct grub_video_fbblit_info *dst,
|
||||
grub_video_color_t color, int x, int y,
|
||||
int width, int height);
|
||||
grub_video_fb_fill_dispatch (struct grub_video_fbblit_info *target,
|
||||
grub_video_color_t color, int x, int y,
|
||||
unsigned int width, unsigned int height);
|
||||
|
||||
#endif /* ! GRUB_FBFILL_HEADER */
|
||||
|
|
|
@ -31,8 +31,15 @@ struct grub_video_fbblit_info
|
|||
grub_uint8_t *data;
|
||||
};
|
||||
|
||||
void *grub_video_fb_get_video_ptr (struct grub_video_fbblit_info *source,
|
||||
unsigned int x, unsigned int y);
|
||||
/* Don't use for 1-bit bitmaps, addressing needs to be done at the bit level
|
||||
and it doesn't make sense, in general, to ask for a pointer
|
||||
to a particular pixel's data. */
|
||||
static inline void *
|
||||
grub_video_fb_get_video_ptr (struct grub_video_fbblit_info *source,
|
||||
unsigned int x, unsigned int y)
|
||||
{
|
||||
return source->data + y * source->mode_info->pitch + x * source->mode_info->bytes_per_pixel;
|
||||
}
|
||||
|
||||
/* Advance pointer by VAL bytes. If there is no unaligned access available,
|
||||
VAL has to be divisible by size of pointed type.
|
||||
|
|
|
@ -27,7 +27,25 @@
|
|||
/* Forward declaration of opaque structure grub_font.
|
||||
Users only pass struct grub_font pointers to the font module functions,
|
||||
and do not have knowledge of the structure contents. */
|
||||
struct grub_font;
|
||||
/* Full structure was moved here for inline function but still
|
||||
shouldn't be used directly.
|
||||
*/
|
||||
struct grub_font
|
||||
{
|
||||
char *name;
|
||||
grub_file_t file;
|
||||
char *family;
|
||||
short point_size;
|
||||
short weight;
|
||||
short max_char_width;
|
||||
short max_char_height;
|
||||
short ascent;
|
||||
short descent;
|
||||
short leading;
|
||||
grub_uint32_t num_chars;
|
||||
struct char_index_entry *char_index;
|
||||
grub_uint16_t *bmp_idx;
|
||||
};
|
||||
|
||||
/* Font type used to access font functions. */
|
||||
typedef struct grub_font *grub_font_t;
|
||||
|
@ -93,9 +111,19 @@ const char *EXPORT_FUNC (grub_font_get_name) (grub_font_t font);
|
|||
|
||||
int EXPORT_FUNC (grub_font_get_max_char_width) (grub_font_t font);
|
||||
|
||||
int EXPORT_FUNC (grub_font_get_max_char_height) (grub_font_t font);
|
||||
/* Get the maximum height of any character in the font in pixels. */
|
||||
static inline int
|
||||
grub_font_get_max_char_height (grub_font_t font)
|
||||
{
|
||||
return font->max_char_height;
|
||||
}
|
||||
|
||||
int EXPORT_FUNC (grub_font_get_ascent) (grub_font_t font);
|
||||
/* Get the distance in pixels from the top of characters to the baseline. */
|
||||
static inline int
|
||||
grub_font_get_ascent (grub_font_t font)
|
||||
{
|
||||
return font->ascent;
|
||||
}
|
||||
|
||||
int EXPORT_FUNC (grub_font_get_descent) (grub_font_t font);
|
||||
|
||||
|
|
|
@ -31,13 +31,21 @@ EXPORT_FUNC (grub_gfxterm_set_window) (struct grub_video_render_target *target,
|
|||
int double_repaint,
|
||||
grub_font_t font, int border_width);
|
||||
|
||||
typedef void (*grub_gfxterm_repaint_callback_t)(int x, int y,
|
||||
int width, int height);
|
||||
|
||||
void grub_gfxterm_set_repaint_callback (grub_gfxterm_repaint_callback_t func);
|
||||
|
||||
void EXPORT_FUNC (grub_gfxterm_schedule_repaint) (void);
|
||||
|
||||
extern void (*EXPORT_VAR (grub_gfxterm_decorator_hook)) (void);
|
||||
|
||||
struct grub_gfxterm_background
|
||||
{
|
||||
struct grub_video_bitmap *bitmap;
|
||||
int blend_text_bg;
|
||||
grub_video_rgba_color_t default_bg_color;
|
||||
};
|
||||
|
||||
extern struct grub_gfxterm_background EXPORT_VAR (grub_gfxterm_background);
|
||||
|
||||
void EXPORT_FUNC (grub_gfxterm_video_update_color) (void);
|
||||
void
|
||||
EXPORT_FUNC (grub_gfxterm_get_dimensions) (unsigned *width, unsigned *height);
|
||||
|
||||
#endif /* ! GRUB_GFXTERM_HEADER */
|
||||
|
|
|
@ -22,4 +22,11 @@
|
|||
void grub_vga_text_init (void);
|
||||
void grub_vga_text_fini (void);
|
||||
|
||||
void grub_video_coreboot_fb_init (void);
|
||||
void grub_video_coreboot_fb_early_init (void);
|
||||
void grub_video_coreboot_fb_late_init (void);
|
||||
void grub_video_coreboot_fb_fini (void);
|
||||
|
||||
extern struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable;
|
||||
|
||||
#endif /* ! GRUB_MACHINE_CONSOLE_HEADER */
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -329,7 +329,8 @@ grub_err_t grub_script_execute_cmdwhile (struct grub_script_cmd *cmd);
|
|||
|
||||
/* Execute any GRUB pre-parsed command or script. */
|
||||
grub_err_t grub_script_execute (struct grub_script *script);
|
||||
grub_err_t grub_script_execute_sourcecode (const char *source, int argc, char **args);
|
||||
grub_err_t grub_script_execute_sourcecode (const char *source);
|
||||
grub_err_t grub_script_execute_new_scope (const char *source, int argc, char **args);
|
||||
|
||||
/* Break command for loops. */
|
||||
grub_err_t grub_script_break (grub_command_t cmd, int argc, char *argv[]);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -531,12 +531,6 @@ grub_video_map_rgba_color (grub_video_rgba_color_t c)
|
|||
return grub_video_map_rgba (c.red, c.green, c.blue, c.alpha);
|
||||
}
|
||||
|
||||
int EXPORT_FUNC (grub_video_get_named_color) (const char *name,
|
||||
grub_video_rgba_color_t *color);
|
||||
|
||||
grub_err_t EXPORT_FUNC (grub_video_parse_color) (const char *s,
|
||||
grub_video_rgba_color_t *color);
|
||||
|
||||
#ifndef GRUB_MACHINE_EMU
|
||||
extern void grub_font_init (void);
|
||||
extern void grub_font_fini (void);
|
||||
|
|
|
@ -118,72 +118,18 @@ 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
|
||||
grub_video_fb_setup (unsigned int mode_type, unsigned int mode_mask,
|
||||
EXPORT_FUNC (grub_video_fb_setup) (unsigned int mode_type, unsigned int mode_mask,
|
||||
struct grub_video_mode_info *mode_info,
|
||||
volatile void *page0_ptr,
|
||||
grub_video_fb_set_page_t set_page_in,
|
||||
volatile void *page1_ptr);
|
||||
grub_err_t
|
||||
grub_video_fb_swap_buffers (void);
|
||||
EXPORT_FUNC (grub_video_fb_swap_buffers) (void);
|
||||
grub_err_t
|
||||
grub_video_fb_get_info_and_fini (struct grub_video_mode_info *mode_info,
|
||||
void **framebuf);
|
||||
EXPORT_FUNC (grub_video_fb_get_info_and_fini) (struct grub_video_mode_info *mode_info,
|
||||
void **framebuf);
|
||||
|
||||
#endif /* ! GRUB_VIDEO_FB_HEADER */
|
||||
|
|
|
@ -22,6 +22,39 @@
|
|||
|
||||
#ifndef _SYS_DMU_H
|
||||
#define _SYS_DMU_H
|
||||
#define B_FALSE 0
|
||||
#define B_TRUE 1
|
||||
|
||||
#define DMU_OT_NEWTYPE 0x80
|
||||
#define DMU_OT_METADATA 0x40
|
||||
#define DMU_OT_BYTESWAP_MASK 0x3f
|
||||
|
||||
#define DMU_OT(byteswap, metadata) \
|
||||
(DMU_OT_NEWTYPE | \
|
||||
((metadata) ? DMU_OT_METADATA : 0) | \
|
||||
((byteswap) & DMU_OT_BYTESWAP_MASK))
|
||||
|
||||
#define DMU_OT_IS_VALID(ot) (((ot) & DMU_OT_NEWTYPE) ? \
|
||||
((ot) & DMU_OT_BYTESWAP_MASK) < DMU_BSWAP_NUMFUNCS : \
|
||||
(ot) < DMU_OT_NUMTYPES)
|
||||
|
||||
#define DMU_OT_IS_METADATA(ot) (((ot) & DMU_OT_NEWTYPE) ? \
|
||||
((ot) & DMU_OT_METADATA) : \
|
||||
dmu_ot[(ot)].ot_metadata)
|
||||
|
||||
typedef enum dmu_object_byteswap {
|
||||
DMU_BSWAP_UINT8,
|
||||
DMU_BSWAP_UINT16,
|
||||
DMU_BSWAP_UINT32,
|
||||
DMU_BSWAP_UINT64,
|
||||
DMU_BSWAP_ZAP,
|
||||
DMU_BSWAP_DNODE,
|
||||
DMU_BSWAP_OBJSET,
|
||||
DMU_BSWAP_ZNODE,
|
||||
DMU_BSWAP_OLDACL,
|
||||
DMU_BSWAP_ACL,
|
||||
DMU_BSWAP_NUMFUNCS
|
||||
} dmu_object_byteswap_t;
|
||||
|
||||
/*
|
||||
* This file describes the interface that the DMU provides for its
|
||||
|
@ -89,7 +122,17 @@ typedef enum dmu_object_type {
|
|||
DMU_OT_SA_ATTR_REGISTRATION, /* ZAP */
|
||||
DMU_OT_SA_ATTR_LAYOUTS, /* ZAP */
|
||||
DMU_OT_DSL_KEYCHAIN = 54,
|
||||
DMU_OT_NUMTYPES
|
||||
DMU_OT_NUMTYPES,
|
||||
DMU_OTN_UINT8_DATA = DMU_OT(DMU_BSWAP_UINT8, B_FALSE),
|
||||
DMU_OTN_UINT8_METADATA = DMU_OT(DMU_BSWAP_UINT8, B_TRUE),
|
||||
DMU_OTN_UINT16_DATA = DMU_OT(DMU_BSWAP_UINT16, B_FALSE),
|
||||
DMU_OTN_UINT16_METADATA = DMU_OT(DMU_BSWAP_UINT16, B_TRUE),
|
||||
DMU_OTN_UINT32_DATA = DMU_OT(DMU_BSWAP_UINT32, B_FALSE),
|
||||
DMU_OTN_UINT32_METADATA = DMU_OT(DMU_BSWAP_UINT32, B_TRUE),
|
||||
DMU_OTN_UINT64_DATA = DMU_OT(DMU_BSWAP_UINT64, B_FALSE),
|
||||
DMU_OTN_UINT64_METADATA = DMU_OT(DMU_BSWAP_UINT64, B_TRUE),
|
||||
DMU_OTN_ZAP_DATA = DMU_OT(DMU_BSWAP_ZAP, B_FALSE),
|
||||
DMU_OTN_ZAP_METADATA = DMU_OT(DMU_BSWAP_ZAP, B_TRUE),
|
||||
} dmu_object_type_t;
|
||||
|
||||
typedef enum dmu_objset_type {
|
||||
|
@ -116,5 +159,6 @@ typedef enum dmu_objset_type {
|
|||
#define DMU_POOL_HISTORY "history"
|
||||
#define DMU_POOL_PROPS "pool_props"
|
||||
#define DMU_POOL_L2CACHE "l2cache"
|
||||
#define DMU_POOL_FEATURES_FOR_READ "features_for_read"
|
||||
|
||||
#endif /* _SYS_DMU_H */
|
||||
|
|
|
@ -36,8 +36,12 @@ typedef enum grub_zfs_endian
|
|||
/*
|
||||
* On-disk version number.
|
||||
*/
|
||||
#define SPA_VERSION 33ULL
|
||||
|
||||
#define SPA_VERSION_INITIAL 1ULL
|
||||
#define SPA_VERSION_BEFORE_FEATURES 33ULL
|
||||
#define SPA_VERSION_FEATURES 5000ULL
|
||||
#define SPA_VERSION_IS_SUPPORTED(v) \
|
||||
(((v) >= SPA_VERSION_INITIAL && (v) <= SPA_VERSION_BEFORE_FEATURES) || \
|
||||
((v) == SPA_VERSION_FEATURES))
|
||||
/*
|
||||
* The following are configuration names used in the nvlist describing a pool's
|
||||
* configuration.
|
||||
|
@ -76,6 +80,7 @@ typedef enum grub_zfs_endian
|
|||
#define ZPOOL_CONFIG_DDT_HISTOGRAM "ddt_histogram"
|
||||
#define ZPOOL_CONFIG_DDT_OBJ_STATS "ddt_object_stats"
|
||||
#define ZPOOL_CONFIG_DDT_STATS "ddt_stats"
|
||||
#define ZPOOL_CONFIG_FEATURES_FOR_READ "features_for_read"
|
||||
/*
|
||||
* The persistent vdev state is stored as separate values rather than a single
|
||||
* 'vdev_state' entry. This is because a device can be in multiple states, such
|
||||
|
|
|
@ -88,6 +88,7 @@ enum zio_compress {
|
|||
ZIO_COMPRESS_GZIP8,
|
||||
ZIO_COMPRESS_GZIP9,
|
||||
ZIO_COMPRESS_ZLE,
|
||||
ZIO_COMPRESS_LZ4,
|
||||
ZIO_COMPRESS_FUNCTIONS
|
||||
};
|
||||
|
||||
|
|
BIN
po/exclude.pot
BIN
po/exclude.pot
Binary file not shown.
BIN
tests/dfly-mbr-mbexample.dfly.img.gz
Normal file
BIN
tests/dfly-mbr-mbexample.dfly.img.gz
Normal file
Binary file not shown.
BIN
tests/dfly-mbr-mbexample.mbr.img.gz
Normal file
BIN
tests/dfly-mbr-mbexample.mbr.img.gz
Normal file
Binary file not shown.
6
tests/grub_script_eval.in
Normal file
6
tests/grub_script_eval.in
Normal file
|
@ -0,0 +1,6 @@
|
|||
#! @builddir@/grub-shell-tester
|
||||
|
||||
eval echo "Hello world"
|
||||
valname=tst
|
||||
eval $valname=hi
|
||||
echo $tst
|
21
tests/grub_script_no_commands.in
Normal file
21
tests/grub_script_no_commands.in
Normal file
|
@ -0,0 +1,21 @@
|
|||
#! /bin/sh
|
||||
set -e
|
||||
|
||||
# grub-script-check refuses to pass a file with no commands; this usually
|
||||
# indicates a bug in the code generating that file.
|
||||
|
||||
@builddir@/grub-script-check <<EOF && exit 1
|
||||
|
||||
EOF
|
||||
|
||||
@builddir@/grub-script-check <<EOF && exit 1
|
||||
# comment
|
||||
EOF
|
||||
|
||||
@builddir@/grub-script-check <<EOF && exit 1
|
||||
# comment 1
|
||||
# comment 2
|
||||
|
||||
EOF
|
||||
|
||||
exit 0
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue