mirror of
https://git.proxmox.com/git/grub2
synced 2025-07-27 09:19:51 +00:00
Import grub2_2.02.orig.tar.xz
This commit is contained in:
commit
0992ffbac6
924
ChangeLog
924
ChangeLog
@ -1,3 +1,927 @@
|
||||
2017-04-25 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Increase version to 2.02.
|
||||
|
||||
2017-04-12 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Fix remaining cases of gcc 7 fallthrough warning.
|
||||
They are all intended, so just add the relevant comment.
|
||||
|
||||
2017-04-04 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
Add gnulib-fix-gcc7-fallthrough.diff
|
||||
As long as the code is not upstream, add it as explicit patch for the
|
||||
case of gnulib refresh.
|
||||
|
||||
2017-04-04 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
i386, x86_64, ppc: fix switch fallthrough cases with GCC7
|
||||
In util/getroot and efidisk slightly modify exitsing comment to mostly
|
||||
retain it but still make GCC7 compliant with respect to fall through
|
||||
annotation.
|
||||
|
||||
In grub-core/lib/xzembed/xz_dec_lzma2.c it adds same comments as
|
||||
upstream.
|
||||
|
||||
In grub-core/tests/setjmp_tets.c declare functions as "noreturn" to
|
||||
suppress GCC7 warning.
|
||||
|
||||
In grub-core/gnulib/regexec.c use new __attribute__, because existing
|
||||
annotation is not recognized by GCC7 parser (which requires that comment
|
||||
immediately precedes case statement).
|
||||
|
||||
Otherwise add FALLTHROUGH comment.
|
||||
|
||||
Closes: 50598
|
||||
|
||||
2017-04-04 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
btrfs: avoid "used uninitialized" error with GCC7
|
||||
sblock was local and so considered new variable on every loop
|
||||
iteration.
|
||||
|
||||
Closes: 50597
|
||||
|
||||
2017-04-02 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
acpi: add missing efi_call wrapper to acpi command
|
||||
Fixed loading of ACPI tables on EFI (side effect was apparent memory
|
||||
corruption ranging from unpredictable behavior to system reset).
|
||||
|
||||
Reported by Nando Eva <nando4eva@ymail.com>
|
||||
|
||||
2017-03-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Increment version to GRUB 2.02~rc2.
|
||||
|
||||
Use core2duo for bootcheck test on 64-bit EFI.
|
||||
Obviously pentium2 can't run efi64.
|
||||
|
||||
2017-03-14 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
efi: skip iPXE block device.
|
||||
iPXE adds Simple File System Protocol to loaded image handle, as side
|
||||
effect it also adds Block IO protocol (according to comments, to work
|
||||
around some bugs in EDK2). GRUB assumes that every device with Block IO
|
||||
is disk and skips network initialization entirely. But iPXE Block IO
|
||||
implementation is just a stub which always fails for every operation
|
||||
so cannot be used. Attempt to detect and skip such devices.
|
||||
|
||||
We are using media ID which iPXE sets to "iPXE" and block IO size in
|
||||
hope that no real device would announce 1B block ...
|
||||
|
||||
Closes: 50518
|
||||
|
||||
2017-03-05 phcoder <phcoder@gmail.com>
|
||||
|
||||
xen: Fix wrong register in relocator.
|
||||
This fixes chainloading of some GRUB variants.
|
||||
|
||||
2017-02-27 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
video_fb: Fix blue collor if using unoptimized blitter.
|
||||
when unmapping the color what matters is the mode of source, not target.
|
||||
|
||||
legacy_initrd: Strip any additional arguments to initrd.
|
||||
|
||||
2017-02-26 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
grub-fs-tester: improve squash4 tests
|
||||
1. Make sure files are not multiple of block size. This will ensure tail packing
|
||||
for squash4 and may also trigger more codes paths in other filesystems.
|
||||
|
||||
2. Call mksquashfs with -always-use-fragments to force tail packing.
|
||||
|
||||
2017-02-25 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
efi: strip off final NULL from File Path in grub_efi_get_filename
|
||||
UEFI 2.6 9.3.6.4 File Path Media Device Path says that Path Name is
|
||||
"A NULL-terminated Path string including directory and file names".
|
||||
|
||||
Strip final NULL from Path Name in each File Path node when constructing
|
||||
full path. To be on safe side, strip all of them.
|
||||
|
||||
Fixes failure chainloading grub from grub, when loaded grub truncates
|
||||
image path and does not find its grub.cfg.
|
||||
|
||||
https://bugzilla.opensuse.org/show_bug.cgi?id=1026344
|
||||
|
||||
This was triggered by commit ce95549cc54b5d6f494608a7c390dba3aab4fba7;
|
||||
before it we built Path Name without trailing NULL, and apparently all
|
||||
other bootloaders use single File Path node, thus not exposing this bug.
|
||||
|
||||
2017-02-24 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
squash4: fix handling of fragments and sparse files
|
||||
1. Do not assume block list and fragment are mutually exclusive. Squash
|
||||
can pack file tail as fragment (unless -no-fragments is specified); so
|
||||
check read offset and read either from block list or from fragments as
|
||||
appropriate.
|
||||
|
||||
2. Support sparse files with zero blocks.
|
||||
|
||||
3. Fix fragment read - frag.offset is absolute fragment position,
|
||||
not offset relative to ino.chunk.
|
||||
|
||||
Reported and tested by Carlo Caione <carlo@endlessm.com>
|
||||
|
||||
2017-02-22 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Whitelist sparc64-ieee1275 as having no video modules.
|
||||
ieee1275_fb is not built on sparc64 due to virtual address issues.
|
||||
|
||||
2017-02-12 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
script: fix double free in lexer
|
||||
yylex_destroy() already frees scanner.
|
||||
|
||||
Found by: Coverity scan.
|
||||
CID: 176636
|
||||
|
||||
2017-02-07 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
xen: Fix parsing of XZ kernel.
|
||||
In case of xz, the uncompressed size is appended to xz data which confuses
|
||||
our xz decompressor. Trim it.
|
||||
|
||||
2017-02-07 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
xen: Fix handling of GRUB chainloading.
|
||||
In case of GRUB we put remapper after domain pages and not at 0x0.
|
||||
In this case we use max_addr to put remapper. Unfortunately we increment
|
||||
max_addr as well in this case resulting in virt mapping mapping page
|
||||
at old max_addr and trying to boot using new max_addr.
|
||||
|
||||
Closes 46014.
|
||||
|
||||
2017-02-04 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
linguas: Don't skip ko.po.
|
||||
Translation project doesn't require copyright disclaimers. They're independant
|
||||
from us. They're responsible for their copyright story.
|
||||
|
||||
2017-02-03 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Fix truncated checksum.h.
|
||||
|
||||
Regenerate checksums.h
|
||||
Screenshots contain version, so we need new checksums.
|
||||
|
||||
Release 2.02-rc1.
|
||||
|
||||
Fix mingw compilation.
|
||||
|
||||
2017-02-03 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
|
||||
documentation: Clarify documentation for special environment variable "default".
|
||||
The current documentation for the special environment variable
|
||||
"default" is confusing and unclear. This patch attempts to clean it
|
||||
up.
|
||||
|
||||
In particular, the current documentation refers to the "number or
|
||||
title", but then in the example it gives, the menu entries and
|
||||
submenus all have numbers *in* their title; furthermore, there is no
|
||||
example given about how to choose the number, or any indication about
|
||||
whether counting is zero-indexed or 1-indexed.
|
||||
|
||||
Having a cleaner example and presenting all variants (numeric, title,
|
||||
and id) should make it clearer to the user.
|
||||
|
||||
2017-02-03 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Avoid causing kernel oops in nilfs2 test.
|
||||
1024-byte and 2048-byte blocks don't really work with some kernels, skip
|
||||
them as we don't want any oops'es.
|
||||
|
||||
btrfs: Shorten label by one character.
|
||||
mkfs.btrfs imposes a slightly lower limit than would be possible in btrfs.
|
||||
|
||||
2017-02-02 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
grub-fs-tester: Fix mkudffs invocation.
|
||||
With current invocation order of arguments is wrong and path is hardcoded.
|
||||
|
||||
grub-fs-tester: Fix fat test.
|
||||
mkfs.vfat ignores -S when invoked on a disk, including loopback device,
|
||||
so do an mkfs on underlying image.
|
||||
|
||||
2017-02-02 Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
i386/relocator: Align stack in grub_relocator64_efi relocator
|
||||
Unified Extensible Firmware Interface Specification, Version 2.6,
|
||||
section 2.3.4, x64 Platforms, boot services, says among others:
|
||||
The stack must be 16-byte aligned. So, do it. Otherwise OS may
|
||||
boot only by chance as it happens right now.
|
||||
|
||||
2017-02-02 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
i386-ieee1275: Add missing bootcheck target.
|
||||
|
||||
bootcheck-linux-i386: Use -cpu pentium2.
|
||||
Most modern kernels are compiled for i686, so use -cpu pentium2
|
||||
to avoid spurious failures.
|
||||
|
||||
Use -fPIC with arm64 with clang.
|
||||
Currently it doesn't work either way but with -fPIC it should work once
|
||||
clang bug is fixed.
|
||||
|
||||
INSTALL: Fix mention of thumb-clang.
|
||||
|
||||
Fix thumb compilation with clang.
|
||||
According to EABI only STT_FUNC has convention of lowest bit indicating
|
||||
execution mode. R_THM_{JUMP,CALL}* relocations are assumed to be pointing
|
||||
to thumb mode unless they use STT_FUNC.
|
||||
|
||||
2017-02-01 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Add missing strtoull_test.c
|
||||
It was forgotten in my local directory.
|
||||
|
||||
arm64: Add support for GOT and PCREL32 relocations.
|
||||
|
||||
mkimage: Fix memory leak.
|
||||
|
||||
arm/arm64: Fix improper use of start address.
|
||||
It was used instead of loading address of current section or of entire buffer.
|
||||
|
||||
ia64: Fix iterator for relocation entries.
|
||||
Don't assume relocation entry size and use sh_entsize properly.
|
||||
|
||||
arm: Fix trampoline generation.
|
||||
We used the wrong pointer in this case. It worked only by accident.
|
||||
|
||||
Fix bootcheck-related files compilation.
|
||||
We need -static as otherwise linker will set interpreter field and ld.so
|
||||
is not available on our initrd's.
|
||||
Strip all sections we don't need on binary tests.
|
||||
|
||||
2017-01-31 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Regenerate checksum.h.
|
||||
Screenshots checked.
|
||||
Using unifont from http://ftp.us.debian.org/debian/pool/main/u/unifont/xfonts-unifont_7.0.06-1_all.deb.
|
||||
|
||||
grub-mkfont: Remove leftover debug statement.
|
||||
|
||||
charset: Trim away RLM and LRM.
|
||||
They are not visible but would otherwise end up as [LRM] or [RLM] squares
|
||||
with some fonts.
|
||||
|
||||
gfxterm: Fix clearing of cursor.
|
||||
If ascent is bigger than height - 2, then we draw over character box but then
|
||||
to clear cursor we only draw over character box. So trim ascent if necessarry.
|
||||
|
||||
ia64: Add support for R_IA64_GPREL64I.
|
||||
Recent GCC generates those relocations, so we need to support them.
|
||||
|
||||
2017-01-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
grub-module-verifier: Add mips to all_video whitelist.
|
||||
On MIPS video is compiled-in. So all_video is empty. Whitelist it.
|
||||
|
||||
Fix -nopie/-nopie check.
|
||||
We don't use lgcc_s but missing lgcc_s or another library cause test to fail.
|
||||
So use -nostdlib.
|
||||
We need to use -Werror to avoid warning-generated case to be accepted.
|
||||
Clang uses -nopie rather than -no-pie. Check both and use whichever one works.
|
||||
Additionally android clang passes -pie to the linker even though it doesn't
|
||||
define __PIE__. So if compilation without no-pie logic fails add -nopie/-no-pie
|
||||
even if __PIE__ is not defined.
|
||||
|
||||
grub-module-verifier: Ignore all_video emptiness on xen.
|
||||
It's intentional that it's empty when no video modules
|
||||
are available.
|
||||
|
||||
2017-01-28 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Support arm clang 3.8 amd later.
|
||||
clang 3.8 and later doesn't support -mllvm -use-arm-movt=0
|
||||
whereas older clang doesn't know -mno-movt. So use
|
||||
-mno-movt whenever possible and fallback to mllvm variant.
|
||||
|
||||
2017-01-27 Carlo Caione <carlo@endlessm.com>
|
||||
|
||||
exfat: Support files over 4GiB
|
||||
file size in grub_fat_data was 32-bit on exfat.
|
||||
|
||||
2017-01-27 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Ensure that grub_reboot doesn't return on emu.
|
||||
Use grub_fatal if longjmp fails.
|
||||
|
||||
grub_reboot is marked as noreturn so return would cause
|
||||
a crash.
|
||||
|
||||
2017-01-27 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
grub-shell: skip font copying when no font is available.
|
||||
|
||||
Don't use -mlong-calls on arm.
|
||||
We don't really need it and it's flaky and creates
|
||||
bogus symbols with clang.
|
||||
|
||||
configure: Disable movw/movt with clang.
|
||||
Those relocations are not compatible with PE and also
|
||||
not compatible with custom uboot relocator.
|
||||
Disable them.
|
||||
|
||||
grub-fs-tester: Delete directory once we're done.
|
||||
|
||||
grub-fs-tester: Accomodate for slower systems.
|
||||
fstime can be more different with xz squashfs.
|
||||
Allow difference up to 3 seconds.
|
||||
This code is ugly now but rewriting it now is not on the
|
||||
table.
|
||||
|
||||
grub-fs-tester: Accomodate for testing in proot containers.
|
||||
proot creates hidden files with .proot prefix and name
|
||||
derived from real file name. So decrease file name length
|
||||
and path depth. For some reason depth 85 also results in
|
||||
undeleteable directory, so use 84 instead of 85.
|
||||
|
||||
2017-01-24 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
osdep/linux: handle autofs entries in /proc/self/mountinfo
|
||||
These entries have placeholder for device name and so are useless for our
|
||||
purpose. grub failed with something like
|
||||
|
||||
grub-install: error: failed to get canonical path of `systemd-1'.
|
||||
|
||||
When we see autofs entry, record it (to keep parent-child relationship) but
|
||||
continue to look for real mount. If it is found, we process it as usual. If
|
||||
only autofs entry exists, attempt to trigger mount by opening mount point
|
||||
and retry. Mount point itself is then kept open to avoid timeout.
|
||||
|
||||
Recent systemd is by default using automount for /boot/efi so this should
|
||||
become more popular problem on EFI systems.
|
||||
|
||||
Closes: 49942
|
||||
|
||||
2017-01-08 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
linux: fix "vga=XX deprecated" warning for text mode
|
||||
Arguments were in reverse order which resulted in
|
||||
|
||||
text is deprecated. Use set gfxpayload=vga=0 before linux command instead.
|
||||
|
||||
2016-12-22 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
configure: fix check for sys/sysmacros.h under glibc 2.25+
|
||||
glibc 2.25 still includes sys/sysmacros.h in sys/types.h but also emits
|
||||
deprecation warning. So test for sys/types.h succeeds in configure but later
|
||||
compilation fails because we use -Werror by default.
|
||||
|
||||
While this is fixed in current autoconf GIT, we really cannot force everyone
|
||||
to use bleeding edge (that is not even released right now). So run test under
|
||||
-Werror as well to force proper detection.
|
||||
|
||||
This should have no impact on autoconf 2.70+ as AC_HEADER_MAJOR in this version
|
||||
simply checks for header existence.
|
||||
|
||||
Reported and tested by Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
2016-12-22 Michael Chang <mchang@suse.com>
|
||||
|
||||
Fix fwpath in efi netboot
|
||||
The path returned by grub_efi_net_config has already been stripped for the
|
||||
directory part extracted from cached bootp packet. We should just return the
|
||||
result to avoild it be stripped again.
|
||||
|
||||
It fixed the problem that grub.efi as NBP image always looking for grub.cfg and
|
||||
platform directory in upper folder rather than current one it gets loaded while
|
||||
$prefix is empty. The behavior is inconsistent with other architecture and how
|
||||
we would expect empty $prefix going to be in general.
|
||||
|
||||
The only exception to the general rule of empty $prefix is that when loaded
|
||||
from platform directory itself, the platform part is stripped thus upper folder
|
||||
is used for looking up files. It meets the case for how grub-mknetdir lay out
|
||||
the files under tftp root directory, but also hide away this issue to be
|
||||
identified as it appears to be just works.
|
||||
|
||||
Also fix possible memory leak by moving grub_efi_get_filename() call after
|
||||
grub_efi_net_config().
|
||||
|
||||
2016-12-15 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
efi: properly terminate filepath with NULL in chainloader
|
||||
EFI File Path Media Device Path is defined as NULL terminated string;
|
||||
but chainloader built file paths without final NULL. This caused error
|
||||
with Secure Boot and Linux Foundation PreLoader on Acer with InsydeH20 BIOS.
|
||||
Apparently firmware failed verification with EFI_INVALID_PARAMETER which is
|
||||
considered fatal error by PreLoader.
|
||||
|
||||
Reported and tested by Giovanni Santini <itachi.sama.amaterasu@gmail.com>
|
||||
|
||||
2016-12-14 Magnus Granberg <zorry@gentoo.org>
|
||||
|
||||
configure: add check for -no-pie if the compiler default to -fPIE
|
||||
When Grub is compile with gcc 6.1 that have --enable-defult-pie set.
|
||||
It fail with.
|
||||
-ffreestanding -m32 -Wl,-melf_i386 -Wl,--build-id=none -nostdlib -Wl,-N -Wl,-r,-d -
|
||||
o trig.module trig_module-trigtables.o
|
||||
grep 'MARKER' gcry_whirlpool.marker.new > gcry_whirlpool.marker; rm -f
|
||||
gcry_whirlpool.marker.new
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: -r and -
|
||||
shared may not be used together
|
||||
collect2: error: ld returned 1 exit status
|
||||
Makefile:26993: recipe for target 'trig.module' failed
|
||||
|
||||
Check that compiler supports -no-pie and add it to linker flags.
|
||||
|
||||
2016-12-14 Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
|
||||
|
||||
ofnet: implement the receive buffer
|
||||
get_card_packet() from ofnet.c allocates a netbuff based on the device's MTU:
|
||||
|
||||
nb = grub_netbuff_alloc (dev->mtu + 64 + 2);
|
||||
|
||||
In the case when the MTU is large, and the received packet is
|
||||
relatively small, this leads to allocation of significantly more memory,
|
||||
than it's required. An example could be transmission of TFTP packets
|
||||
with 0x400 blksize via a network card with 0x10000 MTU.
|
||||
|
||||
This patch implements a per-card receive buffer in a way similar to efinet.c,
|
||||
and makes get_card_packet() allocate a netbuff of the received data size.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-12-14 Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
|
||||
|
||||
ofnet: move the allocation of the transmit buffer into a function
|
||||
In the current code search_net_devices() uses the "alloc-mem" command
|
||||
from the IEEE1275 User Interface for allocation of the transmit buffer
|
||||
for the case when GRUB_IEEE1275_FLAG_VIRT_TO_REAL_BROKEN is set.
|
||||
|
||||
I don't have hardware where this flag is set to verify if this
|
||||
workaround is still needed. However, further changes to ofnet will
|
||||
require to execute this workaround one more time. Therefore, to
|
||||
avoid possible duplication of code I'm moving this piece of
|
||||
code into a function.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-11-24 Alexander Graf <agraf@suse.de>
|
||||
|
||||
efi: Move fdt helper into own file
|
||||
We only support FDT files with EFI on arm and arm64 systems, not
|
||||
on x86. So move the helper that finds a prepopulated FDT UUID
|
||||
into its own file and only build it for architectures where it
|
||||
also gets called.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-11-22 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
NEWS updates
|
||||
|
||||
2016-11-22 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
bootp: export next server IP as environment variable
|
||||
Network boot autoconfiguration sets default server to next server IP
|
||||
(siaddr) from BOOTP/DHCP reply, but manual configuration using net_bootp
|
||||
exports only server name. Unfortunately semantic of server name is not
|
||||
clearly defined. BOOTP RFC 951 defines it only for client request, and
|
||||
DHCP RFC 1541 only mentions it, without any implied usage. It looks like
|
||||
this field is mostly empty in server replies.
|
||||
|
||||
Export next server IP as net_<interface>_next_server variable. This allows
|
||||
grub configuration script to set $root/$prefix based on information obtained
|
||||
by net_bootp.
|
||||
|
||||
Reported and tested by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
|
||||
Cc: nikunj@linux.vnet.ibm.com
|
||||
|
||||
v2: change variable name to net_<interface>_next_server as discussed on the list
|
||||
|
||||
2016-11-22 Aaro Koskinen <aaro.koskinen@iki.fi>
|
||||
|
||||
configure.ac: don't require build time grub-mkfont on powerpc-ieee1275
|
||||
Don't require build time grub-mkfont on powerpc-ieee1275.
|
||||
|
||||
2016-11-14 Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
grub-mknetdir: Add support for ARM64 EFI
|
||||
|
||||
2016-11-12 Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
|
||||
|
||||
.gitignore: Add grub-core/build-grub-module-verifier
|
||||
|
||||
2016-11-10 Alexander Graf <agraf@suse.de>
|
||||
|
||||
arm efi: Use fdt from firmware when available
|
||||
If EFI is nice enough to pass us an FDT using configuration tables on 32bit
|
||||
ARM, we should really try and make use of it.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-11-10 Alexander Graf <agraf@suse.de>
|
||||
|
||||
arm64: Move firmware fdt search into global function
|
||||
Searching for a device tree that EFI passes to us via configuration tables
|
||||
is nothing architecture specific. Move it into generic code.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-11-05 Corey Hickey <bugfood-ml@fatooh.org>
|
||||
|
||||
fix detection of non-LUKS CRYPT
|
||||
grub_util_get_dm_abstraction() does a string comparison of insufficient
|
||||
length. When using a UUID such as "CRYPT-PLAIN-sda6_crypt", the function
|
||||
returns GRUB_DEV_ABSTRACTION_LUKS.
|
||||
|
||||
This results in the error:
|
||||
./grub-probe: error: disk `cryptouuid/sda6_crypt' not found.
|
||||
|
||||
This appears to be a copy/paste error introduced in:
|
||||
a10e7a5a8918bea6e2632055129fa9b516fe965a
|
||||
|
||||
The bug was (apparently) latent until revealed by:
|
||||
3bca85b4184f74995a7cc2791e432173fde26d34
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: add capability to load p2m list outside of kernel mapping
|
||||
Modern pvops linux kernels support a p2m list not covered by the
|
||||
kernel mapping. This capability is flagged by an elf-note specifying
|
||||
the virtual address the kernel is expecting the p2m list to be mapped
|
||||
to.
|
||||
|
||||
In case the elf-note is set by the kernel don't place the p2m list
|
||||
into the kernel mapping, but map it to the given address. This will
|
||||
allow to support domains with larger memory, as the kernel mapping is
|
||||
limited to 2GB and a domain with huge memory in the TB range will have
|
||||
a p2m list larger than this.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: modify page table construction
|
||||
Modify the page table construction to allow multiple virtual regions
|
||||
to be mapped. This is done as preparation for removing the p2m list
|
||||
from the initial kernel mapping in order to support huge pv domains.
|
||||
|
||||
This allows a cleaner approach for mapping the relocator page by
|
||||
using this capability.
|
||||
|
||||
The interface to the assembler level of the relocator has to be changed
|
||||
in order to be able to process multiple page table areas.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: add capability to load initrd outside of initial mapping
|
||||
Modern pvops linux kernels support an initrd not covered by the initial
|
||||
mapping. This capability is flagged by an elf-note.
|
||||
|
||||
In case the elf-note is set by the kernel don't place the initrd into
|
||||
the initial mapping. This will allow to load larger initrds and/or
|
||||
support domains with larger memory, as the initial mapping is limited
|
||||
to 2GB and it is containing the p2m list.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: factor out allocation of page tables into separate function
|
||||
Do the allocation of page tables in a separate function. This will
|
||||
allow to do the allocation at different times of the boot preparations
|
||||
depending on the features the kernel is supporting.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: factor out allocation of special pages into separate function
|
||||
Do the allocation of special pages (start info, console and xenbus
|
||||
ring buffers) in a separate function. This will allow to do the
|
||||
allocation at different times of the boot preparations depending on
|
||||
the features the kernel is supporting.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: factor out p2m list allocation into separate function
|
||||
Do the p2m list allocation of the to be loaded kernel in a separate
|
||||
function. This will allow doing the p2m list allocation at different
|
||||
times of the boot preparations depending on the features the kernel
|
||||
is supporting.
|
||||
|
||||
While at this remove superfluous setting of first_p2m_pfn and
|
||||
nr_p2m_frames as those are needed only in case of the p2m list not
|
||||
being mapped by the initial kernel mapping.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: synchronize xen header
|
||||
Get actual version of include/xen/xen.h from the Xen repository in
|
||||
order to be able to use constants defined there.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: add elfnote.h to avoid using numbers instead of constants
|
||||
Various features and parameters of a pv-kernel are specified via
|
||||
elf notes in the kernel image. Those notes are part of the interface
|
||||
between the Xen hypervisor and the kernel.
|
||||
|
||||
Instead of using num,bers in the code when interpreting the elf notes
|
||||
make use of the header supplied by Xen for that purpose.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: reduce number of global variables in xen loader
|
||||
The loader for xen paravirtualized environment is using lots of global
|
||||
variables. Reduce the number by making them either local or by putting
|
||||
them into a single state structure.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: avoid memleaks on error
|
||||
When loading a Xen pv-kernel avoid memory leaks in case of errors.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Juergen Gross <jgross@suse.com>
|
||||
|
||||
xen: make xen loader callable multiple times
|
||||
The loader for xen paravirtualized environment isn't callable multiple
|
||||
times as it won't free any memory in case of failure.
|
||||
|
||||
Call grub_relocator_unload() as other modules do it before allocating
|
||||
a new relocator or when unloading the module.
|
||||
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
2016-10-27 Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
multiboot2: Add support for relocatable images
|
||||
Currently multiboot2 protocol loads image exactly at address specified in
|
||||
ELF or multiboot2 header. This solution works quite well on legacy BIOS
|
||||
platforms. It is possible because memory regions are placed at predictable
|
||||
addresses (though I was not able to find any spec which says that it is
|
||||
strong requirement, so, it looks that it is just a goodwill of hardware
|
||||
designers). However, EFI platforms are more volatile. Even if required
|
||||
memory regions live at specific addresses then they are sometimes simply
|
||||
not free (e.g. used by boot/runtime services on Dell PowerEdge R820 and
|
||||
OVMF). This means that you are not able to just set up final image
|
||||
destination on build time. You have to provide method to relocate image
|
||||
contents to real load address which is usually different than load address
|
||||
specified in ELF and multiboot2 headers.
|
||||
|
||||
This patch provides all needed machinery to do self relocation in image code.
|
||||
First of all GRUB2 reads min_addr (min. load addr), max_addr (max. load addr),
|
||||
align (required image alignment), preference (it says which memory regions are
|
||||
preferred by image, e.g. none, low, high) from multiboot_header_tag_relocatable
|
||||
header tag contained in binary (at this stage load addresses from multiboot2
|
||||
and/or ELF headers are ignored). Later loader tries to fulfill request (not only
|
||||
that one) and if it succeeds then it informs image about real load address via
|
||||
multiboot_tag_load_base_addr tag. At this stage GRUB2 role is finished. Starting
|
||||
from now executable must cope with relocations itself using whole static and
|
||||
dynamic knowledge provided by boot loader.
|
||||
|
||||
This patch does not provide functionality which could do relocations using
|
||||
ELF relocation data. However, I was asked by Konrad Rzeszutek Wilk and Vladimir
|
||||
'phcoder' Serbinenko to investigate that thing. It looks that relevant machinery
|
||||
could be added to existing code (including this patch) without huge effort.
|
||||
Additionally, ELF relocation could live in parallel with self relocation provided
|
||||
by this patch. However, during research I realized that first of all we should
|
||||
establish the details how ELF relocatable image should look like and how it should
|
||||
be build. At least to build proper test/example files.
|
||||
|
||||
So, this patch just provides support for self relocatable images. If ELF file
|
||||
with relocs is loaded then GRUB2 complains loudly and ignores it. Support for
|
||||
such files will be added later.
|
||||
|
||||
This patch was tested with Xen image which uses that functionality. However, this Xen
|
||||
feature is still under development and new patchset will be released in about 2-3 weeks.
|
||||
|
||||
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
2016-10-27 Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
multiboot2: Do not pass memory maps to image if EFI boot services are enabled
|
||||
If image requested EFI boot services then skip multiboot2 memory maps.
|
||||
Main reason for not providing maps is because they will likely be
|
||||
invalid. We do a few allocations after filling them, e.g. for relocator
|
||||
needs. Usually we do not care as we would have finished boot services.
|
||||
If we keep boot services then it is easier/safer to not provide maps.
|
||||
However, if image needs memory maps and they are not provided by bootloader
|
||||
then it should get itself just before ExitBootServices() call.
|
||||
|
||||
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
|
||||
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
2016-10-27 Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
multiboot2: Add tags used to pass ImageHandle to loaded image
|
||||
Add tags used to pass ImageHandle to loaded image if requested.
|
||||
It is used by at least ExitBootServices() function.
|
||||
|
||||
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
|
||||
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
2016-10-27 Daniel Kiper <daniel.kiper@oracle.com>
|
||||
|
||||
i386/relocator: Add grub_relocator64_efi relocator
|
||||
Add grub_relocator64_efi relocator. It will be used on EFI 64-bit platforms
|
||||
when multiboot2 compatible image requests MULTIBOOT_TAG_TYPE_EFI_BS. Relocator
|
||||
will set lower parts of %rax and %rbx accordingly to multiboot2 specification.
|
||||
On the other hand processor mode, just before jumping into loaded image, will
|
||||
be set accordingly to Unified Extensible Firmware Interface Specification,
|
||||
Version 2.4 Errata B, section 2.3.4, x64 Platforms, boot services. This way
|
||||
loaded image will be able to use EFI boot services without any issues.
|
||||
|
||||
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
|
||||
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
2016-10-18 Sakar Arora <Sakar.Arora@nxp.com>
|
||||
|
||||
net/ip: Fix limit_time calculation in freeing old fragments
|
||||
limit_time underflows when current time is less than 90000ms.
|
||||
This causes packet fragments received during this time, i.e.,
|
||||
till 90000ms pass since timer init, to be rejected.
|
||||
|
||||
Hence, set it to 0 if its less than 90000.
|
||||
|
||||
2016-09-28 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
asm-tests/i386-pc: Check that movl is 5 bytes.
|
||||
LLVM 3.9 now emits short form of jump instructions, but it is still using
|
||||
32 bit addresses for some movl instructions. Fortunately it was caught early:
|
||||
|
||||
clang ... boot/i386/pc/boot.S
|
||||
clang -cc1as: fatal error: error in backend: invalid .org offset '440' (at offset '441')
|
||||
|
||||
Add additional check to catch it during configure run and force -no-integrated-as.
|
||||
|
||||
Closes: 49200
|
||||
|
||||
More details in
|
||||
https://lists.gnu.org/archive/html/grub-devel/2015-02/msg00099.html
|
||||
https://llvm.org/bugs/show_bug.cgi?id=22662
|
||||
|
||||
2016-08-13 Pete Batard <pete@akeo.ie>
|
||||
|
||||
Add missing va_end() to xasprintf() in grub-emu.
|
||||
|
||||
2016-07-27 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
at_keyboard: fix numpad "0" and "." mapping
|
||||
Reported for set 1 by fgndevelop <fgndevelop@posteo.org>. Apparently
|
||||
set 2 was reversed too.
|
||||
|
||||
2016-07-26 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
dns: fix buffer overflow for data->addresses in recv_hook
|
||||
We may get more than one response before exiting out of loop in
|
||||
grub_net_dns_lookup, but buffer was allocated for the first response only,
|
||||
so storing answers from subsequent replies wrote past allocated size.
|
||||
We never really use more than the very first address during lookup so there
|
||||
is little point in collecting all of them. Just quit early if we already have
|
||||
some reply.
|
||||
|
||||
Code needs serious redesign to actually collect multiple answers
|
||||
and select the best fit according to requested type (IPv4 or IPv6).
|
||||
|
||||
Reported and tested by Michael Chang <mchang@suse.com>
|
||||
|
||||
2016-07-26 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
xfs: accept filesystem with meta_uuid
|
||||
XFS V5 stores UUID in metadata and compares them with superblock UUID.
|
||||
To allow changing of user-visible UUID it stores original value in new
|
||||
superblock field (meta_uuid) and sets incompatible flag to indicate that
|
||||
new field must be used to verify metadata. Our driver currently does not
|
||||
check metadata UUID so simply accept such filesystem.
|
||||
|
||||
Reported-By: Marcos Mello <marcosfrm@outlook.com>
|
||||
Reviewd by Jan Kara <jack@suse.cz>
|
||||
|
||||
2016-05-03 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
net: translate pxe prefix to tftp when checking for self-load
|
||||
Commit ba218c1 missed legacy pxe and pxe: prefixes which are
|
||||
translated to tftp, so comparison failed.
|
||||
|
||||
2016-04-30 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
net: reset net->stall in grub_net_seek_real
|
||||
If we open new connection, we need to reset stall indication, otherwise
|
||||
nothing will ever be polled (low level code rely on this field being
|
||||
zero when establishing connection).
|
||||
|
||||
2016-04-30 Stefan Fritsch <sf@sfritsch.de>
|
||||
|
||||
http: reset EOF indication in http_seek
|
||||
Otherwise next read will stop polling too early due to stale EOF
|
||||
indicator, returning incomplete data to caller.
|
||||
|
||||
2016-04-24 Mike Gilbert <floppym@gentoo.org>
|
||||
|
||||
build: Use AC_HEADER_MAJOR to find device macros
|
||||
Depending on the OS/libc, device macros are defined in different
|
||||
headers. This change ensures we include the right one.
|
||||
|
||||
sys/types.h - BSD
|
||||
sys/mkdev.h - Sun
|
||||
sys/sysmacros.h - glibc (Linux)
|
||||
|
||||
glibc currently pulls sys/sysmacros.h into sys/types.h, but this may
|
||||
change in a future release.
|
||||
|
||||
https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html
|
||||
|
||||
2016-04-09 Michael Chang <mchang@suse.com>
|
||||
|
||||
http: fix superfluous null line in range request header
|
||||
At least the apache sever is very unhappy with that extra null line and will
|
||||
take more than ten seconds in responding to each range request, which slows
|
||||
down a lot the entire http file transfer process or even time out.
|
||||
|
||||
2016-03-22 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
configure: set -fno-pie together with -fno-PIE
|
||||
OpenBSD 5.9 apparently defaults to -fpie. We use -fno-PIE when appropriate
|
||||
already, but that is not enough - it does not turn off -fpie.
|
||||
|
||||
Actually check for -fPIE is not precise enough. __PIE__ is set for both
|
||||
-fpie and -fPIE but with different values. As far as I can tell, both
|
||||
options were introduced at the same time, so both should always be supported.
|
||||
|
||||
This fixes compilation on OpenBSD 5.9 which otherwise created insanely big
|
||||
lzma_decompress.img.
|
||||
|
||||
Reported, suggested and tested by: Jiri B <jirib@devio.us>
|
||||
|
||||
2016-03-20 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
bootp: check that interface is not NULL in configure_by_dhcp_ack
|
||||
grub_net_add_addr may fail with OOM and we use returned interface
|
||||
later without any checks.
|
||||
|
||||
2016-03-19 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
bootp: fix memory leak in grub_cmd_dhcpopt
|
||||
|
||||
2016-03-15 Aaron Luft <aluft@lifesize.com>
|
||||
|
||||
Remove the variable oldname which is attempting to free stack space.
|
||||
Historically this variable hold previous value of filename that
|
||||
had to be freed if allocated previously. Currently this branch
|
||||
is entered only if filename was not allocated previously so it
|
||||
became redundant. It did not cause real problems because grub_free
|
||||
was not called, but code is confusing and causes compilation error
|
||||
in some cases.
|
||||
|
||||
2016-03-13 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
Makefile.util.def: add $LIBINTL to grub-macbless flags
|
||||
Fixes compilation on OpenBSD 5.9.
|
||||
|
||||
Reported by Jiri B <jirib@devio.us>
|
||||
|
||||
2016-03-11 Robert Marshall <rmarshall@redhat.com>
|
||||
|
||||
Failed config now returns exit code (#1252311)
|
||||
Grub would notify the user if the new config was invalid, however, it
|
||||
did not exit properly with exit code 1. Added the proper exit code.
|
||||
|
||||
Resolves: rhbz#1252311
|
||||
|
||||
2016-03-11 Michael Chang <mchang@suse.com>
|
||||
|
||||
xen_file: Fix invalid payload size
|
||||
|
||||
2016-03-10 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
multiboot2: Remove useless GRUB_PACKED
|
||||
Reported by: Daniel Kiper
|
||||
|
||||
2016-03-06 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
20_linux_xen: fix test for GRUB_DEVICE
|
||||
Same fix as in 082bc9f.
|
||||
|
||||
2016-03-06 Mike Gilbert <floppym@gentoo.org>
|
||||
|
||||
10_linux: Fix grouping of tests for GRUB_DEVICE
|
||||
Commit 7290bb562 causes GRUB_DISABLE_LINUX_UUID to be ignored due to
|
||||
mixing of || and && operators. Add some parens to help with that.
|
||||
|
||||
2016-02-28 Andrei Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
NEWS update
|
||||
|
||||
2016-02-28 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Release 2.02~beta3
|
||||
|
7
INSTALL
7
INSTALL
@ -15,15 +15,14 @@ configuring the GRUB.
|
||||
Note: older versions may work but support is limited
|
||||
|
||||
Experimental support for clang 3.3 or later (results in much bigger binaries)
|
||||
for i386, x86_64, arm (except thumb), arm64, mips(el), powerpc, sparc64
|
||||
for i386, x86_64, arm (including thumb), arm64, mips(el), powerpc, sparc64
|
||||
Note: clang 3.2 or later works for i386 and x86_64 targets but results in
|
||||
much bigger binaries.
|
||||
earlier versions not tested
|
||||
Note: clang 3.2 or later works for arm
|
||||
None of tested clang versions generated usable thumb code
|
||||
earlier versions not tested
|
||||
Note: clang 3.3 or later works for arm64
|
||||
earlier versions have no arm64 support
|
||||
Note: clang on arm64 is not supported due to
|
||||
https://llvm.org/bugs/show_bug.cgi?id=26030
|
||||
Note: clang 3.3 or later works for mips(el)
|
||||
earlier versions fail to generate .reginfo and hence gprel relocations
|
||||
fail.
|
||||
|
65
Makefile.am
65
Makefile.am
@ -145,109 +145,116 @@ if COND_real_platform
|
||||
|
||||
if COND_i386_coreboot
|
||||
QEMU32=qemu-system-i386
|
||||
MINIMUM_CPU_LINUX=pentium2
|
||||
endif
|
||||
|
||||
if COND_i386_multiboot
|
||||
QEMU32=qemu-system-i386
|
||||
MINIMUM_CPU_LINUX=pentium2
|
||||
endif
|
||||
|
||||
if COND_i386_ieee1275
|
||||
QEMU32=qemu-system-i386
|
||||
MINIMUM_CPU_LINUX=pentium2
|
||||
endif
|
||||
|
||||
if COND_i386_qemu
|
||||
QEMU32=qemu-system-i386
|
||||
MINIMUM_CPU_LINUX=pentium2
|
||||
endif
|
||||
|
||||
if COND_i386_pc
|
||||
QEMU32=qemu-system-i386
|
||||
MINIMUM_CPU_LINUX=pentium2
|
||||
endif
|
||||
|
||||
if COND_i386_efi
|
||||
QEMU32=qemu-system-i386
|
||||
MINIMUM_CPU_LINUX=pentium2
|
||||
endif
|
||||
|
||||
if COND_x86_64_efi
|
||||
QEMU32=qemu-system-x86_64
|
||||
MINIMUM_CPU_LINUX=core2duo
|
||||
endif
|
||||
|
||||
linux.init.x86_64: $(srcdir)/grub-core/tests/boot/linux.init-x86_64.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -static -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
linux.init.i386: $(srcdir)/grub-core/tests/boot/linux.init-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -static -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
linux.init.mips: $(srcdir)/grub-core/tests/boot/linux.init-mips.S
|
||||
$(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
linux.init.ppc: $(srcdir)/grub-core/tests/boot/linux.init-ppc.S
|
||||
$(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
linux.init.mipsel: $(srcdir)/grub-core/tests/boot/linux.init-mips.S
|
||||
$(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
linux.init.loongson: $(srcdir)/grub-core/tests/boot/linux.init-mips.S
|
||||
$(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -DREBOOT=1
|
||||
$(TARGET_CC) -o $@ $< -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -DREBOOT=1
|
||||
|
||||
multiboot.elf: $(srcdir)/grub-core/tests/boot/kernel-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -DTARGET_MULTIBOOT=1 -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include
|
||||
$(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -static -ffreestanding -nostdlib -nostdinc -DTARGET_MULTIBOOT=1 -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include
|
||||
|
||||
kfreebsd.elf: $(srcdir)/grub-core/tests/boot/kernel-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include
|
||||
$(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -static -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include
|
||||
|
||||
kfreebsd.aout: kfreebsd.elf
|
||||
$(TARGET_OBJCOPY) -O a.out-i386-linux $< $@ -R .note.gnu.build-id -R .note.gnu.gold-version
|
||||
$(TARGET_OBJCOPY) -O a.out-i386-linux $< $@ -j .text
|
||||
|
||||
pc-chainloader.elf: $(srcdir)/grub-core/tests/boot/kernel-8086.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -DTARGET_CHAINLOADER=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x7c00 -m32
|
||||
$(TARGET_CC) -o $@ $< -static -DTARGET_CHAINLOADER=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x7c00 -m32
|
||||
|
||||
pc-chainloader.bin: pc-chainloader.elf
|
||||
$(TARGET_OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@;
|
||||
|
||||
ntldr.elf: $(srcdir)/grub-core/tests/boot/kernel-8086.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -DTARGET_NTLDR=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0 -m32
|
||||
$(TARGET_CC) -o $@ $< -DTARGET_NTLDR=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -static -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0 -m32
|
||||
|
||||
ntldr.bin: ntldr.elf
|
||||
$(TARGET_OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@;
|
||||
$(TARGET_OBJCOPY) -O binary --strip-unneeded -j .text $< $@;
|
||||
|
||||
multiboot2.elf: $(srcdir)/grub-core/tests/boot/kernel-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include -DTARGET_MULTIBOOT2=1
|
||||
$(TARGET_CC) -static -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include -DTARGET_MULTIBOOT2=1
|
||||
|
||||
kfreebsd.init.x86_64: $(srcdir)/grub-core/tests/boot/kfreebsd.init-x86_64.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
||||
$(TARGET_CC) -o $@ $< -m64 -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
||||
|
||||
kfreebsd.init.i386: $(srcdir)/grub-core/tests/boot/kfreebsd.init-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
||||
$(TARGET_CC) -o $@ $< -m32 -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
||||
|
||||
knetbsd.init.i386: $(srcdir)/grub-core/tests/boot/kbsd.init-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DTARGET_NETBSD=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -m32 -static -nostdlib -nostdinc -DTARGET_NETBSD=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
kopenbsd.init.i386: $(srcdir)/grub-core/tests/boot/kbsd.init-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DTARGET_OPENBSD=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -m32 -static -nostdlib -nostdinc -DTARGET_OPENBSD=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
knetbsd.init.x86_64: $(srcdir)/grub-core/tests/boot/kbsd.init-x86_64.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -m64 -DTARGET_NETBSD=1 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -m64 -DTARGET_NETBSD=1 -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
kopenbsd.init.x86_64: $(srcdir)/grub-core/tests/boot/kbsd.init-x86_64.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
$(TARGET_CC) -o $@ $< -m64 -DTARGET_OPENBSD=1 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
$(TARGET_CC) -o $@ $< -m64 -DTARGET_OPENBSD=1 -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
linux-initramfs.mips: linux.init.mips Makefile
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
linux-initramfs.ppc: linux.init.ppc Makefile
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
linux-initramfs.mipsel: linux.init.mipsel Makefile
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
linux-initramfs.loongson: linux.init.loongson Makefile
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
linux-initramfs.i386: linux.init.i386 Makefile
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
linux-initramfs.x86_64: linux.init.x86_64 Makefile
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
kfreebsd-mfsroot.i386.img: kfreebsd.init.i386 Makefile
|
||||
TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && mkdir $$TDIR/dev && mkdir $$TDIR/sbin && cp $< $$TDIR/sbin/init && makefs -t ffs -s 30m -f 1000 -o minfree=0,version=1 $@ $$TDIR && rm -rf $$TDIR
|
||||
@ -306,7 +313,7 @@ bootcheck-knetbsd-x86_64: knetbsd.miniroot-image.x86_64.gz $(GRUB_PAYLOADS_DIR)/
|
||||
./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/miniroot.gz=knetbsd.miniroot-image.x86_64.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.x86_64 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
||||
|
||||
bootcheck-linux-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell
|
||||
./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
||||
./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg --qemu-opts="-cpu $(MINIMUM_CPU_LINUX)" | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
||||
|
||||
bootcheck-linux-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell
|
||||
./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
||||
@ -369,6 +376,12 @@ if COND_i386_coreboot
|
||||
BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-knetbsd-x86_64 bootcheck-kfreebsd-x86_64 bootcheck-kfreebsd-i386
|
||||
endif
|
||||
|
||||
if COND_i386_ieee1275
|
||||
# *BSD requires ACPI
|
||||
#legacy protocol (linux16) makes early BIOS calls.
|
||||
BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64
|
||||
endif
|
||||
|
||||
if COND_i386_pc
|
||||
#pc chainloader by definition is only for i386-pc
|
||||
#ntldr and bootmgr require BIOS.
|
||||
|
68
Makefile.in
68
Makefile.in
@ -678,7 +678,8 @@ grub_macbless_OBJECTS = $(am_grub_macbless_OBJECTS) \
|
||||
grub_macbless_DEPENDENCIES = libgrubmods.a libgrubgcry.a libgrubkern.a \
|
||||
grub-core/gnulib/libgnu.a $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1)
|
||||
grub_macbless_LINK = $(CCLD) $(grub_macbless_CFLAGS) $(CFLAGS) \
|
||||
$(grub_macbless_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am__grub_macho2img_SOURCES_DIST = util/grub-macho2img.c
|
||||
@ -2937,7 +2938,7 @@ grub_mklayout_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_PROGRAM)
|
||||
grub_mklayout_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_PROGRAM)
|
||||
grub_macbless_SOURCES = util/grub-macbless.c grub-core/osdep/init.c grub-core/kern/emu/argp_common.c
|
||||
nodist_grub_macbless_SOURCES =
|
||||
grub_macbless_LDADD = libgrubmods.a libgrubgcry.a libgrubkern.a grub-core/gnulib/libgnu.a $(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)
|
||||
grub_macbless_LDADD = libgrubmods.a libgrubgcry.a libgrubkern.a grub-core/gnulib/libgnu.a $(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)
|
||||
grub_macbless_CFLAGS = $(AM_CFLAGS) $(CFLAGS_PROGRAM)
|
||||
grub_macbless_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_PROGRAM)
|
||||
grub_macbless_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_PROGRAM)
|
||||
@ -3082,11 +3083,22 @@ nodist_platform_HEADERS = config.h
|
||||
@COND_i386_pc_TRUE@@COND_real_platform_TRUE@QEMU32 = qemu-system-i386
|
||||
@COND_i386_qemu_TRUE@@COND_real_platform_TRUE@QEMU32 = qemu-system-i386
|
||||
@COND_real_platform_TRUE@@COND_x86_64_efi_TRUE@QEMU32 = qemu-system-x86_64
|
||||
@COND_i386_coreboot_TRUE@@COND_real_platform_TRUE@MINIMUM_CPU_LINUX = pentium2
|
||||
@COND_i386_efi_TRUE@@COND_real_platform_TRUE@MINIMUM_CPU_LINUX = pentium2
|
||||
@COND_i386_ieee1275_TRUE@@COND_real_platform_TRUE@MINIMUM_CPU_LINUX = pentium2
|
||||
@COND_i386_multiboot_TRUE@@COND_real_platform_TRUE@MINIMUM_CPU_LINUX = pentium2
|
||||
@COND_i386_pc_TRUE@@COND_real_platform_TRUE@MINIMUM_CPU_LINUX = pentium2
|
||||
@COND_i386_qemu_TRUE@@COND_real_platform_TRUE@MINIMUM_CPU_LINUX = pentium2
|
||||
@COND_real_platform_TRUE@@COND_x86_64_efi_TRUE@MINIMUM_CPU_LINUX = core2duo
|
||||
@COND_i386_coreboot_TRUE@@COND_real_platform_TRUE@BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-knetbsd-x86_64 bootcheck-kfreebsd-x86_64 bootcheck-kfreebsd-i386
|
||||
|
||||
# NetBSD has no support for finding ACPI on EFI
|
||||
@COND_i386_efi_TRUE@@COND_real_platform_TRUE@BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-kfreebsd-x86_64 bootcheck-kfreebsd-i386
|
||||
|
||||
# *BSD requires ACPI
|
||||
#legacy protocol (linux16) makes early BIOS calls.
|
||||
@COND_i386_ieee1275_TRUE@@COND_real_platform_TRUE@BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64
|
||||
|
||||
# *BSD requires ACPI
|
||||
@COND_i386_multiboot_TRUE@@COND_real_platform_TRUE@BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64
|
||||
|
||||
@ -12719,82 +12731,82 @@ widthspec.h: $(FONT_SOURCE) build-grub-gen-widthspec$(BUILD_EXEEXT)
|
||||
./build-grub-gen-widthspec$(BUILD_EXEEXT) $(FONT_SOURCE) $@ || (rm -f $@; exit 1)
|
||||
|
||||
@COND_real_platform_TRUE@linux.init.x86_64: $(srcdir)/grub-core/tests/boot/linux.init-x86_64.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -static -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@linux.init.i386: $(srcdir)/grub-core/tests/boot/linux.init-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -static -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@linux.init.mips: $(srcdir)/grub-core/tests/boot/linux.init-mips.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@linux.init.ppc: $(srcdir)/grub-core/tests/boot/linux.init-ppc.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@linux.init.mipsel: $(srcdir)/grub-core/tests/boot/linux.init-mips.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@linux.init.loongson: $(srcdir)/grub-core/tests/boot/linux.init-mips.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -DREBOOT=1
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -DREBOOT=1
|
||||
|
||||
@COND_real_platform_TRUE@multiboot.elf: $(srcdir)/grub-core/tests/boot/kernel-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -DTARGET_MULTIBOOT=1 -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -static -ffreestanding -nostdlib -nostdinc -DTARGET_MULTIBOOT=1 -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include
|
||||
|
||||
@COND_real_platform_TRUE@kfreebsd.elf: $(srcdir)/grub-core/tests/boot/kernel-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -static -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include
|
||||
|
||||
@COND_real_platform_TRUE@kfreebsd.aout: kfreebsd.elf
|
||||
@COND_real_platform_TRUE@ $(TARGET_OBJCOPY) -O a.out-i386-linux $< $@ -R .note.gnu.build-id -R .note.gnu.gold-version
|
||||
@COND_real_platform_TRUE@ $(TARGET_OBJCOPY) -O a.out-i386-linux $< $@ -j .text
|
||||
|
||||
@COND_real_platform_TRUE@pc-chainloader.elf: $(srcdir)/grub-core/tests/boot/kernel-8086.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -DTARGET_CHAINLOADER=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x7c00 -m32
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -static -DTARGET_CHAINLOADER=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x7c00 -m32
|
||||
|
||||
@COND_real_platform_TRUE@pc-chainloader.bin: pc-chainloader.elf
|
||||
@COND_real_platform_TRUE@ $(TARGET_OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@;
|
||||
|
||||
@COND_real_platform_TRUE@ntldr.elf: $(srcdir)/grub-core/tests/boot/kernel-8086.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -DTARGET_NTLDR=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0 -m32
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -DTARGET_NTLDR=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -static -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0 -m32
|
||||
|
||||
@COND_real_platform_TRUE@ntldr.bin: ntldr.elf
|
||||
@COND_real_platform_TRUE@ $(TARGET_OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@;
|
||||
@COND_real_platform_TRUE@ $(TARGET_OBJCOPY) -O binary --strip-unneeded -j .text $< $@;
|
||||
|
||||
@COND_real_platform_TRUE@multiboot2.elf: $(srcdir)/grub-core/tests/boot/kernel-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include -DTARGET_MULTIBOOT2=1
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -static -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include -DTARGET_MULTIBOOT2=1
|
||||
|
||||
@COND_real_platform_TRUE@kfreebsd.init.x86_64: $(srcdir)/grub-core/tests/boot/kfreebsd.init-x86_64.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m64 -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
||||
|
||||
@COND_real_platform_TRUE@kfreebsd.init.i386: $(srcdir)/grub-core/tests/boot/kfreebsd.init-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m32 -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
|
||||
|
||||
@COND_real_platform_TRUE@knetbsd.init.i386: $(srcdir)/grub-core/tests/boot/kbsd.init-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DTARGET_NETBSD=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m32 -static -nostdlib -nostdinc -DTARGET_NETBSD=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@kopenbsd.init.i386: $(srcdir)/grub-core/tests/boot/kbsd.init-i386.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DTARGET_OPENBSD=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m32 -static -nostdlib -nostdinc -DTARGET_OPENBSD=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@knetbsd.init.x86_64: $(srcdir)/grub-core/tests/boot/kbsd.init-x86_64.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m64 -DTARGET_NETBSD=1 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m64 -DTARGET_NETBSD=1 -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@kopenbsd.init.x86_64: $(srcdir)/grub-core/tests/boot/kbsd.init-x86_64.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m64 -DTARGET_OPENBSD=1 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
@COND_real_platform_TRUE@ $(TARGET_CC) -o $@ $< -m64 -DTARGET_OPENBSD=1 -static -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
|
||||
|
||||
@COND_real_platform_TRUE@linux-initramfs.mips: linux.init.mips Makefile
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
@COND_real_platform_TRUE@linux-initramfs.ppc: linux.init.ppc Makefile
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
@COND_real_platform_TRUE@linux-initramfs.mipsel: linux.init.mipsel Makefile
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
@COND_real_platform_TRUE@linux-initramfs.loongson: linux.init.loongson Makefile
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
@COND_real_platform_TRUE@linux-initramfs.i386: linux.init.i386 Makefile
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
@COND_real_platform_TRUE@linux-initramfs.x86_64: linux.init.x86_64 Makefile
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio -R 0:0 --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR
|
||||
|
||||
@COND_real_platform_TRUE@kfreebsd-mfsroot.i386.img: kfreebsd.init.i386 Makefile
|
||||
@COND_real_platform_TRUE@ TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && mkdir $$TDIR/dev && mkdir $$TDIR/sbin && cp $< $$TDIR/sbin/init && makefs -t ffs -s 30m -f 1000 -o minfree=0,version=1 $@ $$TDIR && rm -rf $$TDIR
|
||||
@ -12851,7 +12863,7 @@ widthspec.h: $(FONT_SOURCE) build-grub-gen-widthspec$(BUILD_EXEEXT)
|
||||
@COND_real_platform_TRUE@ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/miniroot.gz=knetbsd.miniroot-image.x86_64.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.x86_64 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
||||
|
||||
@COND_real_platform_TRUE@bootcheck-linux-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell
|
||||
@COND_real_platform_TRUE@ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
||||
@COND_real_platform_TRUE@ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg --qemu-opts="-cpu $(MINIMUM_CPU_LINUX)" | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
||||
|
||||
@COND_real_platform_TRUE@bootcheck-linux-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell
|
||||
@COND_real_platform_TRUE@ ./grub-shell --timeout=$(BOOTCHECK_TIMEOUT) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
|
||||
|
@ -338,7 +338,7 @@ CLEANFILES += grub-macbless.8
|
||||
endif
|
||||
grub_macbless_SOURCES = util/grub-macbless.c grub-core/osdep/init.c grub-core/kern/emu/argp_common.c
|
||||
nodist_grub_macbless_SOURCES =
|
||||
grub_macbless_LDADD = libgrubmods.a libgrubgcry.a libgrubkern.a grub-core/gnulib/libgnu.a $(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)
|
||||
grub_macbless_LDADD = libgrubmods.a libgrubgcry.a libgrubkern.a grub-core/gnulib/libgnu.a $(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)
|
||||
grub_macbless_CFLAGS = $(AM_CFLAGS) $(CFLAGS_PROGRAM)
|
||||
grub_macbless_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_PROGRAM)
|
||||
grub_macbless_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_PROGRAM)
|
||||
|
@ -416,7 +416,7 @@ program = {
|
||||
ldadd = libgrubgcry.a;
|
||||
ldadd = libgrubkern.a;
|
||||
ldadd = grub-core/gnulib/libgnu.a;
|
||||
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
|
||||
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
|
||||
};
|
||||
|
||||
data = {
|
||||
|
14
NEWS
14
NEWS
@ -18,6 +18,7 @@ New in 2.02:
|
||||
* ZFS features support.
|
||||
* ZFS LZ4 support.
|
||||
* XFS V5 format support.
|
||||
* LVM RAID1 support.
|
||||
|
||||
* New/improved terminal and video support:
|
||||
* Monochrome text (matching `hercules' in GRUB Legacy).
|
||||
@ -49,6 +50,9 @@ New in 2.02:
|
||||
* Improve TFTP robustness.
|
||||
* Parse `nd' disk names in GRUB Legacy configuration files.
|
||||
* Issue separate DNS queries for IPv4 and IPv6.
|
||||
* Support IPv6 Router Advertisement to configure default router.
|
||||
* New variable net_<interface>_next_server containing next server
|
||||
from BOOTP reply.
|
||||
|
||||
* Coreboot improvements:
|
||||
* CBFS support both in on-disk images (loopback) and flash.
|
||||
@ -96,6 +100,8 @@ New in 2.02:
|
||||
EFI Stall. If everything fails, use hardcoded frequency 800MHz.
|
||||
* Support Hyper-V Gen2 platforms which lack PIT for TSC calibration.
|
||||
* Map UEFI Persistent Memory to E820 persistent memory.
|
||||
* New Xen loader on ARM64.
|
||||
* Respect alignment requirement for block device IO buffers on EFI.
|
||||
|
||||
* Security:
|
||||
* Add optional facility to enforce that all files read by the core image
|
||||
@ -134,6 +140,11 @@ New in 2.02:
|
||||
menu entry immediately.
|
||||
* New `file' command and grub-file utility to check file types.
|
||||
* New syslinux configuration file parser.
|
||||
* Set menu entry class to primary OS name returned by os-prober to display
|
||||
OS specific icon.
|
||||
* On Linux x86 detect EFI word size in grub-install and automatically select
|
||||
correct platform (x86_64-efi or i386-efi) to install. Requires Linux kernel
|
||||
4.0 or higher.
|
||||
|
||||
* Build system:
|
||||
* Remove all uses of nested functions; GRUB no longer requires an
|
||||
@ -160,6 +171,9 @@ New in 2.02:
|
||||
* emu libusb support removed (was broken and unmaintained).
|
||||
* powerpc64le compile support.
|
||||
* Use fixed timestamp when generating GRUB image for reproducible builds.
|
||||
* Verify at build time that modules contain only supported relocations and their
|
||||
structure matches what boot-time module loader expects.
|
||||
* Do not require fonts on powerpc-ieee1275.
|
||||
|
||||
* Revision control moved to git.
|
||||
|
||||
|
52
acinclude.m4
52
acinclude.m4
@ -390,6 +390,58 @@ else
|
||||
[fi]
|
||||
])
|
||||
|
||||
AC_DEFUN([grub_CHECK_LINK_PIE],[
|
||||
[# Position independent executable.
|
||||
link_nopie_needed=no]
|
||||
AC_MSG_CHECKING([whether linker needs disabling of PIE to work])
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([[]])])
|
||||
|
||||
[if eval "$ac_compile -Wl,-r,-d -nostdlib -Werror -o conftest.o" 2> /dev/null; then]
|
||||
AC_MSG_RESULT([no])
|
||||
[# Should we clear up other files as well, having called `AC_LANG_CONFTEST'?
|
||||
rm -f conftest.o
|
||||
else
|
||||
link_nopie_needed=yes]
|
||||
AC_MSG_RESULT([yes])
|
||||
[fi]
|
||||
])
|
||||
|
||||
|
||||
dnl Check if the Linker supports `-no-pie'.
|
||||
AC_DEFUN([grub_CHECK_NO_PIE],
|
||||
[AC_MSG_CHECKING([whether linker accepts -no-pie])
|
||||
AC_CACHE_VAL(grub_cv_cc_ld_no_pie,
|
||||
[save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -no-pie -nostdlib -Werror"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
|
||||
[grub_cv_cc_ld_no_pie=yes],
|
||||
[grub_cv_cc_ld_no_pie=no])
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
])
|
||||
AC_MSG_RESULT([$grub_cv_cc_ld_no_pie])
|
||||
nopie_possible=no
|
||||
if test "x$grub_cv_cc_ld_no_pie" = xyes ; then
|
||||
nopie_possible=yes
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([grub_CHECK_NO_PIE_ONEWORD],
|
||||
[AC_MSG_CHECKING([whether linker accepts -nopie])
|
||||
AC_CACHE_VAL(grub_cv_cc_ld_no_pie_oneword,
|
||||
[save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -nopie -nostdlib -Werror"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
|
||||
[grub_cv_cc_ld_no_pie_oneword=yes],
|
||||
[grub_cv_cc_ld_no_pie_oneword=no])
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
])
|
||||
AC_MSG_RESULT([$grub_cv_cc_ld_no_pie_oneword])
|
||||
nopie_oneword_possible=no
|
||||
if test "x$grub_cv_cc_ld_no_pie_oneword" = xyes ; then
|
||||
nopie_oneword_possible=yes
|
||||
fi
|
||||
])
|
||||
|
||||
dnl Check if the C compiler supports `-fPIC'.
|
||||
AC_DEFUN([grub_CHECK_PIC],[
|
||||
[# Position independent executable.
|
||||
|
@ -1,12 +1,16 @@
|
||||
/* on x86 old clang doesn't support .code16
|
||||
newer clang supports it but creates 6-byte jumps instead of 3-byte ones
|
||||
which makes us go over boot sector size. */
|
||||
which makes us go over boot sector size.
|
||||
Starting with 3.9 clang emits 3-byte jumps but still creates 8-bytes movl
|
||||
instead of 5-bytes, so code overflows into data. */
|
||||
|
||||
.code16
|
||||
jmp far
|
||||
.org 4
|
||||
jmp nearer
|
||||
.org 6
|
||||
movl nearer, %ebx
|
||||
.org 11
|
||||
.space 100
|
||||
nearer:
|
||||
.space 200
|
||||
|
@ -1035,9 +1035,6 @@
|
||||
/* Define to 1 if you have the <sys/inttypes.h> header file. */
|
||||
#undef HAVE_SYS_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <sys/mkdev.h> header file. */
|
||||
#undef HAVE_SYS_MKDEV_H
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
#undef HAVE_SYS_MMAN_H
|
||||
|
||||
@ -1248,6 +1245,14 @@
|
||||
/* Locale dir */
|
||||
#undef LOCALEDIR
|
||||
|
||||
/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
|
||||
*/
|
||||
#undef MAJOR_IN_MKDEV
|
||||
|
||||
/* Define to 1 if `major', `minor', and `makedev' are declared in
|
||||
<sysmacros.h>. */
|
||||
#undef MAJOR_IN_SYSMACROS
|
||||
|
||||
/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
|
||||
#undef MALLOC_0_IS_NONNULL
|
||||
|
||||
|
235
configure
vendored
235
configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for GRUB 2.02~beta3.
|
||||
# Generated by GNU Autoconf 2.69 for GRUB 2.02.
|
||||
#
|
||||
# Report bugs to <bug-grub@gnu.org>.
|
||||
#
|
||||
@ -580,8 +580,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='GRUB'
|
||||
PACKAGE_TARNAME='grub'
|
||||
PACKAGE_VERSION='2.02~beta3'
|
||||
PACKAGE_STRING='GRUB 2.02~beta3'
|
||||
PACKAGE_VERSION='2.02'
|
||||
PACKAGE_STRING='GRUB 2.02'
|
||||
PACKAGE_BUGREPORT='bug-grub@gnu.org'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -2175,7 +2175,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures GRUB 2.02~beta3 to adapt to many kinds of systems.
|
||||
\`configure' configures GRUB 2.02 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -2247,7 +2247,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of GRUB 2.02~beta3:";;
|
||||
short | recursive ) echo "Configuration of GRUB 2.02:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -2387,7 +2387,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
GRUB configure 2.02~beta3
|
||||
GRUB configure 2.02
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -3134,7 +3134,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by GRUB $as_me 2.02~beta3, which was
|
||||
It was created by GRUB $as_me 2.02, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -4157,7 +4157,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='grub'
|
||||
VERSION='2.02~beta3'
|
||||
VERSION='2.02'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -10949,7 +10949,7 @@ _ACEOF
|
||||
fi
|
||||
done
|
||||
|
||||
for ac_header in sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h
|
||||
for ac_header in sys/param.h sys/mount.h sys/mnttab.h limits.h
|
||||
do :
|
||||
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
|
||||
@ -10963,6 +10963,63 @@ fi
|
||||
done
|
||||
|
||||
|
||||
# glibc 2.25 still includes sys/sysmacros.h in sys/types.h but emits deprecation
|
||||
# warning which causes compilation failure later with -Werror. So use -Werror here
|
||||
# as well to force proper sys/sysmacros.h detection.
|
||||
SAVED_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$HOST_CFLAGS -Werror"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5
|
||||
$as_echo_n "checking whether sys/types.h defines makedev... " >&6; }
|
||||
if ${ac_cv_header_sys_types_h_makedev+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <sys/types.h>
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
return makedev(0, 0);
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_header_sys_types_h_makedev=yes
|
||||
else
|
||||
ac_cv_header_sys_types_h_makedev=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_types_h_makedev" >&5
|
||||
$as_echo "$ac_cv_header_sys_types_h_makedev" >&6; }
|
||||
|
||||
if test $ac_cv_header_sys_types_h_makedev = no; then
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_sys_mkdev_h" = xyes; then :
|
||||
|
||||
$as_echo "#define MAJOR_IN_MKDEV 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test $ac_cv_header_sys_mkdev_h = no; then
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_sys_sysmacros_h" = xyes; then :
|
||||
|
||||
$as_echo "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
CFLAGS="$SAVED_CFLAGS"
|
||||
|
||||
ac_fn_c_check_member "$LINENO" "struct statfs" "f_fstypename" "ac_cv_member_struct_statfs_f_fstypename" "$ac_includes_default
|
||||
#include <sys/param.h>
|
||||
#include <sys/mount.h>
|
||||
@ -25755,14 +25812,21 @@ $as_echo "$grub_cv_cc_no_red_zone" >&6; }
|
||||
fi
|
||||
|
||||
if test "x$target_cpu" = xarm; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether option -mlong-calls works" >&5
|
||||
$as_echo_n "checking whether option -mlong-calls works... " >&6; }
|
||||
if ${grub_cv_cc_mlong_calls+:} false; then :
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for options to disable movt and movw" >&5
|
||||
$as_echo_n "checking for options to disable movt and movw... " >&6; }
|
||||
if ${grub_cv_target_cc_mno_movt+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
|
||||
CFLAGS="$TARGET_CFLAGS -mlong-calls -Werror"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
grub_cv_target_cc_mno_movt=no
|
||||
for cand in "-mno-movt" \
|
||||
"-mllvm -arm-use-movt=0"; do
|
||||
if test x"$grub_cv_target_cc_mno_movt" != xno ; then
|
||||
break
|
||||
fi
|
||||
CFLAGS="$TARGET_CFLAGS $cand -Werror"
|
||||
CPPFLAGS="$TARGET_CPPFLAGS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
@ -25774,17 +25838,18 @@ main (void)
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
grub_cv_cc_mlong_calls=yes
|
||||
else
|
||||
grub_cv_cc_mlong_calls=no
|
||||
grub_cv_target_cc_mno_movt="$cand"
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
done
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $grub_cv_cc_mlong_calls" >&5
|
||||
$as_echo "$grub_cv_cc_mlong_calls" >&6; }
|
||||
if test "x$grub_cv_cc_mlong_calls" = xyes; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -mlong-calls"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $grub_cv_target_cc_mno_movt" >&5
|
||||
$as_echo "$grub_cv_target_cc_mno_movt" >&6; }
|
||||
|
||||
if test x"$grub_cv_target_cc_mno_movt" != xno ; then
|
||||
# A trick so that clang doesn't see it on link stage
|
||||
TARGET_CPPFLAGS="$TARGET_CPPFLAGS $grub_cv_target_cc_mno_movt"
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether option -mthumb-interwork works" >&5
|
||||
$as_echo_n "checking whether option -mthumb-interwork works... " >&6; }
|
||||
@ -25892,13 +25957,116 @@ else
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker accepts -no-pie" >&5
|
||||
$as_echo_n "checking whether linker accepts -no-pie... " >&6; }
|
||||
if ${grub_cv_cc_ld_no_pie+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -no-pie -nostdlib -Werror"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
grub_cv_cc_ld_no_pie=yes
|
||||
else
|
||||
grub_cv_cc_ld_no_pie=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $grub_cv_cc_ld_no_pie" >&5
|
||||
$as_echo "$grub_cv_cc_ld_no_pie" >&6; }
|
||||
nopie_possible=no
|
||||
if test "x$grub_cv_cc_ld_no_pie" = xyes ; then
|
||||
nopie_possible=yes
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker accepts -nopie" >&5
|
||||
$as_echo_n "checking whether linker accepts -nopie... " >&6; }
|
||||
if ${grub_cv_cc_ld_no_pie_oneword+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -nopie -nostdlib -Werror"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
grub_cv_cc_ld_no_pie_oneword=yes
|
||||
else
|
||||
grub_cv_cc_ld_no_pie_oneword=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $grub_cv_cc_ld_no_pie_oneword" >&5
|
||||
$as_echo "$grub_cv_cc_ld_no_pie_oneword" >&6; }
|
||||
nopie_oneword_possible=no
|
||||
if test "x$grub_cv_cc_ld_no_pie_oneword" = xyes ; then
|
||||
nopie_oneword_possible=yes
|
||||
fi
|
||||
|
||||
|
||||
# Position independent executable.
|
||||
link_nopie_needed=no
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker needs disabling of PIE to work" >&5
|
||||
$as_echo_n "checking whether linker needs disabling of PIE to work... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
_ACEOF
|
||||
|
||||
if eval "$ac_compile -Wl,-r,-d -nostdlib -Werror -o conftest.o" 2> /dev/null; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
# Should we clear up other files as well, having called `AC_LANG_CONFTEST'?
|
||||
rm -f conftest.o
|
||||
else
|
||||
link_nopie_needed=yes
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
fi
|
||||
|
||||
# Need that, because some distributions ship compilers that include
|
||||
# `-fPIE' in the default specs.
|
||||
# `-fPIE' or '-fpie' and '-pie' in the default specs.
|
||||
if [ x"$pie_possible" = xyes ]; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE -fno-pie"
|
||||
fi
|
||||
|
||||
if [ x"$link_nopie_needed" = xyes ] || [ x"$pie_possible" = xyes ]; then
|
||||
if [ x"$nopie_possible" = xyes ]; then
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -no-pie"
|
||||
fi
|
||||
if [ x"$nopie_oneword_possible" = xyes ]; then
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -nopie"
|
||||
fi
|
||||
fi
|
||||
|
||||
CFLAGS="$TARGET_CFLAGS"
|
||||
LDFLAGS="$TARGET_LDFLAGS"
|
||||
|
||||
# Position independent executable.
|
||||
|
||||
@ -25938,9 +26106,12 @@ fi
|
||||
# and reload $gp in every function.
|
||||
# GCC implements it using symbol __gnu_local_gp in non-PIC as well.
|
||||
# However with clang we need PIC for this reloading to happen.
|
||||
# With arm64 we need relocations that are in some way representable in
|
||||
# PE as we need to support arm64-efi. Without -fPIC clang generates
|
||||
# movk's which aren't representable.
|
||||
# Since default varies across dictributions use either -fPIC or -fno-PIC
|
||||
# explicitly.
|
||||
if ( test x$target_cpu = xmips || test x$target_cpu = xmipsel ) && test "x$grub_cv_cc_target_clang" = xyes ; then
|
||||
if ( test x$target_cpu = xmips || test x$target_cpu = xmipsel || test x$target_cpu = xarm64 ) && test "x$grub_cv_cc_target_clang" = xyes ; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fPIC"
|
||||
elif [ x"$pic_possible" = xyes ]; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIC"
|
||||
@ -27462,11 +27633,11 @@ if test x"$grub_build_mkfont_excuse" = x ; then
|
||||
else
|
||||
enable_build_grub_mkfont=no
|
||||
fi
|
||||
if test x"$enable_build_grub_mkfont" = xno && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$target_cpu"-"$platform" = xpowerpc-ieee1275 || test "x$platform" = xcoreboot ); then
|
||||
if test x"$enable_build_grub_mkfont" = xno && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$platform" = xcoreboot ); then
|
||||
if test x"$grub_build_mkfont_excuse" = x ; then
|
||||
as_fn_error $? "qemu, powerpc-ieee1275, coreboot and loongson ports needs build-time grub-mkfont" "$LINENO" 5
|
||||
as_fn_error $? "qemu, coreboot and loongson ports need build-time grub-mkfont" "$LINENO" 5
|
||||
else
|
||||
as_fn_error $? "qemu, powerpc-ieee1275, coreboot and loongson ports needs build-time grub-mkfont ($grub_build_mkfont_excuse)" "$LINENO" 5
|
||||
as_fn_error $? "qemu, coreboot and loongson ports need build-time grub-mkfont ($grub_build_mkfont_excuse)" "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -27538,11 +27709,11 @@ if test x"$enable_build_grub_mkfont" = xno ; then
|
||||
FONT_SOURCE=
|
||||
fi
|
||||
|
||||
if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$target_cpu"-"$platform" = xpowerpc-ieee1275 || test "x$platform" = xcoreboot ); then
|
||||
if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$platform" = xcoreboot ); then
|
||||
if test x"$grub_build_mkfont_excuse" = x ; then
|
||||
as_fn_error $? "qemu, powerpc-ieee1275, coreboot and loongson ports need unifont" "$LINENO" 5
|
||||
as_fn_error $? "qemu, coreboot and loongson ports need unifont" "$LINENO" 5
|
||||
else
|
||||
as_fn_error $? "qemu, powerpc-ieee1275, coreboot and loongson ports need unifont ($grub_build_mkfont_excuse)" "$LINENO" 5
|
||||
as_fn_error $? "qemu, coreboot and loongson ports need unifont ($grub_build_mkfont_excuse)" "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -29416,7 +29587,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by GRUB $as_me 2.02~beta3, which was
|
||||
This file was extended by GRUB $as_me 2.02, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -29486,7 +29657,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
GRUB config.status 2.02~beta3
|
||||
GRUB config.status 2.02
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
69
configure.ac
69
configure.ac
@ -31,7 +31,7 @@ dnl (such as BUILD_CC, BUILD_CFLAGS, etc.) for the build type and variables
|
||||
dnl with the prefix "TARGET_" (such as TARGET_CC, TARGET_CFLAGS, etc.) are
|
||||
dnl used for the target type. See INSTALL for full list of variables.
|
||||
|
||||
AC_INIT([GRUB],[2.02~beta3],[bug-grub@gnu.org])
|
||||
AC_INIT([GRUB],[2.02],[bug-grub@gnu.org])
|
||||
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
|
||||
@ -388,7 +388,15 @@ fi
|
||||
|
||||
# Check for functions and headers.
|
||||
AC_CHECK_FUNCS(posix_memalign memalign getextmntent)
|
||||
AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
|
||||
AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h limits.h)
|
||||
|
||||
# glibc 2.25 still includes sys/sysmacros.h in sys/types.h but emits deprecation
|
||||
# warning which causes compilation failure later with -Werror. So use -Werror here
|
||||
# as well to force proper sys/sysmacros.h detection.
|
||||
SAVED_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$HOST_CFLAGS -Werror"
|
||||
AC_HEADER_MAJOR
|
||||
CFLAGS="$SAVED_CFLAGS"
|
||||
|
||||
AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
|
||||
#include <sys/param.h>
|
||||
@ -1144,14 +1152,23 @@ if test "$target_cpu"-"$platform" = x86_64-efi; then
|
||||
fi
|
||||
|
||||
if test "x$target_cpu" = xarm; then
|
||||
AC_CACHE_CHECK([whether option -mlong-calls works], grub_cv_cc_mlong_calls, [
|
||||
CFLAGS="$TARGET_CFLAGS -mlong-calls -Werror"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
|
||||
[grub_cv_cc_mlong_calls=yes],
|
||||
[grub_cv_cc_mlong_calls=no])
|
||||
AC_CACHE_CHECK([for options to disable movt and movw], grub_cv_target_cc_mno_movt, [
|
||||
grub_cv_target_cc_mno_movt=no
|
||||
for cand in "-mno-movt" \
|
||||
"-mllvm -arm-use-movt=0"; do
|
||||
if test x"$grub_cv_target_cc_mno_movt" != xno ; then
|
||||
break
|
||||
fi
|
||||
CFLAGS="$TARGET_CFLAGS $cand -Werror"
|
||||
CPPFLAGS="$TARGET_CPPFLAGS"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
|
||||
[grub_cv_target_cc_mno_movt="$cand"], [])
|
||||
done
|
||||
])
|
||||
if test "x$grub_cv_cc_mlong_calls" = xyes; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -mlong-calls"
|
||||
|
||||
if test x"$grub_cv_target_cc_mno_movt" != xno ; then
|
||||
# A trick so that clang doesn't see it on link stage
|
||||
TARGET_CPPFLAGS="$TARGET_CPPFLAGS $grub_cv_target_cc_mno_movt"
|
||||
fi
|
||||
AC_CACHE_CHECK([whether option -mthumb-interwork works], grub_cv_cc_mthumb_interwork, [
|
||||
CFLAGS="$TARGET_CFLAGS -mthumb-interwork -Werror"
|
||||
@ -1184,13 +1201,26 @@ CFLAGS="$TARGET_CFLAGS"
|
||||
|
||||
# Position independent executable.
|
||||
grub_CHECK_PIE
|
||||
grub_CHECK_NO_PIE
|
||||
grub_CHECK_NO_PIE_ONEWORD
|
||||
grub_CHECK_LINK_PIE
|
||||
[# Need that, because some distributions ship compilers that include
|
||||
# `-fPIE' in the default specs.
|
||||
# `-fPIE' or '-fpie' and '-pie' in the default specs.
|
||||
if [ x"$pie_possible" = xyes ]; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE -fno-pie"
|
||||
fi
|
||||
|
||||
if [ x"$link_nopie_needed" = xyes ] || [ x"$pie_possible" = xyes ]; then
|
||||
if [ x"$nopie_possible" = xyes ]; then
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -no-pie"
|
||||
fi
|
||||
if [ x"$nopie_oneword_possible" = xyes ]; then
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -nopie"
|
||||
fi
|
||||
fi]
|
||||
|
||||
CFLAGS="$TARGET_CFLAGS"
|
||||
LDFLAGS="$TARGET_LDFLAGS"
|
||||
|
||||
# Position independent executable.
|
||||
grub_CHECK_PIC
|
||||
@ -1199,9 +1229,12 @@ grub_CHECK_PIC
|
||||
# and reload $gp in every function.
|
||||
# GCC implements it using symbol __gnu_local_gp in non-PIC as well.
|
||||
# However with clang we need PIC for this reloading to happen.
|
||||
# With arm64 we need relocations that are in some way representable in
|
||||
# PE as we need to support arm64-efi. Without -fPIC clang generates
|
||||
# movk's which aren't representable.
|
||||
# Since default varies across dictributions use either -fPIC or -fno-PIC
|
||||
# explicitly.
|
||||
if ( test x$target_cpu = xmips || test x$target_cpu = xmipsel ) && test "x$grub_cv_cc_target_clang" = xyes ; then
|
||||
if ( test x$target_cpu = xmips || test x$target_cpu = xmipsel || test x$target_cpu = xarm64 ) && test "x$grub_cv_cc_target_clang" = xyes ; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fPIC"
|
||||
elif [ x"$pic_possible" = xyes ]; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIC"
|
||||
@ -1554,11 +1587,11 @@ if test x"$grub_build_mkfont_excuse" = x ; then
|
||||
else
|
||||
enable_build_grub_mkfont=no
|
||||
fi
|
||||
if test x"$enable_build_grub_mkfont" = xno && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$target_cpu"-"$platform" = xpowerpc-ieee1275 || test "x$platform" = xcoreboot ); then
|
||||
if test x"$enable_build_grub_mkfont" = xno && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$platform" = xcoreboot ); then
|
||||
if test x"$grub_build_mkfont_excuse" = x ; then
|
||||
AC_MSG_ERROR([qemu, powerpc-ieee1275, coreboot and loongson ports needs build-time grub-mkfont])
|
||||
AC_MSG_ERROR([qemu, coreboot and loongson ports need build-time grub-mkfont])
|
||||
else
|
||||
AC_MSG_ERROR([qemu, powerpc-ieee1275, coreboot and loongson ports needs build-time grub-mkfont ($grub_build_mkfont_excuse)])
|
||||
AC_MSG_ERROR([qemu, coreboot and loongson ports need build-time grub-mkfont ($grub_build_mkfont_excuse)])
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -1628,11 +1661,11 @@ if test x"$enable_build_grub_mkfont" = xno ; then
|
||||
FONT_SOURCE=
|
||||
fi
|
||||
|
||||
if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$target_cpu"-"$platform" = xpowerpc-ieee1275 || test "x$platform" = xcoreboot ); then
|
||||
if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$platform" = xcoreboot ); then
|
||||
if test x"$grub_build_mkfont_excuse" = x ; then
|
||||
AC_MSG_ERROR([qemu, powerpc-ieee1275, coreboot and loongson ports need unifont])
|
||||
AC_MSG_ERROR([qemu, coreboot and loongson ports need unifont])
|
||||
else
|
||||
AC_MSG_ERROR([qemu, powerpc-ieee1275, coreboot and loongson ports need unifont ($grub_build_mkfont_excuse)])
|
||||
AC_MSG_ERROR([qemu, coreboot and loongson ports need unifont ($grub_build_mkfont_excuse)])
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
This is grub-dev.info, produced by makeinfo version 6.1 from
|
||||
This is grub-dev.info, produced by makeinfo version 6.3 from
|
||||
grub-dev.texi.
|
||||
|
||||
This developer manual is for GNU GRUB (version 2.02~beta3, 2 September
|
||||
2015).
|
||||
This developer manual is for GNU GRUB (version 2.02, 2 September 2015).
|
||||
|
||||
Copyright (C) 1999,2000,2001,2002,2004,2005,2006,2008,2009,2010,2011
|
||||
Free Software Foundation, Inc.
|
||||
@ -26,10 +25,10 @@ This is the developer documentation of GNU GRUB, the GRand Unified
|
||||
Bootloader, a flexible and powerful boot loader program for a wide range
|
||||
of architectures.
|
||||
|
||||
This edition documents version 2.02~beta3.
|
||||
This edition documents version 2.02.
|
||||
|
||||
This developer manual is for GNU GRUB (version 2.02~beta3, 2
|
||||
September 2015).
|
||||
This developer manual is for GNU GRUB (version 2.02, 2 September
|
||||
2015).
|
||||
|
||||
Copyright (C) 1999,2000,2001,2002,2004,2005,2006,2008,2009,2010,2011
|
||||
Free Software Foundation, Inc.
|
||||
@ -2477,40 +2476,40 @@ Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top647
|
||||
Node: Getting the source code1752
|
||||
Node: Coding style2713
|
||||
Node: Naming Conventions3122
|
||||
Node: Functions3407
|
||||
Node: Variables4281
|
||||
Node: Types5396
|
||||
Node: Macros5997
|
||||
Node: Comments6329
|
||||
Node: Multi-Line Comments7091
|
||||
Node: Finding your way around7722
|
||||
Node: Contributing Changes11038
|
||||
Node: Getting started12128
|
||||
Node: Typical Developer Experience16180
|
||||
Node: When you are approved for write access to project's files17222
|
||||
Node: Porting18655
|
||||
Node: Error Handling30418
|
||||
Node: Stack and heap size35510
|
||||
Node: BIOS port memory map38143
|
||||
Node: Video Subsystem38992
|
||||
Node: Video API39464
|
||||
Node: Example usage of Video API59859
|
||||
Node: Bitmap API61433
|
||||
Node: PFF2 Font File Format63950
|
||||
Node: Introduction64190
|
||||
Node: File Structure65693
|
||||
Node: Font Metrics70611
|
||||
Node: Graphical Menu Software Design71759
|
||||
Node: Introduction_272051
|
||||
Node: Startup Sequence72785
|
||||
Node: GUI Components73636
|
||||
Node: Command Line Window76236
|
||||
Node: Copying This Manual77188
|
||||
Node: GNU Free Documentation License77444
|
||||
Node: Index99837
|
||||
Node: Top641
|
||||
Node: Getting the source code1734
|
||||
Node: Coding style2695
|
||||
Node: Naming Conventions3104
|
||||
Node: Functions3389
|
||||
Node: Variables4263
|
||||
Node: Types5378
|
||||
Node: Macros5979
|
||||
Node: Comments6311
|
||||
Node: Multi-Line Comments7073
|
||||
Node: Finding your way around7704
|
||||
Node: Contributing Changes11020
|
||||
Node: Getting started12110
|
||||
Node: Typical Developer Experience16162
|
||||
Node: When you are approved for write access to project's files17204
|
||||
Node: Porting18637
|
||||
Node: Error Handling30400
|
||||
Node: Stack and heap size35492
|
||||
Node: BIOS port memory map38125
|
||||
Node: Video Subsystem38974
|
||||
Node: Video API39446
|
||||
Node: Example usage of Video API59841
|
||||
Node: Bitmap API61415
|
||||
Node: PFF2 Font File Format63932
|
||||
Node: Introduction64172
|
||||
Node: File Structure65675
|
||||
Node: Font Metrics70593
|
||||
Node: Graphical Menu Software Design71741
|
||||
Node: Introduction_272033
|
||||
Node: Startup Sequence72767
|
||||
Node: GUI Components73618
|
||||
Node: Command Line Window76218
|
||||
Node: Copying This Manual77170
|
||||
Node: GNU Free Documentation License77426
|
||||
Node: Index99819
|
||||
|
||||
End Tag Table
|
||||
|
571
docs/grub.info
571
docs/grub.info
@ -1,6 +1,6 @@
|
||||
This is grub.info, produced by makeinfo version 6.1 from grub.texi.
|
||||
This is grub.info, produced by makeinfo version 6.3 from grub.texi.
|
||||
|
||||
This manual is for GNU GRUB (version 2.02~beta3, 12 February 2016).
|
||||
This manual is for GNU GRUB (version 2.02, 24 April 2017).
|
||||
|
||||
Copyright (C)
|
||||
1999,2000,2001,2002,2004,2006,2008,2009,2010,2011,2012,2013 Free
|
||||
@ -33,9 +33,9 @@ This is the documentation of GNU GRUB, the GRand Unified Bootloader, a
|
||||
flexible and powerful boot loader program for a wide range of
|
||||
architectures.
|
||||
|
||||
This edition documents version 2.02~beta3.
|
||||
This edition documents version 2.02.
|
||||
|
||||
This manual is for GNU GRUB (version 2.02~beta3, 12 February 2016).
|
||||
This manual is for GNU GRUB (version 2.02, 24 April 2017).
|
||||
|
||||
Copyright (C)
|
||||
1999,2000,2001,2002,2004,2006,2008,2009,2010,2011,2012,2013 Free
|
||||
@ -2384,6 +2384,10 @@ description <INTERFACE> is placeholder for the name of network interface
|
||||
The name of the DHCP server responsible for these boot parameters.
|
||||
Read-only.
|
||||
|
||||
'net_<INTERFACE>_next_server'
|
||||
The IP address of the next (usually, TFTP) server provided by DHCP.
|
||||
Read-only.
|
||||
|
||||
'net_default_interface'
|
||||
Initially set to name of network interface that was used to load
|
||||
grub. Read-write, although setting it affects only interpretation
|
||||
@ -3006,6 +3010,7 @@ These variables have special meaning to GRUB.
|
||||
* net_<INTERFACE>_hostname::
|
||||
* net_<INTERFACE>_ip::
|
||||
* net_<INTERFACE>_mac::
|
||||
* net_<INTERFACE>_next_server::
|
||||
* net_<INTERFACE>_rootpath::
|
||||
* net_default_interface::
|
||||
* net_default_ip::
|
||||
@ -3176,7 +3181,8 @@ File: grub.info, Node: default, Next: fallback, Prev: debug, Up: Special env
|
||||
|
||||
If this variable is set, it identifies a menu entry that should be
|
||||
selected by default, possibly after a timeout (*note timeout::). The
|
||||
entry may be identified by number or by id.
|
||||
entry may be identified by number (starting from 0 at each level of the
|
||||
hierarchy), by title, or by id.
|
||||
|
||||
For example, if you have:
|
||||
|
||||
@ -3189,21 +3195,23 @@ menuentry 'Example GNU/Linux distribution' --class gnu-linux --id example-gnu-li
|
||||
default=example-gnu-linux
|
||||
|
||||
If the entry is in a submenu, then it must be identified using the
|
||||
titles of each of the submenus starting from the top level followed by
|
||||
the number or title of the menu entry itself, separated by '>'. For
|
||||
example, take the following menu structure:
|
||||
number, title, or id of each of the submenus starting from the top
|
||||
level, followed by the number, title, or id of the menu entry itself,
|
||||
with each element separated by '>'. For example, take the following
|
||||
menu structure:
|
||||
|
||||
Submenu 1
|
||||
Menu Entry 1
|
||||
Menu Entry 2
|
||||
Submenu 2
|
||||
Submenu 3
|
||||
Menu Entry 3
|
||||
Menu Entry 4
|
||||
Menu Entry 5
|
||||
GNU/Hurd --id gnu-hurd
|
||||
Standard Boot --id=gnu-hurd-std
|
||||
Rescue shell --id=gnu-hurd-rescue
|
||||
Other platforms --id=other
|
||||
Minix --id=minix
|
||||
Version 3.4.0 --id=minix-3.4.0
|
||||
Version 3.3.0 --id=minix-3.3.0
|
||||
GRUB Invaders --id=grub-invaders
|
||||
|
||||
"Menu Entry 3" would then be identified as 'Submenu 2>Submenu 3>Menu
|
||||
Entry 3'.
|
||||
The more recent release of Minix would then be identified as 'Other
|
||||
platforms>Minix>Version 3.4.0', or as '1>0>0', or as
|
||||
'other>minix>minix-3.4.0'.
|
||||
|
||||
This variable is often set by 'GRUB_DEFAULT' (*note Simple
|
||||
configuration::), 'grub-set-default', or 'grub-reboot'.
|
||||
@ -3404,7 +3412,7 @@ File: grub.info, Node: net_<INTERFACE>_ip, Next: net_<INTERFACE>_mac, Prev: n
|
||||
*Note Network::.
|
||||
|
||||
|
||||
File: grub.info, Node: net_<INTERFACE>_mac, Next: net_<INTERFACE>_rootpath, Prev: net_<INTERFACE>_ip, Up: Special environment variables
|
||||
File: grub.info, Node: net_<INTERFACE>_mac, Next: net_<INTERFACE>_next_server, Prev: net_<INTERFACE>_ip, Up: Special environment variables
|
||||
|
||||
15.1.28 net_<INTERFACE>_mac
|
||||
---------------------------
|
||||
@ -3412,9 +3420,17 @@ File: grub.info, Node: net_<INTERFACE>_mac, Next: net_<INTERFACE>_rootpath, P
|
||||
*Note Network::.
|
||||
|
||||
|
||||
File: grub.info, Node: net_<INTERFACE>_rootpath, Next: net_default_interface, Prev: net_<INTERFACE>_mac, Up: Special environment variables
|
||||
File: grub.info, Node: net_<INTERFACE>_next_server, Next: net_<INTERFACE>_rootpath, Prev: net_<INTERFACE>_mac, Up: Special environment variables
|
||||
|
||||
15.1.29 net_<INTERFACE>_rootpath
|
||||
15.1.29 net_<INTERFACE>_next_server
|
||||
-----------------------------------
|
||||
|
||||
*Note Network::.
|
||||
|
||||
|
||||
File: grub.info, Node: net_<INTERFACE>_rootpath, Next: net_default_interface, Prev: net_<INTERFACE>_next_server, Up: Special environment variables
|
||||
|
||||
15.1.30 net_<INTERFACE>_rootpath
|
||||
--------------------------------
|
||||
|
||||
*Note Network::.
|
||||
@ -3422,7 +3438,7 @@ File: grub.info, Node: net_<INTERFACE>_rootpath, Next: net_default_interface,
|
||||
|
||||
File: grub.info, Node: net_default_interface, Next: net_default_ip, Prev: net_<INTERFACE>_rootpath, Up: Special environment variables
|
||||
|
||||
15.1.30 net_default_interface
|
||||
15.1.31 net_default_interface
|
||||
-----------------------------
|
||||
|
||||
*Note Network::.
|
||||
@ -3430,7 +3446,7 @@ File: grub.info, Node: net_default_interface, Next: net_default_ip, Prev: net
|
||||
|
||||
File: grub.info, Node: net_default_ip, Next: net_default_mac, Prev: net_default_interface, Up: Special environment variables
|
||||
|
||||
15.1.31 net_default_ip
|
||||
15.1.32 net_default_ip
|
||||
----------------------
|
||||
|
||||
*Note Network::.
|
||||
@ -3438,7 +3454,7 @@ File: grub.info, Node: net_default_ip, Next: net_default_mac, Prev: net_defau
|
||||
|
||||
File: grub.info, Node: net_default_mac, Next: net_default_server, Prev: net_default_ip, Up: Special environment variables
|
||||
|
||||
15.1.32 net_default_mac
|
||||
15.1.33 net_default_mac
|
||||
-----------------------
|
||||
|
||||
*Note Network::.
|
||||
@ -3446,7 +3462,7 @@ File: grub.info, Node: net_default_mac, Next: net_default_server, Prev: net_d
|
||||
|
||||
File: grub.info, Node: net_default_server, Next: pager, Prev: net_default_mac, Up: Special environment variables
|
||||
|
||||
15.1.33 net_default_server
|
||||
15.1.34 net_default_server
|
||||
--------------------------
|
||||
|
||||
*Note Network::.
|
||||
@ -3454,7 +3470,7 @@ File: grub.info, Node: net_default_server, Next: pager, Prev: net_default_mac
|
||||
|
||||
File: grub.info, Node: pager, Next: prefix, Prev: net_default_server, Up: Special environment variables
|
||||
|
||||
15.1.34 pager
|
||||
15.1.35 pager
|
||||
-------------
|
||||
|
||||
If set to '1', pause output after each screenful and wait for keyboard
|
||||
@ -3463,7 +3479,7 @@ input. The default is not to pause output.
|
||||
|
||||
File: grub.info, Node: prefix, Next: pxe_blksize, Prev: pager, Up: Special environment variables
|
||||
|
||||
15.1.35 prefix
|
||||
15.1.36 prefix
|
||||
--------------
|
||||
|
||||
The location of the '/boot/grub' directory as an absolute file name
|
||||
@ -3475,7 +3491,7 @@ order for many parts of GRUB to work.
|
||||
|
||||
File: grub.info, Node: pxe_blksize, Next: pxe_default_gateway, Prev: prefix, Up: Special environment variables
|
||||
|
||||
15.1.36 pxe_blksize
|
||||
15.1.37 pxe_blksize
|
||||
-------------------
|
||||
|
||||
*Note Network::.
|
||||
@ -3483,7 +3499,7 @@ File: grub.info, Node: pxe_blksize, Next: pxe_default_gateway, Prev: prefix,
|
||||
|
||||
File: grub.info, Node: pxe_default_gateway, Next: pxe_default_server, Prev: pxe_blksize, Up: Special environment variables
|
||||
|
||||
15.1.37 pxe_default_gateway
|
||||
15.1.38 pxe_default_gateway
|
||||
---------------------------
|
||||
|
||||
*Note Network::.
|
||||
@ -3491,7 +3507,7 @@ File: grub.info, Node: pxe_default_gateway, Next: pxe_default_server, Prev: p
|
||||
|
||||
File: grub.info, Node: pxe_default_server, Next: root, Prev: pxe_default_gateway, Up: Special environment variables
|
||||
|
||||
15.1.38 pxe_default_server
|
||||
15.1.39 pxe_default_server
|
||||
--------------------------
|
||||
|
||||
*Note Network::.
|
||||
@ -3499,7 +3515,7 @@ File: grub.info, Node: pxe_default_server, Next: root, Prev: pxe_default_gate
|
||||
|
||||
File: grub.info, Node: root, Next: superusers, Prev: pxe_default_server, Up: Special environment variables
|
||||
|
||||
15.1.39 root
|
||||
15.1.40 root
|
||||
------------
|
||||
|
||||
The root device name (*note Device syntax::). Any file names that do
|
||||
@ -3514,7 +3530,7 @@ and 'root' to 'hd0,msdos1'.
|
||||
|
||||
File: grub.info, Node: superusers, Next: theme, Prev: root, Up: Special environment variables
|
||||
|
||||
15.1.40 superusers
|
||||
15.1.41 superusers
|
||||
------------------
|
||||
|
||||
This variable may be set to a list of superuser names to enable
|
||||
@ -3523,7 +3539,7 @@ authentication support. *Note Security::.
|
||||
|
||||
File: grub.info, Node: theme, Next: timeout, Prev: superusers, Up: Special environment variables
|
||||
|
||||
15.1.41 theme
|
||||
15.1.42 theme
|
||||
-------------
|
||||
|
||||
This variable may be set to a directory containing a GRUB graphical menu
|
||||
@ -3535,7 +3551,7 @@ configuration::).
|
||||
|
||||
File: grub.info, Node: timeout, Next: timeout_style, Prev: theme, Up: Special environment variables
|
||||
|
||||
15.1.42 timeout
|
||||
15.1.43 timeout
|
||||
---------------
|
||||
|
||||
If this variable is set, it specifies the time in seconds to wait for
|
||||
@ -3552,7 +3568,7 @@ configuration::).
|
||||
|
||||
File: grub.info, Node: timeout_style, Prev: timeout, Up: Special environment variables
|
||||
|
||||
15.1.43 timeout_style
|
||||
15.1.44 timeout_style
|
||||
---------------------
|
||||
|
||||
This variable may be set to 'menu', 'countdown', or 'hidden' to control
|
||||
@ -6557,20 +6573,20 @@ Appendix A How to obtain and build GRUB
|
||||
|
||||
GRUB is available from the GNU alpha archive site
|
||||
<ftp://ftp.gnu.org/gnu/grub> or any of its mirrors. The file will be
|
||||
named grub-version.tar.gz. The current version is 2.02~beta3, so the
|
||||
file you should grab is:
|
||||
named grub-version.tar.gz. The current version is 2.02, so the file you
|
||||
should grab is:
|
||||
|
||||
<ftp://ftp.gnu.org/gnu/grub/grub-2.02~beta3.tar.gz>
|
||||
<ftp://ftp.gnu.org/gnu/grub/grub-2.02.tar.gz>
|
||||
|
||||
To unbundle GRUB use the instruction:
|
||||
|
||||
zcat grub-2.02~beta3.tar.gz | tar xvf -
|
||||
zcat grub-2.02.tar.gz | tar xvf -
|
||||
|
||||
which will create a directory called 'grub-2.02~beta3' with all the
|
||||
which will create a directory called 'grub-2.02' with all the
|
||||
sources. You can look at the file 'INSTALL' for detailed instructions
|
||||
on how to build and install GRUB, but you should be able to just do:
|
||||
|
||||
cd grub-2.02~beta3
|
||||
cd grub-2.02
|
||||
./configure
|
||||
make install
|
||||
|
||||
@ -7206,241 +7222,242 @@ Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top1163
|
||||
Node: Introduction4228
|
||||
Node: Overview4672
|
||||
Node: Overview-Footnotes6662
|
||||
Ref: Overview-Footnote-16723
|
||||
Node: History6885
|
||||
Node: Changes from GRUB Legacy8975
|
||||
Node: Features11451
|
||||
Node: Features-Footnotes17870
|
||||
Ref: Features-Footnote-117931
|
||||
Ref: Features-Footnote-218027
|
||||
Ref: Features-Footnote-318174
|
||||
Node: Role of a boot loader18319
|
||||
Node: Role of a boot loader-Footnotes19658
|
||||
Ref: Role of a boot loader-Footnote-119745
|
||||
Node: Naming convention19824
|
||||
Node: OS-specific notes about grub tools22735
|
||||
Node: Installation23771
|
||||
Node: Installing GRUB using grub-install24893
|
||||
Node: Making a GRUB bootable CD-ROM27580
|
||||
Node: Making a GRUB bootable CD-ROM-Footnotes29439
|
||||
Ref: Making a GRUB bootable CD-ROM-Footnote-129542
|
||||
Node: Device map29617
|
||||
Node: BIOS installation31584
|
||||
Node: Booting34960
|
||||
Node: General boot methods35416
|
||||
Node: Loading an operating system directly36159
|
||||
Node: Chain-loading36890
|
||||
Node: Loopback booting37861
|
||||
Node: OS-specific notes39535
|
||||
Node: GNU/Hurd39824
|
||||
Node: GNU/Linux40947
|
||||
Node: NetBSD42573
|
||||
Node: DOS/Windows44047
|
||||
Node: Configuration45825
|
||||
Node: Simple configuration46434
|
||||
Node: Shell-like scripting60290
|
||||
Node: Shell-like scripting-Footnotes68344
|
||||
Ref: Shell-like scripting-Footnote-168429
|
||||
Node: Multi-boot manual config68556
|
||||
Node: Embedded configuration72185
|
||||
Node: Theme file format75021
|
||||
Ref: Pixmap-styled progress bar76480
|
||||
Ref: Plain progress bar, drawn with solid color.76492
|
||||
Ref: An example of the slices (in red) used for a terminal window. This drawing was created and sliced in Inkscape_, as the next section explains.79984
|
||||
Node: Network100396
|
||||
Node: Serial terminal103003
|
||||
Node: Vendor power-on keys105240
|
||||
Node: Images107175
|
||||
Node: Core image size limitation112150
|
||||
Node: Filesystem114714
|
||||
Node: Device syntax115423
|
||||
Node: File name syntax118124
|
||||
Node: Block list syntax119170
|
||||
Node: Interface119904
|
||||
Node: Command-line interface120728
|
||||
Node: Command-line interface-Footnotes122672
|
||||
Ref: Command-line interface-Footnote-1122761
|
||||
Node: Menu interface122856
|
||||
Node: Menu entry editor123868
|
||||
Node: Environment124606
|
||||
Node: Special environment variables125309
|
||||
Node: biosnum126331
|
||||
Node: check_signatures126855
|
||||
Node: chosen127142
|
||||
Node: cmdpath127585
|
||||
Node: color_highlight128012
|
||||
Node: color_normal128424
|
||||
Node: config_directory130087
|
||||
Node: config_file130381
|
||||
Node: debug130774
|
||||
Node: default131213
|
||||
Node: fallback132341
|
||||
Node: gfxmode132674
|
||||
Node: gfxpayload133472
|
||||
Node: gfxterm_font134626
|
||||
Node: grub_cpu134926
|
||||
Node: grub_platform135214
|
||||
Node: icondir135506
|
||||
Node: lang135823
|
||||
Node: locale_dir136292
|
||||
Node: menu_color_highlight136801
|
||||
Node: menu_color_normal137297
|
||||
Node: net_<INTERFACE>_boot_file137798
|
||||
Node: net_<INTERFACE>_dhcp_server_name138041
|
||||
Node: net_<INTERFACE>_domain138303
|
||||
Node: net_<INTERFACE>_extensionspath138550
|
||||
Node: net_<INTERFACE>_hostname138805
|
||||
Node: net_<INTERFACE>_ip139044
|
||||
Node: net_<INTERFACE>_mac139260
|
||||
Node: net_<INTERFACE>_rootpath139478
|
||||
Node: net_default_interface139709
|
||||
Node: net_default_ip139929
|
||||
Node: net_default_mac140126
|
||||
Node: net_default_server140322
|
||||
Node: pager140515
|
||||
Node: prefix140771
|
||||
Node: pxe_blksize141220
|
||||
Node: pxe_default_gateway141397
|
||||
Node: pxe_default_server141602
|
||||
Node: root141798
|
||||
Node: superusers142339
|
||||
Node: theme142587
|
||||
Node: timeout142908
|
||||
Node: timeout_style143545
|
||||
Node: Environment block143930
|
||||
Node: Commands145362
|
||||
Node: Menu-specific commands146232
|
||||
Node: menuentry146960
|
||||
Node: submenu148511
|
||||
Node: General commands149060
|
||||
Node: serial149556
|
||||
Node: terminal_input150607
|
||||
Node: terminal_output151273
|
||||
Node: terminfo151940
|
||||
Node: Command-line and menu entry commands153075
|
||||
Node: [158358
|
||||
Node: acpi158544
|
||||
Node: authenticate159601
|
||||
Node: background_color160028
|
||||
Node: background_image160701
|
||||
Node: badram161251
|
||||
Node: blocklist162304
|
||||
Node: boot162538
|
||||
Node: cat162860
|
||||
Node: chainloader163496
|
||||
Node: clear164124
|
||||
Node: cmosclean164310
|
||||
Node: cmosdump164614
|
||||
Node: cmostest164909
|
||||
Node: cmp165267
|
||||
Node: configfile165818
|
||||
Node: cpuid166243
|
||||
Node: crc166814
|
||||
Node: cryptomount167088
|
||||
Node: date167835
|
||||
Node: devicetree168384
|
||||
Node: distrust168781
|
||||
Node: drivemap169562
|
||||
Node: echo170369
|
||||
Node: eval171312
|
||||
Node: export171595
|
||||
Node: false171906
|
||||
Node: gettext172202
|
||||
Node: gptsync172649
|
||||
Node: halt173594
|
||||
Node: hashsum173925
|
||||
Node: help175151
|
||||
Node: initrd175618
|
||||
Node: initrd16176030
|
||||
Node: insmod176535
|
||||
Node: keystatus176757
|
||||
Node: linux177396
|
||||
Node: linux16178299
|
||||
Node: list_env179013
|
||||
Node: list_trusted179379
|
||||
Node: load_env179962
|
||||
Node: loadfont181635
|
||||
Node: loopback182006
|
||||
Node: ls182454
|
||||
Node: lsfonts182996
|
||||
Node: lsmod183178
|
||||
Node: md5sum183368
|
||||
Node: module183647
|
||||
Node: multiboot183959
|
||||
Node: nativedisk185067
|
||||
Node: normal185466
|
||||
Node: normal_exit186233
|
||||
Node: parttool186555
|
||||
Node: password188062
|
||||
Node: password_pbkdf2188344
|
||||
Node: play188752
|
||||
Node: probe189500
|
||||
Node: pxe_unload189882
|
||||
Node: read190162
|
||||
Node: reboot190511
|
||||
Node: regexp190694
|
||||
Node: rmmod191231
|
||||
Node: save_env191424
|
||||
Node: search192446
|
||||
Node: sendkey193224
|
||||
Node: set199650
|
||||
Node: sha1sum199952
|
||||
Node: sha256sum200237
|
||||
Node: sha512sum200536
|
||||
Node: sleep200833
|
||||
Node: source201290
|
||||
Node: test201842
|
||||
Node: true204611
|
||||
Node: trust204897
|
||||
Node: unset205689
|
||||
Node: uppermem205896
|
||||
Node: verify_detached206121
|
||||
Node: videoinfo207169
|
||||
Node: xen_hypervisor207456
|
||||
Node: xen_linux207863
|
||||
Node: xen_initrd208222
|
||||
Node: xen_xsm208478
|
||||
Node: Networking commands208780
|
||||
Node: net_add_addr209732
|
||||
Node: net_add_dns210252
|
||||
Node: net_add_route210528
|
||||
Node: net_bootp211058
|
||||
Node: net_del_addr212647
|
||||
Node: net_del_dns212887
|
||||
Node: net_del_route213134
|
||||
Node: net_get_dhcp_option213379
|
||||
Node: net_ipv6_autoconf213865
|
||||
Node: net_ls_addr214284
|
||||
Node: net_ls_cards214532
|
||||
Node: net_ls_dns214768
|
||||
Node: net_ls_routes214999
|
||||
Node: net_nslookup215206
|
||||
Node: Internationalisation215490
|
||||
Node: Security222317
|
||||
Node: Authentication and authorisation222585
|
||||
Node: Using digital signatures225569
|
||||
Node: Platform limitations228649
|
||||
Node: Platform-specific operations235753
|
||||
Node: Supported kernels236818
|
||||
Node: Troubleshooting244455
|
||||
Node: GRUB only offers a rescue shell244681
|
||||
Node: Invoking grub-install247642
|
||||
Node: Invoking grub-mkconfig249812
|
||||
Node: Invoking grub-mkpasswd-pbkdf2250449
|
||||
Node: Invoking grub-mkrelpath251108
|
||||
Node: Invoking grub-mkrescue251881
|
||||
Node: Invoking grub-mount253630
|
||||
Node: Invoking grub-probe256679
|
||||
Node: Invoking grub-script-check259273
|
||||
Node: Obtaining and Building GRUB260017
|
||||
Node: Reporting bugs261290
|
||||
Node: Future264106
|
||||
Node: Copying This Manual264506
|
||||
Node: GNU Free Documentation License264734
|
||||
Node: Index287123
|
||||
Node: Top1154
|
||||
Node: Introduction4204
|
||||
Node: Overview4648
|
||||
Node: Overview-Footnotes6638
|
||||
Ref: Overview-Footnote-16699
|
||||
Node: History6861
|
||||
Node: Changes from GRUB Legacy8951
|
||||
Node: Features11427
|
||||
Node: Features-Footnotes17846
|
||||
Ref: Features-Footnote-117907
|
||||
Ref: Features-Footnote-218003
|
||||
Ref: Features-Footnote-318150
|
||||
Node: Role of a boot loader18295
|
||||
Node: Role of a boot loader-Footnotes19634
|
||||
Ref: Role of a boot loader-Footnote-119721
|
||||
Node: Naming convention19800
|
||||
Node: OS-specific notes about grub tools22711
|
||||
Node: Installation23747
|
||||
Node: Installing GRUB using grub-install24869
|
||||
Node: Making a GRUB bootable CD-ROM27556
|
||||
Node: Making a GRUB bootable CD-ROM-Footnotes29415
|
||||
Ref: Making a GRUB bootable CD-ROM-Footnote-129518
|
||||
Node: Device map29593
|
||||
Node: BIOS installation31560
|
||||
Node: Booting34936
|
||||
Node: General boot methods35392
|
||||
Node: Loading an operating system directly36135
|
||||
Node: Chain-loading36866
|
||||
Node: Loopback booting37837
|
||||
Node: OS-specific notes39511
|
||||
Node: GNU/Hurd39800
|
||||
Node: GNU/Linux40923
|
||||
Node: NetBSD42549
|
||||
Node: DOS/Windows44023
|
||||
Node: Configuration45801
|
||||
Node: Simple configuration46410
|
||||
Node: Shell-like scripting60266
|
||||
Node: Shell-like scripting-Footnotes68320
|
||||
Ref: Shell-like scripting-Footnote-168405
|
||||
Node: Multi-boot manual config68532
|
||||
Node: Embedded configuration72161
|
||||
Node: Theme file format74997
|
||||
Ref: Pixmap-styled progress bar76456
|
||||
Ref: Plain progress bar, drawn with solid color.76468
|
||||
Ref: An example of the slices (in red) used for a terminal window. This drawing was created and sliced in Inkscape_, as the next section explains.79960
|
||||
Node: Network100372
|
||||
Node: Serial terminal103099
|
||||
Node: Vendor power-on keys105336
|
||||
Node: Images107271
|
||||
Node: Core image size limitation112246
|
||||
Node: Filesystem114810
|
||||
Node: Device syntax115519
|
||||
Node: File name syntax118220
|
||||
Node: Block list syntax119266
|
||||
Node: Interface120000
|
||||
Node: Command-line interface120824
|
||||
Node: Command-line interface-Footnotes122768
|
||||
Ref: Command-line interface-Footnote-1122857
|
||||
Node: Menu interface122952
|
||||
Node: Menu entry editor123964
|
||||
Node: Environment124702
|
||||
Node: Special environment variables125405
|
||||
Node: biosnum126459
|
||||
Node: check_signatures126983
|
||||
Node: chosen127270
|
||||
Node: cmdpath127713
|
||||
Node: color_highlight128140
|
||||
Node: color_normal128552
|
||||
Node: config_directory130215
|
||||
Node: config_file130509
|
||||
Node: debug130902
|
||||
Node: default131341
|
||||
Node: fallback132769
|
||||
Node: gfxmode133102
|
||||
Node: gfxpayload133900
|
||||
Node: gfxterm_font135054
|
||||
Node: grub_cpu135354
|
||||
Node: grub_platform135642
|
||||
Node: icondir135934
|
||||
Node: lang136251
|
||||
Node: locale_dir136720
|
||||
Node: menu_color_highlight137229
|
||||
Node: menu_color_normal137725
|
||||
Node: net_<INTERFACE>_boot_file138226
|
||||
Node: net_<INTERFACE>_dhcp_server_name138469
|
||||
Node: net_<INTERFACE>_domain138731
|
||||
Node: net_<INTERFACE>_extensionspath138978
|
||||
Node: net_<INTERFACE>_hostname139233
|
||||
Node: net_<INTERFACE>_ip139472
|
||||
Node: net_<INTERFACE>_mac139688
|
||||
Node: net_<INTERFACE>_next_server139909
|
||||
Node: net_<INTERFACE>_rootpath140152
|
||||
Node: net_default_interface140391
|
||||
Node: net_default_ip140611
|
||||
Node: net_default_mac140808
|
||||
Node: net_default_server141004
|
||||
Node: pager141197
|
||||
Node: prefix141453
|
||||
Node: pxe_blksize141902
|
||||
Node: pxe_default_gateway142079
|
||||
Node: pxe_default_server142284
|
||||
Node: root142480
|
||||
Node: superusers143021
|
||||
Node: theme143269
|
||||
Node: timeout143590
|
||||
Node: timeout_style144227
|
||||
Node: Environment block144612
|
||||
Node: Commands146044
|
||||
Node: Menu-specific commands146914
|
||||
Node: menuentry147642
|
||||
Node: submenu149193
|
||||
Node: General commands149742
|
||||
Node: serial150238
|
||||
Node: terminal_input151289
|
||||
Node: terminal_output151955
|
||||
Node: terminfo152622
|
||||
Node: Command-line and menu entry commands153757
|
||||
Node: [159040
|
||||
Node: acpi159226
|
||||
Node: authenticate160283
|
||||
Node: background_color160710
|
||||
Node: background_image161383
|
||||
Node: badram161933
|
||||
Node: blocklist162986
|
||||
Node: boot163220
|
||||
Node: cat163542
|
||||
Node: chainloader164178
|
||||
Node: clear164806
|
||||
Node: cmosclean164992
|
||||
Node: cmosdump165296
|
||||
Node: cmostest165591
|
||||
Node: cmp165949
|
||||
Node: configfile166500
|
||||
Node: cpuid166925
|
||||
Node: crc167496
|
||||
Node: cryptomount167770
|
||||
Node: date168517
|
||||
Node: devicetree169066
|
||||
Node: distrust169463
|
||||
Node: drivemap170244
|
||||
Node: echo171051
|
||||
Node: eval171994
|
||||
Node: export172277
|
||||
Node: false172588
|
||||
Node: gettext172884
|
||||
Node: gptsync173331
|
||||
Node: halt174276
|
||||
Node: hashsum174607
|
||||
Node: help175833
|
||||
Node: initrd176300
|
||||
Node: initrd16176712
|
||||
Node: insmod177217
|
||||
Node: keystatus177439
|
||||
Node: linux178078
|
||||
Node: linux16178981
|
||||
Node: list_env179695
|
||||
Node: list_trusted180061
|
||||
Node: load_env180644
|
||||
Node: loadfont182317
|
||||
Node: loopback182688
|
||||
Node: ls183136
|
||||
Node: lsfonts183678
|
||||
Node: lsmod183860
|
||||
Node: md5sum184050
|
||||
Node: module184329
|
||||
Node: multiboot184641
|
||||
Node: nativedisk185749
|
||||
Node: normal186148
|
||||
Node: normal_exit186915
|
||||
Node: parttool187237
|
||||
Node: password188744
|
||||
Node: password_pbkdf2189026
|
||||
Node: play189434
|
||||
Node: probe190182
|
||||
Node: pxe_unload190564
|
||||
Node: read190844
|
||||
Node: reboot191193
|
||||
Node: regexp191376
|
||||
Node: rmmod191913
|
||||
Node: save_env192106
|
||||
Node: search193128
|
||||
Node: sendkey193906
|
||||
Node: set200332
|
||||
Node: sha1sum200634
|
||||
Node: sha256sum200919
|
||||
Node: sha512sum201218
|
||||
Node: sleep201515
|
||||
Node: source201972
|
||||
Node: test202524
|
||||
Node: true205293
|
||||
Node: trust205579
|
||||
Node: unset206371
|
||||
Node: uppermem206578
|
||||
Node: verify_detached206803
|
||||
Node: videoinfo207851
|
||||
Node: xen_hypervisor208138
|
||||
Node: xen_linux208545
|
||||
Node: xen_initrd208904
|
||||
Node: xen_xsm209160
|
||||
Node: Networking commands209462
|
||||
Node: net_add_addr210414
|
||||
Node: net_add_dns210934
|
||||
Node: net_add_route211210
|
||||
Node: net_bootp211740
|
||||
Node: net_del_addr213329
|
||||
Node: net_del_dns213569
|
||||
Node: net_del_route213816
|
||||
Node: net_get_dhcp_option214061
|
||||
Node: net_ipv6_autoconf214547
|
||||
Node: net_ls_addr214966
|
||||
Node: net_ls_cards215214
|
||||
Node: net_ls_dns215450
|
||||
Node: net_ls_routes215681
|
||||
Node: net_nslookup215888
|
||||
Node: Internationalisation216172
|
||||
Node: Security222999
|
||||
Node: Authentication and authorisation223267
|
||||
Node: Using digital signatures226251
|
||||
Node: Platform limitations229331
|
||||
Node: Platform-specific operations236435
|
||||
Node: Supported kernels237500
|
||||
Node: Troubleshooting245137
|
||||
Node: GRUB only offers a rescue shell245363
|
||||
Node: Invoking grub-install248324
|
||||
Node: Invoking grub-mkconfig250494
|
||||
Node: Invoking grub-mkpasswd-pbkdf2251131
|
||||
Node: Invoking grub-mkrelpath251790
|
||||
Node: Invoking grub-mkrescue252563
|
||||
Node: Invoking grub-mount254312
|
||||
Node: Invoking grub-probe257361
|
||||
Node: Invoking grub-script-check259955
|
||||
Node: Obtaining and Building GRUB260699
|
||||
Node: Reporting bugs261942
|
||||
Node: Future264758
|
||||
Node: Copying This Manual265158
|
||||
Node: GNU Free Documentation License265386
|
||||
Node: Index287775
|
||||
|
||||
End Tag Table
|
||||
|
@ -2446,6 +2446,10 @@ The boot file name provided by DHCP. Read-only.
|
||||
The name of the DHCP server responsible for these boot parameters.
|
||||
Read-only.
|
||||
|
||||
@item net_@var{<interface>}_next_server
|
||||
The IP address of the next (usually, TFTP) server provided by DHCP.
|
||||
Read-only.
|
||||
|
||||
@item net_default_interface
|
||||
Initially set to name of network interface that was used to load grub.
|
||||
Read-write, although setting it affects only interpretation of
|
||||
@ -3062,6 +3066,7 @@ These variables have special meaning to GRUB.
|
||||
* net_@var{<interface>}_hostname::
|
||||
* net_@var{<interface>}_ip::
|
||||
* net_@var{<interface>}_mac::
|
||||
* net_@var{<interface>}_next_server::
|
||||
* net_@var{<interface>}_rootpath::
|
||||
* net_default_interface::
|
||||
* net_default_ip::
|
||||
@ -3213,9 +3218,10 @@ source for more details.
|
||||
@node default
|
||||
@subsection default
|
||||
|
||||
If this variable is set, it identifies a menu entry that should be selected
|
||||
by default, possibly after a timeout (@pxref{timeout}). The entry may be
|
||||
identified by number or by id.
|
||||
If this variable is set, it identifies a menu entry that should be
|
||||
selected by default, possibly after a timeout (@pxref{timeout}). The
|
||||
entry may be identified by number (starting from 0 at each level of
|
||||
the hierarchy), by title, or by id.
|
||||
|
||||
For example, if you have:
|
||||
|
||||
@ -3231,24 +3237,26 @@ then you can make this the default using:
|
||||
default=example-gnu-linux
|
||||
@end example
|
||||
|
||||
If the entry is in a submenu, then it must be identified using the titles of
|
||||
each of the submenus starting from the top level followed by the number or
|
||||
title of the menu entry itself, separated by @samp{>}. For example, take
|
||||
the following menu structure:
|
||||
If the entry is in a submenu, then it must be identified using the
|
||||
number, title, or id of each of the submenus starting from the top
|
||||
level, followed by the number, title, or id of the menu entry itself,
|
||||
with each element separated by @samp{>}. For example, take the
|
||||
following menu structure:
|
||||
|
||||
@example
|
||||
Submenu 1
|
||||
Menu Entry 1
|
||||
Menu Entry 2
|
||||
Submenu 2
|
||||
Submenu 3
|
||||
Menu Entry 3
|
||||
Menu Entry 4
|
||||
Menu Entry 5
|
||||
GNU/Hurd --id gnu-hurd
|
||||
Standard Boot --id=gnu-hurd-std
|
||||
Rescue shell --id=gnu-hurd-rescue
|
||||
Other platforms --id=other
|
||||
Minix --id=minix
|
||||
Version 3.4.0 --id=minix-3.4.0
|
||||
Version 3.3.0 --id=minix-3.3.0
|
||||
GRUB Invaders --id=grub-invaders
|
||||
@end example
|
||||
|
||||
``Menu Entry 3'' would then be identified as
|
||||
@samp{Submenu 2>Submenu 3>Menu Entry 3}.
|
||||
The more recent release of Minix would then be identified as
|
||||
@samp{Other platforms>Minix>Version 3.4.0}, or as @samp{1>0>0}, or as
|
||||
@samp{other>minix>minix-3.4.0}.
|
||||
|
||||
This variable is often set by @samp{GRUB_DEFAULT} (@pxref{Simple
|
||||
configuration}), @command{grub-set-default}, or @command{grub-reboot}.
|
||||
@ -3422,6 +3430,12 @@ The default is the value of @samp{color_normal} (@pxref{color_normal}).
|
||||
@xref{Network}.
|
||||
|
||||
|
||||
@node net_@var{<interface>}_next_server
|
||||
@subsection net_@var{<interface>}_next_server
|
||||
|
||||
@xref{Network}.
|
||||
|
||||
|
||||
@node net_@var{<interface>}_rootpath
|
||||
@subsection net_@var{<interface>}_rootpath
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
@set UPDATED 2 September 2015
|
||||
@set UPDATED-MONTH September 2015
|
||||
@set EDITION 2.02~beta3
|
||||
@set VERSION 2.02~beta3
|
||||
@set EDITION 2.02
|
||||
@set VERSION 2.02
|
||||
|
@ -1,4 +1,4 @@
|
||||
@set UPDATED 12 February 2016
|
||||
@set UPDATED-MONTH February 2016
|
||||
@set EDITION 2.02~beta3
|
||||
@set VERSION 2.02~beta3
|
||||
@set UPDATED 24 April 2017
|
||||
@set UPDATED-MONTH April 2017
|
||||
@set EDITION 2.02
|
||||
@set VERSION 2.02
|
||||
|
@ -1,4 +1,4 @@
|
||||
@set UPDATED 2 September 2015
|
||||
@set UPDATED-MONTH September 2015
|
||||
@set EDITION 2.02~beta3
|
||||
@set VERSION 2.02~beta3
|
||||
@set EDITION 2.02
|
||||
@set VERSION 2.02
|
||||
|
@ -1,4 +1,4 @@
|
||||
@set UPDATED 12 February 2016
|
||||
@set UPDATED-MONTH February 2016
|
||||
@set EDITION 2.02~beta3
|
||||
@set VERSION 2.02~beta3
|
||||
@set UPDATED 24 April 2017
|
||||
@set UPDATED-MONTH April 2017
|
||||
@set EDITION 2.02
|
||||
@set VERSION 2.02
|
||||
|
@ -11379,7 +11379,7 @@ endif
|
||||
if COND_x86_64_efi
|
||||
platform_PROGRAMS += relocator.module
|
||||
MODULE_FILES += relocator.module$(EXEEXT)
|
||||
relocator_module_SOURCES = lib/x86_64/relocator_asm.S lib/efi/relocator.c lib/i386/relocator16.S lib/i386/relocator32.S lib/i386/relocator64.S lib/i386/relocator.c lib/i386/relocator_common_c.c lib/relocator.c ## platform sources
|
||||
relocator_module_SOURCES = lib/x86_64/efi/relocator.c lib/x86_64/relocator_asm.S lib/efi/relocator.c lib/i386/relocator16.S lib/i386/relocator32.S lib/i386/relocator64.S lib/i386/relocator.c lib/i386/relocator_common_c.c lib/relocator.c ## platform sources
|
||||
nodist_relocator_module_SOURCES = ## platform nodist sources
|
||||
relocator_module_LDADD =
|
||||
relocator_module_CFLAGS = $(AM_CFLAGS) $(CFLAGS_MODULE)
|
||||
@ -20325,7 +20325,7 @@ endif
|
||||
if COND_arm_efi
|
||||
platform_PROGRAMS += kernel.exec
|
||||
kernel_exec_SOURCES = kern/arm/efi/startup.S
|
||||
kernel_exec_SOURCES += kern/arm/efi/init.c kern/arm/efi/misc.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
|
||||
kernel_exec_SOURCES += kern/arm/efi/init.c kern/arm/efi/misc.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
|
||||
nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
|
||||
kernel_exec_LDADD =
|
||||
kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL)
|
||||
@ -20347,7 +20347,7 @@ endif
|
||||
if COND_arm64_efi
|
||||
platform_PROGRAMS += kernel.exec
|
||||
kernel_exec_SOURCES = kern/arm64/efi/startup.S
|
||||
kernel_exec_SOURCES += kern/arm64/efi/init.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
|
||||
kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
|
||||
nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
|
||||
kernel_exec_LDADD =
|
||||
kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL)
|
||||
|
@ -212,8 +212,10 @@ kernel = {
|
||||
|
||||
arm_efi = kern/arm/efi/init.c;
|
||||
arm_efi = kern/arm/efi/misc.c;
|
||||
arm_efi = kern/efi/fdt.c;
|
||||
|
||||
arm64_efi = kern/arm64/efi/init.c;
|
||||
arm64_efi = kern/efi/fdt.c;
|
||||
|
||||
i386_pc = kern/i386/pc/init.c;
|
||||
i386_pc = kern/i386/pc/mmap.c;
|
||||
@ -1531,6 +1533,7 @@ module = {
|
||||
i386_xen = lib/i386/xen/relocator.S;
|
||||
x86_64_xen = lib/x86_64/xen/relocator.S;
|
||||
xen = lib/i386/relocator_common_c.c;
|
||||
x86_64_efi = lib/x86_64/efi/relocator.c;
|
||||
|
||||
extra_dist = lib/i386/relocator_common.S;
|
||||
extra_dist = kern/powerpc/cache_flush.S;
|
||||
|
@ -9254,7 +9254,7 @@ jpeg_module_OBJECTS = $(am_jpeg_module_OBJECTS) \
|
||||
jpeg_module_LINK = $(CCLD) $(jpeg_module_CFLAGS) $(CFLAGS) \
|
||||
$(jpeg_module_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
|
||||
kern/arm64/efi/init.c kern/arm64/cache.c \
|
||||
kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c \
|
||||
kern/arm64/cache_flush.S kern/arm64/dl.c \
|
||||
kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c \
|
||||
kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c \
|
||||
@ -9930,6 +9930,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
|
||||
@COND_arm64_efi_FALSE@@COND_arm_efi_TRUE@am_kernel_exec_OBJECTS = kern/arm/efi/kernel_exec-startup.$(OBJEXT) \
|
||||
@COND_arm64_efi_FALSE@@COND_arm_efi_TRUE@ kern/arm/efi/kernel_exec-init.$(OBJEXT) \
|
||||
@COND_arm64_efi_FALSE@@COND_arm_efi_TRUE@ kern/arm/efi/kernel_exec-misc.$(OBJEXT) \
|
||||
@COND_arm64_efi_FALSE@@COND_arm_efi_TRUE@ kern/efi/kernel_exec-fdt.$(OBJEXT) \
|
||||
@COND_arm64_efi_FALSE@@COND_arm_efi_TRUE@ kern/arm/kernel_exec-dl.$(OBJEXT) \
|
||||
@COND_arm64_efi_FALSE@@COND_arm_efi_TRUE@ kern/arm/kernel_exec-dl_helper.$(OBJEXT) \
|
||||
@COND_arm64_efi_FALSE@@COND_arm_efi_TRUE@ kern/arm/kernel_exec-cache_armv6.$(OBJEXT) \
|
||||
@ -9967,6 +9968,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
|
||||
@COND_arm64_efi_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-term.$(OBJEXT)
|
||||
@COND_arm64_efi_TRUE@am_kernel_exec_OBJECTS = kern/arm64/efi/kernel_exec-startup.$(OBJEXT) \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/efi/kernel_exec-init.$(OBJEXT) \
|
||||
@COND_arm64_efi_TRUE@ kern/efi/kernel_exec-fdt.$(OBJEXT) \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/kernel_exec-cache.$(OBJEXT) \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/kernel_exec-cache_flush.$(OBJEXT) \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/kernel_exec-dl.$(OBJEXT) \
|
||||
@ -11106,13 +11108,15 @@ am__relocator_module_SOURCES_DIST = lib/i386/relocator_asm.S \
|
||||
lib/i386/xen/relocator.S lib/xen/relocator.c \
|
||||
lib/mips/relocator_asm.S lib/mips/relocator.c \
|
||||
lib/powerpc/relocator_asm.S lib/powerpc/relocator.c \
|
||||
lib/x86_64/relocator_asm.S lib/x86_64/xen/relocator.S
|
||||
lib/x86_64/efi/relocator.c lib/x86_64/relocator_asm.S \
|
||||
lib/x86_64/xen/relocator.S
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@am_relocator_module_OBJECTS = lib/x86_64/relocator_module-relocator_asm.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ lib/x86_64/xen/relocator_module-relocator.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ lib/xen/relocator_module-relocator.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ lib/i386/relocator_module-relocator_common_c.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_FALSE@@COND_x86_64_xen_TRUE@ lib/relocator_module-relocator.$(OBJEXT)
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_TRUE@am_relocator_module_OBJECTS = lib/x86_64/relocator_module-relocator_asm.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_TRUE@am_relocator_module_OBJECTS = lib/x86_64/efi/relocator_module-relocator.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ lib/x86_64/relocator_module-relocator_asm.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ lib/efi/relocator_module-relocator.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ lib/i386/relocator_module-relocator16.$(OBJEXT) \
|
||||
@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ lib/i386/relocator_module-relocator32.$(OBJEXT) \
|
||||
@ -19748,7 +19752,7 @@ pbkdf2_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
|
||||
@COND_mips_loongson_TRUE@relocator_module_SOURCES = lib/mips/relocator_asm.S lib/mips/relocator.c lib/relocator.c ## platform sources
|
||||
@COND_mips_qemu_mips_TRUE@relocator_module_SOURCES = lib/mips/relocator_asm.S lib/mips/relocator.c lib/relocator.c ## platform sources
|
||||
@COND_powerpc_ieee1275_TRUE@relocator_module_SOURCES = lib/powerpc/relocator_asm.S lib/powerpc/relocator.c lib/ieee1275/relocator.c lib/relocator.c ## platform sources
|
||||
@COND_x86_64_efi_TRUE@relocator_module_SOURCES = lib/x86_64/relocator_asm.S lib/efi/relocator.c lib/i386/relocator16.S lib/i386/relocator32.S lib/i386/relocator64.S lib/i386/relocator.c lib/i386/relocator_common_c.c lib/relocator.c ## platform sources
|
||||
@COND_x86_64_efi_TRUE@relocator_module_SOURCES = lib/x86_64/efi/relocator.c lib/x86_64/relocator_asm.S lib/efi/relocator.c lib/i386/relocator16.S lib/i386/relocator32.S lib/i386/relocator64.S lib/i386/relocator.c lib/i386/relocator_common_c.c lib/relocator.c ## platform sources
|
||||
@COND_x86_64_xen_TRUE@relocator_module_SOURCES = lib/x86_64/relocator_asm.S lib/x86_64/xen/relocator.S lib/xen/relocator.c lib/i386/relocator_common_c.c lib/relocator.c ## platform sources
|
||||
@COND_i386_coreboot_TRUE@nodist_relocator_module_SOURCES = ## platform nodist sources
|
||||
@COND_i386_efi_TRUE@nodist_relocator_module_SOURCES = ## platform nodist sources
|
||||
@ -22850,7 +22854,8 @@ gcry_whirlpool_module_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_MODULE) $(CPPFLAGS_GC
|
||||
gcry_whirlpool_module_CCASFLAGS = $(AM_CCASFLAGS) $(CCASFLAGS_MODULE)
|
||||
gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
|
||||
@COND_arm64_efi_TRUE@kernel_exec_SOURCES = kern/arm64/efi/startup.S \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/efi/init.c kern/arm64/cache.c \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/efi/init.c kern/efi/fdt.c \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/cache.c \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/cache_flush.S kern/arm64/dl.c \
|
||||
@COND_arm64_efi_TRUE@ kern/arm64/dl_helper.c disk/efi/efidisk.c \
|
||||
@COND_arm64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \
|
||||
@ -22866,8 +22871,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
|
||||
@COND_arm64_efi_TRUE@ kern/rescue_reader.c kern/term.c
|
||||
@COND_arm_efi_TRUE@kernel_exec_SOURCES = kern/arm/efi/startup.S \
|
||||
@COND_arm_efi_TRUE@ kern/arm/efi/init.c kern/arm/efi/misc.c \
|
||||
@COND_arm_efi_TRUE@ kern/arm/dl.c kern/arm/dl_helper.c \
|
||||
@COND_arm_efi_TRUE@ kern/arm/cache_armv6.S \
|
||||
@COND_arm_efi_TRUE@ kern/efi/fdt.c kern/arm/dl.c \
|
||||
@COND_arm_efi_TRUE@ kern/arm/dl_helper.c kern/arm/cache_armv6.S \
|
||||
@COND_arm_efi_TRUE@ kern/arm/cache_armv7.S kern/arm/cache.c \
|
||||
@COND_arm_efi_TRUE@ kern/arm/compiler-rt.S lib/division.c \
|
||||
@COND_arm_efi_TRUE@ disk/efi/efidisk.c kern/efi/efi.c \
|
||||
@ -25049,6 +25054,14 @@ kern/arm64/efi/kernel_exec-startup.$(OBJEXT): \
|
||||
kern/arm64/efi/kernel_exec-init.$(OBJEXT): \
|
||||
kern/arm64/efi/$(am__dirstamp) \
|
||||
kern/arm64/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
kern/efi/$(am__dirstamp):
|
||||
@$(MKDIR_P) kern/efi
|
||||
@: > kern/efi/$(am__dirstamp)
|
||||
kern/efi/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) kern/efi/$(DEPDIR)
|
||||
@: > kern/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
kern/efi/kernel_exec-fdt.$(OBJEXT): kern/efi/$(am__dirstamp) \
|
||||
kern/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
kern/arm64/$(am__dirstamp):
|
||||
@$(MKDIR_P) kern/arm64
|
||||
@: > kern/arm64/$(am__dirstamp)
|
||||
@ -25073,12 +25086,6 @@ disk/efi/$(DEPDIR)/$(am__dirstamp):
|
||||
@: > disk/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
disk/efi/kernel_exec-efidisk.$(OBJEXT): disk/efi/$(am__dirstamp) \
|
||||
disk/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
kern/efi/$(am__dirstamp):
|
||||
@$(MKDIR_P) kern/efi
|
||||
@: > kern/efi/$(am__dirstamp)
|
||||
kern/efi/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) kern/efi/$(DEPDIR)
|
||||
@: > kern/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
kern/efi/kernel_exec-efi.$(OBJEXT): kern/efi/$(am__dirstamp) \
|
||||
kern/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
kern/efi/kernel_exec-init.$(OBJEXT): kern/efi/$(am__dirstamp) \
|
||||
@ -26748,6 +26755,15 @@ lib/powerpc/relocator_module-relocator_asm.$(OBJEXT): \
|
||||
lib/powerpc/relocator_module-relocator.$(OBJEXT): \
|
||||
lib/powerpc/$(am__dirstamp) \
|
||||
lib/powerpc/$(DEPDIR)/$(am__dirstamp)
|
||||
lib/x86_64/efi/$(am__dirstamp):
|
||||
@$(MKDIR_P) lib/x86_64/efi
|
||||
@: > lib/x86_64/efi/$(am__dirstamp)
|
||||
lib/x86_64/efi/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) lib/x86_64/efi/$(DEPDIR)
|
||||
@: > lib/x86_64/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
lib/x86_64/efi/relocator_module-relocator.$(OBJEXT): \
|
||||
lib/x86_64/efi/$(am__dirstamp) \
|
||||
lib/x86_64/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
lib/x86_64/$(am__dirstamp):
|
||||
@$(MKDIR_P) lib/x86_64
|
||||
@: > lib/x86_64/$(am__dirstamp)
|
||||
@ -27544,6 +27560,7 @@ mostlyclean-compile:
|
||||
-rm -f lib/powerpc/*.$(OBJEXT)
|
||||
-rm -f lib/uboot/*.$(OBJEXT)
|
||||
-rm -f lib/x86_64/*.$(OBJEXT)
|
||||
-rm -f lib/x86_64/efi/*.$(OBJEXT)
|
||||
-rm -f lib/x86_64/xen/*.$(OBJEXT)
|
||||
-rm -f lib/xen/*.$(OBJEXT)
|
||||
-rm -f lib/xzembed/*.$(OBJEXT)
|
||||
@ -27893,6 +27910,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@kern/arm64/efi/$(DEPDIR)/kernel_exec-startup.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-acpi.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-efi.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-fdt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-init.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-mm.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/grub_emu-full.Po@am__quote@
|
||||
@ -28083,6 +28101,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@lib/uboot/$(DEPDIR)/halt_module-halt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@lib/uboot/$(DEPDIR)/reboot_module-reboot.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@lib/x86_64/$(DEPDIR)/relocator_module-relocator_asm.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@lib/x86_64/efi/$(DEPDIR)/relocator_module-relocator.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@lib/x86_64/xen/$(DEPDIR)/relocator_module-relocator.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@lib/xen/$(DEPDIR)/datetime_module-datetime.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@lib/xen/$(DEPDIR)/halt_module-halt.Po@am__quote@
|
||||
@ -31887,6 +31906,20 @@ kern/arm64/efi/kernel_exec-init.obj: kern/arm64/efi/init.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/arm64/efi/kernel_exec-init.obj `if test -f 'kern/arm64/efi/init.c'; then $(CYGPATH_W) 'kern/arm64/efi/init.c'; else $(CYGPATH_W) '$(srcdir)/kern/arm64/efi/init.c'; fi`
|
||||
|
||||
kern/efi/kernel_exec-fdt.o: kern/efi/fdt.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/efi/kernel_exec-fdt.o -MD -MP -MF kern/efi/$(DEPDIR)/kernel_exec-fdt.Tpo -c -o kern/efi/kernel_exec-fdt.o `test -f 'kern/efi/fdt.c' || echo '$(srcdir)/'`kern/efi/fdt.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/efi/$(DEPDIR)/kernel_exec-fdt.Tpo kern/efi/$(DEPDIR)/kernel_exec-fdt.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/efi/fdt.c' object='kern/efi/kernel_exec-fdt.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-fdt.o `test -f 'kern/efi/fdt.c' || echo '$(srcdir)/'`kern/efi/fdt.c
|
||||
|
||||
kern/efi/kernel_exec-fdt.obj: kern/efi/fdt.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/efi/kernel_exec-fdt.obj -MD -MP -MF kern/efi/$(DEPDIR)/kernel_exec-fdt.Tpo -c -o kern/efi/kernel_exec-fdt.obj `if test -f 'kern/efi/fdt.c'; then $(CYGPATH_W) 'kern/efi/fdt.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/fdt.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/efi/$(DEPDIR)/kernel_exec-fdt.Tpo kern/efi/$(DEPDIR)/kernel_exec-fdt.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/efi/fdt.c' object='kern/efi/kernel_exec-fdt.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-fdt.obj `if test -f 'kern/efi/fdt.c'; then $(CYGPATH_W) 'kern/efi/fdt.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/fdt.c'; fi`
|
||||
|
||||
kern/arm64/kernel_exec-cache.o: kern/arm64/cache.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/arm64/kernel_exec-cache.o -MD -MP -MF kern/arm64/$(DEPDIR)/kernel_exec-cache.Tpo -c -o kern/arm64/kernel_exec-cache.o `test -f 'kern/arm64/cache.c' || echo '$(srcdir)/'`kern/arm64/cache.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/arm64/$(DEPDIR)/kernel_exec-cache.Tpo kern/arm64/$(DEPDIR)/kernel_exec-cache.Po
|
||||
@ -36605,6 +36638,20 @@ lib/powerpc/relocator_module-relocator.obj: lib/powerpc/relocator.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(relocator_module_CPPFLAGS) $(CPPFLAGS) $(relocator_module_CFLAGS) $(CFLAGS) -c -o lib/powerpc/relocator_module-relocator.obj `if test -f 'lib/powerpc/relocator.c'; then $(CYGPATH_W) 'lib/powerpc/relocator.c'; else $(CYGPATH_W) '$(srcdir)/lib/powerpc/relocator.c'; fi`
|
||||
|
||||
lib/x86_64/efi/relocator_module-relocator.o: lib/x86_64/efi/relocator.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(relocator_module_CPPFLAGS) $(CPPFLAGS) $(relocator_module_CFLAGS) $(CFLAGS) -MT lib/x86_64/efi/relocator_module-relocator.o -MD -MP -MF lib/x86_64/efi/$(DEPDIR)/relocator_module-relocator.Tpo -c -o lib/x86_64/efi/relocator_module-relocator.o `test -f 'lib/x86_64/efi/relocator.c' || echo '$(srcdir)/'`lib/x86_64/efi/relocator.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) lib/x86_64/efi/$(DEPDIR)/relocator_module-relocator.Tpo lib/x86_64/efi/$(DEPDIR)/relocator_module-relocator.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lib/x86_64/efi/relocator.c' object='lib/x86_64/efi/relocator_module-relocator.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(relocator_module_CPPFLAGS) $(CPPFLAGS) $(relocator_module_CFLAGS) $(CFLAGS) -c -o lib/x86_64/efi/relocator_module-relocator.o `test -f 'lib/x86_64/efi/relocator.c' || echo '$(srcdir)/'`lib/x86_64/efi/relocator.c
|
||||
|
||||
lib/x86_64/efi/relocator_module-relocator.obj: lib/x86_64/efi/relocator.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(relocator_module_CPPFLAGS) $(CPPFLAGS) $(relocator_module_CFLAGS) $(CFLAGS) -MT lib/x86_64/efi/relocator_module-relocator.obj -MD -MP -MF lib/x86_64/efi/$(DEPDIR)/relocator_module-relocator.Tpo -c -o lib/x86_64/efi/relocator_module-relocator.obj `if test -f 'lib/x86_64/efi/relocator.c'; then $(CYGPATH_W) 'lib/x86_64/efi/relocator.c'; else $(CYGPATH_W) '$(srcdir)/lib/x86_64/efi/relocator.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) lib/x86_64/efi/$(DEPDIR)/relocator_module-relocator.Tpo lib/x86_64/efi/$(DEPDIR)/relocator_module-relocator.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lib/x86_64/efi/relocator.c' object='lib/x86_64/efi/relocator_module-relocator.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(relocator_module_CPPFLAGS) $(CPPFLAGS) $(relocator_module_CFLAGS) $(CFLAGS) -c -o lib/x86_64/efi/relocator_module-relocator.obj `if test -f 'lib/x86_64/efi/relocator.c'; then $(CYGPATH_W) 'lib/x86_64/efi/relocator.c'; else $(CYGPATH_W) '$(srcdir)/lib/x86_64/efi/relocator.c'; fi`
|
||||
|
||||
fs/romfs_module-romfs.o: fs/romfs.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(romfs_module_CPPFLAGS) $(CPPFLAGS) $(romfs_module_CFLAGS) $(CFLAGS) -MT fs/romfs_module-romfs.o -MD -MP -MF fs/$(DEPDIR)/romfs_module-romfs.Tpo -c -o fs/romfs_module-romfs.o `test -f 'fs/romfs.c' || echo '$(srcdir)/'`fs/romfs.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) fs/$(DEPDIR)/romfs_module-romfs.Tpo fs/$(DEPDIR)/romfs_module-romfs.Po
|
||||
@ -38518,6 +38565,8 @@ distclean-generic:
|
||||
-rm -f lib/uboot/$(am__dirstamp)
|
||||
-rm -f lib/x86_64/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f lib/x86_64/$(am__dirstamp)
|
||||
-rm -f lib/x86_64/efi/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f lib/x86_64/efi/$(am__dirstamp)
|
||||
-rm -f lib/x86_64/xen/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f lib/x86_64/xen/$(am__dirstamp)
|
||||
-rm -f lib/xen/$(DEPDIR)/$(am__dirstamp)
|
||||
@ -38626,7 +38675,7 @@ clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
|
||||
clean-platformPROGRAMS clean-sbinPROGRAMS mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR) boot/decompressor/$(DEPDIR) boot/i386/pc/$(DEPDIR) boot/i386/qemu/$(DEPDIR) boot/mips/$(DEPDIR) boot/mips/loongson/$(DEPDIR) boot/sparc64/ieee1275/$(DEPDIR) bus/$(DEPDIR) bus/emu/$(DEPDIR) bus/i386/ieee1275/$(DEPDIR) bus/usb/$(DEPDIR) bus/usb/serial/$(DEPDIR) commands/$(DEPDIR) commands/arc/$(DEPDIR) commands/efi/$(DEPDIR) commands/i386/$(DEPDIR) commands/i386/coreboot/$(DEPDIR) commands/i386/pc/$(DEPDIR) commands/ieee1275/$(DEPDIR) commands/mips/loongson/$(DEPDIR) commands/xen/$(DEPDIR) disk/$(DEPDIR) disk/arc/$(DEPDIR) disk/efi/$(DEPDIR) disk/i386/pc/$(DEPDIR) disk/ieee1275/$(DEPDIR) disk/uboot/$(DEPDIR) disk/xen/$(DEPDIR) efiemu/$(DEPDIR) efiemu/i386/$(DEPDIR) efiemu/i386/pc/$(DEPDIR) font/$(DEPDIR) fs/$(DEPDIR) fs/zfs/$(DEPDIR) gdb/$(DEPDIR) gdb/i386/$(DEPDIR) gettext/$(DEPDIR) gfxmenu/$(DEPDIR) gnulib/$(DEPDIR) hello/$(DEPDIR) hook/$(DEPDIR) io/$(DEPDIR) kern/$(DEPDIR) kern/arm/$(DEPDIR) kern/arm/efi/$(DEPDIR) kern/arm/uboot/$(DEPDIR) kern/arm64/$(DEPDIR) kern/arm64/efi/$(DEPDIR) kern/efi/$(DEPDIR) kern/emu/$(DEPDIR) kern/generic/$(DEPDIR) kern/i386/$(DEPDIR) kern/i386/coreboot/$(DEPDIR) kern/i386/efi/$(DEPDIR) kern/i386/ieee1275/$(DEPDIR) kern/i386/pc/$(DEPDIR) kern/i386/qemu/$(DEPDIR) kern/i386/xen/$(DEPDIR) kern/ia64/$(DEPDIR) kern/ia64/efi/$(DEPDIR) kern/ieee1275/$(DEPDIR) kern/mips/$(DEPDIR) kern/mips/arc/$(DEPDIR) kern/mips/loongson/$(DEPDIR) kern/mips/qemu_mips/$(DEPDIR) kern/powerpc/$(DEPDIR) kern/powerpc/ieee1275/$(DEPDIR) kern/sparc64/$(DEPDIR) kern/sparc64/ieee1275/$(DEPDIR) kern/uboot/$(DEPDIR) kern/x86_64/$(DEPDIR) kern/x86_64/efi/$(DEPDIR) kern/x86_64/xen/$(DEPDIR) kern/xen/$(DEPDIR) lib/$(DEPDIR) lib/arc/$(DEPDIR) lib/efi/$(DEPDIR) lib/emu/$(DEPDIR) lib/i386/$(DEPDIR) lib/i386/pc/$(DEPDIR) lib/i386/xen/$(DEPDIR) lib/ieee1275/$(DEPDIR) lib/libgcrypt-grub/cipher/$(DEPDIR) lib/libgcrypt-grub/mpi/$(DEPDIR) lib/libgcrypt_wrap/$(DEPDIR) lib/minilzo/$(DEPDIR) lib/mips/$(DEPDIR) lib/mips/arc/$(DEPDIR) lib/mips/loongson/$(DEPDIR) lib/mips/qemu_mips/$(DEPDIR) lib/powerpc/$(DEPDIR) lib/uboot/$(DEPDIR) lib/x86_64/$(DEPDIR) lib/x86_64/xen/$(DEPDIR) lib/xen/$(DEPDIR) lib/xzembed/$(DEPDIR) loader/$(DEPDIR) loader/arm/$(DEPDIR) loader/arm64/$(DEPDIR) loader/efi/$(DEPDIR) loader/i386/$(DEPDIR) loader/i386/coreboot/$(DEPDIR) loader/i386/pc/$(DEPDIR) loader/ia64/efi/$(DEPDIR) loader/mips/$(DEPDIR) loader/powerpc/ieee1275/$(DEPDIR) loader/sparc64/ieee1275/$(DEPDIR) mmap/$(DEPDIR) mmap/efi/$(DEPDIR) mmap/i386/$(DEPDIR) mmap/i386/pc/$(DEPDIR) mmap/mips/$(DEPDIR) net/$(DEPDIR) net/drivers/efi/$(DEPDIR) net/drivers/emu/$(DEPDIR) net/drivers/i386/pc/$(DEPDIR) net/drivers/ieee1275/$(DEPDIR) net/drivers/uboot/$(DEPDIR) normal/$(DEPDIR) osdep/$(DEPDIR) osdep/devmapper/$(DEPDIR) osdep/unix/$(DEPDIR) partmap/$(DEPDIR) parttool/$(DEPDIR) script/$(DEPDIR) term/$(DEPDIR) term/arc/$(DEPDIR) term/efi/$(DEPDIR) term/i386/coreboot/$(DEPDIR) term/i386/pc/$(DEPDIR) term/ieee1275/$(DEPDIR) term/uboot/$(DEPDIR) term/xen/$(DEPDIR) tests/$(DEPDIR) tests/lib/$(DEPDIR) video/$(DEPDIR) video/emu/$(DEPDIR) video/fb/$(DEPDIR) video/i386/coreboot/$(DEPDIR) video/i386/pc/$(DEPDIR) video/readers/$(DEPDIR)
|
||||
-rm -rf ./$(DEPDIR) boot/decompressor/$(DEPDIR) boot/i386/pc/$(DEPDIR) boot/i386/qemu/$(DEPDIR) boot/mips/$(DEPDIR) boot/mips/loongson/$(DEPDIR) boot/sparc64/ieee1275/$(DEPDIR) bus/$(DEPDIR) bus/emu/$(DEPDIR) bus/i386/ieee1275/$(DEPDIR) bus/usb/$(DEPDIR) bus/usb/serial/$(DEPDIR) commands/$(DEPDIR) commands/arc/$(DEPDIR) commands/efi/$(DEPDIR) commands/i386/$(DEPDIR) commands/i386/coreboot/$(DEPDIR) commands/i386/pc/$(DEPDIR) commands/ieee1275/$(DEPDIR) commands/mips/loongson/$(DEPDIR) commands/xen/$(DEPDIR) disk/$(DEPDIR) disk/arc/$(DEPDIR) disk/efi/$(DEPDIR) disk/i386/pc/$(DEPDIR) disk/ieee1275/$(DEPDIR) disk/uboot/$(DEPDIR) disk/xen/$(DEPDIR) efiemu/$(DEPDIR) efiemu/i386/$(DEPDIR) efiemu/i386/pc/$(DEPDIR) font/$(DEPDIR) fs/$(DEPDIR) fs/zfs/$(DEPDIR) gdb/$(DEPDIR) gdb/i386/$(DEPDIR) gettext/$(DEPDIR) gfxmenu/$(DEPDIR) gnulib/$(DEPDIR) hello/$(DEPDIR) hook/$(DEPDIR) io/$(DEPDIR) kern/$(DEPDIR) kern/arm/$(DEPDIR) kern/arm/efi/$(DEPDIR) kern/arm/uboot/$(DEPDIR) kern/arm64/$(DEPDIR) kern/arm64/efi/$(DEPDIR) kern/efi/$(DEPDIR) kern/emu/$(DEPDIR) kern/generic/$(DEPDIR) kern/i386/$(DEPDIR) kern/i386/coreboot/$(DEPDIR) kern/i386/efi/$(DEPDIR) kern/i386/ieee1275/$(DEPDIR) kern/i386/pc/$(DEPDIR) kern/i386/qemu/$(DEPDIR) kern/i386/xen/$(DEPDIR) kern/ia64/$(DEPDIR) kern/ia64/efi/$(DEPDIR) kern/ieee1275/$(DEPDIR) kern/mips/$(DEPDIR) kern/mips/arc/$(DEPDIR) kern/mips/loongson/$(DEPDIR) kern/mips/qemu_mips/$(DEPDIR) kern/powerpc/$(DEPDIR) kern/powerpc/ieee1275/$(DEPDIR) kern/sparc64/$(DEPDIR) kern/sparc64/ieee1275/$(DEPDIR) kern/uboot/$(DEPDIR) kern/x86_64/$(DEPDIR) kern/x86_64/efi/$(DEPDIR) kern/x86_64/xen/$(DEPDIR) kern/xen/$(DEPDIR) lib/$(DEPDIR) lib/arc/$(DEPDIR) lib/efi/$(DEPDIR) lib/emu/$(DEPDIR) lib/i386/$(DEPDIR) lib/i386/pc/$(DEPDIR) lib/i386/xen/$(DEPDIR) lib/ieee1275/$(DEPDIR) lib/libgcrypt-grub/cipher/$(DEPDIR) lib/libgcrypt-grub/mpi/$(DEPDIR) lib/libgcrypt_wrap/$(DEPDIR) lib/minilzo/$(DEPDIR) lib/mips/$(DEPDIR) lib/mips/arc/$(DEPDIR) lib/mips/loongson/$(DEPDIR) lib/mips/qemu_mips/$(DEPDIR) lib/powerpc/$(DEPDIR) lib/uboot/$(DEPDIR) lib/x86_64/$(DEPDIR) lib/x86_64/efi/$(DEPDIR) lib/x86_64/xen/$(DEPDIR) lib/xen/$(DEPDIR) lib/xzembed/$(DEPDIR) loader/$(DEPDIR) loader/arm/$(DEPDIR) loader/arm64/$(DEPDIR) loader/efi/$(DEPDIR) loader/i386/$(DEPDIR) loader/i386/coreboot/$(DEPDIR) loader/i386/pc/$(DEPDIR) loader/ia64/efi/$(DEPDIR) loader/mips/$(DEPDIR) loader/powerpc/ieee1275/$(DEPDIR) loader/sparc64/ieee1275/$(DEPDIR) mmap/$(DEPDIR) mmap/efi/$(DEPDIR) mmap/i386/$(DEPDIR) mmap/i386/pc/$(DEPDIR) mmap/mips/$(DEPDIR) net/$(DEPDIR) net/drivers/efi/$(DEPDIR) net/drivers/emu/$(DEPDIR) net/drivers/i386/pc/$(DEPDIR) net/drivers/ieee1275/$(DEPDIR) net/drivers/uboot/$(DEPDIR) normal/$(DEPDIR) osdep/$(DEPDIR) osdep/devmapper/$(DEPDIR) osdep/unix/$(DEPDIR) partmap/$(DEPDIR) parttool/$(DEPDIR) script/$(DEPDIR) term/$(DEPDIR) term/arc/$(DEPDIR) term/efi/$(DEPDIR) term/i386/coreboot/$(DEPDIR) term/i386/pc/$(DEPDIR) term/ieee1275/$(DEPDIR) term/uboot/$(DEPDIR) term/xen/$(DEPDIR) tests/$(DEPDIR) tests/lib/$(DEPDIR) video/$(DEPDIR) video/emu/$(DEPDIR) video/fb/$(DEPDIR) video/i386/coreboot/$(DEPDIR) video/i386/pc/$(DEPDIR) video/readers/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@ -38675,7 +38724,7 @@ install-ps-am:
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR) boot/decompressor/$(DEPDIR) boot/i386/pc/$(DEPDIR) boot/i386/qemu/$(DEPDIR) boot/mips/$(DEPDIR) boot/mips/loongson/$(DEPDIR) boot/sparc64/ieee1275/$(DEPDIR) bus/$(DEPDIR) bus/emu/$(DEPDIR) bus/i386/ieee1275/$(DEPDIR) bus/usb/$(DEPDIR) bus/usb/serial/$(DEPDIR) commands/$(DEPDIR) commands/arc/$(DEPDIR) commands/efi/$(DEPDIR) commands/i386/$(DEPDIR) commands/i386/coreboot/$(DEPDIR) commands/i386/pc/$(DEPDIR) commands/ieee1275/$(DEPDIR) commands/mips/loongson/$(DEPDIR) commands/xen/$(DEPDIR) disk/$(DEPDIR) disk/arc/$(DEPDIR) disk/efi/$(DEPDIR) disk/i386/pc/$(DEPDIR) disk/ieee1275/$(DEPDIR) disk/uboot/$(DEPDIR) disk/xen/$(DEPDIR) efiemu/$(DEPDIR) efiemu/i386/$(DEPDIR) efiemu/i386/pc/$(DEPDIR) font/$(DEPDIR) fs/$(DEPDIR) fs/zfs/$(DEPDIR) gdb/$(DEPDIR) gdb/i386/$(DEPDIR) gettext/$(DEPDIR) gfxmenu/$(DEPDIR) gnulib/$(DEPDIR) hello/$(DEPDIR) hook/$(DEPDIR) io/$(DEPDIR) kern/$(DEPDIR) kern/arm/$(DEPDIR) kern/arm/efi/$(DEPDIR) kern/arm/uboot/$(DEPDIR) kern/arm64/$(DEPDIR) kern/arm64/efi/$(DEPDIR) kern/efi/$(DEPDIR) kern/emu/$(DEPDIR) kern/generic/$(DEPDIR) kern/i386/$(DEPDIR) kern/i386/coreboot/$(DEPDIR) kern/i386/efi/$(DEPDIR) kern/i386/ieee1275/$(DEPDIR) kern/i386/pc/$(DEPDIR) kern/i386/qemu/$(DEPDIR) kern/i386/xen/$(DEPDIR) kern/ia64/$(DEPDIR) kern/ia64/efi/$(DEPDIR) kern/ieee1275/$(DEPDIR) kern/mips/$(DEPDIR) kern/mips/arc/$(DEPDIR) kern/mips/loongson/$(DEPDIR) kern/mips/qemu_mips/$(DEPDIR) kern/powerpc/$(DEPDIR) kern/powerpc/ieee1275/$(DEPDIR) kern/sparc64/$(DEPDIR) kern/sparc64/ieee1275/$(DEPDIR) kern/uboot/$(DEPDIR) kern/x86_64/$(DEPDIR) kern/x86_64/efi/$(DEPDIR) kern/x86_64/xen/$(DEPDIR) kern/xen/$(DEPDIR) lib/$(DEPDIR) lib/arc/$(DEPDIR) lib/efi/$(DEPDIR) lib/emu/$(DEPDIR) lib/i386/$(DEPDIR) lib/i386/pc/$(DEPDIR) lib/i386/xen/$(DEPDIR) lib/ieee1275/$(DEPDIR) lib/libgcrypt-grub/cipher/$(DEPDIR) lib/libgcrypt-grub/mpi/$(DEPDIR) lib/libgcrypt_wrap/$(DEPDIR) lib/minilzo/$(DEPDIR) lib/mips/$(DEPDIR) lib/mips/arc/$(DEPDIR) lib/mips/loongson/$(DEPDIR) lib/mips/qemu_mips/$(DEPDIR) lib/powerpc/$(DEPDIR) lib/uboot/$(DEPDIR) lib/x86_64/$(DEPDIR) lib/x86_64/xen/$(DEPDIR) lib/xen/$(DEPDIR) lib/xzembed/$(DEPDIR) loader/$(DEPDIR) loader/arm/$(DEPDIR) loader/arm64/$(DEPDIR) loader/efi/$(DEPDIR) loader/i386/$(DEPDIR) loader/i386/coreboot/$(DEPDIR) loader/i386/pc/$(DEPDIR) loader/ia64/efi/$(DEPDIR) loader/mips/$(DEPDIR) loader/powerpc/ieee1275/$(DEPDIR) loader/sparc64/ieee1275/$(DEPDIR) mmap/$(DEPDIR) mmap/efi/$(DEPDIR) mmap/i386/$(DEPDIR) mmap/i386/pc/$(DEPDIR) mmap/mips/$(DEPDIR) net/$(DEPDIR) net/drivers/efi/$(DEPDIR) net/drivers/emu/$(DEPDIR) net/drivers/i386/pc/$(DEPDIR) net/drivers/ieee1275/$(DEPDIR) net/drivers/uboot/$(DEPDIR) normal/$(DEPDIR) osdep/$(DEPDIR) osdep/devmapper/$(DEPDIR) osdep/unix/$(DEPDIR) partmap/$(DEPDIR) parttool/$(DEPDIR) script/$(DEPDIR) term/$(DEPDIR) term/arc/$(DEPDIR) term/efi/$(DEPDIR) term/i386/coreboot/$(DEPDIR) term/i386/pc/$(DEPDIR) term/ieee1275/$(DEPDIR) term/uboot/$(DEPDIR) term/xen/$(DEPDIR) tests/$(DEPDIR) tests/lib/$(DEPDIR) video/$(DEPDIR) video/emu/$(DEPDIR) video/fb/$(DEPDIR) video/i386/coreboot/$(DEPDIR) video/i386/pc/$(DEPDIR) video/readers/$(DEPDIR)
|
||||
-rm -rf ./$(DEPDIR) boot/decompressor/$(DEPDIR) boot/i386/pc/$(DEPDIR) boot/i386/qemu/$(DEPDIR) boot/mips/$(DEPDIR) boot/mips/loongson/$(DEPDIR) boot/sparc64/ieee1275/$(DEPDIR) bus/$(DEPDIR) bus/emu/$(DEPDIR) bus/i386/ieee1275/$(DEPDIR) bus/usb/$(DEPDIR) bus/usb/serial/$(DEPDIR) commands/$(DEPDIR) commands/arc/$(DEPDIR) commands/efi/$(DEPDIR) commands/i386/$(DEPDIR) commands/i386/coreboot/$(DEPDIR) commands/i386/pc/$(DEPDIR) commands/ieee1275/$(DEPDIR) commands/mips/loongson/$(DEPDIR) commands/xen/$(DEPDIR) disk/$(DEPDIR) disk/arc/$(DEPDIR) disk/efi/$(DEPDIR) disk/i386/pc/$(DEPDIR) disk/ieee1275/$(DEPDIR) disk/uboot/$(DEPDIR) disk/xen/$(DEPDIR) efiemu/$(DEPDIR) efiemu/i386/$(DEPDIR) efiemu/i386/pc/$(DEPDIR) font/$(DEPDIR) fs/$(DEPDIR) fs/zfs/$(DEPDIR) gdb/$(DEPDIR) gdb/i386/$(DEPDIR) gettext/$(DEPDIR) gfxmenu/$(DEPDIR) gnulib/$(DEPDIR) hello/$(DEPDIR) hook/$(DEPDIR) io/$(DEPDIR) kern/$(DEPDIR) kern/arm/$(DEPDIR) kern/arm/efi/$(DEPDIR) kern/arm/uboot/$(DEPDIR) kern/arm64/$(DEPDIR) kern/arm64/efi/$(DEPDIR) kern/efi/$(DEPDIR) kern/emu/$(DEPDIR) kern/generic/$(DEPDIR) kern/i386/$(DEPDIR) kern/i386/coreboot/$(DEPDIR) kern/i386/efi/$(DEPDIR) kern/i386/ieee1275/$(DEPDIR) kern/i386/pc/$(DEPDIR) kern/i386/qemu/$(DEPDIR) kern/i386/xen/$(DEPDIR) kern/ia64/$(DEPDIR) kern/ia64/efi/$(DEPDIR) kern/ieee1275/$(DEPDIR) kern/mips/$(DEPDIR) kern/mips/arc/$(DEPDIR) kern/mips/loongson/$(DEPDIR) kern/mips/qemu_mips/$(DEPDIR) kern/powerpc/$(DEPDIR) kern/powerpc/ieee1275/$(DEPDIR) kern/sparc64/$(DEPDIR) kern/sparc64/ieee1275/$(DEPDIR) kern/uboot/$(DEPDIR) kern/x86_64/$(DEPDIR) kern/x86_64/efi/$(DEPDIR) kern/x86_64/xen/$(DEPDIR) kern/xen/$(DEPDIR) lib/$(DEPDIR) lib/arc/$(DEPDIR) lib/efi/$(DEPDIR) lib/emu/$(DEPDIR) lib/i386/$(DEPDIR) lib/i386/pc/$(DEPDIR) lib/i386/xen/$(DEPDIR) lib/ieee1275/$(DEPDIR) lib/libgcrypt-grub/cipher/$(DEPDIR) lib/libgcrypt-grub/mpi/$(DEPDIR) lib/libgcrypt_wrap/$(DEPDIR) lib/minilzo/$(DEPDIR) lib/mips/$(DEPDIR) lib/mips/arc/$(DEPDIR) lib/mips/loongson/$(DEPDIR) lib/mips/qemu_mips/$(DEPDIR) lib/powerpc/$(DEPDIR) lib/uboot/$(DEPDIR) lib/x86_64/$(DEPDIR) lib/x86_64/efi/$(DEPDIR) lib/x86_64/xen/$(DEPDIR) lib/xen/$(DEPDIR) lib/xzembed/$(DEPDIR) loader/$(DEPDIR) loader/arm/$(DEPDIR) loader/arm64/$(DEPDIR) loader/efi/$(DEPDIR) loader/i386/$(DEPDIR) loader/i386/coreboot/$(DEPDIR) loader/i386/pc/$(DEPDIR) loader/ia64/efi/$(DEPDIR) loader/mips/$(DEPDIR) loader/powerpc/ieee1275/$(DEPDIR) loader/sparc64/ieee1275/$(DEPDIR) mmap/$(DEPDIR) mmap/efi/$(DEPDIR) mmap/i386/$(DEPDIR) mmap/i386/pc/$(DEPDIR) mmap/mips/$(DEPDIR) net/$(DEPDIR) net/drivers/efi/$(DEPDIR) net/drivers/emu/$(DEPDIR) net/drivers/i386/pc/$(DEPDIR) net/drivers/ieee1275/$(DEPDIR) net/drivers/uboot/$(DEPDIR) normal/$(DEPDIR) osdep/$(DEPDIR) osdep/devmapper/$(DEPDIR) osdep/unix/$(DEPDIR) partmap/$(DEPDIR) parttool/$(DEPDIR) script/$(DEPDIR) term/$(DEPDIR) term/arc/$(DEPDIR) term/efi/$(DEPDIR) term/i386/coreboot/$(DEPDIR) term/i386/pc/$(DEPDIR) term/ieee1275/$(DEPDIR) term/uboot/$(DEPDIR) term/xen/$(DEPDIR) tests/$(DEPDIR) tests/lib/$(DEPDIR) video/$(DEPDIR) video/emu/$(DEPDIR) video/fb/$(DEPDIR) video/i386/coreboot/$(DEPDIR) video/i386/pc/$(DEPDIR) video/readers/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
@ -761,10 +761,10 @@ grub_cmd_acpi (struct grub_extcmd_context *ctxt, int argc, char **args)
|
||||
struct grub_efi_guid acpi = GRUB_EFI_ACPI_TABLE_GUID;
|
||||
struct grub_efi_guid acpi20 = GRUB_EFI_ACPI_20_TABLE_GUID;
|
||||
|
||||
grub_efi_system_table->boot_services->install_configuration_table
|
||||
(&acpi20, grub_acpi_get_rsdpv2 ());
|
||||
grub_efi_system_table->boot_services->install_configuration_table
|
||||
(&acpi, grub_acpi_get_rsdpv1 ());
|
||||
efi_call_2 (grub_efi_system_table->boot_services->install_configuration_table,
|
||||
&acpi20, grub_acpi_get_rsdpv2 ());
|
||||
efi_call_2 (grub_efi_system_table->boot_services->install_configuration_table,
|
||||
&acpi, grub_acpi_get_rsdpv1 ());
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -328,6 +328,7 @@ grub_cmd_hdparm (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
ata = ((struct grub_scsi *) disk->data)->data;
|
||||
break;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
grub_disk_close (disk);
|
||||
return grub_error (GRUB_ERR_IO, "not an ATA device");
|
||||
|
@ -517,7 +517,7 @@ grub_cmd_legacy_initrd (struct grub_command *mycmd __attribute__ ((unused)),
|
||||
#endif
|
||||
);
|
||||
|
||||
return cmd->func (cmd, argc, args);
|
||||
return cmd->func (cmd, argc ? 1 : 0, args);
|
||||
}
|
||||
if (kernel_type == MULTIBOOT)
|
||||
{
|
||||
|
@ -79,6 +79,7 @@ get_uuid (const char *name, char **uuid, int getnative)
|
||||
case GRUB_DISK_DEVICE_XEN:
|
||||
if (getnative)
|
||||
break;
|
||||
/* FALLTHROUGH */
|
||||
|
||||
/* Virtual disks. */
|
||||
/* GRUB dynamically generated files. */
|
||||
|
@ -282,6 +282,7 @@ grub_cryptodisk_endecrypt (struct grub_cryptodisk *dev,
|
||||
break;
|
||||
case GRUB_CRYPTODISK_MODE_IV_PLAIN64:
|
||||
iv[1] = grub_cpu_to_le32 (sector >> 32);
|
||||
/* FALLTHROUGH */
|
||||
case GRUB_CRYPTODISK_MODE_IV_PLAIN:
|
||||
iv[0] = grub_cpu_to_le32 (sector & 0xFFFFFFFF);
|
||||
break;
|
||||
|
@ -80,6 +80,15 @@ make_devices (void)
|
||||
/* This should not happen... Why? */
|
||||
continue;
|
||||
|
||||
/* iPXE adds stub Block IO protocol to loaded image device handle. It is
|
||||
completely non-functional and simply returns an error for every method.
|
||||
So attempt to detect and skip it. Magic number is literal "iPXE" and
|
||||
check block size as well */
|
||||
/* FIXME: shoud we close it? We do not do it elsewhere */
|
||||
if (bio->media && bio->media->media_id == 0x69505845U &&
|
||||
bio->media->block_size == 1)
|
||||
continue;
|
||||
|
||||
d = grub_malloc (sizeof (*d));
|
||||
if (! d)
|
||||
{
|
||||
@ -215,7 +224,7 @@ name_devices (struct grub_efidisk_data *devices)
|
||||
{
|
||||
case GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE:
|
||||
is_hard_drive = 1;
|
||||
/* Fall through by intention. */
|
||||
/* Intentionally fall through. */
|
||||
case GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE:
|
||||
{
|
||||
struct grub_efidisk_data *parent, *parent2;
|
||||
|
@ -417,6 +417,7 @@ fill_hook (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type,
|
||||
default:
|
||||
grub_dprintf ("efiemu",
|
||||
"Unknown memory type %d. Assuming unusable\n", type);
|
||||
/* FALLTHROUGH */
|
||||
case GRUB_MEMORY_RESERVED:
|
||||
return grub_efiemu_add_to_mmap (addr, size,
|
||||
GRUB_EFI_UNUSABLE_MEMORY);
|
||||
|
@ -227,11 +227,11 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data,
|
||||
static grub_err_t
|
||||
read_sblock (grub_disk_t disk, struct grub_btrfs_superblock *sb)
|
||||
{
|
||||
struct grub_btrfs_superblock sblock;
|
||||
unsigned i;
|
||||
grub_err_t err = GRUB_ERR_NONE;
|
||||
for (i = 0; i < ARRAY_SIZE (superblock_sectors); i++)
|
||||
{
|
||||
struct grub_btrfs_superblock sblock;
|
||||
/* Don't try additional superblocks beyond device size. */
|
||||
if (i && (grub_le_to_cpu64 (sblock.this_device.size)
|
||||
>> GRUB_DISK_SECTOR_BITS) <= superblock_sectors[i])
|
||||
|
@ -189,7 +189,11 @@ struct grub_fshelp_node {
|
||||
struct grub_fat_data *data;
|
||||
|
||||
grub_uint8_t attr;
|
||||
grub_ssize_t file_size;
|
||||
#ifndef MODE_EXFAT
|
||||
grub_uint32_t file_size;
|
||||
#else
|
||||
grub_uint64_t file_size;
|
||||
#endif
|
||||
grub_uint32_t file_cluster;
|
||||
grub_uint32_t cur_cluster_num;
|
||||
grub_uint32_t cur_cluster;
|
||||
|
@ -750,19 +750,15 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir,
|
||||
|
||||
if (dir->data->joliet && !ctx.filename)
|
||||
{
|
||||
char *oldname, *semicolon;
|
||||
char *semicolon;
|
||||
|
||||
oldname = name;
|
||||
ctx.filename = grub_iso9660_convert_string
|
||||
((grub_uint8_t *) oldname, dirent.namelen >> 1);
|
||||
((grub_uint8_t *) name, dirent.namelen >> 1);
|
||||
|
||||
semicolon = grub_strrchr (ctx.filename, ';');
|
||||
if (semicolon)
|
||||
*semicolon = '\0';
|
||||
|
||||
if (ctx.filename_alloc)
|
||||
grub_free (oldname);
|
||||
|
||||
ctx.filename_alloc = 1;
|
||||
}
|
||||
|
||||
|
@ -823,7 +823,12 @@ direct_read (struct grub_squash_data *data,
|
||||
curread = data->blksz - boff;
|
||||
if (curread > len)
|
||||
curread = len;
|
||||
if (!(ino->block_sizes[i]
|
||||
if (!ino->block_sizes[i])
|
||||
{
|
||||
/* Sparse block */
|
||||
grub_memset (buf, '\0', curread);
|
||||
}
|
||||
else if (!(ino->block_sizes[i]
|
||||
& grub_cpu_to_le32_compile_time (SQUASH_BLOCK_UNCOMPRESSED)))
|
||||
{
|
||||
char *block;
|
||||
@ -873,36 +878,57 @@ direct_read (struct grub_squash_data *data,
|
||||
|
||||
|
||||
static grub_ssize_t
|
||||
grub_squash_read_data (struct grub_squash_data *data,
|
||||
struct grub_squash_cache_inode *ino,
|
||||
grub_off_t off, char *buf, grub_size_t len)
|
||||
grub_squash_read (grub_file_t file, char *buf, grub_size_t len)
|
||||
{
|
||||
struct grub_squash_data *data = file->data;
|
||||
struct grub_squash_cache_inode *ino = &data->ino;
|
||||
grub_off_t off = file->offset;
|
||||
grub_err_t err;
|
||||
grub_uint64_t a = 0, b;
|
||||
grub_uint64_t a, b;
|
||||
grub_uint32_t fragment = 0;
|
||||
int compressed = 0;
|
||||
struct grub_squash_frag_desc frag;
|
||||
grub_off_t direct_len;
|
||||
grub_uint64_t mask = grub_le_to_cpu32 (data->sb.block_size) - 1;
|
||||
grub_size_t orig_len = len;
|
||||
|
||||
switch (ino->ino.type)
|
||||
{
|
||||
case grub_cpu_to_le16_compile_time (SQUASH_TYPE_LONG_REGULAR):
|
||||
a = grub_le_to_cpu64 (ino->ino.long_file.chunk);
|
||||
fragment = grub_le_to_cpu32 (ino->ino.long_file.fragment);
|
||||
break;
|
||||
case grub_cpu_to_le16_compile_time (SQUASH_TYPE_REGULAR):
|
||||
a = grub_le_to_cpu32 (ino->ino.file.chunk);
|
||||
fragment = grub_le_to_cpu32 (ino->ino.file.fragment);
|
||||
break;
|
||||
}
|
||||
|
||||
if (fragment == 0xffffffff)
|
||||
return direct_read (data, ino, off, buf, len);
|
||||
/* Squash may pack file tail as fragment. So read initial part directly and
|
||||
get tail from fragments */
|
||||
direct_len = fragment == 0xffffffff ? file->size : file->size & ~mask;
|
||||
if (off < direct_len)
|
||||
{
|
||||
grub_size_t read_len = direct_len - off;
|
||||
grub_ssize_t res;
|
||||
|
||||
if (read_len > len)
|
||||
read_len = len;
|
||||
res = direct_read (data, ino, off, buf, read_len);
|
||||
if ((grub_size_t) res != read_len)
|
||||
return -1; /* FIXME: is short read possible here? */
|
||||
len -= read_len;
|
||||
if (!len)
|
||||
return read_len;
|
||||
buf += read_len;
|
||||
off = 0;
|
||||
}
|
||||
else
|
||||
off -= direct_len;
|
||||
|
||||
err = read_chunk (data, &frag, sizeof (frag),
|
||||
data->fragments, sizeof (frag) * fragment);
|
||||
if (err)
|
||||
return -1;
|
||||
a += grub_le_to_cpu64 (frag.offset);
|
||||
a = grub_le_to_cpu64 (frag.offset);
|
||||
compressed = !(frag.size & grub_cpu_to_le32_compile_time (SQUASH_BLOCK_UNCOMPRESSED));
|
||||
if (ino->ino.type == grub_cpu_to_le16_compile_time (SQUASH_TYPE_LONG_REGULAR))
|
||||
b = grub_le_to_cpu32 (ino->ino.long_file.offset) + off;
|
||||
@ -943,16 +969,7 @@ grub_squash_read_data (struct grub_squash_data *data,
|
||||
if (err)
|
||||
return -1;
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
static grub_ssize_t
|
||||
grub_squash_read (grub_file_t file, char *buf, grub_size_t len)
|
||||
{
|
||||
struct grub_squash_data *data = file->data;
|
||||
|
||||
return grub_squash_read_data (data, &data->ino,
|
||||
file->offset, buf, len);
|
||||
return orig_len;
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
|
@ -76,8 +76,13 @@ GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
/* incompat feature flags */
|
||||
#define XFS_SB_FEAT_INCOMPAT_FTYPE (1 << 0) /* filetype in dirent */
|
||||
#define XFS_SB_FEAT_INCOMPAT_SPINODES (1 << 1) /* sparse inode chunks */
|
||||
#define XFS_SB_FEAT_INCOMPAT_META_UUID (1 << 2) /* metadata UUID */
|
||||
|
||||
/* We do not currently verify metadata UUID so it is safe to read such filesystem */
|
||||
#define XFS_SB_FEAT_INCOMPAT_SUPPORTED \
|
||||
(XFS_SB_FEAT_INCOMPAT_FTYPE)
|
||||
(XFS_SB_FEAT_INCOMPAT_FTYPE | \
|
||||
XFS_SB_FEAT_INCOMPAT_META_UUID)
|
||||
|
||||
struct grub_xfs_sblock
|
||||
{
|
||||
|
@ -336,6 +336,7 @@ grub_gdb_trap (int trap_no)
|
||||
/* sAA..AA: Step one instruction from AA..AA(optional). */
|
||||
case 's':
|
||||
stepping = 1;
|
||||
/* FALLTHROUGH */
|
||||
|
||||
/* cAA..AA: Continue at address AA..AA(optional). */
|
||||
case 'c':
|
||||
|
@ -94,6 +94,6 @@ else
|
||||
rm -f $tmpfile.bin
|
||||
fi
|
||||
if test x@platform@ != xemu; then
|
||||
./build-grub-module-verifier@BUILD_EXEEXT@ $tmpfile @target_cpu@
|
||||
./build-grub-module-verifier@BUILD_EXEEXT@ $tmpfile @target_cpu@ @platform@
|
||||
fi
|
||||
mv $tmpfile $outfile
|
||||
|
@ -4099,6 +4099,9 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
|
||||
case OP_UTF8_PERIOD:
|
||||
if (ch >= ASCII_CHARS)
|
||||
return false;
|
||||
#if defined __GNUC__ && __GNUC__ >= 7
|
||||
__attribute__ ((fallthrough));
|
||||
#endif
|
||||
/* FALLTHROUGH */
|
||||
#endif
|
||||
case OP_PERIOD:
|
||||
|
@ -173,6 +173,8 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
sym_addr += grub_arm_thm_call_get_offset ((grub_uint16_t *) target);
|
||||
|
||||
grub_dprintf ("dl", " sym_addr = 0x%08x\n", sym_addr);
|
||||
if (ELF_ST_TYPE (sym->st_info) != STT_FUNC)
|
||||
sym_addr |= 1;
|
||||
|
||||
offset = sym_addr - (grub_uint32_t) target;
|
||||
|
||||
@ -227,13 +229,16 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
|
||||
sym_addr += grub_arm_thm_jump19_get_offset ((grub_uint16_t *) target);
|
||||
|
||||
if (ELF_ST_TYPE (sym->st_info) != STT_FUNC)
|
||||
sym_addr |= 1;
|
||||
|
||||
offset = sym_addr - (grub_uint32_t) target;
|
||||
|
||||
if (!grub_arm_thm_jump19_check_offset (offset)
|
||||
|| !(sym_addr & 1))
|
||||
{
|
||||
struct trampoline_thumb *tp = mod->gotptr;
|
||||
mod->gotptr = tp + 1;
|
||||
struct trampoline_thumb *tp = mod->trampptr;
|
||||
mod->trampptr = tp + 1;
|
||||
grub_memcpy (tp->template, thumb_template, sizeof (tp->template));
|
||||
tp->neg_addr = -sym_addr - 4;
|
||||
offset = ((grub_uint8_t *) tp - (grub_uint8_t *) target - 4) | 1;
|
||||
|
@ -25,14 +25,9 @@
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/cpu/reloc.h>
|
||||
|
||||
struct trampoline
|
||||
{
|
||||
#define LDR 0x58000050
|
||||
#define BR 0xd61f0200
|
||||
grub_uint32_t ldr; /* ldr x16, 8 */
|
||||
grub_uint32_t br; /* br x16 */
|
||||
grub_uint64_t addr;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Check if EHDR is a valid ELF header.
|
||||
@ -53,42 +48,6 @@ grub_arch_dl_check_header (void *ehdr)
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wcast-align"
|
||||
|
||||
grub_err_t
|
||||
grub_arch_dl_get_tramp_got_size (const void *ehdr, grub_size_t *tramp,
|
||||
grub_size_t *got)
|
||||
{
|
||||
const Elf_Ehdr *e = ehdr;
|
||||
const Elf_Shdr *s;
|
||||
unsigned i;
|
||||
|
||||
*tramp = 0;
|
||||
*got = 0;
|
||||
|
||||
for (i = 0, s = (const Elf_Shdr *) ((grub_addr_t) e + e->e_shoff);
|
||||
i < e->e_shnum;
|
||||
i++, s = (const Elf_Shdr *) ((grub_addr_t) s + e->e_shentsize))
|
||||
if (s->sh_type == SHT_REL || s->sh_type == SHT_RELA)
|
||||
{
|
||||
const Elf_Rel *rel, *max;
|
||||
|
||||
for (rel = (const Elf_Rel *) ((grub_addr_t) e + s->sh_offset),
|
||||
max = rel + s->sh_size / s->sh_entsize;
|
||||
rel < max;
|
||||
rel = (const Elf_Rel *) ((grub_addr_t) rel + s->sh_entsize))
|
||||
switch (ELF_R_TYPE (rel->r_info))
|
||||
{
|
||||
case R_AARCH64_CALL26:
|
||||
case R_AARCH64_JUMP26:
|
||||
{
|
||||
*tramp += sizeof (struct trampoline);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Unified function for both REL and RELA
|
||||
*/
|
||||
@ -97,6 +56,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
Elf_Shdr *s, grub_dl_segment_t seg)
|
||||
{
|
||||
Elf_Rel *rel, *max;
|
||||
unsigned unmatched_adr_got_page = 0;
|
||||
|
||||
for (rel = (Elf_Rel *) ((char *) ehdr + s->sh_offset),
|
||||
max = (Elf_Rel *) ((char *) rel + s->sh_size);
|
||||
@ -145,7 +105,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
|
||||
if (!grub_arm_64_check_xxxx26_offset (offset))
|
||||
{
|
||||
struct trampoline *tp = mod->trampptr;
|
||||
struct grub_arm64_trampoline *tp = mod->trampptr;
|
||||
mod->trampptr = tp + 1;
|
||||
tp->ldr = LDR;
|
||||
tp->br = BR;
|
||||
@ -160,6 +120,56 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
grub_arm64_set_xxxx26_offset (place, offset);
|
||||
}
|
||||
break;
|
||||
case R_AARCH64_PREL32:
|
||||
{
|
||||
grub_int64_t value;
|
||||
Elf64_Word *addr32 = place;
|
||||
value = ((grub_int32_t) *addr32) + sym_addr -
|
||||
(Elf64_Xword) (grub_addr_t) seg->addr - rel->r_offset;
|
||||
if (value != (grub_int32_t) value)
|
||||
return grub_error (GRUB_ERR_BAD_MODULE, "relocation out of range");
|
||||
grub_dprintf("dl", " reloc_prel32 %p => 0x%016llx\n",
|
||||
place, (unsigned long long) sym_addr);
|
||||
*addr32 = value;
|
||||
}
|
||||
break;
|
||||
case R_AARCH64_ADR_GOT_PAGE:
|
||||
{
|
||||
grub_uint64_t *gp = mod->gotptr;
|
||||
Elf_Rela *rel2;
|
||||
grub_int64_t gpoffset = ((grub_uint64_t) gp & ~0xfffULL) - (((grub_uint64_t) place) & ~0xfffULL);
|
||||
*gp = (grub_uint64_t) sym_addr;
|
||||
mod->gotptr = gp + 1;
|
||||
unmatched_adr_got_page++;
|
||||
grub_dprintf("dl", " reloc_got %p => 0x%016llx (0x%016llx)\n",
|
||||
place, (unsigned long long) sym_addr, (unsigned long long) gp);
|
||||
if (!grub_arm64_check_hi21_signed (gpoffset))
|
||||
return grub_error (GRUB_ERR_BAD_MODULE,
|
||||
"HI21 out of range");
|
||||
grub_arm64_set_hi21(place, gpoffset);
|
||||
for (rel2 = (Elf_Rela *) ((char *) rel + s->sh_entsize);
|
||||
rel2 < (Elf_Rela *) max;
|
||||
rel2 = (Elf_Rela *) ((char *) rel2 + s->sh_entsize))
|
||||
if (ELF_R_SYM (rel2->r_info)
|
||||
== ELF_R_SYM (rel->r_info)
|
||||
&& ((Elf_Rela *) rel)->r_addend == rel2->r_addend
|
||||
&& ELF_R_TYPE (rel2->r_info) == R_AARCH64_LD64_GOT_LO12_NC)
|
||||
{
|
||||
grub_arm64_set_abs_lo12_ldst64 ((void *) ((grub_addr_t) seg->addr + rel2->r_offset),
|
||||
(grub_uint64_t)gp);
|
||||
break;
|
||||
}
|
||||
if (rel2 >= (Elf_Rela *) max)
|
||||
return grub_error (GRUB_ERR_BAD_MODULE,
|
||||
"ADR_GOT_PAGE without matching LD64_GOT_LO12_NC");
|
||||
}
|
||||
break;
|
||||
case R_AARCH64_LD64_GOT_LO12_NC:
|
||||
if (unmatched_adr_got_page == 0)
|
||||
return grub_error (GRUB_ERR_BAD_MODULE,
|
||||
"LD64_GOT_LO12_NC without matching ADR_GOT_PAGE");
|
||||
unmatched_adr_got_page--;
|
||||
break;
|
||||
case R_AARCH64_ADR_PREL_PG_HI21:
|
||||
{
|
||||
grub_int64_t offset = (sym_addr & ~0xfffULL) - (((grub_uint64_t) place) & ~0xfffULL);
|
||||
|
@ -93,3 +93,42 @@ grub_arm64_set_abs_lo12_ldst64 (grub_uint32_t *place, grub_int64_t target)
|
||||
*place &= insmask;
|
||||
*place |= grub_cpu_to_le32 (target << 7) & ~insmask;
|
||||
}
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wcast-align"
|
||||
|
||||
grub_err_t
|
||||
grub_arm64_dl_get_tramp_got_size (const void *ehdr, grub_size_t *tramp,
|
||||
grub_size_t *got)
|
||||
{
|
||||
const Elf64_Ehdr *e = ehdr;
|
||||
const Elf64_Shdr *s;
|
||||
unsigned i;
|
||||
|
||||
*tramp = 0;
|
||||
*got = 0;
|
||||
|
||||
for (i = 0, s = (Elf64_Shdr *) ((char *) e + grub_le_to_cpu64 (e->e_shoff));
|
||||
i < grub_le_to_cpu16 (e->e_shnum);
|
||||
i++, s = (Elf64_Shdr *) ((char *) s + grub_le_to_cpu16 (e->e_shentsize)))
|
||||
if (s->sh_type == grub_cpu_to_le32_compile_time (SHT_REL)
|
||||
|| s->sh_type == grub_cpu_to_le32_compile_time (SHT_RELA))
|
||||
{
|
||||
const Elf64_Rela *rel, *max;
|
||||
|
||||
for (rel = (Elf64_Rela *) ((char *) e + grub_le_to_cpu64 (s->sh_offset)),
|
||||
max = (const Elf64_Rela *) ((char *) rel + grub_le_to_cpu64 (s->sh_size));
|
||||
rel < max; rel = (const Elf64_Rela *) ((char *) rel + grub_le_to_cpu64 (s->sh_entsize)))
|
||||
switch (ELF64_R_TYPE (rel->r_info))
|
||||
{
|
||||
case R_AARCH64_CALL26:
|
||||
case R_AARCH64_JUMP26:
|
||||
*tramp += sizeof (struct grub_arm64_trampoline);
|
||||
break;
|
||||
case R_AARCH64_ADR_GOT_PAGE:
|
||||
*got += 8;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
@ -366,6 +366,9 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0)
|
||||
len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4)
|
||||
/ sizeof (grub_efi_char16_t));
|
||||
fp = (grub_efi_file_path_device_path_t *) dp;
|
||||
/* According to EFI spec Path Name is NULL terminated */
|
||||
while (len > 0 && fp->path_name[len - 1] == 0)
|
||||
len--;
|
||||
|
||||
p = (char *) grub_utf16_to_utf8 ((unsigned char *) p, fp->path_name, len);
|
||||
}
|
||||
|
43
grub-core/kern/efi/fdt.c
Normal file
43
grub-core/kern/efi/fdt.c
Normal file
@ -0,0 +1,43 @@
|
||||
/* fdt.c - EFI Flattened Device Tree interaction */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2006,2007 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/efi/efi.h>
|
||||
#include <grub/mm.h>
|
||||
|
||||
void *
|
||||
grub_efi_get_firmware_fdt (void)
|
||||
{
|
||||
grub_efi_configuration_table_t *tables;
|
||||
grub_efi_guid_t fdt_guid = GRUB_EFI_DEVICE_TREE_GUID;
|
||||
void *firmware_fdt = NULL;
|
||||
unsigned int i;
|
||||
|
||||
/* Look for FDT in UEFI config tables. */
|
||||
tables = grub_efi_system_table->configuration_table;
|
||||
|
||||
for (i = 0; i < grub_efi_system_table->num_table_entries; i++)
|
||||
if (grub_memcmp (&tables[i].vendor_guid, &fdt_guid, sizeof (fdt_guid)) == 0)
|
||||
{
|
||||
firmware_fdt = tables[i].vendor_table;
|
||||
grub_dprintf ("linux", "found registered FDT @ %p\n", firmware_fdt);
|
||||
break;
|
||||
}
|
||||
|
||||
return firmware_fdt;
|
||||
}
|
@ -59,10 +59,13 @@ grub_machine_get_bootlocation (char **device, char **path)
|
||||
if (!image)
|
||||
return;
|
||||
*device = grub_efidisk_get_device_name (image->device_handle);
|
||||
*path = grub_efi_get_filename (image->file_path);
|
||||
if (!*device && grub_efi_net_config)
|
||||
grub_efi_net_config (image->device_handle, device, path);
|
||||
{
|
||||
grub_efi_net_config (image->device_handle, device, path);
|
||||
return;
|
||||
}
|
||||
|
||||
*path = grub_efi_get_filename (image->file_path);
|
||||
if (*path)
|
||||
{
|
||||
/* Get the directory. */
|
||||
|
@ -63,6 +63,7 @@ void
|
||||
grub_reboot (void)
|
||||
{
|
||||
longjmp (main_env, 1);
|
||||
grub_fatal ("longjmp failed");
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -127,6 +127,7 @@ xasprintf (const char *fmt, ...)
|
||||
|
||||
va_start (ap, fmt);
|
||||
result = grub_xvasprintf (fmt, ap);
|
||||
va_end (ap);
|
||||
if (!result)
|
||||
grub_util_error ("%s", _("out of memory"));
|
||||
|
||||
|
@ -104,6 +104,9 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
case R_IA64_PCREL64LSB:
|
||||
*(grub_uint64_t *) addr += value - addr;
|
||||
break;
|
||||
case R_IA64_GPREL64I:
|
||||
grub_ia64_set_immu64 (addr, value - (grub_addr_t) mod->base);
|
||||
break;
|
||||
case R_IA64_GPREL22:
|
||||
if ((value - (grub_addr_t) mod->base) & ~MASK20)
|
||||
return grub_error (GRUB_ERR_BAD_MODULE,
|
||||
@ -116,6 +119,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
case R_IA64_LTOFF22:
|
||||
if (ELF_ST_TYPE (sym->st_info) == STT_FUNC)
|
||||
value = *(grub_uint64_t *) sym->st_value + rel->r_addend;
|
||||
/* Fallthrough. */
|
||||
case R_IA64_LTOFF_FPTR22:
|
||||
{
|
||||
grub_uint64_t *gpptr = mod->gotptr;
|
||||
|
@ -30,6 +30,40 @@
|
||||
#define MASK20 ((1 << 20) - 1)
|
||||
#define MASK3 (~(grub_addr_t) 3)
|
||||
|
||||
void
|
||||
grub_ia64_set_immu64 (grub_addr_t addr, grub_uint64_t val)
|
||||
{
|
||||
/* Copied from binutils. */
|
||||
grub_uint64_t *ptr = ((grub_uint64_t *) (addr & MASK3));
|
||||
grub_uint64_t t0, t1;
|
||||
|
||||
t0 = grub_le_to_cpu64 (ptr[0]);
|
||||
t1 = grub_le_to_cpu64 (ptr[1]);
|
||||
|
||||
/* tmpl/s: bits 0.. 5 in t0
|
||||
slot 0: bits 5..45 in t0
|
||||
slot 1: bits 46..63 in t0, bits 0..22 in t1
|
||||
slot 2: bits 23..63 in t1 */
|
||||
|
||||
/* First, clear the bits that form the 64 bit constant. */
|
||||
t0 &= ~(0x3ffffLL << 46);
|
||||
t1 &= ~(0x7fffffLL
|
||||
| (( (0x07fLL << 13) | (0x1ffLL << 27)
|
||||
| (0x01fLL << 22) | (0x001LL << 21)
|
||||
| (0x001LL << 36)) << 23));
|
||||
|
||||
t0 |= ((val >> 22) & 0x03ffffLL) << 46; /* 18 lsbs of imm41 */
|
||||
t1 |= ((val >> 40) & 0x7fffffLL) << 0; /* 23 msbs of imm41 */
|
||||
t1 |= ( (((val >> 0) & 0x07f) << 13) /* imm7b */
|
||||
| (((val >> 7) & 0x1ff) << 27) /* imm9d */
|
||||
| (((val >> 16) & 0x01f) << 22) /* imm5c */
|
||||
| (((val >> 21) & 0x001) << 21) /* ic */
|
||||
| (((val >> 63) & 0x001) << 36)) << 23; /* i */
|
||||
|
||||
ptr[0] = t0;
|
||||
ptr[1] = t1;
|
||||
}
|
||||
|
||||
void
|
||||
grub_ia64_add_value_to_slot_20b (grub_addr_t addr, grub_uint32_t value)
|
||||
{
|
||||
@ -182,11 +216,11 @@ grub_ia64_dl_get_tramp_got_size (const void *ehdr, grub_size_t *tramp,
|
||||
i++, s = (Elf64_Shdr *) ((char *) s + grub_le_to_cpu16 (e->e_shentsize)))
|
||||
if (s->sh_type == grub_cpu_to_le32_compile_time (SHT_RELA))
|
||||
{
|
||||
Elf64_Rela *rel, *max;
|
||||
const Elf64_Rela *rel, *max;
|
||||
|
||||
for (rel = (Elf64_Rela *) ((char *) e + grub_le_to_cpu64 (s->sh_offset)),
|
||||
max = rel + grub_le_to_cpu64 (s->sh_size) / grub_le_to_cpu64 (s->sh_entsize);
|
||||
rel < max; rel++)
|
||||
max = (const Elf64_Rela *) ((char *) rel + grub_le_to_cpu64 (s->sh_size));
|
||||
rel < max; rel = (const Elf64_Rela *) ((char *) rel + grub_le_to_cpu64 (s->sh_entsize)))
|
||||
switch (ELF64_R_TYPE (grub_le_to_cpu64 (rel->r_info)))
|
||||
{
|
||||
case R_IA64_PCREL21B:
|
||||
|
@ -236,6 +236,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
sym_value &= 0xffff0000;
|
||||
*(grub_uint16_t *) addr = 0;
|
||||
}
|
||||
/* Fallthrough. */
|
||||
case R_MIPS_CALL16:
|
||||
{
|
||||
grub_uint32_t *gpptr = mod->gotptr;
|
||||
|
@ -159,6 +159,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
if (value >> 32)
|
||||
return grub_error (GRUB_ERR_BAD_MODULE,
|
||||
"address out of 32 bits range");
|
||||
/* Fallthrough. */
|
||||
case R_SPARC_LM22:
|
||||
*addr = (*addr & 0xFFC00000) | ((value >> 10) & 0x3FFFFF);
|
||||
break;
|
||||
|
@ -73,6 +73,22 @@ VARIABLE(grub_relocator64_rsp)
|
||||
|
||||
movq %rax, %rsp
|
||||
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
jmp LOCAL(skip_efi_stack_align)
|
||||
|
||||
/*
|
||||
* Here is grub_relocator64_efi_start() entry point. Most of the
|
||||
* code below is shared between grub_relocator64_efi_start()
|
||||
* and grub_relocator64_start().
|
||||
*
|
||||
* Think twice before changing anything there!!!
|
||||
*/
|
||||
VARIABLE(grub_relocator64_efi_start)
|
||||
/* Align the stack as UEFI spec requires. */
|
||||
andq $~15, %rsp
|
||||
|
||||
LOCAL(skip_efi_stack_align):
|
||||
#endif
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
@ -120,6 +136,11 @@ LOCAL(jump_addr):
|
||||
VARIABLE(grub_relocator64_rip)
|
||||
.quad 0
|
||||
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
/* Here grub_relocator64_efi_start() ends. Ufff... */
|
||||
VARIABLE(grub_relocator64_efi_end)
|
||||
#endif
|
||||
|
||||
#ifndef __x86_64__
|
||||
.p2align 4
|
||||
LOCAL(gdt):
|
||||
|
@ -16,6 +16,8 @@
|
||||
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/i386/memory.h>
|
||||
#include <grub/i386/types.h>
|
||||
#include <grub/symbol.h>
|
||||
#include <grub/xen.h>
|
||||
|
||||
@ -23,78 +25,86 @@
|
||||
|
||||
VARIABLE(grub_relocator_xen_remap_start)
|
||||
LOCAL(base):
|
||||
/* mov imm32, %ebx */
|
||||
/* Remap the remapper to it's new address. */
|
||||
/* mov imm32, %ebx - %ebx: new virtual address of remapper */
|
||||
.byte 0xbb
|
||||
VARIABLE(grub_relocator_xen_remapper_virt)
|
||||
.long 0
|
||||
|
||||
/* mov imm32, %ecx */
|
||||
/* mov imm32, %ecx - %ecx: low part of page table entry */
|
||||
.byte 0xb9
|
||||
VARIABLE(grub_relocator_xen_remapper_map)
|
||||
.long 0
|
||||
|
||||
/* mov imm32, %edx */
|
||||
/* mov imm32, %edx - %edx: high part of page table entry */
|
||||
.byte 0xba
|
||||
VARIABLE(grub_relocator_xen_remapper_map_high)
|
||||
.long 0
|
||||
|
||||
movl %ebx, %ebp
|
||||
movl %ebx, %ebp /* %ebx is clobbered by hypercall */
|
||||
|
||||
movl $2, %esi
|
||||
movl $UVMF_INVLPG, %esi /* esi: flags (inv. single entry) */
|
||||
movl $__HYPERVISOR_update_va_mapping, %eax
|
||||
int $0x82
|
||||
|
||||
movl %ebp, %ebx
|
||||
addl $(LOCAL(cont) - LOCAL(base)), %ebx
|
||||
|
||||
jmp *%ebx
|
||||
jmp *%ebx /* Continue with new virtual address */
|
||||
|
||||
LOCAL(cont):
|
||||
xorl %eax, %eax
|
||||
movl %eax, %ebp
|
||||
/* Modify mappings of new page tables to be read-only. */
|
||||
/* mov imm32, %eax */
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_paging_areas_addr)
|
||||
.long 0
|
||||
movl %eax, %ebx
|
||||
1:
|
||||
movl 0(%ebx), %ebp /* Get start pfn of the current area */
|
||||
movl GRUB_TARGET_SIZEOF_LONG(%ebx), %ecx /* Get # of pg tables */
|
||||
testl %ecx, %ecx /* 0 -> last area reached */
|
||||
jz 3f
|
||||
addl $(2 * GRUB_TARGET_SIZEOF_LONG), %ebx
|
||||
movl %ebx, %esp /* Save current area pointer */
|
||||
|
||||
2:
|
||||
movl %ecx, %edi
|
||||
/* mov imm32, %eax */
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_mfn_list)
|
||||
.long 0
|
||||
movl %eax, %edi
|
||||
movl %ebp, %eax
|
||||
movl 0(%edi, %eax, 4), %ecx
|
||||
|
||||
/* mov imm32, %ebx */
|
||||
.byte 0xbb
|
||||
VARIABLE(grub_relocator_xen_paging_start)
|
||||
.long 0
|
||||
shll $12, %eax
|
||||
addl %eax, %ebx
|
||||
movl 0(%eax, %ebp, 4), %ecx /* mfn */
|
||||
movl %ebp, %ebx
|
||||
shll $PAGE_SHIFT, %ebx /* virtual address (1:1 mapping) */
|
||||
movl %ecx, %edx
|
||||
shll $12, %ecx
|
||||
shrl $20, %edx
|
||||
orl $5, %ecx
|
||||
movl $2, %esi
|
||||
shll $PAGE_SHIFT, %ecx /* prepare pte low part */
|
||||
shrl $(32 - PAGE_SHIFT), %edx /* pte high part */
|
||||
orl $(GRUB_PAGE_PRESENT | GRUB_PAGE_USER), %ecx /* pte low */
|
||||
movl $UVMF_INVLPG, %esi
|
||||
movl $__HYPERVISOR_update_va_mapping, %eax
|
||||
int $0x82
|
||||
int $0x82 /* parameters: eax, ebx, ecx, edx, esi */
|
||||
|
||||
incl %ebp
|
||||
/* mov imm32, %ecx */
|
||||
.byte 0xb9
|
||||
VARIABLE(grub_relocator_xen_paging_size)
|
||||
.long 0
|
||||
cmpl %ebp, %ecx
|
||||
incl %ebp /* next pfn */
|
||||
movl %edi, %ecx
|
||||
|
||||
ja 1b
|
||||
loop 2b
|
||||
|
||||
mov %esp, %ebx /* restore area poniter */
|
||||
jmp 1b
|
||||
|
||||
3:
|
||||
/* Switch page tables: pin new L3 pt, load cr3, unpin old L3. */
|
||||
/* mov imm32, %ebx */
|
||||
.byte 0xbb
|
||||
VARIABLE(grub_relocator_xen_mmu_op_addr)
|
||||
.long 0
|
||||
movl $3, %ecx
|
||||
movl $0, %edx
|
||||
movl $0x7FF0, %esi
|
||||
movl $3, %ecx /* 3 mmu ops */
|
||||
movl $0, %edx /* pdone (not used) */
|
||||
movl $DOMID_SELF, %esi
|
||||
movl $__HYPERVISOR_mmuext_op, %eax
|
||||
int $0x82
|
||||
|
||||
/* Continue in virtual kernel mapping. */
|
||||
/* mov imm32, %eax */
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_remap_continue)
|
||||
@ -102,6 +112,9 @@ VARIABLE(grub_relocator_xen_remap_continue)
|
||||
|
||||
jmp *%eax
|
||||
|
||||
VARIABLE(grub_relocator_xen_paging_areas)
|
||||
.long 0, 0, 0, 0, 0, 0, 0, 0
|
||||
|
||||
VARIABLE(grub_relocator_xen_mmu_op)
|
||||
.space 256
|
||||
|
||||
@ -109,21 +122,22 @@ VARIABLE(grub_relocator_xen_remap_end)
|
||||
|
||||
|
||||
VARIABLE(grub_relocator_xen_start)
|
||||
/* Unmap old remapper area. */
|
||||
/* mov imm32, %eax */
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_remapper_virt2)
|
||||
.long 0
|
||||
|
||||
movl %eax, %edi
|
||||
movl %eax, %ebx
|
||||
|
||||
xorl %ecx, %ecx
|
||||
xorl %ecx, %ecx /* Invalid pte */
|
||||
xorl %edx, %edx
|
||||
|
||||
movl $2, %esi
|
||||
movl $UVMF_INVLPG, %esi
|
||||
movl $__HYPERVISOR_update_va_mapping, %eax
|
||||
int $0x82
|
||||
|
||||
|
||||
/* Prepare registers for starting kernel. */
|
||||
/* mov imm32, %eax */
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_stack)
|
||||
@ -145,6 +159,7 @@ VARIABLE(grub_relocator_xen_start_info)
|
||||
VARIABLE(grub_relocator_xen_entry_point)
|
||||
.long 0
|
||||
|
||||
/* Now start the new kernel. */
|
||||
jmp *%eax
|
||||
|
||||
VARIABLE(grub_relocator_xen_end)
|
||||
|
@ -1,4 +1,4 @@
|
||||
2016-02-27 Automatic import tool
|
||||
2017-04-24 Automatic import tool
|
||||
|
||||
Imported ciphers to GRUB
|
||||
|
||||
|
80
grub-core/lib/x86_64/efi/relocator.c
Normal file
80
grub-core/lib/x86_64/efi/relocator.c
Normal file
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2016 Oracle and/or its affiliates. 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
|
||||
* 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/mm.h>
|
||||
#include <grub/misc.h>
|
||||
|
||||
#include <grub/types.h>
|
||||
#include <grub/err.h>
|
||||
|
||||
#include <grub/i386/relocator.h>
|
||||
#include <grub/relocator_private.h>
|
||||
|
||||
extern grub_uint64_t grub_relocator64_rax;
|
||||
extern grub_uint64_t grub_relocator64_rbx;
|
||||
extern grub_uint64_t grub_relocator64_rcx;
|
||||
extern grub_uint64_t grub_relocator64_rdx;
|
||||
extern grub_uint64_t grub_relocator64_rip;
|
||||
extern grub_uint64_t grub_relocator64_rsi;
|
||||
|
||||
extern grub_uint8_t grub_relocator64_efi_start;
|
||||
extern grub_uint8_t grub_relocator64_efi_end;
|
||||
|
||||
#define RELOCATOR_SIZEOF(x) (&grub_relocator##x##_end - &grub_relocator##x##_start)
|
||||
|
||||
grub_err_t
|
||||
grub_relocator64_efi_boot (struct grub_relocator *rel,
|
||||
struct grub_relocator64_efi_state state)
|
||||
{
|
||||
grub_err_t err;
|
||||
void *relst;
|
||||
grub_relocator_chunk_t ch;
|
||||
|
||||
/*
|
||||
* 64-bit relocator code may live above 4 GiB quite well.
|
||||
* However, I do not want ask for problems. Just in case.
|
||||
*/
|
||||
err = grub_relocator_alloc_chunk_align (rel, &ch, 0,
|
||||
0x100000000 - RELOCATOR_SIZEOF (64_efi),
|
||||
RELOCATOR_SIZEOF (64_efi), 16,
|
||||
GRUB_RELOCATOR_PREFERENCE_NONE, 1);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
/* Do not touch %rsp! It points to EFI created stack. */
|
||||
grub_relocator64_rax = state.rax;
|
||||
grub_relocator64_rbx = state.rbx;
|
||||
grub_relocator64_rcx = state.rcx;
|
||||
grub_relocator64_rdx = state.rdx;
|
||||
grub_relocator64_rip = state.rip;
|
||||
grub_relocator64_rsi = state.rsi;
|
||||
|
||||
grub_memmove (get_virtual_current_address (ch), &grub_relocator64_efi_start,
|
||||
RELOCATOR_SIZEOF (64_efi));
|
||||
|
||||
err = grub_relocator_prepare_relocs (rel, get_physical_target_address (ch),
|
||||
&relst, NULL);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
((void (*) (void)) relst) ();
|
||||
|
||||
/* Not reached. */
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
@ -16,95 +16,85 @@
|
||||
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/x86_64/memory.h>
|
||||
#include <grub/x86_64/types.h>
|
||||
#include <grub/symbol.h>
|
||||
#include <grub/xen.h>
|
||||
|
||||
/* Macro to load an imm64 value stored by the C-part into %rax: */
|
||||
#define MOV_IMM64_RAX(var) .byte 0x48, 0xb8; VARIABLE(var); .quad 0
|
||||
|
||||
.p2align 4 /* force 16-byte alignment */
|
||||
|
||||
VARIABLE(grub_relocator_xen_remap_start)
|
||||
LOCAL(base):
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_remapper_virt)
|
||||
.quad 0
|
||||
/* Remap the remapper to it's new address. */
|
||||
MOV_IMM64_RAX(grub_relocator_xen_remapper_virt)
|
||||
|
||||
movq %rax, %rdi
|
||||
movq %rax, %rbx
|
||||
movq %rax, %rdi /* %rdi: new virtual address of remapper */
|
||||
movq %rax, %rbx /* Remember new virtual address */
|
||||
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_remapper_map)
|
||||
.quad 0
|
||||
MOV_IMM64_RAX(grub_relocator_xen_remapper_map)
|
||||
|
||||
movq %rax, %rsi
|
||||
movq %rax, %rsi /* %rsi: page table entry */
|
||||
|
||||
movq $2, %rdx
|
||||
movq $UVMF_INVLPG, %rdx /* %rdx: flags (inv. single entry) */
|
||||
movq $__HYPERVISOR_update_va_mapping, %rax
|
||||
syscall
|
||||
syscall /* Do the remap operation */
|
||||
|
||||
addq $(LOCAL(cont) - LOCAL(base)), %rbx
|
||||
|
||||
jmp *%rbx
|
||||
jmp *%rbx /* Continue with new virtual address */
|
||||
|
||||
LOCAL(cont):
|
||||
|
||||
/* mov imm64, %rcx */
|
||||
.byte 0x48
|
||||
.byte 0xb9
|
||||
VARIABLE(grub_relocator_xen_paging_size)
|
||||
.quad 0
|
||||
/* Modify mappings of new page tables to be read-only. */
|
||||
MOV_IMM64_RAX(grub_relocator_xen_mfn_list)
|
||||
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_paging_start)
|
||||
.quad 0
|
||||
movq %rax, %rbx /* %rbx is the base of the p2m list */
|
||||
leaq EXT_C(grub_relocator_xen_paging_areas) (%rip), %r8
|
||||
|
||||
movq %rax, %r12
|
||||
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_mfn_list)
|
||||
.quad 0
|
||||
|
||||
movq %rax, %rsi
|
||||
1:
|
||||
movq 0(%r8), %r12 /* Get start pfn of the current area */
|
||||
movq GRUB_TARGET_SIZEOF_LONG(%r8), %rcx /* Get # of pg tables */
|
||||
testq %rcx, %rcx /* 0 -> last area reached */
|
||||
jz 3f
|
||||
2:
|
||||
movq %r12, %rdi
|
||||
movq %rsi, %rbx
|
||||
movq 0(%rsi), %rsi
|
||||
shlq $12, %rsi
|
||||
orq $5, %rsi
|
||||
movq $2, %rdx
|
||||
movq %rcx, %r9
|
||||
shlq $PAGE_SHIFT, %rdi /* virtual address (1:1 mapping) */
|
||||
movq (%rbx, %r12, 8), %rsi /* mfn */
|
||||
shlq $PAGE_SHIFT, %rsi
|
||||
orq $(GRUB_PAGE_PRESENT | GRUB_PAGE_USER), %rsi /* Build pte */
|
||||
movq $UVMF_INVLPG, %rdx
|
||||
movq %rcx, %r9 /* %rcx clobbered by hypercall */
|
||||
movq $__HYPERVISOR_update_va_mapping, %rax
|
||||
syscall
|
||||
|
||||
movq %r9, %rcx
|
||||
addq $8, %rbx
|
||||
addq $4096, %r12
|
||||
movq %rbx, %rsi
|
||||
incq %r12 /* next pfn */
|
||||
|
||||
loop 1b
|
||||
loop 2b
|
||||
|
||||
leaq LOCAL(mmu_op) (%rip), %rdi
|
||||
movq $3, %rsi
|
||||
movq $0, %rdx
|
||||
movq $0x7FF0, %r10
|
||||
addq $(2 * GRUB_TARGET_SIZEOF_LONG), %r8 /* next pg table area */
|
||||
jmp 1b
|
||||
|
||||
3:
|
||||
/* Switch page tables: pin new L4 pt, load cr3, unpin old L4. */
|
||||
leaq EXT_C(grub_relocator_xen_mmu_op) (%rip), %rdi
|
||||
movq $3, %rsi /* 3 mmu ops */
|
||||
movq $0, %rdx /* pdone (not used) */
|
||||
movq $DOMID_SELF, %r10
|
||||
movq $__HYPERVISOR_mmuext_op, %rax
|
||||
syscall
|
||||
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_remap_continue)
|
||||
.quad 0
|
||||
/* Continue in virtual kernel mapping. */
|
||||
MOV_IMM64_RAX(grub_relocator_xen_remap_continue)
|
||||
|
||||
jmp *%rax
|
||||
|
||||
LOCAL(mmu_op):
|
||||
VARIABLE(grub_relocator_xen_paging_areas)
|
||||
/* array of start, size pairs, size 0 is end marker */
|
||||
.quad 0, 0, 0, 0, 0, 0, 0, 0
|
||||
|
||||
VARIABLE(grub_relocator_xen_mmu_op)
|
||||
.space 256
|
||||
|
||||
@ -112,46 +102,32 @@ VARIABLE(grub_relocator_xen_remap_end)
|
||||
|
||||
|
||||
VARIABLE(grub_relocator_xen_start)
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_remapper_virt2)
|
||||
.quad 0
|
||||
/* Unmap old remapper area. */
|
||||
MOV_IMM64_RAX(grub_relocator_xen_remapper_virt2)
|
||||
|
||||
movq %rax, %rdi
|
||||
|
||||
xorq %rax, %rax
|
||||
xorq %rax, %rax /* Invalid pte */
|
||||
movq %rax, %rsi
|
||||
|
||||
movq $2, %rdx
|
||||
movq $UVMF_INVLPG, %rdx
|
||||
movq $__HYPERVISOR_update_va_mapping, %rax
|
||||
syscall
|
||||
|
||||
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_stack)
|
||||
.quad 0
|
||||
/* Prepare registers for starting kernel. */
|
||||
MOV_IMM64_RAX(grub_relocator_xen_stack)
|
||||
|
||||
movq %rax, %rsp
|
||||
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_start_info)
|
||||
.quad 0
|
||||
MOV_IMM64_RAX(grub_relocator_xen_start_info)
|
||||
|
||||
movq %rax, %rsi
|
||||
|
||||
cld
|
||||
|
||||
/* mov imm64, %rax */
|
||||
.byte 0x48
|
||||
.byte 0xb8
|
||||
VARIABLE(grub_relocator_xen_entry_point)
|
||||
.quad 0
|
||||
MOV_IMM64_RAX(grub_relocator_xen_entry_point)
|
||||
|
||||
/* Now start the new kernel. */
|
||||
jmp *%rax
|
||||
|
||||
VARIABLE(grub_relocator_xen_end)
|
||||
|
@ -29,6 +29,11 @@
|
||||
|
||||
typedef grub_addr_t grub_xen_reg_t;
|
||||
|
||||
struct grub_relocator_xen_paging_area {
|
||||
grub_xen_reg_t start;
|
||||
grub_xen_reg_t size;
|
||||
} GRUB_PACKED;
|
||||
|
||||
extern grub_uint8_t grub_relocator_xen_start;
|
||||
extern grub_uint8_t grub_relocator_xen_end;
|
||||
extern grub_uint8_t grub_relocator_xen_remap_start;
|
||||
@ -36,15 +41,16 @@ extern grub_uint8_t grub_relocator_xen_remap_end;
|
||||
extern grub_xen_reg_t grub_relocator_xen_stack;
|
||||
extern grub_xen_reg_t grub_relocator_xen_start_info;
|
||||
extern grub_xen_reg_t grub_relocator_xen_entry_point;
|
||||
extern grub_xen_reg_t grub_relocator_xen_paging_start;
|
||||
extern grub_xen_reg_t grub_relocator_xen_paging_size;
|
||||
extern grub_xen_reg_t grub_relocator_xen_remapper_virt;
|
||||
extern grub_xen_reg_t grub_relocator_xen_remapper_virt2;
|
||||
extern grub_xen_reg_t grub_relocator_xen_remapper_map;
|
||||
extern grub_xen_reg_t grub_relocator_xen_mfn_list;
|
||||
extern struct grub_relocator_xen_paging_area
|
||||
grub_relocator_xen_paging_areas[XEN_MAX_MAPPINGS];
|
||||
extern grub_xen_reg_t grub_relocator_xen_remap_continue;
|
||||
#ifdef __i386__
|
||||
extern grub_xen_reg_t grub_relocator_xen_mmu_op_addr;
|
||||
extern grub_xen_reg_t grub_relocator_xen_paging_areas_addr;
|
||||
extern grub_xen_reg_t grub_relocator_xen_remapper_map_high;
|
||||
#endif
|
||||
extern mmuext_op_t grub_relocator_xen_mmu_op[3];
|
||||
@ -61,6 +67,7 @@ grub_relocator_xen_boot (struct grub_relocator *rel,
|
||||
{
|
||||
grub_err_t err;
|
||||
void *relst;
|
||||
int i;
|
||||
grub_relocator_chunk_t ch, ch_tramp;
|
||||
grub_xen_mfn_t *mfn_list =
|
||||
(grub_xen_mfn_t *) grub_xen_start_page_addr->mfn_list;
|
||||
@ -77,8 +84,11 @@ grub_relocator_xen_boot (struct grub_relocator *rel,
|
||||
grub_relocator_xen_stack = state.stack;
|
||||
grub_relocator_xen_start_info = state.start_info;
|
||||
grub_relocator_xen_entry_point = state.entry_point;
|
||||
grub_relocator_xen_paging_start = state.paging_start << 12;
|
||||
grub_relocator_xen_paging_size = state.paging_size;
|
||||
for (i = 0; i < XEN_MAX_MAPPINGS; i++)
|
||||
{
|
||||
grub_relocator_xen_paging_areas[i].start = state.paging_start[i];
|
||||
grub_relocator_xen_paging_areas[i].size = state.paging_size[i];
|
||||
}
|
||||
grub_relocator_xen_remapper_virt = remapper_virt;
|
||||
grub_relocator_xen_remapper_virt2 = remapper_virt;
|
||||
grub_relocator_xen_remap_continue = trampoline_virt;
|
||||
@ -88,10 +98,12 @@ grub_relocator_xen_boot (struct grub_relocator *rel,
|
||||
grub_relocator_xen_remapper_map_high = (mfn_list[remapper_pfn] >> 20);
|
||||
grub_relocator_xen_mmu_op_addr = (char *) &grub_relocator_xen_mmu_op
|
||||
- (char *) &grub_relocator_xen_remap_start + remapper_virt;
|
||||
grub_relocator_xen_paging_areas_addr =
|
||||
(char *) &grub_relocator_xen_paging_areas
|
||||
- (char *) &grub_relocator_xen_remap_start + remapper_virt;
|
||||
#endif
|
||||
|
||||
grub_relocator_xen_mfn_list = state.mfn_list
|
||||
+ state.paging_start * sizeof (grub_addr_t);
|
||||
grub_relocator_xen_mfn_list = state.mfn_list;
|
||||
|
||||
grub_memset (grub_relocator_xen_mmu_op, 0,
|
||||
sizeof (grub_relocator_xen_mmu_op));
|
||||
@ -100,9 +112,9 @@ grub_relocator_xen_boot (struct grub_relocator *rel,
|
||||
#else
|
||||
grub_relocator_xen_mmu_op[0].cmd = MMUEXT_PIN_L4_TABLE;
|
||||
#endif
|
||||
grub_relocator_xen_mmu_op[0].arg1.mfn = mfn_list[state.paging_start];
|
||||
grub_relocator_xen_mmu_op[0].arg1.mfn = mfn_list[state.paging_start[0]];
|
||||
grub_relocator_xen_mmu_op[1].cmd = MMUEXT_NEW_BASEPTR;
|
||||
grub_relocator_xen_mmu_op[1].arg1.mfn = mfn_list[state.paging_start];
|
||||
grub_relocator_xen_mmu_op[1].arg1.mfn = mfn_list[state.paging_start[0]];
|
||||
grub_relocator_xen_mmu_op[2].cmd = MMUEXT_UNPIN_TABLE;
|
||||
grub_relocator_xen_mmu_op[2].arg1.mfn =
|
||||
mfn_list[grub_xen_start_page_addr->pt_base >> 12];
|
||||
|
@ -1044,6 +1044,8 @@ enum xz_ret xz_dec_lzma2_run(
|
||||
|
||||
s->lzma2.sequence = SEQ_LZMA_PREPARE;
|
||||
|
||||
/* Fall through */
|
||||
|
||||
case SEQ_LZMA_PREPARE:
|
||||
if (s->lzma2.compressed < RC_INIT_BYTES)
|
||||
return XZ_DATA_ERROR;
|
||||
@ -1054,6 +1056,8 @@ enum xz_ret xz_dec_lzma2_run(
|
||||
s->lzma2.compressed -= RC_INIT_BYTES;
|
||||
s->lzma2.sequence = SEQ_LZMA_RUN;
|
||||
|
||||
/* Fall through */
|
||||
|
||||
case SEQ_LZMA_RUN:
|
||||
/*
|
||||
* Set dictionary limit to indicate how much we want
|
||||
|
@ -750,6 +750,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b)
|
||||
|
||||
s->sequence = SEQ_BLOCK_START;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
case SEQ_BLOCK_START:
|
||||
/* We need one byte of input to continue. */
|
||||
if (b->in_pos == b->in_size)
|
||||
@ -773,6 +774,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b)
|
||||
s->temp.pos = 0;
|
||||
s->sequence = SEQ_BLOCK_HEADER;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
case SEQ_BLOCK_HEADER:
|
||||
if (!fill_temp(s, b))
|
||||
return XZ_OK;
|
||||
@ -783,6 +785,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b)
|
||||
|
||||
s->sequence = SEQ_BLOCK_UNCOMPRESS;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
case SEQ_BLOCK_UNCOMPRESS:
|
||||
ret = dec_block(s, b);
|
||||
if (ret != XZ_STREAM_END)
|
||||
@ -810,6 +813,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b)
|
||||
|
||||
s->sequence = SEQ_BLOCK_CHECK;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
case SEQ_BLOCK_CHECK:
|
||||
ret = hash_validate(s, b, 0);
|
||||
if (ret != XZ_STREAM_END)
|
||||
@ -858,6 +862,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b)
|
||||
|
||||
s->sequence = SEQ_INDEX_CRC32;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
case SEQ_INDEX_CRC32:
|
||||
ret = hash_validate(s, b, 1);
|
||||
if (ret != XZ_STREAM_END)
|
||||
@ -866,6 +871,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b)
|
||||
s->temp.size = STREAM_HEADER_SIZE;
|
||||
s->sequence = SEQ_STREAM_FOOTER;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
case SEQ_STREAM_FOOTER:
|
||||
if (!fill_temp(s, b))
|
||||
return XZ_OK;
|
||||
|
@ -28,28 +28,6 @@
|
||||
static void *loaded_fdt;
|
||||
static void *fdt;
|
||||
|
||||
static void *
|
||||
get_firmware_fdt (void)
|
||||
{
|
||||
grub_efi_configuration_table_t *tables;
|
||||
grub_efi_guid_t fdt_guid = GRUB_EFI_DEVICE_TREE_GUID;
|
||||
void *firmware_fdt = NULL;
|
||||
unsigned int i;
|
||||
|
||||
/* Look for FDT in UEFI config tables. */
|
||||
tables = grub_efi_system_table->configuration_table;
|
||||
|
||||
for (i = 0; i < grub_efi_system_table->num_table_entries; i++)
|
||||
if (grub_memcmp (&tables[i].vendor_guid, &fdt_guid, sizeof (fdt_guid)) == 0)
|
||||
{
|
||||
firmware_fdt = tables[i].vendor_table;
|
||||
grub_dprintf ("linux", "found registered FDT @ %p\n", firmware_fdt);
|
||||
break;
|
||||
}
|
||||
|
||||
return firmware_fdt;
|
||||
}
|
||||
|
||||
void *
|
||||
grub_fdt_load (grub_size_t additional_size)
|
||||
{
|
||||
@ -65,7 +43,7 @@ grub_fdt_load (grub_size_t additional_size)
|
||||
if (loaded_fdt)
|
||||
raw_fdt = loaded_fdt;
|
||||
else
|
||||
raw_fdt = get_firmware_fdt();
|
||||
raw_fdt = grub_efi_get_firmware_fdt();
|
||||
|
||||
size =
|
||||
raw_fdt ? grub_fdt_get_totalsize (raw_fdt) : GRUB_FDT_EMPTY_TREE_SZ;
|
||||
|
@ -122,6 +122,8 @@ copy_file_path (grub_efi_file_path_device_path_t *fp,
|
||||
if (*p == '/')
|
||||
*p = '\\';
|
||||
|
||||
/* File Path is NULL terminated */
|
||||
fp->path_name[size++] = '\0';
|
||||
fp->header.length = size * sizeof (grub_efi_char16_t) + sizeof (*fp);
|
||||
}
|
||||
|
||||
@ -156,8 +158,10 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename)
|
||||
d = GRUB_EFI_NEXT_DEVICE_PATH (d);
|
||||
}
|
||||
|
||||
/* File Path is NULL terminated. Allocate space for 2 extra characters */
|
||||
/* FIXME why we split path in two components? */
|
||||
file_path = grub_malloc (size
|
||||
+ ((grub_strlen (dir_start) + 1)
|
||||
+ ((grub_strlen (dir_start) + 2)
|
||||
* GRUB_MAX_UTF16_PER_UTF8
|
||||
* sizeof (grub_efi_char16_t))
|
||||
+ sizeof (grub_efi_file_path_device_path_t) * 2);
|
||||
|
@ -384,6 +384,7 @@ load_chewed (grub_file_t file, const char *filename)
|
||||
segment.len = 0;
|
||||
segment.offset = 0;
|
||||
segment.len = 0;
|
||||
/* Fallthrough. */
|
||||
case PAYLOAD_SEGMENT_CODE:
|
||||
case PAYLOAD_SEGMENT_DATA:
|
||||
{
|
||||
|
@ -915,8 +915,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
|
||||
grub_env_set ("gfxpayload", "text");
|
||||
grub_printf_ (N_("%s is deprecated. "
|
||||
"Use set gfxpayload=%s before "
|
||||
"linux command instead.\n"), "text",
|
||||
argv[i]);
|
||||
"linux command instead.\n"),
|
||||
argv[i], "text");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@ -925,8 +925,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
|
||||
grub_env_set ("gfxpayload", "text");
|
||||
grub_printf_ (N_("%s is deprecated. "
|
||||
"Use set gfxpayload=%s before "
|
||||
"linux command instead.\n"), "text",
|
||||
argv[i]);
|
||||
"linux command instead.\n"),
|
||||
argv[i], "text");
|
||||
break;
|
||||
default:
|
||||
/* Ignore invalid values. */
|
||||
@ -984,10 +984,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
|
||||
{
|
||||
case 'g':
|
||||
shift += 10;
|
||||
/* FALLTHROUGH */
|
||||
case 'm':
|
||||
shift += 10;
|
||||
/* FALLTHROUGH */
|
||||
case 'k':
|
||||
shift += 10;
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -70,9 +70,18 @@ load_kernel (grub_file_t file, const char *filename,
|
||||
char *buffer, struct multiboot_header *header)
|
||||
{
|
||||
grub_err_t err;
|
||||
mbi_load_data_t mld;
|
||||
|
||||
mld.file = file;
|
||||
mld.filename = filename;
|
||||
mld.buffer = buffer;
|
||||
mld.mbi_ver = 1;
|
||||
mld.relocatable = 0;
|
||||
mld.avoid_efi_boot_services = 0;
|
||||
|
||||
if (grub_multiboot_quirks & GRUB_MULTIBOOT_QUIRK_BAD_KLUDGE)
|
||||
{
|
||||
err = grub_multiboot_load_elf (file, filename, buffer);
|
||||
err = grub_multiboot_load_elf (&mld);
|
||||
if (err == GRUB_ERR_NONE) {
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
@ -121,7 +130,7 @@ load_kernel (grub_file_t file, const char *filename,
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
return grub_multiboot_load_elf (file, filename, buffer);
|
||||
return grub_multiboot_load_elf (&mld);
|
||||
}
|
||||
|
||||
static struct multiboot_header *
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -20,12 +20,16 @@
|
||||
#include <grub/i386/linux.h>
|
||||
#include <grub/misc.h>
|
||||
|
||||
#define XZ_MAGIC "\3757zXZ\0"
|
||||
|
||||
grub_elf_t
|
||||
grub_xen_file (grub_file_t file)
|
||||
{
|
||||
grub_elf_t elf;
|
||||
struct linux_kernel_header lh;
|
||||
grub_file_t off_file;
|
||||
grub_uint32_t payload_offset, payload_length;
|
||||
grub_uint8_t magic[6];
|
||||
|
||||
elf = grub_elf_file (file, file->name);
|
||||
if (elf)
|
||||
@ -46,20 +50,36 @@ grub_xen_file (grub_file_t file)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (lh.payload_length < 4)
|
||||
payload_length = lh.payload_length;
|
||||
payload_offset = (lh.setup_sects + 1) * 512
|
||||
+ lh.payload_offset;
|
||||
|
||||
if (payload_length < sizeof (magic))
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_OS, "payload too short");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
grub_dprintf ("xen", "found bzimage payload 0x%llx-0x%llx\n",
|
||||
(unsigned long long) (lh.setup_sects + 1) * 512
|
||||
+ lh.payload_offset,
|
||||
(unsigned long long) lh.payload_length - 4);
|
||||
(unsigned long long) payload_offset,
|
||||
(unsigned long long) lh.payload_length);
|
||||
|
||||
off_file = grub_file_offset_open (file, (lh.setup_sects + 1) * 512
|
||||
+ lh.payload_offset,
|
||||
lh.payload_length - 4);
|
||||
grub_file_seek (file, payload_offset);
|
||||
|
||||
if (grub_file_read (file, &magic, sizeof (magic)) != sizeof (magic))
|
||||
{
|
||||
if (!grub_errno)
|
||||
grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"),
|
||||
file->name);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* Kernel suffixes xz payload with their uncompressed size.
|
||||
Trim it. */
|
||||
if (grub_memcmp (magic, XZ_MAGIC, sizeof (XZ_MAGIC) - 1) == 0)
|
||||
payload_length -= 4;
|
||||
off_file = grub_file_offset_open (file, payload_offset,
|
||||
payload_length);
|
||||
if (!off_file)
|
||||
goto fail;
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include <grub/xen_file.h>
|
||||
#include <grub/misc.h>
|
||||
#include <xen/elfnote.h>
|
||||
|
||||
static grub_err_t
|
||||
parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
@ -26,6 +27,8 @@ parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
char *buf;
|
||||
char *ptr;
|
||||
int has_paddr = 0;
|
||||
|
||||
grub_errno = GRUB_ERR_NONE;
|
||||
if (grub_file_seek (elf->file, off) == (grub_off_t) -1)
|
||||
return grub_errno;
|
||||
buf = grub_malloc (sz);
|
||||
@ -35,7 +38,8 @@ parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
if (grub_file_read (elf->file, buf, sz) != (grub_ssize_t) sz)
|
||||
{
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
goto out;
|
||||
grub_free (buf);
|
||||
return grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"),
|
||||
elf->file->name);
|
||||
}
|
||||
@ -123,14 +127,14 @@ parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
{
|
||||
xi->virt_base = grub_strtoull (ptr + sizeof ("VIRT_BASE=") - 1, &ptr, 16);
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
goto out;
|
||||
continue;
|
||||
}
|
||||
if (grub_strncmp (ptr, "VIRT_ENTRY=", sizeof ("VIRT_ENTRY=") - 1) == 0)
|
||||
{
|
||||
xi->entry_point = grub_strtoull (ptr + sizeof ("VIRT_ENTRY=") - 1, &ptr, 16);
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
goto out;
|
||||
continue;
|
||||
}
|
||||
if (grub_strncmp (ptr, "HYPERCALL_PAGE=", sizeof ("HYPERCALL_PAGE=") - 1) == 0)
|
||||
@ -138,7 +142,7 @@ parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
xi->hypercall_page = grub_strtoull (ptr + sizeof ("HYPERCALL_PAGE=") - 1, &ptr, 16);
|
||||
xi->has_hypercall_page = 1;
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
goto out;
|
||||
continue;
|
||||
}
|
||||
if (grub_strncmp (ptr, "ELF_PADDR_OFFSET=", sizeof ("ELF_PADDR_OFFSET=") - 1) == 0)
|
||||
@ -146,7 +150,7 @@ parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
xi->paddr_offset = grub_strtoull (ptr + sizeof ("ELF_PADDR_OFFSET=") - 1, &ptr, 16);
|
||||
has_paddr = 1;
|
||||
if (grub_errno)
|
||||
return grub_errno;
|
||||
goto out;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -154,7 +158,11 @@ parse_xen_guest (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
xi->hypercall_page = (xi->hypercall_page << 12) + xi->virt_base;
|
||||
if (!has_paddr)
|
||||
xi->paddr_offset = xi->virt_base;
|
||||
return GRUB_ERR_NONE;
|
||||
|
||||
out:
|
||||
grub_free (buf);
|
||||
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wcast-align"
|
||||
@ -196,35 +204,35 @@ parse_note (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
xi->has_note = 1;
|
||||
switch (nh->n_type)
|
||||
{
|
||||
case 1:
|
||||
case XEN_ELFNOTE_ENTRY:
|
||||
xi->entry_point = grub_le_to_cpu_addr (*(Elf_Addr *) desc);
|
||||
break;
|
||||
case 2:
|
||||
case XEN_ELFNOTE_HYPERCALL_PAGE:
|
||||
xi->hypercall_page = grub_le_to_cpu_addr (*(Elf_Addr *) desc);
|
||||
xi->has_hypercall_page = 1;
|
||||
break;
|
||||
case 3:
|
||||
case XEN_ELFNOTE_VIRT_BASE:
|
||||
xi->virt_base = grub_le_to_cpu_addr (*(Elf_Addr *) desc);
|
||||
break;
|
||||
case 4:
|
||||
case XEN_ELFNOTE_PADDR_OFFSET:
|
||||
xi->paddr_offset = grub_le_to_cpu_addr (*(Elf_Addr *) desc);
|
||||
break;
|
||||
case 5:
|
||||
case XEN_ELFNOTE_XEN_VERSION:
|
||||
grub_dprintf ("xen", "xenversion = `%s'\n", (char *) desc);
|
||||
break;
|
||||
case 6:
|
||||
case XEN_ELFNOTE_GUEST_OS:
|
||||
grub_dprintf ("xen", "name = `%s'\n", (char *) desc);
|
||||
break;
|
||||
case 7:
|
||||
case XEN_ELFNOTE_GUEST_VERSION:
|
||||
grub_dprintf ("xen", "version = `%s'\n", (char *) desc);
|
||||
break;
|
||||
case 8:
|
||||
case XEN_ELFNOTE_LOADER:
|
||||
if (descsz < 7
|
||||
|| grub_memcmp (desc, "generic", descsz == 7 ? 7 : 8) != 0)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "invalid loader");
|
||||
break;
|
||||
/* PAE */
|
||||
case 9:
|
||||
case XEN_ELFNOTE_PAE_MODE:
|
||||
grub_dprintf ("xen", "pae = `%s', %d, %d\n", (char *) desc,
|
||||
xi->arch, descsz);
|
||||
if (xi->arch != GRUB_XEN_FILE_I386
|
||||
@ -253,6 +261,13 @@ parse_note (grub_elf_t elf, struct grub_xen_file_info *xi,
|
||||
descsz == 2 ? 2 : 3) == 0)
|
||||
xi->arch = GRUB_XEN_FILE_I386;
|
||||
break;
|
||||
case XEN_ELFNOTE_INIT_P2M:
|
||||
xi->p2m_base = grub_le_to_cpu_addr (*(Elf_Addr *) desc);
|
||||
xi->has_p2m_base = 1;
|
||||
break;
|
||||
case XEN_ELFNOTE_MOD_START_PFN:
|
||||
xi->unmapped_initrd = !!grub_le_to_cpu32(*(grub_uint32_t *) desc);
|
||||
break;
|
||||
default:
|
||||
grub_dprintf ("xen", "unknown note type %d\n", nh->n_type);
|
||||
break;
|
||||
|
@ -118,6 +118,48 @@ grub_multiboot_set_video_mode (void)
|
||||
return err;
|
||||
}
|
||||
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
#ifdef __x86_64__
|
||||
#define grub_relocator_efi_boot grub_relocator64_efi_boot
|
||||
#define grub_relocator_efi_state grub_relocator64_efi_state
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef grub_relocator_efi_boot
|
||||
static void
|
||||
efi_boot (struct grub_relocator *rel,
|
||||
grub_uint32_t target)
|
||||
{
|
||||
struct grub_relocator_efi_state state_efi = MULTIBOOT_EFI_INITIAL_STATE;
|
||||
|
||||
state_efi.MULTIBOOT_EFI_ENTRY_REGISTER = grub_multiboot_payload_eip;
|
||||
state_efi.MULTIBOOT_EFI_MBI_REGISTER = target;
|
||||
|
||||
grub_relocator_efi_boot (rel, state_efi);
|
||||
}
|
||||
#else
|
||||
#define grub_efi_is_finished 1
|
||||
static void
|
||||
efi_boot (struct grub_relocator *rel __attribute__ ((unused)),
|
||||
grub_uint32_t target __attribute__ ((unused)))
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined (__i386__) || defined (__x86_64__)
|
||||
static void
|
||||
normal_boot (struct grub_relocator *rel, struct grub_relocator32_state state)
|
||||
{
|
||||
grub_relocator32_boot (rel, state, 0);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
normal_boot (struct grub_relocator *rel, struct grub_relocator32_state state)
|
||||
{
|
||||
grub_relocator32_boot (rel, state);
|
||||
}
|
||||
#endif
|
||||
|
||||
static grub_err_t
|
||||
grub_multiboot_boot (void)
|
||||
{
|
||||
@ -131,11 +173,10 @@ grub_multiboot_boot (void)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
#if defined (__i386__) || defined (__x86_64__)
|
||||
grub_relocator32_boot (grub_multiboot_relocator, state, 0);
|
||||
#else
|
||||
grub_relocator32_boot (grub_multiboot_relocator, state);
|
||||
#endif
|
||||
if (grub_efi_is_finished)
|
||||
normal_boot (grub_multiboot_relocator, state);
|
||||
else
|
||||
efi_boot (grub_multiboot_relocator, state.MULTIBOOT_MBI_REGISTER);
|
||||
|
||||
/* Not reached. */
|
||||
return GRUB_ERR_NONE;
|
||||
@ -166,13 +207,12 @@ static grub_uint64_t highest_load;
|
||||
|
||||
/* Load ELF32 or ELF64. */
|
||||
grub_err_t
|
||||
grub_multiboot_load_elf (grub_file_t file, const char *filename,
|
||||
void *buffer)
|
||||
grub_multiboot_load_elf (mbi_load_data_t *mld)
|
||||
{
|
||||
if (grub_multiboot_is_elf32 (buffer))
|
||||
return grub_multiboot_load_elf32 (file, filename, buffer);
|
||||
else if (grub_multiboot_is_elf64 (buffer))
|
||||
return grub_multiboot_load_elf64 (file, filename, buffer);
|
||||
if (grub_multiboot_is_elf32 (mld->buffer))
|
||||
return grub_multiboot_load_elf32 (mld);
|
||||
else if (grub_multiboot_is_elf64 (mld->buffer))
|
||||
return grub_multiboot_load_elf64 (mld);
|
||||
|
||||
return grub_error (GRUB_ERR_UNKNOWN_OS, N_("invalid arch-dependent ELF magic"));
|
||||
}
|
||||
|
@ -51,11 +51,15 @@ CONCAT(grub_multiboot_is_elf, XX) (void *buffer)
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
CONCAT(grub_multiboot_load_elf, XX) (grub_file_t file, const char *filename, void *buffer)
|
||||
CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld)
|
||||
{
|
||||
Elf_Ehdr *ehdr = (Elf_Ehdr *) buffer;
|
||||
Elf_Ehdr *ehdr = (Elf_Ehdr *) mld->buffer;
|
||||
char *phdr_base;
|
||||
grub_err_t err;
|
||||
grub_relocator_chunk_t ch;
|
||||
grub_uint32_t load_offset, load_size;
|
||||
int i;
|
||||
void *source;
|
||||
|
||||
if (ehdr->e_ident[EI_MAG0] != ELFMAG0
|
||||
|| ehdr->e_ident[EI_MAG1] != ELFMAG1
|
||||
@ -75,54 +79,86 @@ CONCAT(grub_multiboot_load_elf, XX) (grub_file_t file, const char *filename, voi
|
||||
if (ehdr->e_phoff + (grub_uint32_t) ehdr->e_phnum * ehdr->e_phentsize > MULTIBOOT_SEARCH)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "program header at a too high offset");
|
||||
|
||||
phdr_base = (char *) buffer + ehdr->e_phoff;
|
||||
phdr_base = (char *) mld->buffer + ehdr->e_phoff;
|
||||
#define phdr(i) ((Elf_Phdr *) (phdr_base + (i) * ehdr->e_phentsize))
|
||||
|
||||
mld->link_base_addr = ~0;
|
||||
|
||||
/* Calculate lowest and highest load address. */
|
||||
for (i = 0; i < ehdr->e_phnum; i++)
|
||||
if (phdr(i)->p_type == PT_LOAD)
|
||||
{
|
||||
mld->link_base_addr = grub_min (mld->link_base_addr, phdr(i)->p_paddr);
|
||||
highest_load = grub_max (highest_load, phdr(i)->p_paddr + phdr(i)->p_memsz);
|
||||
}
|
||||
|
||||
#ifdef MULTIBOOT_LOAD_ELF64
|
||||
if (highest_load >= 0x100000000)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "segment crosses 4 GiB border");
|
||||
#endif
|
||||
|
||||
load_size = highest_load - mld->link_base_addr;
|
||||
|
||||
if (mld->relocatable)
|
||||
{
|
||||
if (load_size > mld->max_addr || mld->min_addr > mld->max_addr - load_size)
|
||||
return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size");
|
||||
|
||||
err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch,
|
||||
mld->min_addr, mld->max_addr - load_size,
|
||||
load_size, mld->align ? mld->align : 1,
|
||||
mld->preference, mld->avoid_efi_boot_services);
|
||||
}
|
||||
else
|
||||
err = grub_relocator_alloc_chunk_addr (grub_multiboot_relocator, &ch,
|
||||
mld->link_base_addr, load_size);
|
||||
|
||||
if (err)
|
||||
{
|
||||
grub_dprintf ("multiboot_loader", "Cannot allocate memory for OS image\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
mld->load_base_addr = get_physical_target_address (ch);
|
||||
source = get_virtual_current_address (ch);
|
||||
|
||||
grub_dprintf ("multiboot_loader", "link_base_addr=0x%x, load_base_addr=0x%x, "
|
||||
"load_size=0x%x, relocatable=%d\n", mld->link_base_addr,
|
||||
mld->load_base_addr, load_size, mld->relocatable);
|
||||
|
||||
if (mld->relocatable)
|
||||
grub_dprintf ("multiboot_loader", "align=0x%lx, preference=0x%x, avoid_efi_boot_services=%d\n",
|
||||
(long) mld->align, mld->preference, mld->avoid_efi_boot_services);
|
||||
|
||||
/* Load every loadable segment in memory. */
|
||||
for (i = 0; i < ehdr->e_phnum; i++)
|
||||
{
|
||||
if (phdr(i)->p_type == PT_LOAD)
|
||||
{
|
||||
grub_err_t err;
|
||||
void *source;
|
||||
|
||||
if (phdr(i)->p_paddr + phdr(i)->p_memsz > highest_load)
|
||||
highest_load = phdr(i)->p_paddr + phdr(i)->p_memsz;
|
||||
|
||||
grub_dprintf ("multiboot_loader", "segment %d: paddr=0x%lx, memsz=0x%lx, vaddr=0x%lx\n",
|
||||
i, (long) phdr(i)->p_paddr, (long) phdr(i)->p_memsz, (long) phdr(i)->p_vaddr);
|
||||
|
||||
{
|
||||
grub_relocator_chunk_t ch;
|
||||
err = grub_relocator_alloc_chunk_addr (grub_multiboot_relocator,
|
||||
&ch, phdr(i)->p_paddr,
|
||||
phdr(i)->p_memsz);
|
||||
if (err)
|
||||
{
|
||||
grub_dprintf ("multiboot_loader", "Error loading phdr %d\n", i);
|
||||
return err;
|
||||
}
|
||||
source = get_virtual_current_address (ch);
|
||||
}
|
||||
load_offset = phdr(i)->p_paddr - mld->link_base_addr;
|
||||
|
||||
if (phdr(i)->p_filesz != 0)
|
||||
{
|
||||
if (grub_file_seek (file, (grub_off_t) phdr(i)->p_offset)
|
||||
if (grub_file_seek (mld->file, (grub_off_t) phdr(i)->p_offset)
|
||||
== (grub_off_t) -1)
|
||||
return grub_errno;
|
||||
|
||||
if (grub_file_read (file, source, phdr(i)->p_filesz)
|
||||
if (grub_file_read (mld->file, (grub_uint8_t *) source + load_offset, phdr(i)->p_filesz)
|
||||
!= (grub_ssize_t) phdr(i)->p_filesz)
|
||||
{
|
||||
if (!grub_errno)
|
||||
grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"),
|
||||
filename);
|
||||
mld->filename);
|
||||
return grub_errno;
|
||||
}
|
||||
}
|
||||
|
||||
if (phdr(i)->p_filesz < phdr(i)->p_memsz)
|
||||
grub_memset ((grub_uint8_t *) source + phdr(i)->p_filesz, 0,
|
||||
grub_memset ((grub_uint8_t *) source + load_offset + phdr(i)->p_filesz, 0,
|
||||
phdr(i)->p_memsz - phdr(i)->p_filesz);
|
||||
}
|
||||
}
|
||||
@ -168,18 +204,18 @@ CONCAT(grub_multiboot_load_elf, XX) (grub_file_t file, const char *filename, voi
|
||||
if (!shdr)
|
||||
return grub_errno;
|
||||
|
||||
if (grub_file_seek (file, ehdr->e_shoff) == (grub_off_t) -1)
|
||||
if (grub_file_seek (mld->file, ehdr->e_shoff) == (grub_off_t) -1)
|
||||
{
|
||||
grub_free (shdr);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
if (grub_file_read (file, shdr, (grub_uint32_t) ehdr->e_shnum * ehdr->e_shentsize)
|
||||
if (grub_file_read (mld->file, shdr, (grub_uint32_t) ehdr->e_shnum * ehdr->e_shentsize)
|
||||
!= (grub_ssize_t) ehdr->e_shnum * ehdr->e_shentsize)
|
||||
{
|
||||
if (!grub_errno)
|
||||
grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"),
|
||||
filename);
|
||||
mld->filename);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
@ -189,7 +225,9 @@ CONCAT(grub_multiboot_load_elf, XX) (grub_file_t file, const char *filename, voi
|
||||
Elf_Shdr *sh = (Elf_Shdr *) shdrptr;
|
||||
void *src;
|
||||
grub_addr_t target;
|
||||
grub_err_t err;
|
||||
|
||||
if (mld->mbi_ver >= 2 && (sh->sh_type == SHT_REL || sh->sh_type == SHT_RELA))
|
||||
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "ELF files with relocs are not supported yet");
|
||||
|
||||
/* This section is a loaded section,
|
||||
so we don't care. */
|
||||
@ -200,33 +238,28 @@ CONCAT(grub_multiboot_load_elf, XX) (grub_file_t file, const char *filename, voi
|
||||
if (sh->sh_size == 0)
|
||||
continue;
|
||||
|
||||
{
|
||||
grub_relocator_chunk_t ch;
|
||||
err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator,
|
||||
&ch, 0,
|
||||
(0xffffffff - sh->sh_size)
|
||||
+ 1, sh->sh_size,
|
||||
sh->sh_addralign,
|
||||
GRUB_RELOCATOR_PREFERENCE_NONE,
|
||||
0);
|
||||
if (err)
|
||||
{
|
||||
grub_dprintf ("multiboot_loader", "Error loading shdr %d\n", i);
|
||||
return err;
|
||||
}
|
||||
src = get_virtual_current_address (ch);
|
||||
target = get_physical_target_address (ch);
|
||||
}
|
||||
err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, 0,
|
||||
(0xffffffff - sh->sh_size) + 1,
|
||||
sh->sh_size, sh->sh_addralign,
|
||||
GRUB_RELOCATOR_PREFERENCE_NONE,
|
||||
mld->avoid_efi_boot_services);
|
||||
if (err)
|
||||
{
|
||||
grub_dprintf ("multiboot_loader", "Error loading shdr %d\n", i);
|
||||
return err;
|
||||
}
|
||||
src = get_virtual_current_address (ch);
|
||||
target = get_physical_target_address (ch);
|
||||
|
||||
if (grub_file_seek (file, sh->sh_offset) == (grub_off_t) -1)
|
||||
if (grub_file_seek (mld->file, sh->sh_offset) == (grub_off_t) -1)
|
||||
return grub_errno;
|
||||
|
||||
if (grub_file_read (file, src, sh->sh_size)
|
||||
if (grub_file_read (mld->file, src, sh->sh_size)
|
||||
!= (grub_ssize_t) sh->sh_size)
|
||||
{
|
||||
if (!grub_errno)
|
||||
grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"),
|
||||
filename);
|
||||
mld->filename);
|
||||
return grub_errno;
|
||||
}
|
||||
sh->sh_addr = target;
|
||||
|
@ -68,6 +68,7 @@ static grub_size_t elf_sec_num, elf_sec_entsize;
|
||||
static unsigned elf_sec_shstrndx;
|
||||
static void *elf_sections;
|
||||
static int keep_bs = 0;
|
||||
static grub_uint32_t load_base_addr;
|
||||
|
||||
void
|
||||
grub_multiboot_add_elfsyms (grub_size_t num, grub_size_t entsize,
|
||||
@ -101,36 +102,40 @@ find_header (grub_properly_aligned_t *buffer, grub_ssize_t len)
|
||||
grub_err_t
|
||||
grub_multiboot_load (grub_file_t file, const char *filename)
|
||||
{
|
||||
grub_properly_aligned_t *buffer;
|
||||
grub_ssize_t len;
|
||||
struct multiboot_header *header;
|
||||
grub_err_t err;
|
||||
struct multiboot_header_tag *tag;
|
||||
struct multiboot_header_tag_address *addr_tag = NULL;
|
||||
int entry_specified = 0;
|
||||
grub_addr_t entry = 0;
|
||||
struct multiboot_header_tag_relocatable *rel_tag;
|
||||
int entry_specified = 0, efi_entry_specified = 0;
|
||||
grub_addr_t entry = 0, efi_entry = 0;
|
||||
grub_uint32_t console_required = 0;
|
||||
struct multiboot_header_tag_framebuffer *fbtag = NULL;
|
||||
int accepted_consoles = GRUB_MULTIBOOT_CONSOLE_EGA_TEXT;
|
||||
mbi_load_data_t mld;
|
||||
|
||||
buffer = grub_malloc (MULTIBOOT_SEARCH);
|
||||
if (!buffer)
|
||||
mld.mbi_ver = 2;
|
||||
mld.relocatable = 0;
|
||||
|
||||
mld.buffer = grub_malloc (MULTIBOOT_SEARCH);
|
||||
if (!mld.buffer)
|
||||
return grub_errno;
|
||||
|
||||
len = grub_file_read (file, buffer, MULTIBOOT_SEARCH);
|
||||
len = grub_file_read (file, mld.buffer, MULTIBOOT_SEARCH);
|
||||
if (len < 32)
|
||||
{
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), filename);
|
||||
}
|
||||
|
||||
COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0);
|
||||
|
||||
header = find_header (buffer, len);
|
||||
header = find_header (mld.buffer, len);
|
||||
|
||||
if (header == 0)
|
||||
{
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, "no multiboot header found");
|
||||
}
|
||||
|
||||
@ -172,10 +177,13 @@ grub_multiboot_load (grub_file_t file, const char *filename)
|
||||
case MULTIBOOT_TAG_TYPE_NETWORK:
|
||||
case MULTIBOOT_TAG_TYPE_EFI_MMAP:
|
||||
case MULTIBOOT_TAG_TYPE_EFI_BS:
|
||||
case MULTIBOOT_TAG_TYPE_EFI32_IH:
|
||||
case MULTIBOOT_TAG_TYPE_EFI64_IH:
|
||||
case MULTIBOOT_TAG_TYPE_LOAD_BASE_ADDR:
|
||||
break;
|
||||
|
||||
default:
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return grub_error (GRUB_ERR_UNKNOWN_OS,
|
||||
"unsupported information tag: 0x%x",
|
||||
request_tag->requests[i]);
|
||||
@ -192,6 +200,13 @@ grub_multiboot_load (grub_file_t file, const char *filename)
|
||||
entry = ((struct multiboot_header_tag_entry_address *) tag)->entry_addr;
|
||||
break;
|
||||
|
||||
case MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS_EFI64:
|
||||
#if defined (GRUB_MACHINE_EFI) && defined (__x86_64__)
|
||||
efi_entry_specified = 1;
|
||||
efi_entry = ((struct multiboot_header_tag_entry_address *) tag)->entry_addr;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case MULTIBOOT_HEADER_TAG_CONSOLE_FLAGS:
|
||||
if (!(((struct multiboot_header_tag_console_flags *) tag)->console_flags
|
||||
& MULTIBOOT_CONSOLE_FLAGS_EGA_TEXT_SUPPORTED))
|
||||
@ -206,27 +221,50 @@ grub_multiboot_load (grub_file_t file, const char *filename)
|
||||
accepted_consoles |= GRUB_MULTIBOOT_CONSOLE_FRAMEBUFFER;
|
||||
break;
|
||||
|
||||
case MULTIBOOT_HEADER_TAG_RELOCATABLE:
|
||||
mld.relocatable = 1;
|
||||
rel_tag = (struct multiboot_header_tag_relocatable *) tag;
|
||||
mld.min_addr = rel_tag->min_addr;
|
||||
mld.max_addr = rel_tag->max_addr;
|
||||
mld.align = rel_tag->align;
|
||||
switch (rel_tag->preference)
|
||||
{
|
||||
case MULTIBOOT_LOAD_PREFERENCE_LOW:
|
||||
mld.preference = GRUB_RELOCATOR_PREFERENCE_LOW;
|
||||
break;
|
||||
|
||||
case MULTIBOOT_LOAD_PREFERENCE_HIGH:
|
||||
mld.preference = GRUB_RELOCATOR_PREFERENCE_HIGH;
|
||||
break;
|
||||
|
||||
default:
|
||||
mld.preference = GRUB_RELOCATOR_PREFERENCE_NONE;
|
||||
}
|
||||
break;
|
||||
|
||||
/* GRUB always page-aligns modules. */
|
||||
case MULTIBOOT_HEADER_TAG_MODULE_ALIGN:
|
||||
break;
|
||||
|
||||
case MULTIBOOT_HEADER_TAG_EFI_BS:
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
keep_bs = 1;
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
if (! (tag->flags & MULTIBOOT_HEADER_TAG_OPTIONAL))
|
||||
{
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return grub_error (GRUB_ERR_UNKNOWN_OS,
|
||||
"unsupported tag: 0x%x", tag->type);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (addr_tag && !entry_specified)
|
||||
if (addr_tag && !entry_specified && !(keep_bs && efi_entry_specified))
|
||||
{
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return grub_error (GRUB_ERR_UNKNOWN_OS,
|
||||
"load address tag without entry address tag");
|
||||
}
|
||||
@ -235,8 +273,8 @@ grub_multiboot_load (grub_file_t file, const char *filename)
|
||||
{
|
||||
grub_uint64_t load_addr = (addr_tag->load_addr + 1)
|
||||
? addr_tag->load_addr : (addr_tag->header_addr
|
||||
- ((char *) header - (char *) buffer));
|
||||
int offset = ((char *) header - (char *) buffer -
|
||||
- ((char *) header - (char *) mld.buffer));
|
||||
int offset = ((char *) header - (char *) mld.buffer -
|
||||
(addr_tag->header_addr - load_addr));
|
||||
int load_size = ((addr_tag->load_end_addr == 0) ? file->size - offset :
|
||||
addr_tag->load_end_addr - addr_tag->load_addr);
|
||||
@ -249,27 +287,50 @@ grub_multiboot_load (grub_file_t file, const char *filename)
|
||||
else
|
||||
code_size = load_size;
|
||||
|
||||
err = grub_relocator_alloc_chunk_addr (grub_multiboot_relocator,
|
||||
&ch, load_addr,
|
||||
code_size);
|
||||
if (mld.relocatable)
|
||||
{
|
||||
if (code_size > mld.max_addr || mld.min_addr > mld.max_addr - code_size)
|
||||
{
|
||||
grub_free (mld.buffer);
|
||||
return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size");
|
||||
}
|
||||
|
||||
err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch,
|
||||
mld.min_addr, mld.max_addr - code_size,
|
||||
code_size, mld.align ? mld.align : 1,
|
||||
mld.preference, keep_bs);
|
||||
}
|
||||
else
|
||||
err = grub_relocator_alloc_chunk_addr (grub_multiboot_relocator,
|
||||
&ch, load_addr, code_size);
|
||||
if (err)
|
||||
{
|
||||
grub_dprintf ("multiboot_loader", "Error loading aout kludge\n");
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return err;
|
||||
}
|
||||
mld.link_base_addr = load_addr;
|
||||
mld.load_base_addr = get_physical_target_address (ch);
|
||||
source = get_virtual_current_address (ch);
|
||||
|
||||
grub_dprintf ("multiboot_loader", "link_base_addr=0x%x, load_base_addr=0x%x, "
|
||||
"load_size=0x%lx, relocatable=%d\n", mld.link_base_addr,
|
||||
mld.load_base_addr, (long) code_size, mld.relocatable);
|
||||
|
||||
if (mld.relocatable)
|
||||
grub_dprintf ("multiboot_loader", "align=0x%lx, preference=0x%x, avoid_efi_boot_services=%d\n",
|
||||
(long) mld.align, mld.preference, keep_bs);
|
||||
|
||||
if ((grub_file_seek (file, offset)) == (grub_off_t) -1)
|
||||
{
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
grub_file_read (file, source, load_size);
|
||||
if (grub_errno)
|
||||
{
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
@ -279,17 +340,41 @@ grub_multiboot_load (grub_file_t file, const char *filename)
|
||||
}
|
||||
else
|
||||
{
|
||||
err = grub_multiboot_load_elf (file, filename, buffer);
|
||||
mld.file = file;
|
||||
mld.filename = filename;
|
||||
mld.avoid_efi_boot_services = keep_bs;
|
||||
err = grub_multiboot_load_elf (&mld);
|
||||
if (err)
|
||||
{
|
||||
grub_free (buffer);
|
||||
grub_free (mld.buffer);
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
if (entry_specified)
|
||||
load_base_addr = mld.load_base_addr;
|
||||
|
||||
if (keep_bs && efi_entry_specified)
|
||||
grub_multiboot_payload_eip = efi_entry;
|
||||
else if (entry_specified)
|
||||
grub_multiboot_payload_eip = entry;
|
||||
|
||||
if (mld.relocatable)
|
||||
{
|
||||
/*
|
||||
* Both branches are mathematically equivalent. However, it looks
|
||||
* that real life (C?) is more complicated. I am trying to avoid
|
||||
* wrap around here if mld.load_base_addr < mld.link_base_addr.
|
||||
* If you look at C operator precedence then everything should work.
|
||||
* However, I am not 100% sure that a given compiler will not
|
||||
* optimize/break this stuff. So, maybe we should use signed
|
||||
* 64-bit int here.
|
||||
*/
|
||||
if (mld.load_base_addr >= mld.link_base_addr)
|
||||
grub_multiboot_payload_eip += mld.load_base_addr - mld.link_base_addr;
|
||||
else
|
||||
grub_multiboot_payload_eip -= mld.link_base_addr - mld.load_base_addr;
|
||||
}
|
||||
|
||||
if (fbtag)
|
||||
err = grub_multiboot_set_console (GRUB_MULTIBOOT_CONSOLE_FRAMEBUFFER,
|
||||
accepted_consoles,
|
||||
@ -377,7 +462,7 @@ static grub_size_t
|
||||
grub_multiboot_get_mbi_size (void)
|
||||
{
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
if (!efi_mmap_size)
|
||||
if (!keep_bs && !efi_mmap_size)
|
||||
find_efi_mmap_size ();
|
||||
#endif
|
||||
return 2 * sizeof (grub_uint32_t) + sizeof (struct multiboot_tag)
|
||||
@ -396,13 +481,16 @@ grub_multiboot_get_mbi_size (void)
|
||||
+ grub_get_multiboot_mmap_count ()
|
||||
* sizeof (struct multiboot_mmap_entry)), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_framebuffer), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_efi32), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_efi64), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_old_acpi)
|
||||
+ sizeof (struct grub_acpi_rsdp_v10), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_load_base_addr), MULTIBOOT_TAG_ALIGN)
|
||||
+ acpiv2_size ()
|
||||
+ net_size ()
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_efi32), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_efi32_ih), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_efi64), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_efi64_ih), MULTIBOOT_TAG_ALIGN)
|
||||
+ ALIGN_UP (sizeof (struct multiboot_tag_efi_mmap)
|
||||
+ efi_mmap_size, MULTIBOOT_TAG_ALIGN)
|
||||
#endif
|
||||
@ -678,6 +766,15 @@ grub_multiboot_make_mbi (grub_uint32_t *target)
|
||||
% sizeof (grub_properly_aligned_t) == 0);
|
||||
ptrorig += (2 * sizeof (grub_uint32_t)) / sizeof (grub_properly_aligned_t);
|
||||
|
||||
{
|
||||
struct multiboot_tag_load_base_addr *tag = (struct multiboot_tag_load_base_addr *) ptrorig;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_LOAD_BASE_ADDR;
|
||||
tag->size = sizeof (struct multiboot_tag_load_base_addr);
|
||||
tag->load_base_addr = load_base_addr;
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
|
||||
{
|
||||
struct multiboot_tag_string *tag = (struct multiboot_tag_string *) ptrorig;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_CMDLINE;
|
||||
@ -740,12 +837,13 @@ grub_multiboot_make_mbi (grub_uint32_t *target)
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
struct multiboot_tag_mmap *tag = (struct multiboot_tag_mmap *) ptrorig;
|
||||
grub_fill_multiboot_mmap (tag);
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
if (!keep_bs)
|
||||
{
|
||||
struct multiboot_tag_mmap *tag = (struct multiboot_tag_mmap *) ptrorig;
|
||||
grub_fill_multiboot_mmap (tag);
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
|
||||
{
|
||||
struct multiboot_tag_elf_sections *tag
|
||||
@ -761,18 +859,19 @@ grub_multiboot_make_mbi (grub_uint32_t *target)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
|
||||
{
|
||||
struct multiboot_tag_basic_meminfo *tag
|
||||
= (struct multiboot_tag_basic_meminfo *) ptrorig;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_BASIC_MEMINFO;
|
||||
tag->size = sizeof (struct multiboot_tag_basic_meminfo);
|
||||
if (!keep_bs)
|
||||
{
|
||||
struct multiboot_tag_basic_meminfo *tag
|
||||
= (struct multiboot_tag_basic_meminfo *) ptrorig;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_BASIC_MEMINFO;
|
||||
tag->size = sizeof (struct multiboot_tag_basic_meminfo);
|
||||
|
||||
/* Convert from bytes to kilobytes. */
|
||||
tag->mem_lower = grub_mmap_get_lower () / 1024;
|
||||
tag->mem_upper = grub_mmap_get_upper () / 1024;
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
/* Convert from bytes to kilobytes. */
|
||||
tag->mem_lower = grub_mmap_get_lower () / 1024;
|
||||
tag->mem_upper = grub_mmap_get_upper () / 1024;
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
|
||||
{
|
||||
struct grub_net_network_level_interface *net;
|
||||
@ -871,36 +970,57 @@ grub_multiboot_make_mbi (grub_uint32_t *target)
|
||||
grub_efi_uintn_t efi_desc_size;
|
||||
grub_efi_uint32_t efi_desc_version;
|
||||
|
||||
tag->type = MULTIBOOT_TAG_TYPE_EFI_MMAP;
|
||||
tag->size = sizeof (*tag) + efi_mmap_size;
|
||||
|
||||
if (!keep_bs)
|
||||
err = grub_efi_finish_boot_services (&efi_mmap_size, tag->efi_mmap, NULL,
|
||||
&efi_desc_size, &efi_desc_version);
|
||||
else
|
||||
{
|
||||
if (grub_efi_get_memory_map (&efi_mmap_size, (void *) tag->efi_mmap,
|
||||
NULL,
|
||||
&efi_desc_size, &efi_desc_version) <= 0)
|
||||
err = grub_error (GRUB_ERR_IO, "couldn't retrieve memory map");
|
||||
}
|
||||
if (err)
|
||||
return err;
|
||||
tag->descr_size = efi_desc_size;
|
||||
tag->descr_vers = efi_desc_version;
|
||||
tag->size = sizeof (*tag) + efi_mmap_size;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_EFI_MMAP;
|
||||
tag->size = sizeof (*tag) + efi_mmap_size;
|
||||
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
err = grub_efi_finish_boot_services (&efi_mmap_size, tag->efi_mmap, NULL,
|
||||
&efi_desc_size, &efi_desc_version);
|
||||
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
tag->descr_size = efi_desc_size;
|
||||
tag->descr_vers = efi_desc_version;
|
||||
tag->size = sizeof (*tag) + efi_mmap_size;
|
||||
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
}
|
||||
|
||||
if (keep_bs)
|
||||
{
|
||||
struct multiboot_tag *tag = (struct multiboot_tag *) ptrorig;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_EFI_BS;
|
||||
tag->size = sizeof (struct multiboot_tag);
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
{
|
||||
struct multiboot_tag *tag = (struct multiboot_tag *) ptrorig;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_EFI_BS;
|
||||
tag->size = sizeof (struct multiboot_tag);
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
|
||||
#ifdef __i386__
|
||||
{
|
||||
struct multiboot_tag_efi32_ih *tag = (struct multiboot_tag_efi32_ih *) ptrorig;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_EFI32_IH;
|
||||
tag->size = sizeof (struct multiboot_tag_efi32_ih);
|
||||
tag->pointer = (grub_addr_t) grub_efi_image_handle;
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __x86_64__
|
||||
{
|
||||
struct multiboot_tag_efi64_ih *tag = (struct multiboot_tag_efi64_ih *) ptrorig;
|
||||
tag->type = MULTIBOOT_TAG_TYPE_EFI64_IH;
|
||||
tag->size = sizeof (struct multiboot_tag_efi64_ih);
|
||||
tag->pointer = (grub_addr_t) grub_efi_image_handle;
|
||||
ptrorig += ALIGN_UP (tag->size, MULTIBOOT_TAG_ALIGN)
|
||||
/ sizeof (grub_properly_aligned_t);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -142,6 +142,7 @@ grub_net_configure_by_dhcp_ack (const char *name,
|
||||
grub_net_link_level_address_t hwaddr;
|
||||
struct grub_net_network_level_interface *inter;
|
||||
int mask = -1;
|
||||
char server_ip[sizeof ("xxx.xxx.xxx.xxx")];
|
||||
|
||||
addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4;
|
||||
addr.ipv4 = bp->your_ip;
|
||||
@ -157,6 +158,9 @@ grub_net_configure_by_dhcp_ack (const char *name,
|
||||
hwaddr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET;
|
||||
|
||||
inter = grub_net_add_addr (name, card, &addr, &hwaddr, flags);
|
||||
if (!inter)
|
||||
return 0;
|
||||
|
||||
#if 0
|
||||
/* This is likely based on misunderstanding. gateway_ip refers to
|
||||
address of BOOTP relay and should not be used after BOOTP transaction
|
||||
@ -189,15 +193,22 @@ grub_net_configure_by_dhcp_ack (const char *name,
|
||||
if (size > OFFSET_OF (boot_file, bp))
|
||||
grub_env_set_net_property (name, "boot_file", bp->boot_file,
|
||||
sizeof (bp->boot_file));
|
||||
if (bp->server_ip)
|
||||
{
|
||||
grub_snprintf (server_ip, sizeof (server_ip), "%d.%d.%d.%d",
|
||||
((grub_uint8_t *) &bp->server_ip)[0],
|
||||
((grub_uint8_t *) &bp->server_ip)[1],
|
||||
((grub_uint8_t *) &bp->server_ip)[2],
|
||||
((grub_uint8_t *) &bp->server_ip)[3]);
|
||||
grub_env_set_net_property (name, "next_server", server_ip, sizeof (server_ip));
|
||||
grub_print_error ();
|
||||
}
|
||||
|
||||
if (is_def)
|
||||
grub_net_default_server = 0;
|
||||
if (is_def && !grub_net_default_server && bp->server_ip)
|
||||
{
|
||||
grub_net_default_server = grub_xasprintf ("%d.%d.%d.%d",
|
||||
((grub_uint8_t *) &bp->server_ip)[0],
|
||||
((grub_uint8_t *) &bp->server_ip)[1],
|
||||
((grub_uint8_t *) &bp->server_ip)[2],
|
||||
((grub_uint8_t *) &bp->server_ip)[3]);
|
||||
grub_net_default_server = grub_strdup (server_ip);
|
||||
grub_print_error ();
|
||||
}
|
||||
|
||||
@ -209,11 +220,7 @@ grub_net_configure_by_dhcp_ack (const char *name,
|
||||
|
||||
if (device && !*device && bp->server_ip)
|
||||
{
|
||||
*device = grub_xasprintf ("tftp,%d.%d.%d.%d",
|
||||
((grub_uint8_t *) &bp->server_ip)[0],
|
||||
((grub_uint8_t *) &bp->server_ip)[1],
|
||||
((grub_uint8_t *) &bp->server_ip)[2],
|
||||
((grub_uint8_t *) &bp->server_ip)[3]);
|
||||
*device = grub_xasprintf ("tftp,%s", server_ip);
|
||||
grub_print_error ();
|
||||
}
|
||||
if (size > OFFSET_OF (server_name, bp)
|
||||
@ -368,6 +375,7 @@ grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)),
|
||||
|
||||
if (grub_strcmp (args[3], "string") == 0)
|
||||
{
|
||||
grub_err_t err = GRUB_ERR_NONE;
|
||||
char *val = grub_malloc (taglength + 1);
|
||||
if (!val)
|
||||
return grub_errno;
|
||||
@ -376,8 +384,9 @@ grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)),
|
||||
if (args[0][0] == '-' && args[0][1] == 0)
|
||||
grub_printf ("%s\n", val);
|
||||
else
|
||||
return grub_env_set (args[0], val);
|
||||
return GRUB_ERR_NONE;
|
||||
err = grub_env_set (args[0], val);
|
||||
grub_free (val);
|
||||
return err;
|
||||
}
|
||||
|
||||
if (grub_strcmp (args[3], "number") == 0)
|
||||
@ -399,6 +408,7 @@ grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)),
|
||||
|
||||
if (grub_strcmp (args[3], "hex") == 0)
|
||||
{
|
||||
grub_err_t err = GRUB_ERR_NONE;
|
||||
char *val = grub_malloc (2 * taglength + 1);
|
||||
int i;
|
||||
if (!val)
|
||||
@ -412,8 +422,9 @@ grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)),
|
||||
if (args[0][0] == '-' && args[0][1] == 0)
|
||||
grub_printf ("%s\n", val);
|
||||
else
|
||||
return grub_env_set (args[0], val);
|
||||
return GRUB_ERR_NONE;
|
||||
err = grub_env_set (args[0], val);
|
||||
grub_free (val);
|
||||
return err;
|
||||
}
|
||||
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT,
|
||||
|
@ -238,6 +238,15 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)),
|
||||
char *redirect_save = NULL;
|
||||
grub_uint32_t ttl_all = ~0U;
|
||||
|
||||
/* Code apparently assumed that only one packet is received as response.
|
||||
We may get multiple responses due to network condition, so check here
|
||||
and quit early. */
|
||||
if (*data->addresses)
|
||||
{
|
||||
grub_netbuff_free (nb);
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
head = (struct dns_header *) nb->data;
|
||||
ptr = (grub_uint8_t *) (head + 1);
|
||||
if (ptr >= nb->tail)
|
||||
|
@ -85,24 +85,30 @@ get_card_packet (struct grub_net_card *dev)
|
||||
grub_uint64_t start_time;
|
||||
struct grub_net_buff *nb;
|
||||
|
||||
nb = grub_netbuff_alloc (dev->mtu + 64 + 2);
|
||||
start_time = grub_get_time_ms ();
|
||||
do
|
||||
rc = grub_ieee1275_read (data->handle, dev->rcvbuf, dev->rcvbufsize, &actual);
|
||||
while ((actual <= 0 || rc < 0) && (grub_get_time_ms () - start_time < 200));
|
||||
|
||||
if (actual <= 0)
|
||||
return NULL;
|
||||
|
||||
nb = grub_netbuff_alloc (actual + 2);
|
||||
if (!nb)
|
||||
return NULL;
|
||||
/* Reserve 2 bytes so that 2 + 14/18 bytes of ethernet header is divisible
|
||||
by 4. So that IP header is aligned on 4 bytes. */
|
||||
grub_netbuff_reserve (nb, 2);
|
||||
|
||||
start_time = grub_get_time_ms ();
|
||||
do
|
||||
rc = grub_ieee1275_read (data->handle, nb->data, dev->mtu + 64, &actual);
|
||||
while ((actual <= 0 || rc < 0) && (grub_get_time_ms () - start_time < 200));
|
||||
if (actual > 0)
|
||||
grub_memcpy (nb->data, dev->rcvbuf, actual);
|
||||
|
||||
if (grub_netbuff_put (nb, actual))
|
||||
{
|
||||
grub_netbuff_put (nb, actual);
|
||||
return nb;
|
||||
grub_netbuff_free (nb);
|
||||
return NULL;
|
||||
}
|
||||
grub_netbuff_free (nb);
|
||||
return NULL;
|
||||
|
||||
return nb;
|
||||
}
|
||||
|
||||
static struct grub_net_card_driver ofdriver =
|
||||
@ -294,6 +300,91 @@ grub_ieee1275_net_config_real (const char *devpath, char **device, char **path,
|
||||
}
|
||||
}
|
||||
|
||||
/* Allocate memory with alloc-mem */
|
||||
static void *
|
||||
grub_ieee1275_alloc_mem (grub_size_t len)
|
||||
{
|
||||
struct alloc_args
|
||||
{
|
||||
struct grub_ieee1275_common_hdr common;
|
||||
grub_ieee1275_cell_t method;
|
||||
grub_ieee1275_cell_t len;
|
||||
grub_ieee1275_cell_t catch;
|
||||
grub_ieee1275_cell_t result;
|
||||
}
|
||||
args;
|
||||
|
||||
if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_CANNOT_INTERPRET))
|
||||
{
|
||||
grub_error (GRUB_ERR_UNKNOWN_COMMAND, N_("interpret is not supported"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
INIT_IEEE1275_COMMON (&args.common, "interpret", 2, 2);
|
||||
args.len = len;
|
||||
args.method = (grub_ieee1275_cell_t) "alloc-mem";
|
||||
|
||||
if (IEEE1275_CALL_ENTRY_FN (&args) == -1 || args.catch)
|
||||
{
|
||||
grub_error (GRUB_ERR_INVALID_COMMAND, N_("alloc-mem failed"));
|
||||
return NULL;
|
||||
}
|
||||
else
|
||||
return (void *)args.result;
|
||||
}
|
||||
|
||||
/* Free memory allocated by alloc-mem */
|
||||
static grub_err_t
|
||||
grub_ieee1275_free_mem (void *addr, grub_size_t len)
|
||||
{
|
||||
struct free_args
|
||||
{
|
||||
struct grub_ieee1275_common_hdr common;
|
||||
grub_ieee1275_cell_t method;
|
||||
grub_ieee1275_cell_t len;
|
||||
grub_ieee1275_cell_t addr;
|
||||
grub_ieee1275_cell_t catch;
|
||||
}
|
||||
args;
|
||||
|
||||
if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_CANNOT_INTERPRET))
|
||||
{
|
||||
grub_error (GRUB_ERR_UNKNOWN_COMMAND, N_("interpret is not supported"));
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
INIT_IEEE1275_COMMON (&args.common, "interpret", 3, 1);
|
||||
args.addr = (grub_ieee1275_cell_t)addr;
|
||||
args.len = len;
|
||||
args.method = (grub_ieee1275_cell_t) "free-mem";
|
||||
|
||||
if (IEEE1275_CALL_ENTRY_FN(&args) == -1 || args.catch)
|
||||
{
|
||||
grub_error (GRUB_ERR_INVALID_COMMAND, N_("free-mem failed"));
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static void *
|
||||
ofnet_alloc_netbuf (grub_size_t len)
|
||||
{
|
||||
if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_VIRT_TO_REAL_BROKEN))
|
||||
return grub_ieee1275_alloc_mem (len);
|
||||
else
|
||||
return grub_zalloc (len);
|
||||
}
|
||||
|
||||
static void
|
||||
ofnet_free_netbuf (void *addr, grub_size_t len)
|
||||
{
|
||||
if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_VIRT_TO_REAL_BROKEN))
|
||||
grub_ieee1275_free_mem (addr, len);
|
||||
else
|
||||
grub_free (addr);
|
||||
}
|
||||
|
||||
static int
|
||||
search_net_devices (struct grub_ieee1275_devalias *alias)
|
||||
{
|
||||
@ -409,40 +500,19 @@ search_net_devices (struct grub_ieee1275_devalias *alias)
|
||||
card->default_address = lla;
|
||||
|
||||
card->txbufsize = ALIGN_UP (card->mtu, 64) + 256;
|
||||
card->rcvbufsize = ALIGN_UP (card->mtu, 64) + 256;
|
||||
|
||||
if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_VIRT_TO_REAL_BROKEN))
|
||||
{
|
||||
struct alloc_args
|
||||
{
|
||||
struct grub_ieee1275_common_hdr common;
|
||||
grub_ieee1275_cell_t method;
|
||||
grub_ieee1275_cell_t len;
|
||||
grub_ieee1275_cell_t catch;
|
||||
grub_ieee1275_cell_t result;
|
||||
}
|
||||
args;
|
||||
INIT_IEEE1275_COMMON (&args.common, "interpret", 2, 2);
|
||||
args.len = card->txbufsize;
|
||||
args.method = (grub_ieee1275_cell_t) "alloc-mem";
|
||||
|
||||
if (IEEE1275_CALL_ENTRY_FN (&args) == -1
|
||||
|| args.catch)
|
||||
{
|
||||
card->txbuf = 0;
|
||||
grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory"));
|
||||
}
|
||||
else
|
||||
card->txbuf = (void *) args.result;
|
||||
}
|
||||
else
|
||||
card->txbuf = grub_zalloc (card->txbufsize);
|
||||
card->txbuf = ofnet_alloc_netbuf (card->txbufsize);
|
||||
if (!card->txbuf)
|
||||
goto fail_netbuf;
|
||||
|
||||
card->rcvbuf = ofnet_alloc_netbuf (card->rcvbufsize);
|
||||
if (!card->rcvbuf)
|
||||
{
|
||||
grub_free (ofdata->path);
|
||||
grub_free (ofdata);
|
||||
grub_free (card);
|
||||
grub_print_error ();
|
||||
return 0;
|
||||
grub_error_push ();
|
||||
ofnet_free_netbuf (card->txbuf, card->txbufsize);
|
||||
grub_error_pop ();
|
||||
goto fail_netbuf;
|
||||
}
|
||||
card->driver = NULL;
|
||||
card->data = ofdata;
|
||||
@ -455,6 +525,13 @@ search_net_devices (struct grub_ieee1275_devalias *alias)
|
||||
card->driver = &ofdriver;
|
||||
grub_net_card_register (card);
|
||||
return 0;
|
||||
|
||||
fail_netbuf:
|
||||
grub_free (ofdata->path);
|
||||
grub_free (ofdata);
|
||||
grub_free (card);
|
||||
grub_print_error ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -381,9 +381,8 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial)
|
||||
ptr = nb->tail;
|
||||
grub_snprintf ((char *) ptr,
|
||||
sizeof ("Range: bytes=XXXXXXXXXXXXXXXXXXXX-"
|
||||
"\r\n"
|
||||
"\r\n"),
|
||||
"Range: bytes=%" PRIuGRUB_UINT64_T "-\r\n\r\n",
|
||||
"Range: bytes=%" PRIuGRUB_UINT64_T "-\r\n",
|
||||
offset);
|
||||
grub_netbuff_put (nb, grub_strlen ((char *) ptr));
|
||||
}
|
||||
@ -450,6 +449,7 @@ http_seek (struct grub_file *file, grub_off_t off)
|
||||
}
|
||||
|
||||
file->device->net->stall = 0;
|
||||
file->device->net->eof = 0;
|
||||
file->device->net->offset = off;
|
||||
|
||||
data = grub_zalloc (sizeof (*data));
|
||||
|
@ -363,7 +363,9 @@ static void
|
||||
free_old_fragments (void)
|
||||
{
|
||||
struct reassemble *rsm, **prev;
|
||||
grub_uint64_t limit_time = grub_get_time_ms () - 90000;
|
||||
grub_uint64_t limit_time = grub_get_time_ms ();
|
||||
|
||||
limit_time = (limit_time > 90000) ? limit_time - 90000 : 0;
|
||||
|
||||
for (prev = &reassembles, rsm = *prev; rsm; rsm = *prev)
|
||||
if (rsm->last_time < limit_time)
|
||||
|
@ -1346,6 +1346,15 @@ grub_net_open_real (const char *name)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (grub_strncmp (prefdev, "pxe", sizeof ("pxe") - 1) == 0 &&
|
||||
(!prefdev[sizeof ("pxe") - 1] || (prefdev[sizeof("pxe") - 1] == ':')))
|
||||
{
|
||||
grub_free (prefdev);
|
||||
prefdev = grub_strdup ("tftp");
|
||||
if (!prefdev)
|
||||
continue;
|
||||
}
|
||||
|
||||
comma = grub_strchr (prefdev, ',');
|
||||
if (comma)
|
||||
*comma = '\0';
|
||||
@ -1672,6 +1681,7 @@ grub_net_seek_real (struct grub_file *file, grub_off_t offset)
|
||||
file->device->net->packs.last = NULL;
|
||||
file->device->net->offset = 0;
|
||||
file->device->net->eof = 0;
|
||||
file->device->net->stall = 0;
|
||||
err = file->device->net->protocol->open (file, file->device->net->name);
|
||||
if (err)
|
||||
return err;
|
||||
|
@ -1144,6 +1144,16 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical,
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
is_visible (const struct grub_unicode_glyph *gl)
|
||||
{
|
||||
if (gl->ncomb)
|
||||
return 1;
|
||||
if (gl->base == GRUB_UNICODE_LRM || gl->base == GRUB_UNICODE_RLM)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_ssize_t
|
||||
grub_bidi_logical_to_visual (const grub_uint32_t *logical,
|
||||
grub_size_t logical_len,
|
||||
@ -1164,6 +1174,7 @@ grub_bidi_logical_to_visual (const grub_uint32_t *logical,
|
||||
if (ptr == logical + logical_len || *ptr == '\n')
|
||||
{
|
||||
grub_ssize_t ret;
|
||||
grub_ssize_t i, j;
|
||||
ret = grub_bidi_line_logical_to_visual (line_start,
|
||||
ptr - line_start,
|
||||
visual_ptr,
|
||||
@ -1182,7 +1193,10 @@ grub_bidi_logical_to_visual (const grub_uint32_t *logical,
|
||||
grub_free (*visual_out);
|
||||
return ret;
|
||||
}
|
||||
visual_ptr += ret;
|
||||
for (i = 0, j = 0; i < ret; i++)
|
||||
if (is_visible(&visual_ptr[i]))
|
||||
visual_ptr[j++] = visual_ptr[i];
|
||||
visual_ptr += j;
|
||||
line_start = ptr;
|
||||
if (ptr != logical + logical_len)
|
||||
{
|
||||
|
@ -40,6 +40,12 @@
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
#if defined(MAJOR_IN_MKDEV)
|
||||
#include <sys/mkdev.h>
|
||||
#elif defined(MAJOR_IN_SYSMACROS)
|
||||
#include <sys/sysmacros.h>
|
||||
#endif
|
||||
|
||||
#include <libdevmapper.h>
|
||||
|
||||
#include <grub/types.h>
|
||||
@ -137,7 +143,7 @@ grub_util_get_dm_abstraction (const char *os_dev)
|
||||
grub_free (uuid);
|
||||
return GRUB_DEV_ABSTRACTION_LVM;
|
||||
}
|
||||
if (strncmp (uuid, "CRYPT-LUKS1-", 4) == 0)
|
||||
if (strncmp (uuid, "CRYPT-LUKS1-", 12) == 0)
|
||||
{
|
||||
grub_free (uuid);
|
||||
return GRUB_DEV_ABSTRACTION_LUKS;
|
||||
|
@ -24,6 +24,11 @@
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
|
||||
#if defined(MAJOR_IN_MKDEV)
|
||||
#include <sys/mkdev.h>
|
||||
#elif defined(MAJOR_IN_SYSMACROS)
|
||||
#include <sys/sysmacros.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_DEVICE_MAPPER
|
||||
# include <libdevmapper.h>
|
||||
|
@ -35,6 +35,12 @@
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
#if defined(MAJOR_IN_MKDEV)
|
||||
#include <sys/mkdev.h>
|
||||
#elif defined(MAJOR_IN_SYSMACROS)
|
||||
#include <sys/sysmacros.h>
|
||||
#endif
|
||||
|
||||
#include <grub/types.h>
|
||||
#include <sys/ioctl.h> /* ioctl */
|
||||
#include <sys/mount.h>
|
||||
@ -374,24 +380,30 @@ get_btrfs_fs_prefix (const char *mount_path)
|
||||
char **
|
||||
grub_find_root_devices_from_mountinfo (const char *dir, char **relroot)
|
||||
{
|
||||
FILE *fp;
|
||||
FILE *fp = NULL;
|
||||
char *buf = NULL;
|
||||
size_t len = 0;
|
||||
grub_size_t entry_len = 0, entry_max = 4;
|
||||
grub_size_t entry_len, entry_max = 4;
|
||||
struct mountinfo_entry *entries;
|
||||
struct mountinfo_entry parent_entry = { 0, 0, 0, "", "", "", "" };
|
||||
int i;
|
||||
int retry = 0;
|
||||
int dir_fd = -1;
|
||||
char **ret = NULL;
|
||||
|
||||
if (! *dir)
|
||||
dir = "/";
|
||||
if (relroot)
|
||||
*relroot = NULL;
|
||||
|
||||
entries = xmalloc (entry_max * sizeof (*entries));
|
||||
|
||||
again:
|
||||
fp = grub_util_fopen ("/proc/self/mountinfo", "r");
|
||||
if (! fp)
|
||||
return NULL; /* fall through to other methods */
|
||||
goto out; /* fall through to other methods */
|
||||
|
||||
entries = xmalloc (entry_max * sizeof (*entries));
|
||||
entry_len = 0;
|
||||
|
||||
/* First, build a list of relevant visible mounts. */
|
||||
while (getline (&buf, &len, fp) > 0)
|
||||
@ -478,7 +490,6 @@ grub_find_root_devices_from_mountinfo (const char *dir, char **relroot)
|
||||
/* Now scan visible mounts for the ones we're interested in. */
|
||||
for (i = entry_len - 1; i >= 0; i--)
|
||||
{
|
||||
char **ret = NULL;
|
||||
char *fs_prefix = NULL;
|
||||
if (!*entries[i].device)
|
||||
continue;
|
||||
@ -509,6 +520,23 @@ grub_find_root_devices_from_mountinfo (const char *dir, char **relroot)
|
||||
ret = grub_find_root_devices_from_btrfs (dir);
|
||||
fs_prefix = get_btrfs_fs_prefix (entries[i].enc_path);
|
||||
}
|
||||
else if (!retry && grub_strcmp (entries[i].fstype, "autofs") == 0)
|
||||
{
|
||||
/* If the best match is automounted, try to trigger mount. We cannot
|
||||
simply return here because stat() on automounted directory does not
|
||||
trigger mount and returns bogus (pseudo)device number instead.
|
||||
We keep mountpoint open until end of scan to prevent timeout. */
|
||||
|
||||
int flags = O_RDONLY|O_DIRECTORY;
|
||||
|
||||
fclose (fp);
|
||||
#ifdef O_LARGEFILE
|
||||
flags |= O_LARGEFILE;
|
||||
#endif
|
||||
dir_fd = open (entries[i].enc_path, flags);
|
||||
retry = 1;
|
||||
goto again;
|
||||
}
|
||||
if (!ret)
|
||||
{
|
||||
ret = xmalloc (2 * sizeof (ret[0]));
|
||||
@ -538,16 +566,17 @@ grub_find_root_devices_from_mountinfo (const char *dir, char **relroot)
|
||||
}
|
||||
if (fs_prefix != entries[i].enc_root)
|
||||
free (fs_prefix);
|
||||
free (buf);
|
||||
free (entries);
|
||||
fclose (fp);
|
||||
return ret;
|
||||
break;
|
||||
}
|
||||
|
||||
out:
|
||||
free (buf);
|
||||
free (entries);
|
||||
fclose (fp);
|
||||
return NULL;
|
||||
if (fp)
|
||||
fclose (fp);
|
||||
if (dir_fd != -1)
|
||||
close (dir_fd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static char *
|
||||
|
@ -51,8 +51,10 @@
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(HAVE_SYS_MKDEV_H)
|
||||
#if defined(MAJOR_IN_MKDEV)
|
||||
#include <sys/mkdev.h>
|
||||
#elif defined(MAJOR_IN_SYSMACROS)
|
||||
#include <sys/sysmacros.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_LIBZFS) && defined(HAVE_LIBNVPAIR)
|
||||
|
@ -251,7 +251,6 @@ grub_script_lexer_init (struct grub_parser_param *parser, char *script,
|
||||
{
|
||||
parser->lexerstate = 0;
|
||||
yylex_destroy (lexerstate->yyscanner);
|
||||
grub_free (lexerstate->yyscanner);
|
||||
grub_free (lexerstate->text);
|
||||
grub_free (lexerstate);
|
||||
return 0;
|
||||
|
@ -88,7 +88,7 @@ static const grub_uint8_t set1_mapping[128] =
|
||||
/* 0x4c */ GRUB_KEYBOARD_KEY_NUM5, GRUB_KEYBOARD_KEY_NUM6,
|
||||
/* 0x4e */ GRUB_KEYBOARD_KEY_NUMPLUS, GRUB_KEYBOARD_KEY_NUM1,
|
||||
/* 0x50 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM3,
|
||||
/* 0x52 */ GRUB_KEYBOARD_KEY_NUMDOT, GRUB_KEYBOARD_KEY_NUMDOT,
|
||||
/* 0x52 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT,
|
||||
/* 0x54 */ 0, 0,
|
||||
/* 0x56 */ GRUB_KEYBOARD_KEY_102ND, GRUB_KEYBOARD_KEY_F11,
|
||||
/* 0x58 */ GRUB_KEYBOARD_KEY_F12, 0,
|
||||
@ -193,7 +193,7 @@ static const grub_uint8_t set2_mapping[256] =
|
||||
/* 0x6a */ GRUB_KEYBOARD_KEY_JP_YEN, GRUB_KEYBOARD_KEY_NUM4,
|
||||
/* 0x6c */ GRUB_KEYBOARD_KEY_NUM7, GRUB_KEYBOARD_KEY_KPCOMMA,
|
||||
/* 0x6e */ 0, 0,
|
||||
/* 0x70 */ GRUB_KEYBOARD_KEY_NUMDOT, GRUB_KEYBOARD_KEY_NUM0,
|
||||
/* 0x70 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT,
|
||||
/* 0x72 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM5,
|
||||
/* 0x74 */ GRUB_KEYBOARD_KEY_NUM6, GRUB_KEYBOARD_KEY_NUM8,
|
||||
/* 0x76 */ GRUB_KEYBOARD_KEY_ESCAPE, GRUB_KEYBOARD_KEY_NUM_LOCK,
|
||||
|
@ -668,6 +668,7 @@ draw_cursor (int show)
|
||||
unsigned int y;
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
unsigned int ascent;
|
||||
grub_video_color_t color;
|
||||
|
||||
write_char ();
|
||||
@ -679,13 +680,18 @@ draw_cursor (int show)
|
||||
>= virtual_screen.rows)
|
||||
return;
|
||||
|
||||
/* Ensure that cursor doesn't go outside of character box. */
|
||||
ascent = grub_font_get_ascent(virtual_screen.font);
|
||||
if (ascent > virtual_screen.normal_char_height - 2)
|
||||
ascent = virtual_screen.normal_char_height - 2;
|
||||
|
||||
/* Determine cursor properties and position on text layer. */
|
||||
x = virtual_screen.cursor_x * virtual_screen.normal_char_width;
|
||||
width = virtual_screen.normal_char_width;
|
||||
color = virtual_screen.fg_color;
|
||||
y = ((virtual_screen.cursor_y + virtual_screen.total_scroll)
|
||||
* virtual_screen.normal_char_height
|
||||
+ grub_font_get_ascent (virtual_screen.font));
|
||||
+ ascent);
|
||||
height = 2;
|
||||
|
||||
/* Render cursor to text layer. */
|
||||
|
@ -1,101 +1,101 @@
|
||||
{ "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x24285504, 0x24285504, 0x3cc7ae1, 0x3cc7ae1, 0x20e2971b, 0x20e2971b, 0xc295b4fc, 0xc295b4fc, 0x1fbe0d4, 0x1fbe0d4, 0x82930744, 0x82930744, 0xf4b66805, 0xf4b66805, 0x3e16a8c5, 0x3e16a8c5, 0x1165d7dc, 0x1165d7dc, 0xfa78cf7f, 0xfa78cf7f, 0xc105a544, 0xc105a544, 0x430cee22, 0x430cee22, 0xbcf938a0, 0xbcf938a0, 0x7b800045, 0x7b800045, 0x2cc85143, 0x2cc85143, 0x80e0a4b4, 0x80e0a4b4, 0x212e8415, 0x212e8415, 0x151d5163, 0x151d5163, 0x24dcfa9e, 0x24dcfa9e, 0xb1df21b2, 0xb1df21b2, 0x2990a5cf, 0x8c1740a5, 0xd29f2d17, 0xd29f2d17, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2b224886, 0x2b224886, 0x4fa52ab9, 0x4fa52ab9, 0xad8716fa, 0xad8716fa, 0x97a64f1, 0x97a64f1, 0x5fa72700, 0x5fa72700, 0x41913bce, 0x41913bce, 0xe3e6af02, 0xe3e6af02, 0x978a4f3c, 0x978a4f3c, 0xfdedd645, 0xfdedd645, 0x4700a76, 0x4700a76, 0x28761dd2, 0x28761dd2, 0x255a96e8, 0x255a96e8, 0x6eb066fa, 0x6eb066fa, 0x5948e6c4, 0x5948e6c4, 0xc2d83034, 0xc2d83034, 0xe9cc8934, 0xe9cc8934, 0x406490d, 0x406490d, 0x2287423f, 0x2287423f, 0x565ef88b, 0x565ef88b, 0x31af9b10, 0x31af9b10, 0xfbd17ce0, 0xdb686c61, 0xd2731a72, 0xd2731a72, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x999febcd, 0x999febcd, 0x4be4a5e6, 0x4be4a5e6, 0xaa36e979, 0xaa36e979, 0x27ebab0f, 0x27ebab0f, 0x6fa8606c, 0x6fa8606c, 0xd3f60410, 0xd3f60410, 0xa3aea110, 0xa3aea110, 0x5b352e4b, 0x5b352e4b, 0xad22636f, 0xad22636f, 0x54333936, 0x54333936, 0x73d67c9f, 0x73d67c9f, 0xb4462f4a, 0xb4462f4a, 0x1dffdbca, 0x1dffdbca, 0x7095a788, 0x7095a788, 0xc71aa28, 0xc71aa28, 0x215e8dfc, 0x215e8dfc, 0x388d3494, 0x388d3494, 0x5804733d, 0x5804733d, 0x98ef7a83, 0x98ef7a83, 0xc986bddb, 0xc986bddb, 0x183599ab, 0xf4204ada, 0x6562dd40, 0x6562dd40, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xea25e7f1, 0xea25e7f1, 0xf959b605, 0xf959b605, 0x5650ee99, 0x5650ee99, 0xbf3bec3c, 0xbf3bec3c, 0x8d04d782, 0x8d04d782, 0xddbcf5be, 0xddbcf5be, 0x7ee1adaf, 0x7ee1adaf, 0x2fbaff58, 0x2fbaff58, 0x42b24add, 0x42b24add, 0x47483eb4, 0x47483eb4, 0x78962528, 0x78962528, 0x847ee9b7, 0x847ee9b7, 0xc826c0f, 0xc826c0f, 0x82b1bf51, 0x82b1bf51, 0x13ccc821, 0x13ccc821, 0x7d783b1e, 0x7d783b1e, 0xdd2c0bbc, 0xdd2c0bbc, 0x7b71ebd7, 0x7b71ebd7, 0x7381f4c5, 0x7381f4c5, 0xfe20bc9c, 0xfe20bc9c, 0x85dee923, 0x85611b00, 0x723c0ec4, 0x723c0ec4, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xbc52dc5f, 0xbc52dc5f, 0x4c895989, 0x4c895989, 0x59d180a4, 0x59d180a4, 0x50eb81b9, 0x50eb81b9, 0xae85d6c6, 0xae85d6c6, 0xf8354df6, 0xf8354df6, 0x83562153, 0x83562153, 0xd4caece2, 0xd4caece2, 0xb0b5612d, 0xb0b5612d, 0x123d360a, 0x123d360a, 0x70f62e8e, 0x70f62e8e, 0x6a82788f, 0x6a82788f, 0xb0a3ee68, 0xb0a3ee68, 0x604dd5b0, 0x604dd5b0, 0x20f7ea1, 0x20f7ea1, 0x3f6db6bf, 0x3f6db6bf, 0x4a762b9d, 0x4a762b9d, 0xea026ad4, 0xea026ad4, 0x8ba3d148, 0x8ba3d148, 0x434f2359, 0x434f2359, 0x4db299a1, 0x73536949, 0xf022eb4b, 0xf022eb4b, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7cfd676, 0x7cfd676, 0xaf7bcdc6, 0xaf7bcdc6, 0x7dc1f958, 0x7dc1f958, 0xc902ad3e, 0xc902ad3e, 0x5529ad04, 0x5529ad04, 0xa0a133b1, 0xa0a133b1, 0x72f927da, 0x72f927da, 0x28de6d8e, 0x28de6d8e, 0xa5eb10fc, 0xa5eb10fc, 0x2d7ba4f5, 0x2d7ba4f5, 0xd832b228, 0xd832b228, 0x56f0351, 0x56f0351, 0xc6556c2e, 0xc6556c2e, 0x2ceecfa4, 0x2ceecfa4, 0x3d765fbd, 0x3d765fbd, 0x8da7887e, 0x8da7887e, 0xfc8209ea, 0xfc8209ea, 0x6e822767, 0x6e822767, 0xba5c0adf, 0xba5c0adf, 0x8e2af81a, 0x8e2af81a, 0x62c25eb4, 0x2ba315e0, 0x349b7b7d, 0x349b7b7d, }, 45 },
|
||||
{ "cmdline_cat", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x361fdea5, 0x361fdea5, 0x89a3b488, 0x89a3b488, 0x37302fbe, 0x37302fbe, 0x4b9f20b8, 0x4b9f20b8, 0xc60cf5fe, 0xc60cf5fe, 0xf7b755aa, 0xf7b755aa, 0xcaba5d52, 0xcaba5d52, 0x4f793adf, 0x4f793adf, 0x4cd60722, 0x4cd60722, 0x13adbeec, 0x13adbeec, 0xdc2c109f, 0xdc2c109f, 0x444e465a, 0x444e465a, 0x7baac5fa, 0x7baac5fa, 0x8e746e7f, 0x8e746e7f, 0x7fea6e68, 0x7fea6e68, 0x1f6edf48, 0x1f6edf48, 0x23322506, 0x23322506, 0xbccd38ef, 0xbccd38ef, 0x1b1f1dd3, 0x1b1f1dd3, 0x9c901775, 0x9c901775, 0x78b8e355, 0x95034aa2, 0x4f00ee83, 0x4f00ee83, }, 45 },
|
||||
{ "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xdf032925, 0xb9ccc5a6, 0xdf032925, 0x9cf5e462, 0x59c36f00, 0x59c36f00, 0xd3a0a4df, 0xd3a0a4df, 0xd3a0a4df, 0xad20c9b9, 0xad20c9b9, 0xad20c9b9, 0xcfd6dc6b, 0xcfd6dc6b, 0xcfd6dc6b, 0x59c36f00, 0x9cf5e462, 0x9cf5e462, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa24e444d, 0x664c3f5, 0xa24e444d, 0x8c4bc132, 0xaa4593fe, 0xaa4593fe, 0x86e14b09, 0x86e14b09, 0x86e14b09, 0x2014466e, 0x2014466e, 0x2014466e, 0xd2ced16, 0xd2ced16, 0xd2ced16, 0xaa4593fe, 0x8c4bc132, 0x8c4bc132, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x6fa41086, 0xd5284f5e, 0x6fa41086, 0x32b37d02, 0xc9cbf769, 0xc9cbf769, 0xf2a2bdc8, 0xf2a2bdc8, 0xf2a2bdc8, 0xc7a7c04, 0xc7a7c04, 0xc7a7c04, 0xe530c30c, 0xe530c30c, 0xe530c30c, 0xc9cbf769, 0x32b37d02, 0x32b37d02, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xd084e37c, 0x6324ea4b, 0xd084e37c, 0x7ed2aaa4, 0x9813a416, 0x9813a416, 0xbd3bd80c, 0xbd3bd80c, 0xbd3bd80c, 0x2ce05e3f, 0x2ce05e3f, 0x2ce05e3f, 0x355a63ef, 0x355a63ef, 0x355a63ef, 0x9813a416, 0x7ed2aaa4, 0x7ed2aaa4, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x451273fe, 0x55e4689f, 0x451273fe, 0x33b4464d, 0x5fcf013d, 0x5fcf013d, 0xbe43bf51, 0xbe43bf51, 0xbe43bf51, 0x6c53a727, 0x6c53a727, 0x6c53a727, 0x7a2098b8, 0x7a2098b8, 0x7a2098b8, 0x5fcf013d, 0x33b4464d, 0x33b4464d, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x93132338, 0xc76b87e6, 0x93132338, 0x8816f93f, 0xdd28f52b, 0xdd28f52b, 0xcdf3c404, 0xcdf3c404, 0xcdf3c404, 0xeccf3de0, 0xeccf3de0, 0xeccf3de0, 0x9177f66c, 0x9177f66c, 0x9177f66c, 0xdd28f52b, 0x8816f93f, 0x8816f93f, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_menu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xae6a4ef5, 0x5fb9948, 0xae6a4ef5, 0x51d55575, 0x43d1f34, 0x43d1f34, 0x252c3625, 0x252c3625, 0x252c3625, 0x5a269f8d, 0x5a269f8d, 0x5a269f8d, 0xc3779a0b, 0xc3779a0b, 0xc3779a0b, 0x43d1f34, 0x51d55575, 0x51d55575, 0x43d1f34, }, 20 },
|
||||
{ "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x60e56714, 0x14275a99, 0x60e56714, 0x35080c92, 0x9a2e0d26, 0xc53fe194, 0xc53fe194, 0xc53fe194, 0x99e71754, 0x99e71754, 0x99e71754, 0xb07fd9c6, 0xb07fd9c6, 0xb07fd9c6, 0x59c36f00, 0x35080c92, 0x35080c92, }, 18 },
|
||||
{ "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x33d94a8c, 0x7b789e53, 0x33d94a8c, 0xe8b9b6bf, 0xa9d58ccd, 0x8cf0d333, 0x8cf0d333, 0x8cf0d333, 0xd9af7939, 0xd9af7939, 0xd9af7939, 0xb09cb170, 0xb09cb170, 0xb09cb170, 0xaa4593fe, 0xe8b9b6bf, 0xe8b9b6bf, }, 18 },
|
||||
{ "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe4669404, 0x9afa8e99, 0xe4669404, 0xdd25167e, 0x5411be8b, 0x3589841c, 0x3589841c, 0x3589841c, 0x4a372288, 0x4a372288, 0x4a372288, 0x84342f0, 0x84342f0, 0x84342f0, 0xc9cbf769, 0xdd25167e, 0xdd25167e, }, 18 },
|
||||
{ "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x37ed1568, 0x12f55eef, 0x37ed1568, 0x8aa8ad16, 0x740d78cf, 0x1a9dc2bc, 0x1a9dc2bc, 0x1a9dc2bc, 0xf13828c0, 0xf13828c0, 0xf13828c0, 0xf7732830, 0xf7732830, 0xf7732830, 0x1c3742c9, 0x8aa8ad16, 0x8aa8ad16, }, 18 },
|
||||
{ "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0xc5315ac9, 0x7dece9d3, 0xc5315ac9, 0xc84ef08b, 0xbcda144c, 0x321e548b, 0x321e548b, 0x321e548b, 0x5d57889a, 0x5d57889a, 0x5d57889a, 0x50a11699, 0x50a11699, 0x50a11699, 0xcc5a7bed, 0xc84ef08b, 0xc84ef08b, }, 18 },
|
||||
{ "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x40a72ecd, 0x2304571f, 0x40a72ecd, 0xd2de6d81, 0x5d55a141, 0x8ccafa03, 0x8ccafa03, 0x8ccafa03, 0x4a78be1d, 0x4a78be1d, 0x4a78be1d, 0x5e1d6ea2, 0x5e1d6ea2, 0x5e1d6ea2, 0xef4a3312, 0xd2de6d81, 0xd2de6d81, }, 18 },
|
||||
{ "gfxmenu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x54e48d80, 0xe6143ead, 0x19816f75, 0xe6143ead, 0xe2db78c2, 0xa992f629, 0x5fefa0d1, 0x5fefa0d1, 0x5fefa0d1, 0xde1c5600, 0xde1c5600, 0xde1c5600, 0x48b8ef6f, 0x48b8ef6f, 0x48b8ef6f, 0x54e48d80, 0xe2db78c2, 0xe2db78c2, }, 18 },
|
||||
{ "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x25ba43d4, 0x43fe620d, 0x25ba43d4, 0x664c8e93, 0x59c36f00, 0x59c36f00, 0xb2921a37, 0xb2921a37, 0xb2921a37, 0xcc127751, 0xcc127751, 0xcc127751, 0xaee46283, 0xaee46283, 0xaee46283, 0x59c36f00, 0x664c8e93, 0x664c8e93, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2aa2a72b, 0x6d6df6e1, 0x2aa2a72b, 0x4a72254, 0xaa4593fe, 0xaa4593fe, 0xa3be9127, 0xa3be9127, 0xa3be9127, 0x54b9c40, 0x54b9c40, 0x54b9c40, 0x28733738, 0x28733738, 0x28733738, 0xaa4593fe, 0x4a72254, 0x4a72254, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x9e799f98, 0xe21ad041, 0x9e799f98, 0xc36ef21c, 0xc9cbf769, 0xc9cbf769, 0x93d6c07d, 0x93d6c07d, 0x93d6c07d, 0x6d0e01b1, 0x6d0e01b1, 0x6d0e01b1, 0x8444beb9, 0x8444beb9, 0x8444beb9, 0xc9cbf769, 0xc36ef21c, 0xc36ef21c, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x7ffc43fd, 0x64505961, 0x7ffc43fd, 0xd1aa0a25, 0x9813a416, 0x9813a416, 0x5b5f9bd5, 0x5b5f9bd5, 0x5b5f9bd5, 0xca841de6, 0xca841de6, 0xca841de6, 0xd33e2036, 0xd33e2036, 0xd33e2036, 0x9813a416, 0xd1aa0a25, 0xd1aa0a25, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x570ca3fc, 0x4f1cee0f, 0x570ca3fc, 0x21aa964f, 0x5fcf013d, 0x5fcf013d, 0xf2bc017e, 0xf2bc017e, 0xf2bc017e, 0x20ac1908, 0x20ac1908, 0x20ac1908, 0x36df2697, 0x36df2697, 0x36df2697, 0x5fcf013d, 0x21aa964f, 0x21aa964f, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xcf9798d3, 0x5d39a7fa, 0xcf9798d3, 0xd49242d4, 0xdd28f52b, 0xdd28f52b, 0xe15747f0, 0xe15747f0, 0xe15747f0, 0xc06bbe14, 0xc06bbe14, 0xc06bbe14, 0xbdd37598, 0xbdd37598, 0xbdd37598, 0xdd28f52b, 0xd49242d4, 0xd49242d4, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_ar", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xae6154e8, 0x59e627f7, 0xae6154e8, 0x51de4f68, 0x43d1f34, 0x43d1f34, 0x59a8eb9f, 0x59a8eb9f, 0x59a8eb9f, 0x26a24237, 0x26a24237, 0x26a24237, 0xbff347b1, 0xbff347b1, 0xbff347b1, 0x43d1f34, 0x51de4f68, 0x51de4f68, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xb2b04aa3, 0xca81b845, 0xb2b04aa3, 0xf14687e4, 0x59c36f00, 0x59c36f00, 0xc01ee8bb, 0xc01ee8bb, 0xc01ee8bb, 0xbe9e85dd, 0xbe9e85dd, 0xbe9e85dd, 0xdc68900f, 0xdc68900f, 0xdc68900f, 0x59c36f00, 0xf14687e4, 0xf14687e4, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x19a66482, 0xba12148e, 0x19a66482, 0x37a3e1fd, 0xaa4593fe, 0xaa4593fe, 0xfa4f54c9, 0xfa4f54c9, 0xfa4f54c9, 0x5cba59ae, 0x5cba59ae, 0x5cba59ae, 0x7182f2d6, 0x7182f2d6, 0x7182f2d6, 0xaa4593fe, 0x37a3e1fd, 0x37a3e1fd, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x6a5ddfe7, 0xc898195a, 0x6a5ddfe7, 0x374ab263, 0xc9cbf769, 0xc9cbf769, 0x7a6a0afe, 0x7a6a0afe, 0x7a6a0afe, 0x84b2cb32, 0x84b2cb32, 0x84b2cb32, 0x6df8743a, 0x6df8743a, 0x6df8743a, 0xc9cbf769, 0x374ab263, 0x374ab263, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xb6ca222a, 0x98e6c241, 0xb6ca222a, 0x189c6bf2, 0x9813a416, 0x9813a416, 0x7fad8eb7, 0x7fad8eb7, 0x7fad8eb7, 0xee760884, 0xee760884, 0xee760884, 0xf7cc3554, 0xf7cc3554, 0xf7cc3554, 0x9813a416, 0x189c6bf2, 0x189c6bf2, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x726d82d0, 0xe9c535bd, 0x726d82d0, 0x4cbb763, 0x5fcf013d, 0x5fcf013d, 0xf99de8d5, 0xf99de8d5, 0xf99de8d5, 0x2b8df0a3, 0x2b8df0a3, 0x2b8df0a3, 0x3dfecf3c, 0x3dfecf3c, 0x3dfecf3c, 0x5fcf013d, 0x4cbb763, 0x4cbb763, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xfe26fef7, 0x6031c462, 0xfe26fef7, 0xe52324f0, 0xdd28f52b, 0xdd28f52b, 0x84ff6e38, 0x84ff6e38, 0x84ff6e38, 0xa5c397dc, 0xa5c397dc, 0xa5c397dc, 0xd87b5c50, 0xd87b5c50, 0xd87b5c50, 0xdd28f52b, 0xe52324f0, 0xe52324f0, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_cyr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x25e34f8a, 0x67935e5e, 0x25e34f8a, 0xda5c540a, 0x43d1f34, 0x43d1f34, 0x7ebdd748, 0x7ebdd748, 0x7ebdd748, 0x1b77ee0, 0x1b77ee0, 0x1b77ee0, 0x98e67b66, 0x98e67b66, 0x98e67b66, 0x43d1f34, 0xda5c540a, 0xda5c540a, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x67038f5e, 0x65d6007f, 0x67038f5e, 0x24f54219, 0x59c36f00, 0x59c36f00, 0xac294ffd, 0xac294ffd, 0xac294ffd, 0xd2a9229b, 0xd2a9229b, 0xd2a9229b, 0xb05f3749, 0xb05f3749, 0xb05f3749, 0x59c36f00, 0x24f54219, 0x24f54219, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x944464c7, 0x27123864, 0x944464c7, 0xba41e1b8, 0xaa4593fe, 0xaa4593fe, 0xa521274, 0xa521274, 0xa521274, 0xaca71f13, 0xaca71f13, 0xaca71f13, 0x819fb46b, 0x819fb46b, 0x819fb46b, 0xaa4593fe, 0xba41e1b8, 0xba41e1b8, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xfe97adaf, 0x4f3307d4, 0xfe97adaf, 0xa380c02b, 0xc9cbf769, 0xc9cbf769, 0xd202ced6, 0xd202ced6, 0xd202ced6, 0x2cda0f1a, 0x2cda0f1a, 0x2cda0f1a, 0xc590b012, 0xc590b012, 0xc590b012, 0xc9cbf769, 0xa380c02b, 0xa380c02b, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x5b32a9ba, 0xaf93fd91, 0x5b32a9ba, 0xf564e062, 0x9813a416, 0x9813a416, 0xcfdbc809, 0xcfdbc809, 0xcfdbc809, 0x5e004e3a, 0x5e004e3a, 0x5e004e3a, 0x47ba73ea, 0x47ba73ea, 0x47ba73ea, 0x9813a416, 0xf564e062, 0xf564e062, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x5e0e1ce8, 0x7ed1c9ee, 0x5e0e1ce8, 0x28a8295b, 0x5fcf013d, 0x5fcf013d, 0x615f5762, 0x615f5762, 0x615f5762, 0xb34f4f14, 0xb34f4f14, 0xb34f4f14, 0xa53c708b, 0xa53c708b, 0xa53c708b, 0x5fcf013d, 0x28a8295b, 0x28a8295b, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xa473184a, 0x93eaf325, 0xa473184a, 0xbf76c24d, 0xdd28f52b, 0xdd28f52b, 0x714dd1f7, 0x714dd1f7, 0x714dd1f7, 0x50712813, 0x50712813, 0x50712813, 0x2dc9e39f, 0x2dc9e39f, 0x2dc9e39f, 0xdd28f52b, 0xbf76c24d, 0xbf76c24d, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_heb", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xa725578b, 0x81889cf9, 0xa725578b, 0x589a4c0b, 0x43d1f34, 0x43d1f34, 0xf25ab3a8, 0xf25ab3a8, 0xf25ab3a8, 0x8d501a00, 0x8d501a00, 0x8d501a00, 0x14011f86, 0x14011f86, 0x14011f86, 0x43d1f34, 0x589a4c0b, 0x589a4c0b, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd69cdcbf, 0x6ad9ce85, 0xd69cdcbf, 0x956a11f8, 0x59c36f00, 0x59c36f00, 0xc4c10e6a, 0xc4c10e6a, 0xc4c10e6a, 0xba41630c, 0xba41630c, 0xba41630c, 0xd8b776de, 0xd8b776de, 0xd8b776de, 0x59c36f00, 0x956a11f8, 0x956a11f8, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x1acffa1b, 0xecff2136, 0x1acffa1b, 0x34ca7f64, 0xaa4593fe, 0xaa4593fe, 0xb57c29cc, 0xb57c29cc, 0xb57c29cc, 0x138924ab, 0x138924ab, 0x138924ab, 0x3eb18fd3, 0x3eb18fd3, 0x3eb18fd3, 0xaa4593fe, 0x34ca7f64, 0x34ca7f64, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x1cf8992, 0xb2c51b4c, 0x1cf8992, 0x5cd8e416, 0xc9cbf769, 0xc9cbf769, 0xba7b2d22, 0xba7b2d22, 0xba7b2d22, 0x44a3ecee, 0x44a3ecee, 0x44a3ecee, 0xade953e6, 0xade953e6, 0xade953e6, 0xc9cbf769, 0x5cd8e416, 0x5cd8e416, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x1f39da0b, 0x6a7f5378, 0x1f39da0b, 0xb16f93d3, 0x9813a416, 0x9813a416, 0x8e8a2ed7, 0x8e8a2ed7, 0x8e8a2ed7, 0x1f51a8e4, 0x1f51a8e4, 0x1f51a8e4, 0x6eb9534, 0x6eb9534, 0x6eb9534, 0x9813a416, 0xb16f93d3, 0xb16f93d3, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x27394d6b, 0x459337bf, 0x27394d6b, 0x519f78d8, 0x5fcf013d, 0x5fcf013d, 0x66ed4571, 0x66ed4571, 0x66ed4571, 0xb4fd5d07, 0xb4fd5d07, 0xb4fd5d07, 0xa28e6298, 0xa28e6298, 0xa28e6298, 0x5fcf013d, 0x519f78d8, 0x519f78d8, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x624e1f92, 0x4be3bd84, 0x624e1f92, 0x794bc595, 0xdd28f52b, 0xdd28f52b, 0xd33767c, 0xd33767c, 0xd33767c, 0x2c0f8f98, 0x2c0f8f98, 0x2c0f8f98, 0x51b74414, 0x51b74414, 0x51b74414, 0xdd28f52b, 0x794bc595, 0x794bc595, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_gre", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xbf5dab2e, 0x4747516, 0xbf5dab2e, 0x40e2b0ae, 0x43d1f34, 0x43d1f34, 0x3cc1d2dd, 0x3cc1d2dd, 0x3cc1d2dd, 0x43cb7b75, 0x43cb7b75, 0x43cb7b75, 0xda9a7ef3, 0xda9a7ef3, 0xda9a7ef3, 0x43d1f34, 0x40e2b0ae, 0x40e2b0ae, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x2e284303, 0x169e4b98, 0x2e284303, 0x6dde8e44, 0x59c36f00, 0x59c36f00, 0xd2e0cf68, 0xd2e0cf68, 0xd2e0cf68, 0xac60a20e, 0xac60a20e, 0xac60a20e, 0xce96b7dc, 0xce96b7dc, 0xce96b7dc, 0x59c36f00, 0x6dde8e44, 0x6dde8e44, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x3a911f8f, 0xe5d171c6, 0x3a911f8f, 0x14949af0, 0xaa4593fe, 0xaa4593fe, 0xe7c628ac, 0xe7c628ac, 0xe7c628ac, 0x413325cb, 0x413325cb, 0x413325cb, 0x6c0b8eb3, 0x6c0b8eb3, 0x6c0b8eb3, 0xaa4593fe, 0x14949af0, 0x14949af0, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa4645fb3, 0x8af97df0, 0xa4645fb3, 0xf9733237, 0xc9cbf769, 0xc9cbf769, 0xef376611, 0xef376611, 0xef376611, 0x11efa7dd, 0x11efa7dd, 0x11efa7dd, 0xf8a518d5, 0xf8a518d5, 0xf8a518d5, 0xc9cbf769, 0xf9733237, 0xf9733237, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x7c3a337b, 0xed3f1a6, 0x7c3a337b, 0xd26c7aa3, 0x9813a416, 0x9813a416, 0x86aa8146, 0x86aa8146, 0x86aa8146, 0x17710775, 0x17710775, 0x17710775, 0xecb3aa5, 0xecb3aa5, 0xecb3aa5, 0x9813a416, 0xd26c7aa3, 0xd26c7aa3, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x9f31781b, 0xb6d3e547, 0x9f31781b, 0xe9974da8, 0x5fcf013d, 0x5fcf013d, 0x3781245e, 0x3781245e, 0x3781245e, 0xe5913c28, 0xe5913c28, 0xe5913c28, 0xf3e203b7, 0xf3e203b7, 0xf3e203b7, 0x5fcf013d, 0xe9974da8, 0xe9974da8, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xfc18d24f, 0x70ed44c6, 0xfc18d24f, 0xe71d0848, 0xdd28f52b, 0xdd28f52b, 0xc847f61f, 0xc847f61f, 0xc847f61f, 0xe97b0ffb, 0xe97b0ffb, 0xe97b0ffb, 0x94c3c477, 0x94c3c477, 0x94c3c477, 0xdd28f52b, 0xe71d0848, 0xe71d0848, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_ru", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x7bb91866, 0xc4777a1f, 0x7bb91866, 0x840603e6, 0x43d1f34, 0x43d1f34, 0x2a49c131, 0x2a49c131, 0x2a49c131, 0x55436899, 0x55436899, 0x55436899, 0xcc126d1f, 0xcc126d1f, 0xcc126d1f, 0x43d1f34, 0x840603e6, 0x840603e6, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa0d0faff, 0x8b37dfcd, 0xa0d0faff, 0xe32637b8, 0x59c36f00, 0x59c36f00, 0x94e6a8c7, 0x94e6a8c7, 0x94e6a8c7, 0xea66c5a1, 0xea66c5a1, 0xea66c5a1, 0x8890d073, 0x8890d073, 0x8890d073, 0x59c36f00, 0xe32637b8, 0xe32637b8, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x4436bcdb, 0xb3a12b62, 0x4436bcdb, 0x6a3339a4, 0xaa4593fe, 0xaa4593fe, 0x53ef9b82, 0x53ef9b82, 0x53ef9b82, 0xf51a96e5, 0xf51a96e5, 0xf51a96e5, 0xd8223d9d, 0xd8223d9d, 0xd8223d9d, 0xaa4593fe, 0x6a3339a4, 0x6a3339a4, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb8e59140, 0x2463e41f, 0xb8e59140, 0xe5f2fcc4, 0xc9cbf769, 0xc9cbf769, 0xc31681f4, 0xc31681f4, 0xc31681f4, 0x3dce4038, 0x3dce4038, 0x3dce4038, 0xd484ff30, 0xd484ff30, 0xd484ff30, 0xc9cbf769, 0xe5f2fcc4, 0xe5f2fcc4, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x438b3fcc, 0x7ebfbfd, 0x438b3fcc, 0xeddd7614, 0x9813a416, 0x9813a416, 0x8ac4ae20, 0x8ac4ae20, 0x8ac4ae20, 0x1b1f2813, 0x1b1f2813, 0x1b1f2813, 0x2a515c3, 0x2a515c3, 0x2a515c3, 0x9813a416, 0xeddd7614, 0xeddd7614, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf9eea896, 0x25a51233, 0xf9eea896, 0x8f489d25, 0x5fcf013d, 0x5fcf013d, 0x62e37cf8, 0x62e37cf8, 0x62e37cf8, 0xb0f3648e, 0xb0f3648e, 0xb0f3648e, 0xa6805b11, 0xa6805b11, 0xa6805b11, 0x5fcf013d, 0x8f489d25, 0x8f489d25, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x9b617752, 0xb06817b5, 0x9b617752, 0x8064ad55, 0xdd28f52b, 0xdd28f52b, 0x38159b7a, 0x38159b7a, 0x38159b7a, 0x1929629e, 0x1929629e, 0x1929629e, 0x6491a912, 0x6491a912, 0x6491a912, 0xdd28f52b, 0x8064ad55, 0x8064ad55, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_fr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x595e29e, 0xc043d961, 0x595e29e, 0xfa2af91e, 0x43d1f34, 0x43d1f34, 0x6d6b2915, 0x6d6b2915, 0x6d6b2915, 0x126180bd, 0x126180bd, 0x126180bd, 0x8b30853b, 0x8b30853b, 0x8b30853b, 0x43d1f34, 0xfa2af91e, 0xfa2af91e, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x63e24d8a, 0x52da109, 0x63e24d8a, 0x201480cd, 0x59c36f00, 0x59c36f00, 0xd3a0a4df, 0xd3a0a4df, 0xd3a0a4df, 0xad20c9b9, 0xad20c9b9, 0xad20c9b9, 0xcfd6dc6b, 0xcfd6dc6b, 0xcfd6dc6b, 0x59c36f00, 0x201480cd, 0x201480cd, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x1b2e61c9, 0xbf04e671, 0x1b2e61c9, 0x352be4b6, 0xaa4593fe, 0xaa4593fe, 0x86e14b09, 0x86e14b09, 0x86e14b09, 0x2014466e, 0x2014466e, 0x2014466e, 0xd2ced16, 0xd2ced16, 0xd2ced16, 0xaa4593fe, 0x352be4b6, 0x352be4b6, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xefcce0d0, 0x5540bf08, 0xefcce0d0, 0xb2db8d54, 0xc9cbf769, 0xc9cbf769, 0xf2a2bdc8, 0xf2a2bdc8, 0xf2a2bdc8, 0xc7a7c04, 0xc7a7c04, 0xc7a7c04, 0xe530c30c, 0xe530c30c, 0xe530c30c, 0xc9cbf769, 0xb2db8d54, 0xb2db8d54, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x65a5505e, 0xd6055969, 0x65a5505e, 0xcbf31986, 0x9813a416, 0x9813a416, 0xbd3bd80c, 0xbd3bd80c, 0xbd3bd80c, 0x2ce05e3f, 0x2ce05e3f, 0x2ce05e3f, 0x355a63ef, 0x355a63ef, 0x355a63ef, 0x9813a416, 0xcbf31986, 0xcbf31986, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x7319d06, 0x17c78667, 0x7319d06, 0x7197a8b5, 0x5fcf013d, 0x5fcf013d, 0xbe43bf51, 0xbe43bf51, 0xbe43bf51, 0x6c53a727, 0x6c53a727, 0x6c53a727, 0x7a2098b8, 0x7a2098b8, 0x7a2098b8, 0x5fcf013d, 0x7197a8b5, 0x7197a8b5, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x723a247, 0x535b0699, 0x723a247, 0x1c267840, 0xdd28f52b, 0xdd28f52b, 0xcdf3c404, 0xcdf3c404, 0xcdf3c404, 0xeccf3de0, 0xeccf3de0, 0xeccf3de0, 0x9177f66c, 0x9177f66c, 0x9177f66c, 0xdd28f52b, 0x1c267840, 0x1c267840, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_quot", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xe3a20cf8, 0x4833db45, 0xe3a20cf8, 0x1c1d1778, 0x43d1f34, 0x43d1f34, 0x252c3625, 0x252c3625, 0x252c3625, 0x5a269f8d, 0x5a269f8d, 0x5a269f8d, 0xc3779a0b, 0xc3779a0b, 0xc3779a0b, 0x43d1f34, 0x1c1d1778, 0x1c1d1778, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x24b38cd5, 0x6b033831, 0x24b38cd5, 0x67454192, 0x59c36f00, 0x59c36f00, 0xc12f3297, 0xc12f3297, 0xc12f3297, 0xbfaf5ff1, 0xbfaf5ff1, 0xbfaf5ff1, 0xdd594a23, 0xdd594a23, 0xdd594a23, 0x59c36f00, 0x67454192, 0x67454192, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x54f09885, 0x5d94ace6, 0x54f09885, 0x7af51dfa, 0xaa4593fe, 0xaa4593fe, 0xe3a05427, 0xe3a05427, 0xe3a05427, 0x45555940, 0x45555940, 0x45555940, 0x686df238, 0x686df238, 0x686df238, 0xaa4593fe, 0x7af51dfa, 0x7af51dfa, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x53c2ee74, 0x92931869, 0x53c2ee74, 0xed583f0, 0xc9cbf769, 0xc9cbf769, 0x76afdc1b, 0x76afdc1b, 0x76afdc1b, 0x88771dd7, 0x88771dd7, 0x88771dd7, 0x613da2df, 0x613da2df, 0x613da2df, 0xc9cbf769, 0xed583f0, 0xed583f0, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4e5ded6f, 0x12bf47c3, 0x4e5ded6f, 0xe00ba4b7, 0x9813a416, 0x9813a416, 0x72c4cb9c, 0x72c4cb9c, 0x72c4cb9c, 0xe31f4daf, 0xe31f4daf, 0xe31f4daf, 0xfaa5707f, 0xfaa5707f, 0xfaa5707f, 0x9813a416, 0xe00ba4b7, 0xe00ba4b7, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x3566adf6, 0x4c7649cf, 0x3566adf6, 0x43c09845, 0x5fcf013d, 0x5fcf013d, 0xc2b479f, 0xc2b479f, 0xc2b479f, 0xde3b5fe9, 0xde3b5fe9, 0xde3b5fe9, 0xc8486076, 0xc8486076, 0xc8486076, 0x5fcf013d, 0x43c09845, 0x43c09845, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xec1bda0d, 0x86636a33, 0xec1bda0d, 0xf71e000a, 0xdd28f52b, 0xdd28f52b, 0xda5ce270, 0xda5ce270, 0xda5ce270, 0xfb601b94, 0xfb601b94, 0xfb601b94, 0x86d8d018, 0x86d8d018, 0x86d8d018, 0xdd28f52b, 0xf71e000a, 0xf71e000a, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_piglatin", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x619415be, 0x92024b97, 0x619415be, 0x9e2b0e3e, 0x43d1f34, 0x43d1f34, 0xfa2f329, 0xfa2f329, 0xfa2f329, 0x70a85a81, 0x70a85a81, 0x70a85a81, 0xe9f95f07, 0xe9f95f07, 0xe9f95f07, 0x43d1f34, 0x9e2b0e3e, 0x9e2b0e3e, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x200688e1, 0x1274a595, 0x200688e1, 0x63f045a6, 0x59c36f00, 0x59c36f00, 0x2312e40c, 0x2312e40c, 0x2312e40c, 0x5d92896a, 0x5d92896a, 0x5d92896a, 0x3f649cb8, 0x3f649cb8, 0x3f649cb8, 0x59c36f00, 0x63f045a6, 0x63f045a6, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa943b821, 0x8aa682a4, 0xa943b821, 0x87463d5e, 0xaa4593fe, 0xaa4593fe, 0xff049fb7, 0xff049fb7, 0xff049fb7, 0x59f192d0, 0x59f192d0, 0x59f192d0, 0x74c939a8, 0x74c939a8, 0x74c939a8, 0xaa4593fe, 0x87463d5e, 0x87463d5e, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x11b6367b, 0x27bbcfb4, 0x11b6367b, 0x4ca15bff, 0xc9cbf769, 0xc9cbf769, 0x51f424d6, 0x51f424d6, 0x51f424d6, 0xaf2ce51a, 0xaf2ce51a, 0xaf2ce51a, 0x46665a12, 0x46665a12, 0x46665a12, 0xc9cbf769, 0x4ca15bff, 0x4ca15bff, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x7c16ec93, 0xe9d7d93f, 0x7c16ec93, 0xd240a54b, 0x9813a416, 0x9813a416, 0x9e5c75d9, 0x9e5c75d9, 0x9e5c75d9, 0xf87f3ea, 0xf87f3ea, 0xf87f3ea, 0x163dce3a, 0x163dce3a, 0x163dce3a, 0x9813a416, 0xd240a54b, 0xd240a54b, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xe28608ec, 0x3575a25f, 0xe28608ec, 0x94203d5f, 0x5fcf013d, 0x5fcf013d, 0x7c6f7c86, 0x7c6f7c86, 0x7c6f7c86, 0xae7f64f0, 0xae7f64f0, 0xae7f64f0, 0xb80c5b6f, 0xb80c5b6f, 0xb80c5b6f, 0x5fcf013d, 0x94203d5f, 0x94203d5f, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xb510e48, 0x9406b857, 0xb510e48, 0x1054d44f, 0xdd28f52b, 0xdd28f52b, 0x13c76182, 0x13c76182, 0x13c76182, 0x32fb9866, 0x32fb9866, 0x32fb9866, 0x4f4353ea, 0x4f4353ea, 0x4f4353ea, 0xdd28f52b, 0x1054d44f, 0x1054d44f, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_ch", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xf256eb36, 0xaed7d845, 0xf256eb36, 0xde9f0b6, 0x43d1f34, 0x43d1f34, 0xbe644e0c, 0xbe644e0c, 0xbe644e0c, 0xc16ee7a4, 0xc16ee7a4, 0xc16ee7a4, 0x583fe222, 0x583fe222, 0x583fe222, 0x43d1f34, 0xde9f0b6, 0xde9f0b6, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xe382dd9, 0x68f7c15a, 0xe382dd9, 0x59159307, 0x59c36f00, 0x59c36f00, 0xba01eaa9, 0xba01eaa9, 0xba01eaa9, 0xc48187cf, 0xc48187cf, 0xc48187cf, 0xa677921d, 0xa677921d, 0xa677921d, 0x59c36f00, 0x59159307, 0x59159307, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x3c908c, 0xa4161734, 0x3c908c, 0xb09b4ada, 0xaa4593fe, 0xaa4593fe, 0xdfbf1f3, 0xdfbf1f3, 0xdfbf1f3, 0xab0efc94, 0xab0efc94, 0xab0efc94, 0x863657ec, 0x863657ec, 0x863657ec, 0xaa4593fe, 0xb09b4ada, 0xb09b4ada, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd2e9527, 0xb7a2caff, 0xd2e9527, 0x1d0b8b89, 0xc9cbf769, 0xc9cbf769, 0x6684aa7f, 0x6684aa7f, 0x6684aa7f, 0x985c6bb3, 0x985c6bb3, 0x985c6bb3, 0x7116d4bb, 0x7116d4bb, 0x7116d4bb, 0xc9cbf769, 0x1d0b8b89, 0x1d0b8b89, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x1639705d, 0xa599796a, 0x1639705d, 0x26488c72, 0x9813a416, 0x9813a416, 0x49b2de5c, 0x49b2de5c, 0x49b2de5c, 0xd869586f, 0xd869586f, 0xd869586f, 0xc1d365bf, 0xc1d365bf, 0xc1d365bf, 0x9813a416, 0x26488c72, 0x26488c72, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x10d0c422, 0x26df43, 0x10d0c422, 0xbed72bd7, 0x5fcf013d, 0x5fcf013d, 0x67d73911, 0x67d73911, 0x67d73911, 0xb5c72167, 0xb5c72167, 0xb5c72167, 0xa3b41ef8, 0xa3b41ef8, 0xa3b41ef8, 0x5fcf013d, 0xbed72bd7, 0xbed72bd7, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xdd34e67a, 0x894c42a4, 0xdd34e67a, 0x53502da0, 0xdd28f52b, 0xdd28f52b, 0x886a111, 0x886a111, 0x886a111, 0x29ba58f5, 0x29ba58f5, 0x29ba58f5, 0x54029379, 0x54029379, 0x54029379, 0xdd28f52b, 0x53502da0, 0x53502da0, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_red", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x410b50fc, 0xea9a8741, 0x410b50fc, 0xd653d65c, 0x43d1f34, 0x43d1f34, 0xcdea4de5, 0xcdea4de5, 0xcdea4de5, 0xb2e0e44d, 0xb2e0e44d, 0xb2e0e44d, 0x2bb1e1cb, 0x2bb1e1cb, 0x2bb1e1cb, 0x43d1f34, 0xd653d65c, 0xd653d65c, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x4c09d761, 0x2ac63be2, 0x4c09d761, 0xf44378ab, 0x59c36f00, 0x59c36f00, 0xd3a0a4df, 0xd3a0a4df, 0xd3a0a4df, 0xad20c9b9, 0xad20c9b9, 0xad20c9b9, 0xcfd6dc6b, 0xcfd6dc6b, 0xcfd6dc6b, 0x59c36f00, 0xf44378ab, 0xf44378ab, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd3c0fce6, 0x77ea7b5e, 0xd3c0fce6, 0x10463469, 0xaa4593fe, 0xaa4593fe, 0x86e14b09, 0x86e14b09, 0x86e14b09, 0x2014466e, 0x2014466e, 0x2014466e, 0xd2ced16, 0xd2ced16, 0xd2ced16, 0xaa4593fe, 0x10463469, 0x10463469, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xabafd82f, 0x112387f7, 0xabafd82f, 0xe9ca2412, 0xc9cbf769, 0xc9cbf769, 0xf2a2bdc8, 0xf2a2bdc8, 0xf2a2bdc8, 0xc7a7c04, 0xc7a7c04, 0xc7a7c04, 0xe530c30c, 0xe530c30c, 0xe530c30c, 0xc9cbf769, 0xe9ca2412, 0xe9ca2412, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x2b138245, 0x98b38b72, 0x2b138245, 0x6500200c, 0x9813a416, 0x9813a416, 0xbd3bd80c, 0xbd3bd80c, 0xbd3bd80c, 0x2ce05e3f, 0x2ce05e3f, 0x2ce05e3f, 0x355a63ef, 0x355a63ef, 0x355a63ef, 0x9813a416, 0x6500200c, 0x6500200c, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x87f97368, 0x970f6809, 0x87f97368, 0x149f7c5f, 0x5fcf013d, 0x5fcf013d, 0xbe43bf51, 0xbe43bf51, 0xbe43bf51, 0x6c53a727, 0x6c53a727, 0x6c53a727, 0x7a2098b8, 0x7a2098b8, 0x7a2098b8, 0x5fcf013d, 0x149f7c5f, 0x149f7c5f, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x12986e14, 0x46e0caca, 0x12986e14, 0xf51eaa4a, 0xdd28f52b, 0xdd28f52b, 0xcdf3c404, 0xcdf3c404, 0xcdf3c404, 0xeccf3de0, 0xeccf3de0, 0xeccf3de0, 0x9177f66c, 0x9177f66c, 0x9177f66c, 0xdd28f52b, 0xf51eaa4a, 0xf51eaa4a, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xf6aab2f6, 0x5d3b654b, 0xf6aab2f6, 0x8e22ec59, 0x43d1f34, 0x43d1f34, 0x252c3625, 0x252c3625, 0x252c3625, 0x5a269f8d, 0x5a269f8d, 0x5a269f8d, 0xc3779a0b, 0xc3779a0b, 0xc3779a0b, 0x43d1f34, 0x8e22ec59, 0x8e22ec59, 0x43d1f34, }, 20 },
|
||||
{ "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xcd5fc34e, 0xcd5fc34e, 0xeabbecab, 0xeabbecab, 0xc9950151, 0xc9950151, 0x2be222b6, 0x2be222b6, 0xe88c769e, 0xe88c769e, 0x6be4910e, 0x6be4910e, 0x1dc1fe4f, 0x1dc1fe4f, 0xd7613e8f, 0xd7613e8f, 0xf8124196, 0xf8124196, 0x130f5935, 0x130f5935, 0x2872330e, 0x2872330e, 0xaa7b7868, 0xaa7b7868, 0x558eaeea, 0x558eaeea, 0x92f7960f, 0x92f7960f, 0xc5bfc709, 0xc5bfc709, 0x699732fe, 0x699732fe, 0xc859125f, 0xc859125f, 0xfc6ac729, 0xfc6ac729, 0xcdab6cd4, 0xcdab6cd4, 0x58a8b7f8, 0x58a8b7f8, 0xc0e73385, 0x6560d6ef, 0x3be8bb5d, 0x3be8bb5d, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x13029f94, 0x13029f94, 0x7785fdab, 0x7785fdab, 0x95a7c1e8, 0x95a7c1e8, 0x315ab3e3, 0x315ab3e3, 0x6787f012, 0x6787f012, 0x79b1ecdc, 0x79b1ecdc, 0xdbc67810, 0xdbc67810, 0xafaa982e, 0xafaa982e, 0xc5cd0157, 0xc5cd0157, 0x3c50dd64, 0x3c50dd64, 0x1056cac0, 0x1056cac0, 0x1d7a41fa, 0x1d7a41fa, 0x5690b1e8, 0x5690b1e8, 0x616831d6, 0x616831d6, 0xfaf8e726, 0xfaf8e726, 0xd1ec5e26, 0xd1ec5e26, 0x3c269e1f, 0x3c269e1f, 0x1aa7952d, 0x1aa7952d, 0x6e7e2f99, 0x6e7e2f99, 0x98f4c02, 0x98f4c02, 0xc3f1abf2, 0xe348bb73, 0xea53cd60, 0xea53cd60, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8fbb4f4c, 0x8fbb4f4c, 0x5dc00167, 0x5dc00167, 0xbc124df8, 0xbc124df8, 0x31cf0f8e, 0x31cf0f8e, 0x798cc4ed, 0x798cc4ed, 0xc5d2a091, 0xc5d2a091, 0xb58a0591, 0xb58a0591, 0x4d118aca, 0x4d118aca, 0xbb06c7ee, 0xbb06c7ee, 0x42179db7, 0x42179db7, 0x65f2d81e, 0x65f2d81e, 0xa2628bcb, 0xa2628bcb, 0xbdb7f4b, 0xbdb7f4b, 0x66b10309, 0x66b10309, 0x1a550ea9, 0x1a550ea9, 0x377a297d, 0x377a297d, 0x2ea99015, 0x2ea99015, 0x4e20d7bc, 0x4e20d7bc, 0x8ecbde02, 0x8ecbde02, 0xdfa2195a, 0xdfa2195a, 0xe113d2a, 0xe204ee5b, 0x734679c1, 0x734679c1, }, 45 },
|
||||
{ "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xe2f6bfe1, 0xe2f6bfe1, 0xf18aee15, 0xf18aee15, 0x5e83b689, 0x5e83b689, 0xb7e8b42c, 0xb7e8b42c, 0x85d78f92, 0x85d78f92, 0xd56fadae, 0xd56fadae, 0x7632f5bf, 0x7632f5bf, 0x2769a748, 0x2769a748, 0x4a6112cd, 0x4a6112cd, 0x4f9b66a4, 0x4f9b66a4, 0x70457d38, 0x70457d38, 0x8cadb1a7, 0x8cadb1a7, 0x451341f, 0x451341f, 0x8a62e741, 0x8a62e741, 0x1b1f9031, 0x1b1f9031, 0x75ab630e, 0x75ab630e, 0xd5ff53ac, 0xd5ff53ac, 0x73a2b3c7, 0x73a2b3c7, 0x7b52acd5, 0x7b52acd5, 0xf6f3e48c, 0xf6f3e48c, 0x8d0db133, 0x8db24310, 0x7aef56d4, 0x7aef56d4, }, 45 },
|
||||
{ "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x838a3f40, 0x838a3f40, 0x7351ba96, 0x7351ba96, 0x660963bb, 0x660963bb, 0x6f3362a6, 0x6f3362a6, 0x915d35d9, 0x915d35d9, 0xc7edaee9, 0xc7edaee9, 0xbc8ec24c, 0xbc8ec24c, 0xeb120ffd, 0xeb120ffd, 0x8f6d8232, 0x8f6d8232, 0x2de5d515, 0x2de5d515, 0x4f2ecd91, 0x4f2ecd91, 0x555a9b90, 0x555a9b90, 0x8f7b0d77, 0x8f7b0d77, 0x5f9536af, 0x5f9536af, 0x3dd79dbe, 0x3dd79dbe, 0xb555a0, 0xb555a0, 0x75aec882, 0x75aec882, 0xd5da89cb, 0xd5da89cb, 0xb47b3257, 0xb47b3257, 0x7c97c046, 0x7c97c046, 0x726a7abe, 0x4c8b8a56, 0xcffa0854, 0xcffa0854, }, 45 },
|
||||
{ "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7bf761e, 0x7bf761e, 0xaf0b6dae, 0xaf0b6dae, 0x7db15930, 0x7db15930, 0xc9720d56, 0xc9720d56, 0x55590d6c, 0x55590d6c, 0xa0d193d9, 0xa0d193d9, 0x728987b2, 0x728987b2, 0x28aecde6, 0x28aecde6, 0xa59bb094, 0xa59bb094, 0x2d0b049d, 0x2d0b049d, 0xd8421240, 0xd8421240, 0x51fa339, 0x51fa339, 0xc625cc46, 0xc625cc46, 0x2c9e6fcc, 0x2c9e6fcc, 0x3d06ffd5, 0x3d06ffd5, 0x8dd72816, 0x8dd72816, 0xfcf2a982, 0xfcf2a982, 0x6ef2870f, 0x6ef2870f, 0xba2caab7, 0xba2caab7, 0x8e5a5872, 0x8e5a5872, 0x62b2fedc, 0x2bd3b588, 0x34ebdb15, 0x34ebdb15, }, 45 },
|
||||
{ "cmdline_cat", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xa133280a, 0xa133280a, 0x1e8f4227, 0x1e8f4227, 0xa01cd911, 0xa01cd911, 0xdcb3d617, 0xdcb3d617, 0x51200351, 0x51200351, 0x609ba305, 0x609ba305, 0x5d96abfd, 0x5d96abfd, 0xd855cc70, 0xd855cc70, 0xdbfaf18d, 0xdbfaf18d, 0x84814843, 0x84814843, 0x4b00e630, 0x4b00e630, 0xd362b0f5, 0xd362b0f5, 0xec863355, 0xec863355, 0x195898d0, 0x195898d0, 0xe8c698c7, 0xe8c698c7, 0x884229e7, 0x884229e7, 0xb41ed3a9, 0xb41ed3a9, 0x2be1ce40, 0x2be1ce40, 0x8c33eb7c, 0x8c33eb7c, 0xbbce1da, 0xbbce1da, 0xef9415fa, 0x22fbc0d, 0xd82c182c, 0xd82c182c, }, 45 },
|
||||
{ "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbe029c, 0x6671ee1f, 0xbe029c, 0x4348cfdb, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0x4348cfdb, 0x4348cfdb, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x14e228ef, 0xb0c8af57, 0x14e228ef, 0x3ae7ad90, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0x3ae7ad90, 0x3ae7ad90, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x651fb144, 0xdf93ee9c, 0x651fb144, 0x3808dcc0, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0x3808dcc0, 0x3808dcc0, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xdfd0119e, 0x6c7018a9, 0xdfd0119e, 0x71865846, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0x71865846, 0x71865846, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x4e4844e0, 0x5ebe5f81, 0x4e4844e0, 0x38ee7153, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x38ee7153, 0x38ee7153, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x701427d4, 0x246c830a, 0x701427d4, 0x6b11fdd3, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0x6b11fdd3, 0x6b11fdd3, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_menu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x7b5bd4c, 0xac246af1, 0x7b5bd4c, 0xf80aa6cc, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0xf80aa6cc, 0xf80aa6cc, 0x43d1f34, }, 20 },
|
||||
{ "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x1027210c, 0x64e51c81, 0x1027210c, 0x45ca4a8a, 0x9a2e0d26, 0x12fd0f21, 0x12fd0f21, 0x12fd0f21, 0x4e25f9e1, 0x4e25f9e1, 0x4e25f9e1, 0x67bd3773, 0x67bd3773, 0x67bd3773, 0x59c36f00, 0x45ca4a8a, 0x45ca4a8a, }, 18 },
|
||||
{ "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8d12f697, 0xc5b32248, 0x8d12f697, 0x56720aa4, 0xa9d58ccd, 0xf766a14d, 0xf766a14d, 0xf766a14d, 0xa2390b47, 0xa2390b47, 0xa2390b47, 0xcb0ac30e, 0xcb0ac30e, 0xcb0ac30e, 0xaa4593fe, 0x56720aa4, 0x56720aa4, }, 18 },
|
||||
{ "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa5ec9f45, 0xdb7085d8, 0xa5ec9f45, 0x9caf1d3f, 0x5411be8b, 0xedc0ad83, 0xedc0ad83, 0xedc0ad83, 0x927e0b17, 0x927e0b17, 0x927e0b17, 0xd00a6b6f, 0xd00a6b6f, 0xd00a6b6f, 0xc9cbf769, 0x9caf1d3f, 0x9caf1d3f, }, 18 },
|
||||
{ "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xce8e83bf, 0xeb96c838, 0xce8e83bf, 0x73cb3bc1, 0x740d78cf, 0xb35c7e64, 0xb35c7e64, 0xb35c7e64, 0x58f99418, 0x58f99418, 0x58f99418, 0x5eb294e8, 0x5eb294e8, 0x5eb294e8, 0x1c3742c9, 0x73cb3bc1, 0x73cb3bc1, }, 18 },
|
||||
{ "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x56a03e51, 0xee7d8d4b, 0x56a03e51, 0x5bdf9413, 0xbcda144c, 0x220f7a5e, 0x220f7a5e, 0x220f7a5e, 0x4d46a64f, 0x4d46a64f, 0x4d46a64f, 0x40b0384c, 0x40b0384c, 0x40b0384c, 0xcc5a7bed, 0x5bdf9413, 0x5bdf9413, }, 18 },
|
||||
{ "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0xea8a9cf0, 0x8929e522, 0xea8a9cf0, 0x78f3dfbc, 0x5d55a141, 0x377f1aeb, 0x377f1aeb, 0x377f1aeb, 0xf1cd5ef5, 0xf1cd5ef5, 0xf1cd5ef5, 0xe5a88e4a, 0xe5a88e4a, 0xe5a88e4a, 0xef4a3312, 0x78f3dfbc, 0x78f3dfbc, }, 18 },
|
||||
{ "gfxmenu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x54e48d80, 0x6dcf1d57, 0x925a4c8f, 0x6dcf1d57, 0x69005b38, 0x6d6bb4bc, 0x756a36b9, 0x756a36b9, 0x756a36b9, 0xf499c068, 0xf499c068, 0xf499c068, 0x623d7907, 0x623d7907, 0x623d7907, 0x54e48d80, 0x69005b38, 0x69005b38, }, 18 },
|
||||
{ "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa49d26b0, 0xaa7d9b28, 0xa49d26b0, 0xe76bebf7, 0x59c36f00, 0x59c36f00, 0xea6ab252, 0xea6ab252, 0xea6ab252, 0x94eadf34, 0x94eadf34, 0x94eadf34, 0xf61ccae6, 0xf61ccae6, 0xf61ccae6, 0x59c36f00, 0xe76bebf7, 0xe76bebf7, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x7a277db, 0xf3bf80f7, 0x7a277db, 0x29a7f2a4, 0xaa4593fe, 0xaa4593fe, 0xf1cd57e3, 0xf1cd57e3, 0xf1cd57e3, 0x57385a84, 0x57385a84, 0x57385a84, 0x7a00f1fc, 0x7a00f1fc, 0x7a00f1fc, 0xaa4593fe, 0x29a7f2a4, 0x29a7f2a4, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x631edf85, 0x71926408, 0x631edf85, 0x3e09b201, 0xc9cbf769, 0xc9cbf769, 0xf224ab3, 0xf224ab3, 0xf224ab3, 0xf1fa8b7f, 0xf1fa8b7f, 0xf1fa8b7f, 0x18b03477, 0x18b03477, 0x18b03477, 0xc9cbf769, 0x3e09b201, 0x3e09b201, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xfbaf4635, 0xe69ef474, 0xfbaf4635, 0x55f90fed, 0x9813a416, 0x9813a416, 0x3aad8f41, 0x3aad8f41, 0x3aad8f41, 0xab760972, 0xab760972, 0xab760972, 0xb2cc34a2, 0xb2cc34a2, 0xb2cc34a2, 0x9813a416, 0x55f90fed, 0x55f90fed, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xdce50745, 0x1d8009e4, 0xdce50745, 0xaa4332f6, 0x5fcf013d, 0x5fcf013d, 0x354e5749, 0x354e5749, 0x354e5749, 0xe75e4f3f, 0xe75e4f3f, 0xe75e4f3f, 0xf12d70a0, 0xf12d70a0, 0xf12d70a0, 0x5fcf013d, 0xaa4332f6, 0xaa4332f6, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3efebeff, 0xf101dfe2, 0x3efebeff, 0x25fb64f8, 0xdd28f52b, 0xdd28f52b, 0x70c69ebd, 0x70c69ebd, 0x70c69ebd, 0x51fa6759, 0x51fa6759, 0x51fa6759, 0x2c42acd5, 0x2c42acd5, 0x2c42acd5, 0xdd28f52b, 0x25fb64f8, 0x25fb64f8, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_ar", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x59a34c64, 0x281cca78, 0x59a34c64, 0xa61c57e4, 0x43d1f34, 0x43d1f34, 0x95131d4, 0x95131d4, 0x95131d4, 0x765b987c, 0x765b987c, 0x765b987c, 0xef0a9dfa, 0xef0a9dfa, 0xef0a9dfa, 0x43d1f34, 0xa61c57e4, 0xa61c57e4, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa37c165, 0x72063383, 0xa37c165, 0x49c10c22, 0x59c36f00, 0x59c36f00, 0x4e53de8e, 0x4e53de8e, 0x4e53de8e, 0x30d3b3e8, 0x30d3b3e8, 0x30d3b3e8, 0x5225a63a, 0x5225a63a, 0x5225a63a, 0x59c36f00, 0x49c10c22, 0x49c10c22, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x45bba0ba, 0xe60fd0b6, 0x45bba0ba, 0x6bbe25c5, 0xaa4593fe, 0xaa4593fe, 0x28de2b41, 0x28de2b41, 0x28de2b41, 0x8e2b2626, 0x8e2b2626, 0x8e2b2626, 0xa3138d5e, 0xa3138d5e, 0xa3138d5e, 0xaa4593fe, 0x6bbe25c5, 0x6bbe25c5, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb43d4e9d, 0x16f88820, 0xb43d4e9d, 0xe92a2319, 0xc9cbf769, 0xc9cbf769, 0xb8959ec7, 0xb8959ec7, 0xb8959ec7, 0x464d5f0b, 0x464d5f0b, 0x464d5f0b, 0xaf07e003, 0xaf07e003, 0xaf07e003, 0xc9cbf769, 0xe92a2319, 0xe92a2319, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x46760365, 0x685ae30e, 0x46760365, 0xe8204abd, 0x9813a416, 0x9813a416, 0x8896050a, 0x8896050a, 0x8896050a, 0x194d8339, 0x194d8339, 0x194d8339, 0xf7bee9, 0xf7bee9, 0xf7bee9, 0x9813a416, 0xe8204abd, 0xe8204abd, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6859aa86, 0xf3f11deb, 0x6859aa86, 0x1eff9f35, 0x5fcf013d, 0x5fcf013d, 0xd72b1482, 0xd72b1482, 0xd72b1482, 0x53b0cf4, 0x53b0cf4, 0x53b0cf4, 0x1348336b, 0x1348336b, 0x1348336b, 0x5fcf013d, 0x1eff9f35, 0x1eff9f35, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x688451e7, 0xf6936b72, 0x688451e7, 0x73818be0, 0xdd28f52b, 0xdd28f52b, 0xf12a65ac, 0xf12a65ac, 0xf12a65ac, 0xd0169c48, 0xd0169c48, 0xd0169c48, 0xadae57c4, 0xadae57c4, 0xadae57c4, 0xdd28f52b, 0x73818be0, 0x73818be0, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_cyr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x9616af94, 0xd466be40, 0x9616af94, 0x69a9b414, 0x43d1f34, 0x43d1f34, 0xf3bb3240, 0xf3bb3240, 0xf3bb3240, 0x8cb19be8, 0x8cb19be8, 0x8cb19be8, 0x15e09e6e, 0x15e09e6e, 0x15e09e6e, 0x43d1f34, 0x69a9b414, 0x69a9b414, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8708d1bd, 0x85dd5e9c, 0x8708d1bd, 0xc4fe1cfa, 0x59c36f00, 0x59c36f00, 0x7ae8aced, 0x7ae8aced, 0x7ae8aced, 0x468c18b, 0x468c18b, 0x468c18b, 0x669ed459, 0x669ed459, 0x669ed459, 0x59c36f00, 0xc4fe1cfa, 0xc4fe1cfa, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa72b1043, 0x147d4ce0, 0xa72b1043, 0x892e953c, 0xaa4593fe, 0xaa4593fe, 0xb7b1dd40, 0xb7b1dd40, 0xb7b1dd40, 0x1144d027, 0x1144d027, 0x1144d027, 0x3c7c7b5f, 0x3c7c7b5f, 0x3c7c7b5f, 0xaa4593fe, 0x892e953c, 0x892e953c, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xc5fb1817, 0x745fb26c, 0xc5fb1817, 0x98ec7593, 0xc9cbf769, 0xc9cbf769, 0xf5f17e2d, 0xf5f17e2d, 0xf5f17e2d, 0xb29bfe1, 0xb29bfe1, 0xb29bfe1, 0xe26300e9, 0xe26300e9, 0xe26300e9, 0xc9cbf769, 0x98ec7593, 0x98ec7593, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4be837e1, 0xbf4963ca, 0x4be837e1, 0xe5be7e39, 0x9813a416, 0x9813a416, 0xd886fca0, 0xd886fca0, 0xd886fca0, 0x495d7a93, 0x495d7a93, 0x495d7a93, 0x50e74743, 0x50e74743, 0x50e74743, 0x9813a416, 0xe5be7e39, 0xe5be7e39, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x21a8ccb8, 0x17719be, 0x21a8ccb8, 0x570ef90b, 0x5fcf013d, 0x5fcf013d, 0x2a7b5333, 0x2a7b5333, 0x2a7b5333, 0xf86b4b45, 0xf86b4b45, 0xf86b4b45, 0xee1874da, 0xee1874da, 0xee1874da, 0x5fcf013d, 0x570ef90b, 0x570ef90b, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7001fe50, 0x4798153f, 0x7001fe50, 0x6b042457, 0xdd28f52b, 0xdd28f52b, 0x46489369, 0x46489369, 0x46489369, 0x67746a8d, 0x67746a8d, 0x67746a8d, 0x1acca101, 0x1acca101, 0x1acca101, 0xdd28f52b, 0x6b042457, 0x6b042457, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_heb", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x6e10591c, 0x48bd926e, 0x6e10591c, 0x91af429c, 0x43d1f34, 0x43d1f34, 0x59cb829, 0x59cb829, 0x59cb829, 0x7a961181, 0x7a961181, 0x7a961181, 0xe3c71407, 0xe3c71407, 0xe3c71407, 0x43d1f34, 0x91af429c, 0x91af429c, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x67627ed5, 0xdb276cef, 0x67627ed5, 0x2494b392, 0x59c36f00, 0x59c36f00, 0x43f511f3, 0x43f511f3, 0x43f511f3, 0x3d757c95, 0x3d757c95, 0x3d757c95, 0x5f836947, 0x5f836947, 0x5f836947, 0x59c36f00, 0x2494b392, 0x2494b392, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x987cbf71, 0x6e4c645c, 0x987cbf71, 0xb6793a0e, 0xaa4593fe, 0xaa4593fe, 0xb943d716, 0xb943d716, 0xb943d716, 0x1fb6da71, 0x1fb6da71, 0x1fb6da71, 0x328e7109, 0x328e7109, 0x328e7109, 0xaa4593fe, 0xb6793a0e, 0xb6793a0e, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf9987c07, 0x4a92eed9, 0xf9987c07, 0xa48f1183, 0xc9cbf769, 0xc9cbf769, 0x5eb3ddf4, 0x5eb3ddf4, 0x5eb3ddf4, 0xa06b1c38, 0xa06b1c38, 0xa06b1c38, 0x4921a330, 0x4921a330, 0x4921a330, 0xc9cbf769, 0xa48f1183, 0xa48f1183, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xccd804e2, 0xb99e8d91, 0xccd804e2, 0x628e4d3a, 0x9813a416, 0x9813a416, 0x5aec5acc, 0x5aec5acc, 0x5aec5acc, 0xcb37dcff, 0xcb37dcff, 0xcb37dcff, 0xd28de12f, 0xd28de12f, 0xd28de12f, 0x9813a416, 0x628e4d3a, 0x628e4d3a, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x4990d896, 0x2b3aa242, 0x4990d896, 0x3f36ed25, 0x5fcf013d, 0x5fcf013d, 0x3cc6048d, 0x3cc6048d, 0x3cc6048d, 0xeed61cfb, 0xeed61cfb, 0xeed61cfb, 0xf8a52364, 0xf8a52364, 0xf8a52364, 0x5fcf013d, 0x3f36ed25, 0x3f36ed25, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x4ff5c69f, 0x66586489, 0x4ff5c69f, 0x54f01c98, 0xdd28f52b, 0xdd28f52b, 0xc3ff0bf5, 0xc3ff0bf5, 0xc3ff0bf5, 0xe2c3f211, 0xe2c3f211, 0xe2c3f211, 0x9f7b399d, 0x9f7b399d, 0x9f7b399d, 0xdd28f52b, 0x54f01c98, 0x54f01c98, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_gre", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x909b7bb4, 0x2bb2a58c, 0x909b7bb4, 0x6f246034, 0x43d1f34, 0x43d1f34, 0x2df40751, 0x2df40751, 0x2df40751, 0x52feaef9, 0x52feaef9, 0x52feaef9, 0xcbafab7f, 0xcbafab7f, 0xcbafab7f, 0x43d1f34, 0x6f246034, 0x6f246034, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xc77bfcc6, 0xffcdf45d, 0xc77bfcc6, 0x848d3181, 0x59c36f00, 0x59c36f00, 0xd79cd5e, 0xd79cd5e, 0xd79cd5e, 0x73f9a038, 0x73f9a038, 0x73f9a038, 0x110fb5ea, 0x110fb5ea, 0x110fb5ea, 0x59c36f00, 0x848d3181, 0x848d3181, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5494aa5, 0xa0924ec, 0xd5494aa5, 0xfb4ccfda, 0xaa4593fe, 0xaa4593fe, 0x8692c636, 0x8692c636, 0x8692c636, 0x2067cb51, 0x2067cb51, 0x2067cb51, 0xd5f6029, 0xd5f6029, 0xd5f6029, 0xaa4593fe, 0xfb4ccfda, 0xfb4ccfda, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x2436c4f, 0x2cde4e0c, 0x2436c4f, 0x5f5401cb, 0xc9cbf769, 0xc9cbf769, 0x558f50ae, 0x558f50ae, 0x558f50ae, 0xab579162, 0xab579162, 0xab579162, 0x421d2e6a, 0x421d2e6a, 0x421d2e6a, 0xc9cbf769, 0x5f5401cb, 0x5f5401cb, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x86f8a68c, 0xf4116451, 0x86f8a68c, 0x28aeef54, 0x9813a416, 0x9813a416, 0x7befbe43, 0x7befbe43, 0x7befbe43, 0xea343870, 0xea343870, 0xea343870, 0xf38e05a0, 0xf38e05a0, 0xf38e05a0, 0x9813a416, 0x28aeef54, 0x28aeef54, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x156c292f, 0x3c8eb473, 0x156c292f, 0x63ca1c9c, 0x5fcf013d, 0x5fcf013d, 0x895ea16b, 0x895ea16b, 0x895ea16b, 0x5b4eb91d, 0x5b4eb91d, 0x5b4eb91d, 0x4d3d8682, 0x4d3d8682, 0x4d3d8682, 0x5fcf013d, 0x63ca1c9c, 0x63ca1c9c, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf57ebf12, 0x798b299b, 0xf57ebf12, 0xee7b6515, 0xdd28f52b, 0xdd28f52b, 0x22563fc6, 0x22563fc6, 0x22563fc6, 0x36ac622, 0x36ac622, 0x36ac622, 0x7ed20dae, 0x7ed20dae, 0x7ed20dae, 0xdd28f52b, 0xee7b6515, 0xee7b6515, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_ru", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x2bc82eb1, 0x94064cc8, 0x2bc82eb1, 0xd4773531, 0x43d1f34, 0x43d1f34, 0x44cbf2f0, 0x44cbf2f0, 0x44cbf2f0, 0x3bc15b58, 0x3bc15b58, 0x3bc15b58, 0xa2905ede, 0xa2905ede, 0xa2905ede, 0x43d1f34, 0xd4773531, 0xd4773531, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7f6dd146, 0x548af474, 0x7f6dd146, 0x3c9b1c01, 0x59c36f00, 0x59c36f00, 0x7d913e8d, 0x7d913e8d, 0x7d913e8d, 0x31153eb, 0x31153eb, 0x31153eb, 0x61e74639, 0x61e74639, 0x61e74639, 0x59c36f00, 0x3c9b1c01, 0x3c9b1c01, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf29ad079, 0x50d47c0, 0xf29ad079, 0xdc9f5506, 0xaa4593fe, 0xaa4593fe, 0x6bcf4c90, 0x6bcf4c90, 0x6bcf4c90, 0xcd3a41f7, 0xcd3a41f7, 0xcd3a41f7, 0xe002ea8f, 0xe002ea8f, 0xe002ea8f, 0xaa4593fe, 0xdc9f5506, 0xdc9f5506, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb25e3082, 0x2ed845dd, 0xb25e3082, 0xef495d06, 0xc9cbf769, 0xc9cbf769, 0xd5322575, 0xd5322575, 0xd5322575, 0x2beae4b9, 0x2beae4b9, 0x2beae4b9, 0xc2a05bb1, 0xc2a05bb1, 0xc2a05bb1, 0xc9cbf769, 0xef495d06, 0xef495d06, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4cdfcd2e, 0x8bf091f, 0x4cdfcd2e, 0xe28984f6, 0x9813a416, 0x9813a416, 0x8217f630, 0x8217f630, 0x8217f630, 0x13cc7003, 0x13cc7003, 0x13cc7003, 0xa764dd3, 0xa764dd3, 0xa764dd3, 0x9813a416, 0xe28984f6, 0xe28984f6, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf2b49f88, 0x2eff252d, 0xf2b49f88, 0x8412aa3b, 0x5fcf013d, 0x5fcf013d, 0x5d3b9fe7, 0x5d3b9fe7, 0x5d3b9fe7, 0x8f2b8791, 0x8f2b8791, 0x8f2b8791, 0x9958b80e, 0x9958b80e, 0x9958b80e, 0x5fcf013d, 0x8412aa3b, 0x8412aa3b, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x786673be, 0x536f1359, 0x786673be, 0x6363a9b9, 0xdd28f52b, 0xdd28f52b, 0x38653b12, 0x38653b12, 0x38653b12, 0x1959c2f6, 0x1959c2f6, 0x1959c2f6, 0x64e1097a, 0x64e1097a, 0x64e1097a, 0xdd28f52b, 0x6363a9b9, 0x6363a9b9, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_fr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xac4a1127, 0x699c2ad8, 0xac4a1127, 0x53f50aa7, 0x43d1f34, 0x43d1f34, 0xfa47dfba, 0xfa47dfba, 0xfa47dfba, 0x854d7612, 0x854d7612, 0x854d7612, 0x1c1c7394, 0x1c1c7394, 0x1c1c7394, 0x43d1f34, 0x53f50aa7, 0x53f50aa7, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbc5f6633, 0xda908ab0, 0xbc5f6633, 0xffa9ab74, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0xffa9ab74, 0xffa9ab74, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xad820d6b, 0x9a88ad3, 0xad820d6b, 0x83878814, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0x83878814, 0x83878814, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe5774112, 0x5ffb1eca, 0xe5774112, 0xb8602c96, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0xb8602c96, 0xb8602c96, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6af1a2bc, 0xd951ab8b, 0x6af1a2bc, 0xc4a7eb64, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0xc4a7eb64, 0xc4a7eb64, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xc6baa18, 0x1c9db179, 0xc6baa18, 0x7acd9fab, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x7acd9fab, 0x7acd9fab, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xe424a6ab, 0xb05c0275, 0xe424a6ab, 0xff217cac, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0xff217cac, 0xff217cac, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_quot", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4a7dff41, 0xe1ec28fc, 0x4a7dff41, 0xb5c2e4c1, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0xb5c2e4c1, 0xb5c2e4c1, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd3d3e4a2, 0x9c635046, 0xd3d3e4a2, 0x902529e5, 0x59c36f00, 0x59c36f00, 0x85e713, 0x85e713, 0x85e713, 0x7e058a75, 0x7e058a75, 0x7e058a75, 0x1cf39fa7, 0x1cf39fa7, 0x1cf39fa7, 0x59c36f00, 0x902529e5, 0x902529e5, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd61c80f5, 0xdf78b496, 0xd61c80f5, 0xf819058a, 0xaa4593fe, 0xaa4593fe, 0xefc0f7e7, 0xefc0f7e7, 0xefc0f7e7, 0x4935fa80, 0x4935fa80, 0x4935fa80, 0x640d51f8, 0x640d51f8, 0x640d51f8, 0xaa4593fe, 0xf819058a, 0xf819058a, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x936bc89d, 0x523a3e80, 0x936bc89d, 0xce7ca519, 0xc9cbf769, 0xc9cbf769, 0xaa99ffb1, 0xaa99ffb1, 0xaa99ffb1, 0x54413e7d, 0x54413e7d, 0x54413e7d, 0xbd0b8175, 0xbd0b8175, 0xbd0b8175, 0xc9cbf769, 0xce7ca519, 0xce7ca519, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4fdd0291, 0x133fa83d, 0x4fdd0291, 0xe18b4b49, 0x9813a416, 0x9813a416, 0x74c38e90, 0x74c38e90, 0x74c38e90, 0xe51808a3, 0xe51808a3, 0xe51808a3, 0xfca23573, 0xfca23573, 0xfca23573, 0x9813a416, 0xe18b4b49, 0xe18b4b49, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x538203b0, 0x2a92e789, 0x538203b0, 0x25243603, 0x5fcf013d, 0x5fcf013d, 0x5e4d3dd8, 0x5e4d3dd8, 0x5e4d3dd8, 0x8c5d25ae, 0x8c5d25ae, 0x8c5d25ae, 0x9a2e1a31, 0x9a2e1a31, 0x9a2e1a31, 0x5fcf013d, 0x25243603, 0x25243603, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xcfc85125, 0xa5b0e11b, 0xcfc85125, 0xd4cd8b22, 0xdd28f52b, 0xdd28f52b, 0x1af8cddc, 0x1af8cddc, 0x1af8cddc, 0x3bc43438, 0x3bc43438, 0x3bc43438, 0x467cffb4, 0x467cffb4, 0x467cffb4, 0xdd28f52b, 0xd4cd8b22, 0xd4cd8b22, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_piglatin", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xf2469ffb, 0x1d0c1d2, 0xf2469ffb, 0xdf9847b, 0x43d1f34, 0x43d1f34, 0xa2837c7a, 0xa2837c7a, 0xa2837c7a, 0xdd89d5d2, 0xdd89d5d2, 0xdd89d5d2, 0x44d8d054, 0x44d8d054, 0x44d8d054, 0x43d1f34, 0xdf9847b, 0xdf9847b, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x27851cc1, 0x15f731b5, 0x27851cc1, 0x6473d186, 0x59c36f00, 0x59c36f00, 0x125bcddf, 0x125bcddf, 0x125bcddf, 0x6cdba0b9, 0x6cdba0b9, 0x6cdba0b9, 0xe2db56b, 0xe2db56b, 0xe2db56b, 0x59c36f00, 0x6473d186, 0x6473d186, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xfcb223c, 0x2c2e18b9, 0xfcb223c, 0x21cea743, 0xaa4593fe, 0xaa4593fe, 0xd700be1a, 0xd700be1a, 0xd700be1a, 0x71f5b37d, 0x71f5b37d, 0x71f5b37d, 0x5ccd1805, 0x5ccd1805, 0x5ccd1805, 0xaa4593fe, 0x21cea743, 0x21cea743, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x807efaa5, 0xb673036a, 0x807efaa5, 0xdd699721, 0xc9cbf769, 0xc9cbf769, 0xdca3ed4b, 0xdca3ed4b, 0xdca3ed4b, 0x227b2c87, 0x227b2c87, 0x227b2c87, 0xcb31938f, 0xcb31938f, 0xcb31938f, 0xc9cbf769, 0xdd699721, 0xdd699721, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x651d0d50, 0xf0dc38fc, 0x651d0d50, 0xcb4b4488, 0x9813a416, 0x9813a416, 0x80d03ee8, 0x80d03ee8, 0x80d03ee8, 0x110bb8db, 0x110bb8db, 0x110bb8db, 0x8b1850b, 0x8b1850b, 0x8b1850b, 0x9813a416, 0xcb4b4488, 0xcb4b4488, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb9b068f, 0xdc68ac3c, 0xb9b068f, 0x7d3d333c, 0x5fcf013d, 0x5fcf013d, 0xa1f0a6e4, 0xa1f0a6e4, 0xa1f0a6e4, 0x73e0be92, 0x73e0be92, 0x73e0be92, 0x6593810d, 0x6593810d, 0x6593810d, 0x5fcf013d, 0x7d3d333c, 0x7d3d333c, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf0789d7e, 0x6f2f2b61, 0xf0789d7e, 0xeb7d4779, 0xdd28f52b, 0xdd28f52b, 0xb995630, 0xb995630, 0xb995630, 0x2aa5afd4, 0x2aa5afd4, 0x2aa5afd4, 0x571d6458, 0x571d6458, 0x571d6458, 0xdd28f52b, 0xeb7d4779, 0xeb7d4779, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_ch", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x819821ff, 0xdd19128c, 0x819821ff, 0x7e273a7f, 0x43d1f34, 0x43d1f34, 0xf35981d3, 0xf35981d3, 0xf35981d3, 0x8c53287b, 0x8c53287b, 0x8c53287b, 0x15022dfd, 0x15022dfd, 0x15022dfd, 0x43d1f34, 0x7e273a7f, 0x7e273a7f, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa99604d1, 0xcf59e852, 0xa99604d1, 0xfebbba0f, 0x59c36f00, 0x59c36f00, 0x53767ce3, 0x53767ce3, 0x53767ce3, 0x2df61185, 0x2df61185, 0x2df61185, 0x4f000457, 0x4f000457, 0x4f000457, 0x59c36f00, 0xfebbba0f, 0xfebbba0f, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x7d0a218, 0xa3fa25a0, 0x7d0a218, 0xb777784e, 0xaa4593fe, 0xaa4593fe, 0x35db26e1, 0x35db26e1, 0x35db26e1, 0x932e2b86, 0x932e2b86, 0x932e2b86, 0xbe1680fe, 0xbe1680fe, 0xbe1680fe, 0xaa4593fe, 0xb777784e, 0xb777784e, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x63be90f4, 0xd932cf2c, 0x63be90f4, 0x739b8e5a, 0xc9cbf769, 0xc9cbf769, 0x70a00efe, 0x70a00efe, 0x70a00efe, 0x8e78cf32, 0x8e78cf32, 0x8e78cf32, 0x6732703a, 0x6732703a, 0x6732703a, 0xc9cbf769, 0x739b8e5a, 0x739b8e5a, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x53460c90, 0xe0e605a7, 0x53460c90, 0x6337f0bf, 0x9813a416, 0x9813a416, 0x4161864c, 0x4161864c, 0x4161864c, 0xd0ba007f, 0xd0ba007f, 0xd0ba007f, 0xc9003daf, 0xc9003daf, 0xc9003daf, 0x9813a416, 0x6337f0bf, 0x6337f0bf, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf54761a0, 0xe5b17ac1, 0xf54761a0, 0x5b408e55, 0x5fcf013d, 0x5fcf013d, 0x580fda0e, 0x580fda0e, 0x580fda0e, 0x8a1fc278, 0x8a1fc278, 0x8a1fc278, 0x9c6cfde7, 0x9c6cfde7, 0x9c6cfde7, 0x5fcf013d, 0x5b408e55, 0x5b408e55, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xec78b0c1, 0xb800141f, 0xec78b0c1, 0x621c7b1b, 0xdd28f52b, 0xdd28f52b, 0x8f60179, 0x8f60179, 0x8f60179, 0x29caf89d, 0x29caf89d, 0x29caf89d, 0x54723311, 0x54723311, 0x54723311, 0xdd28f52b, 0x621c7b1b, 0x621c7b1b, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_red", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xf209411b, 0x599896a6, 0xf209411b, 0x6551c7bb, 0x43d1f34, 0x43d1f34, 0x5ac6bb4a, 0x5ac6bb4a, 0x5ac6bb4a, 0x25cc12e2, 0x25cc12e2, 0x25cc12e2, 0xbc9d1764, 0xbc9d1764, 0xbc9d1764, 0x43d1f34, 0x6551c7bb, 0x6551c7bb, 0x43d1f34, }, 20 },
|
||||
{ "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x93b4fcd8, 0xf57b105b, 0x93b4fcd8, 0x2bfe5312, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0x2bfe5312, 0x2bfe5312, 0x59c36f00, }, 20 },
|
||||
{ "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x656c9044, 0xc14617fc, 0x656c9044, 0xa6ea58cb, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0xa6ea58cb, 0xa6ea58cb, 0xaa4593fe, }, 20 },
|
||||
{ "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa11479ed, 0x1b982635, 0xa11479ed, 0xe37185d0, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0xe37185d0, 0xe37185d0, 0xc9cbf769, }, 20 },
|
||||
{ "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x244770a7, 0x97e77990, 0x244770a7, 0x6a54d2ee, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0x6a54d2ee, 0x6a54d2ee, 0x9813a416, }, 20 },
|
||||
{ "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8ca34476, 0x9c555f17, 0x8ca34476, 0x1fc54b41, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x1fc54b41, 0x1fc54b41, 0x5fcf013d, }, 20 },
|
||||
{ "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf19f6af8, 0xa5e7ce26, 0xf19f6af8, 0x1619aea6, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0x1619aea6, 0x1619aea6, 0xdd28f52b, }, 20 },
|
||||
{ "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x5f75414f, 0xf4e496f2, 0x5f75414f, 0x27fd1fe0, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0x27fd1fe0, 0x27fd1fe0, 0x43d1f34, }, 20 },
|
||||
{ "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, }, 5 },
|
||||
{ "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 },
|
||||
{ "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 },
|
||||
|
@ -25,7 +25,10 @@ GRUB_MOD_LICENSE ("GPLv3+");
|
||||
static grub_jmp_buf jmp_point;
|
||||
static int expected, ctr;
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wmissing-noreturn"
|
||||
/* This fixes GCC7 "unintentional fallthrough" warning */
|
||||
static void jmp0 (void) __attribute__ ((noreturn));
|
||||
static void jmp1 (void) __attribute__ ((noreturn));
|
||||
static void jmp2 (void) __attribute__ ((noreturn));
|
||||
|
||||
static void
|
||||
jmp0 (void)
|
||||
|
@ -743,7 +743,7 @@ grub_video_fb_unmap_color_int (struct grub_video_fbblit_info * source,
|
||||
if ((mode_info->mode_type
|
||||
& GRUB_VIDEO_MODE_TYPE_INDEX_COLOR) != 0)
|
||||
{
|
||||
if ((framebuffer.render_target->mode_info.mode_type
|
||||
if ((mode_info->mode_type
|
||||
& GRUB_VIDEO_MODE_TYPE_ALPHA) != 0
|
||||
&& color == 0xf0)
|
||||
{
|
||||
|
@ -181,6 +181,7 @@ grub_video_ieee1275_fill_mode_info (grub_ieee1275_phandle_t dev,
|
||||
case 32:
|
||||
out->reserved_mask_size = 8;
|
||||
out->reserved_field_pos = 24;
|
||||
/* FALLTHROUGH */
|
||||
|
||||
case 24:
|
||||
out->red_mask_size = 8;
|
||||
|
@ -736,6 +736,7 @@ grub_jpeg_decode_jpeg (struct grub_jpeg_data *data)
|
||||
case JPEG_MARKER_SOS: /* Start Of Scan. */
|
||||
if (grub_jpeg_decode_sos (data))
|
||||
break;
|
||||
/* FALLTHROUGH */
|
||||
case JPEG_MARKER_RST0: /* Restart. */
|
||||
case JPEG_MARKER_RST1:
|
||||
case JPEG_MARKER_RST2:
|
||||
|
@ -40,11 +40,7 @@
|
||||
# define LINUX_PHYS_OFFSET (0x00008000)
|
||||
# define LINUX_INITRD_PHYS_OFFSET (LINUX_PHYS_OFFSET + 0x02000000)
|
||||
# define LINUX_FDT_PHYS_OFFSET (LINUX_INITRD_PHYS_OFFSET - 0x10000)
|
||||
static inline grub_addr_t
|
||||
grub_arm_firmware_get_boot_data (void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
# define grub_arm_firmware_get_boot_data (grub_addr_t)grub_efi_get_firmware_fdt
|
||||
static inline grub_uint32_t
|
||||
grub_arm_firmware_get_machine_type (void)
|
||||
{
|
||||
|
@ -19,6 +19,13 @@
|
||||
#ifndef GRUB_ARM64_RELOC_H
|
||||
#define GRUB_ARM64_RELOC_H 1
|
||||
|
||||
struct grub_arm64_trampoline
|
||||
{
|
||||
grub_uint32_t ldr; /* ldr x16, 8 */
|
||||
grub_uint32_t br; /* br x16 */
|
||||
grub_uint64_t addr;
|
||||
};
|
||||
|
||||
int grub_arm_64_check_xxxx26_offset (grub_int64_t offset);
|
||||
void
|
||||
grub_arm64_set_xxxx26_offset (grub_uint32_t *place, grub_int64_t offset);
|
||||
|
@ -263,11 +263,16 @@ void grub_arch_dl_init_linker (void);
|
||||
grub_err_t
|
||||
grub_ia64_dl_get_tramp_got_size (const void *ehdr, grub_size_t *tramp,
|
||||
grub_size_t *got);
|
||||
grub_err_t
|
||||
grub_arm64_dl_get_tramp_got_size (const void *ehdr, grub_size_t *tramp,
|
||||
grub_size_t *got);
|
||||
|
||||
#if defined (__ia64__)
|
||||
#define GRUB_ARCH_DL_TRAMP_ALIGN GRUB_IA64_DL_TRAMP_ALIGN
|
||||
#define GRUB_ARCH_DL_GOT_ALIGN GRUB_IA64_DL_GOT_ALIGN
|
||||
#define grub_arch_dl_get_tramp_got_size grub_ia64_dl_get_tramp_got_size
|
||||
#elif defined (__aarch64__)
|
||||
#define grub_arch_dl_get_tramp_got_size grub_arm64_dl_get_tramp_got_size
|
||||
#else
|
||||
grub_err_t
|
||||
grub_arch_dl_get_tramp_got_size (const void *ehdr, grub_size_t *tramp,
|
||||
|
@ -81,6 +81,10 @@ extern void (*EXPORT_VAR(grub_efi_net_config)) (grub_efi_handle_t hnd,
|
||||
char **device,
|
||||
char **path);
|
||||
|
||||
#if defined(__arm__) || defined(__aarch64__)
|
||||
void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void);
|
||||
#endif
|
||||
|
||||
grub_addr_t grub_efi_modules_addr (void);
|
||||
|
||||
void grub_efi_mm_init (void);
|
||||
|
@ -2068,11 +2068,14 @@ typedef Elf32_Addr Elf32_Conflict;
|
||||
#define R_AARCH64_NONE 0 /* No relocation. */
|
||||
#define R_AARCH64_ABS64 257 /* Direct 64 bit. */
|
||||
#define R_AARCH64_ABS32 258 /* Direct 32 bit. */
|
||||
#define R_AARCH64_PREL32 261
|
||||
#define R_AARCH64_ADR_PREL_PG_HI21 275
|
||||
#define R_AARCH64_ADD_ABS_LO12_NC 277
|
||||
#define R_AARCH64_LDST64_ABS_LO12_NC 286
|
||||
#define R_AARCH64_JUMP26 282 /* 26-bit relative. */
|
||||
#define R_AARCH64_CALL26 283 /* 26-bit relative. */
|
||||
#define R_AARCH64_ADR_GOT_PAGE 311
|
||||
#define R_AARCH64_LD64_GOT_LO12_NC 312
|
||||
#define R_AARCH64_COPY 1024 /* Copy symbol at runtime. */
|
||||
#define R_AARCH64_GLOB_DAT 1025 /* Create GOT entry. */
|
||||
#define R_AARCH64_JUMP_SLOT 1026 /* Create PLT entry. */
|
||||
|
@ -20,6 +20,8 @@
|
||||
#ifndef GRUB_MEMORY_CPU_HEADER
|
||||
#define GRUB_MEMORY_CPU_HEADER 1
|
||||
|
||||
#define PAGE_SHIFT 12
|
||||
|
||||
/* The flag for protected mode. */
|
||||
#define GRUB_MEMORY_CPU_CR0_PE_ON 0x1
|
||||
#define GRUB_MEMORY_CPU_CR4_PAE_ON 0x00000020
|
||||
@ -31,6 +33,11 @@
|
||||
#define GRUB_MEMORY_MACHINE_UPPER_START 0x100000 /* 1 MiB */
|
||||
#define GRUB_MEMORY_MACHINE_LOWER_SIZE GRUB_MEMORY_MACHINE_UPPER_START
|
||||
|
||||
/* Some PTE definitions. */
|
||||
#define GRUB_PAGE_PRESENT 0x00000001
|
||||
#define GRUB_PAGE_RW 0x00000002
|
||||
#define GRUB_PAGE_USER 0x00000004
|
||||
|
||||
#ifndef ASM_FILE
|
||||
|
||||
#define GRUB_MMAP_MALLOC_LOW 1
|
||||
|
@ -30,6 +30,17 @@
|
||||
#define MULTIBOOT_MBI_REGISTER ebx
|
||||
#define MULTIBOOT_ARCHITECTURE_CURRENT MULTIBOOT_ARCHITECTURE_I386
|
||||
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
#ifdef __x86_64__
|
||||
#define MULTIBOOT_EFI_INITIAL_STATE { .rax = MULTIBOOT_BOOTLOADER_MAGIC, \
|
||||
.rcx = 0, \
|
||||
.rdx = 0, \
|
||||
}
|
||||
#define MULTIBOOT_EFI_ENTRY_REGISTER rip
|
||||
#define MULTIBOOT_EFI_MBI_REGISTER rbx
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define MULTIBOOT_ELF32_MACHINE EM_386
|
||||
#define MULTIBOOT_ELF64_MACHINE EM_X86_64
|
||||
|
||||
|
@ -65,6 +65,20 @@ struct grub_relocator64_state
|
||||
grub_addr_t cr3;
|
||||
};
|
||||
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
#ifdef __x86_64__
|
||||
struct grub_relocator64_efi_state
|
||||
{
|
||||
grub_uint64_t rax;
|
||||
grub_uint64_t rbx;
|
||||
grub_uint64_t rcx;
|
||||
grub_uint64_t rdx;
|
||||
grub_uint64_t rip;
|
||||
grub_uint64_t rsi;
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
grub_err_t grub_relocator16_boot (struct grub_relocator *rel,
|
||||
struct grub_relocator16_state state);
|
||||
|
||||
@ -76,4 +90,11 @@ grub_err_t grub_relocator64_boot (struct grub_relocator *rel,
|
||||
struct grub_relocator64_state state,
|
||||
grub_addr_t min_addr, grub_addr_t max_addr);
|
||||
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
#ifdef __x86_64__
|
||||
grub_err_t grub_relocator64_efi_boot (struct grub_relocator *rel,
|
||||
struct grub_relocator64_efi_state state);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* ! GRUB_RELOCATOR_CPU_HEADER */
|
||||
|
@ -26,6 +26,8 @@ grub_ia64_add_value_to_slot_20b (grub_addr_t addr, grub_uint32_t value);
|
||||
void
|
||||
grub_ia64_add_value_to_slot_21 (grub_addr_t addr, grub_uint32_t value);
|
||||
void
|
||||
grub_ia64_set_immu64 (grub_addr_t addr, grub_uint64_t value);
|
||||
void
|
||||
grub_ia64_make_trampoline (struct grub_ia64_trampoline *tr, grub_uint64_t addr);
|
||||
|
||||
struct grub_ia64_trampoline
|
||||
|
@ -16,5 +16,5 @@ struct grub_module_verifier_arch {
|
||||
const int *short_relocations;
|
||||
};
|
||||
|
||||
void grub_module_verify64(void *module_img, size_t module_size, const struct grub_module_verifier_arch *arch);
|
||||
void grub_module_verify32(void *module_img, size_t module_size, const struct grub_module_verifier_arch *arch);
|
||||
void grub_module_verify64(void *module_img, size_t module_size, const struct grub_module_verifier_arch *arch, const char **whitelist_empty);
|
||||
void grub_module_verify32(void *module_img, size_t module_size, const struct grub_module_verifier_arch *arch, const char **whitelist_empty);
|
||||
|
@ -91,10 +91,28 @@ grub_multiboot_set_console (int console_type, int accepted_consoles,
|
||||
int console_required);
|
||||
grub_err_t
|
||||
grub_multiboot_load (grub_file_t file, const char *filename);
|
||||
|
||||
struct mbi_load_data
|
||||
{
|
||||
grub_file_t file;
|
||||
const char *filename;
|
||||
void *buffer;
|
||||
unsigned int mbi_ver;
|
||||
int relocatable;
|
||||
grub_uint32_t min_addr;
|
||||
grub_uint32_t max_addr;
|
||||
grub_size_t align;
|
||||
grub_uint32_t preference;
|
||||
grub_uint32_t link_base_addr;
|
||||
grub_uint32_t load_base_addr;
|
||||
int avoid_efi_boot_services;
|
||||
};
|
||||
typedef struct mbi_load_data mbi_load_data_t;
|
||||
|
||||
/* Load ELF32 or ELF64. */
|
||||
grub_err_t
|
||||
grub_multiboot_load_elf (grub_file_t file, const char *filename,
|
||||
void *buffer);
|
||||
grub_multiboot_load_elf (mbi_load_data_t *mld);
|
||||
|
||||
extern grub_size_t grub_multiboot_pure_size;
|
||||
extern grub_size_t grub_multiboot_alloc_mbi;
|
||||
extern grub_uint32_t grub_multiboot_payload_eip;
|
||||
|
@ -30,7 +30,7 @@ struct grub_mkimage_layout
|
||||
size_t align;
|
||||
grub_size_t ia64jmp_off;
|
||||
grub_size_t tramp_off;
|
||||
grub_size_t ia64_got_off;
|
||||
grub_size_t got_off;
|
||||
grub_size_t got_size;
|
||||
unsigned ia64jmpnum;
|
||||
grub_uint32_t bss_start;
|
||||
|
@ -23,11 +23,13 @@
|
||||
#include <grub/err.h>
|
||||
#include <grub/relocator.h>
|
||||
|
||||
#define XEN_MAX_MAPPINGS 3
|
||||
|
||||
struct grub_relocator_xen_state
|
||||
{
|
||||
grub_addr_t start_info;
|
||||
grub_addr_t paging_start;
|
||||
grub_addr_t paging_size;
|
||||
grub_addr_t paging_start[XEN_MAX_MAPPINGS];
|
||||
grub_addr_t paging_size[XEN_MAX_MAPPINGS];
|
||||
grub_addr_t mfn_list;
|
||||
grub_addr_t stack;
|
||||
grub_addr_t entry_point;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user