move the cursor to (0,0).
* grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_init_output):
Call grub_terminfo_output_init.
* grub-core/term/serial.c (grub_serial_term_output): Set .init.
* grub-core/term/terminfo.c (grub_terminfo_output_init): New function.
* include/grub/terminfo.h (grub_terminfo_output_init): New declaration.
* grub-core/kern/i386/pc/startup.S: Remove 0-data check.
* grub-core/lib/reed_solomon.c (decode_block): Do not proceed on 0 data
or 0 redundancy.
(grub_reed_solomon_add_redundancy): Do not proceed with 0 redundancy.
(grub_reed_solomon_recover): Likewise.
* grub-core/loader/i386/bsd.c (freebsd_bootdev): New variable.
(freebsd_biosdev): Likewise.
(grub_freebsd_boot): Use freebsd_bootdev and freebsd_biosdev.
(grub_cmd_freebsd): Set freebsd_bootdev and freebsd_biosdev.
used e.g. for initrd or modules. Moreover gzip handling of not
easily seekable files is buggy. Disable unknown file size for now. May
be inefficient but works.
* grub-core/io/gzio.c (test_header): Always retrieve the file size.
* grub-core/io/xzio.c (grub_xzio_open): Likewise.
previous patch increased the size of the RS code by 20 bytes (at
least with gcc-4.4), so increase this by 20 bytes to match.
(GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): Likewise.
scratch area. Make sure to initialise chosen in standalone mode as
well as non-standalone.
Reported by: Robert Hooker and Andy Whitcroft.
Tested by: Andy Whitcroft.
comment. Add an extra layer of quotation, requiring the output of
this function to be used in a printf format string.
(gettext_printf): New function.
* util/grub.d/10_hurd.in: Use gettext_printf where appropriate.
Extract translatable strings from here-documents and use a temporary
variable instead, so that xgettext can find them.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
* po/grub.d.sed: New file.
* po/Makefile.in.in ($(DOMAIN).pot-update): Extract gettext_printf
arguments. Set c-format flags on all strings extracted from
util/grub.d/ (xgettext refuses to include these itself for strings
it extracted from a shell file, but these really are c-format).
.mo/.mo.gz opening sequence to ...
(grub_mofile_open_lang): ... here.
(grub_gettext_init_ext): If opening ll_CC fails, try ll.
* util/grub.d/00_header.in (grub_lang): Include country part of
locale.
Reported by: Mario Limonciello.
* grub-core/loader/i386/bsd.c
(grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module_elf): Check
whether kernel is loaded using grub_loader_is_loaded(), rather
than `kernel_type', which may still be `KERNEL_TYPE_NONE' under
certain error conditions.
* util/grub-probe.c (probe): Remember which disk was detected as
RAID (perhaps an LVM physical volume). Use that disk's raidname
rather than that of the top-level disk.
Remove byte-swapping function calls, which are not valid in
structure initialisers.
* grub-core/partmap/gpt.c (grub_gpt_partition_type_bios_boot): Make
non-const.
(GRUB_MOD_INIT): Byte-swap data1, data2, and data3 fields of
grub_gpt_partition_type_bios_boot.
[GRUB_MACHINE_MIPS_YEELOONG || GRUB_MACHINE_QEMU]: ifdef-ed out
(now unused).
(grub_keyboard_controller_init)
[GRUB_MACHINE_MIPS_YEELOONG || GRUB_MACHINE_QEMU]: Don't attempt to
read the initial state since controller isn't inited yet.
* grub-core/fs/udf.c (GRUB_UDF_LOG2_BLKSIZE): Removed.
(GRUB_UDF_BLKSZ): Removed.
(struct grub_udf_data): New field "lbshift" to hold the logical block
size of the file system in log2 format. All users updated.
(sblocklist): Change type to unsigned.
(grub_udf_mount): Change type of "sblklist" to unsigned.
Move AVDP search before VRS recognition, because the latter requires
knowledge of the logical block size, which is detected during the
former.
Detect and validate logical block size during AVDP search, adding
support for block sizes 512, 1024 and 4096.
Make VRS recognition independent of block size.
* include/grub/elfload.h (grub_elf32_size): New parameter. All users updated.
Return maximum segments alignment.
(grub_elf64_size): Likewise.
* kern/elf.c (grub_elf32_size): New parameter. All users updated.
Return maximum segments alignment.
(grub_elf64_size): Likewise.
* grub-core/loader/powerpc/ieee1275/linux.c:
(grub_linux_claimmap_iterate): New function. Uses the "available"property
in the "memory" node for memory allocation for kernel in the PowerPC loader.
(grub_linux_load32): Correctly find linux entry point offset.
(grub_linux_load64): Likewise.
On mips-yeeloong, build with -march=loongson2f when this flag is
available (GCC >= 4.4).
* conf/Makefile.common [COND_mips_yeeloong] (CFLAGS_PLATFORM): Remove
`-march=mips3'.
* configure.ac: For mips-yeeloong, add -march=loongson2f if available,
or otherwise add -march=mips3.
Reported by: Jordan Uggla
* grub-core/term/serial.c (grub_serial_terminfo_input_template): New
const.
(grub_serial_terminfo_output_template): Likewise.
(grub_cmd_serial): Register "serial" with terminfo.
(GRUB_MOD_INIT(serial)): Fill grub_serial_terminfo_input and
grub_serial_terminfo_output.
On Yeeloong, pass machine type information to Linux.
* grub-core/loader/mips/linux.c [GRUB_MACHINE_MIPS_YEELOONG]
(LOONGSON_MACHTYPE): New macro, set to
"machtype=lemote-yeeloong-2f-8.9inches".
[LOONGSON_MACHTYPE] (grub_cmd_linux): Pass LOONGSON_MACHTYPE as
additional argument to Linux.
* util/deviceiter.c (grub_util_iterate_devices): Increase SCSI
limit to 48 (to cope with Sun Fire X4500), and IDE limit to 96
(its SATA disks are detected as slaveless IDE master drives on
kFreeBSD).
Reported by Carsten Aulbert.
elements with invlid index.
* grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise.
* grub-core/disk/raid.c (insert_array): Automatically reallocate
members.
* include/grub/raid.h (grub_raid_member): New struct.
(grub_raid_array): Transform devices and start_sector into usage of
grub_raid_member. All users updated
(allocated_devs): New member.
* Makefile.util.def (libgrubkern.a): New library for grub kernel
components that depend on gnulib headers.
(libgrubmods.a): Renamed from earlier libgrub.a.
* conf/Makefile.common: Remove gnulib from *_LIBRARY flags.
(arguments): New member allow_floppy.
(argp_parser): Handle --allow-floppy.
(main): Pass allow_floppy.
* util/grub-install.in: New option --allow-floppy passed though to
grub-setup.
* grub-core/commands/acpihalt.c [GRUB_DSDT_TEST]: Include userspace
headers and add relevant defines. Don't include standard headers.
(main) [GRUB_DSDT_TEST]: New function.
* include/grub/acpi.h [GRUB_DSDT_TEST]: Don't include standard headers.
Don't declare functions.
* util/grub-mkconfig.in: Merge `GRUB_DISABLE_LINUX_RECOVERY' and
`GRUB_DISABLE_NETBSD_RECOVERY' into a single `GRUB_DISABLE_RECOVERY'
variable. All references updated.
* util/grub.d/10_kfreebsd.in: Support recovery boot entries.
* grub-core/disk/raid.c (grub_raid_getname) [GRUB_UTIL]: New function.
(insert_array): New argument raid.
* include/grub/disk.h (grub_disk_dev) [GRUB_UTIL]: New member raidname.
* include/grub/raid.h (grub_raid_array) [GRUB_UTIL]: New member driver.
* util/grub-probe.c (probe): PRint raidname instead of plainly "mdraid".
Tested by: decoder
Reported by: decoder and meta tech.
* grub-core/term/efi/console.c (grub_console_standard_color): Removed.
(grub_console_setcolorstate): Clear out 0x80 bit.
Use GRUB_TERM_DEFAULT_STANDARD_COLOR.
(grub_console_output): Use GRUB_TERM_DEFAULT_NORMAL_COLOR.
Use GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR.
* gentpl.py: New groups terminfoinkernel and terminfomodule.
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Include extcmd.h, arg.h
and terminfo.h when needed.
* grub-core/Makefile.core.def (kernel): Include term/terminfo.c,
term/tparm.c, commands/extcmd.c, lib/arg.c on terminfokernel.
(terminfo): Enable only on terminfokernel.
(extcmd): Likewise.
* include/grub/extcmd.h: Add missing EXPORT_FUNC.
* include/grub/lib/arg.h: Likewise.
* grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_dimensions): Fix
incorrect usage of ->.
* grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_get_mbi_size):
Take VBE info into account even if only text is supported.
(fill_vbe_info): Take into account the case when only VGA text
is supported.
* include/grub/multiboot.h (GRUB_MACHINE_HAS_VBE): Set to zero
on coreboot, multiboot and qemu.
* Makefile.util.def (grub-setup): Add grub-core/lib/reed_solomon.c.
* grub-core/Makefile.am (rs_decoder.S): New target.
(kern/i386/pc/startup.S): Depend on rs_decoder.S.
* grub-core/kern/i386/pc/startup.S (reed_solomon_redundancy): New field.
(multiboot): Move to RS part.
(post_reed_solomon): New label.
(grub_boot_drive): Move to non-RS part since it's modified in memory
on boot.
Include rs_decoder.S.
* grub-core/lib/reed_solomon.c: New file.
* include/grub/offsets.h (GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY):
New definition.
(GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE): Removed.
(GRUB_KERNEL_I386_PC_RAW_SIZE): Updated.
(GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): New definition.
* include/grub/partition.h (grub_partition_map): Change prototype of
embed to allow returning additional sectors.
* include/grub/reed_solomon.h: New file.
* util/grub-setup.c (setup): Handle Reed-Solomon.
Support degraded ZFS arrays in "grub-probe -t device" resolution.
* grub-core/kern/emu/getroot.c (find_root_device_from_libzfs): When
the pool is an array of devices, iterate through it and return the
first device that passes a stat() test (instead of blindly returning
the first one).
Build fixes for GNU/kFreeBSD.
* Makefile.util.def: Add `$(LIBZFS) $(LIBNVPAIR)' library dependencies
to programs that require ZFS conversion.
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy): Support
kernels that don't have FLOPPY_MAJOR.
* autogen.sh: Create symlinks to ${GRUB_CONTRIB} if necessary to
avoid confusing Automake. Run autogen only twice, once for the top
level and once for grub-core. Add Makefile.util.def and
Makefile.core.def from extra modules to the appropriate autogen
invocations. If Makefile.common exists in an extra module, include
it in both Makefile.util.am and grub-core/Makefile.core.am;
similarly, include any Makefile.util.common file in Makefile.util.am
and any Makefile.core.common file in grub-core/Makefile.core.am.
* conf/Makefile.common ($(top_srcdir)/grub-core/Makefile.core.am):
Depend on $(top_srcdir)/grub-core/Makefile.gcry.def.
($(top_srcdir)/grub-core/Makefile.gcry.def): Remove.
* grub-core/Makefile.am: Remove inclusion of Makefile.gcry.am.
* gentpl.py (gvar_add): Turn GVARS into a set.
(global_variable_initializers): Sort global variables on output.
(vars_init): New function.
(first_time): Likewise.
(library): Ensure that non-global variable initialisations are
emitted before the first time we emit code for a library block.
Append to variables rather than setting them. Only emit
noinst_LIBRARIES, BUILT_SOURCES, and CLEANFILES the first time for
each conditional path.
(program): installdir() emits an Autogen macro, so must be passed to
var_add rather than gvar_add.
(data): Likewise.
(script): Likewise.
(rules): New function, centralising handling for different target
types. Set up Guile association lists for first_time and vars_init,
and send most output to a diversion so that variable initialisations
can be emitted first.
(module_rules): Use new rules function.
(kernel_rules): Likewise.
(image_rules): Likewise.
(library_rules): Likewise.
(program_rules): Likewise.
(script_rules): Likewise.
(data_rules): Likewise.
* configure.ac: Add AC_PROG_LN_S, for the benefit of ntldr-img.
* .bzrignore: Add contrib and grub-core/contrib. Remove
grub-core/Makefile.gcry.am.
* grub-core/loader/multiboot_mbi2.c (grub_multiboot_load): Declare
new tags as supported.
(acpiv2_size): New function.
(grub_multiboot_get_mbi_size): Take new tags into account.
(grub_multiboot_make_mbi): Add new tags.
* include/grub/multiboot.h (GRUB_MACHINE_HAS_ACPI): New definition.
convert partition names to disk names if the new `convert' parameter
is set.
(grub_util_biosdisk_get_grub_dev): If opening the disk device
returns GRUB_ERR_UNKNOWN_DEVICE, treat the partition device as a
disk in its own right. This can happen with Xen disk images.
* grub-core/commands/menuentry.c (grub_normal_add_menu_entry): New
parameter submenu. All users updated.
* grub-core/normal/main.c (free_menu): Rename to ...
(grub_normal_free_menu): ... this. Made global.
* grub-core/normal/menu.c (grub_menu_execute_entry): Open new context
if requested.
* grub-core/normal/menu_entry.c (screen): New field submenu.
(make_screen): Set submenu.
(run): Open new context if requested.
* include/grub/menu.h (grub_menu_entry): New field submenu.
* include/grub/normal.h (grub_normal_free_menu): New proto.
* Makefile.util.def (libgrub.a): Add grub-core/partmap/bsdlabel.c.
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name):
Properly handle concatenation.
* grub-core/kern/device.c (grub_device_iterate): Likewise.
* grub-core/normal/completion.c (iterate_partition): Likewise.
* grub-core/kern/disk.c (grub_disk_open): Make disk->name not
contain partition. All users updated.
* grub-core/partmap/bsdlabel.c (grub_netbsdlabel_partition_map): New
struct.
(grub_openbsdlabel_partition_map): Likewise.
(bsdlabel_partition_map_iterate): Rename to ..
(iterate_real): ... this. New arguments sector, freebsd and pmap.
(bsdlabel_partition_map_iterate): New function.
(netopenbsdlabel_partition_map_iterate): Likewise.
(netbsdlabel_partition_map_iterate): Likewise.
(openbsdlabel_partition_map_iterate): Likewise.
(GRUB_MOD_INIT): Register new partmaps.
(GRUB_MOD_FINI): Unregister new partmaps.
* grub-core/partmap/msdos.c (pc_partition_map_iterate): Rename to ...
(grub_partition_msdos_iterate): ... this. All users updated.
Don't support embedding other than in a minix partition.
* include/grub/msdos_partition.h (grub_partition_msdos_iterate): New
proto.
* include/grub/partition.h (grub_partition): New field msdostype.
* util/grub-install.in: Handle openbsd and netbsd types being in
part_bsd module.
as printf format strings; the translations might contain '%' which
could cause a crash.
(main): Likewise.
* util/grub-fstest.c (argp_parser): Likewise.
* util/grub-setup.c (argp_parser): Likewise.
(main): Likewise.
* grub-core/Makefile.core.def (lsefimmap): New module.
* include/grub/efi/api.h (PRIxGRUB_EFI_UINTN_T): New definition.
Also-By: Robert Millan <rmh.grub@aybabtu.com>
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
has a chance to see them.
* grub-core/kern/err.c (grub_err_printed_errors): New variable.
(grub_print_error): Increment grub_err_printed_errors.
* grub-core/normal/menu.c (grub_menu_execute_entry): Pause the
execution if any errors were displayed.
(show_menu): Remove old code for pause.
* grub-core/normal/menu_entry.c (run): Likewise.
* grub-core/normal/term.c (grub_normal_char_counter): Removed. All
users updated.
(grub_normal_get_char_counter): Likewise.
* include/grub/err.h (grub_err_printed_errors): New external variable.
* include/grub/normal.h (grub_normal_get_char_counter): Removed.
* grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_get_mbi_size):
Take VBE info into account.
(fill_vbe_info) [GRUB_MACHINE_HAS_VBE]: New function.
(retrieve_video_parameters) [GRUB_MACHINE_HAS_VBE]:
Call fill_vbe_info when appropriate.
(grub_multiboot_make_mbi): Account for the size occupied by VBE info.
* grub-core/loader/multiboot_mbi2.c (grub_multiboot_load): Declare tags
as supported.
(grub_multiboot_get_mbi_size): Take new tags into account.
(fill_vbe_tag) [GRUB_MACHINE_HAS_VBE]: New function.
(retrieve_video_parameters) [GRUB_MACHINE_HAS_VBE]:
Call fill_vbe_tag when appropriate.
(grub_multiboot_make_mbi): Properly align tags.
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_pm_interface): New
function.
* include/grub/i386/pc/vbe.h (grub_vbe_bios_get_pm_interface): New
proto.
* include/grub/multiboot.h (GRUB_MACHINE_HAS_VBE): New definition.
* grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_dimensions):
Save state in grub_ofconsole_terminfo_output.
(grub_ofconsole_term): Use grub_terminfo_getwh.
(grub_ofconsole_getwh): Removed.
* grub-core/term/serial.c (grub_serial_getwh): Removed.
(grub_serial_term): Use grub_terminfo_getwh.
* grub-core/term/terminfo.c (grub_terminfo_getwh): New function.
(options): New struct.
(OPTION_*): New enum.
(grub_cmd_terminfo): Transform into extcmd and handle new parameters.
* include/grub/terminfo.h (grub_terminfo_output_state): New fields
width and height.
(grub_terminfo_getwh): New proto.
* grub-core/lib/legacy_parse.c (grub_legacy_parse): Handle --lines.
* grub-core/lib/legacy_parse.c (legacy_command): New flags FLAG_TITLE
and FLAG_TERMINAL.
(legacy_commands): Add terminal and title.
(grub_legacy_parse): Handle terminal. Simplify title handling.
on FreeBSD. Define HAVE_DIOCGDINFO on NetBSD and FreeBSD to reduce
the verbosity of later #ifs.
(find_partition_start): Define this function on FreeBSD too.
(device_is_wholedisk) [__FreeBSD__ || __FreeBSD_kernel__]: New
function.
(grub_util_biosdisk_get_grub_dev): Use partition-start-sector logic
on FreeBSD.
* Add gnulib files generated by gnulib-tool in build-aux, m4 and
grub-core/gnulib directories
* .bzignore: Add **/.deps and autogenerated gnulib files
* configure.ac: Assign auxiliary directory to build-aux, add invocation
of gnulib macros, add grub-core/gnulib/Makefile
* Makefile.am: Add gnulib directory in SUBDIRS (removing unnecessary .),
include m4 directory to aclocal.
* Makefile.util.def: Remove direct compilation of gnulib source files
and use the new grub-core/gnulib/libgnu.a.
* build-aux/config.rpath: move config.rpath from top directory to
build-aux
* conf/Makefile.common: Remove the macro _GL_UNUSED already defined
in gnulib headers
* conf/Makefile.extra-dist: Add m4/gnulib-cache.m4
* grub-core/Makefile.core.def: Remove unnecessary extra_dist
* grub-core/lib/posix_wrap/localcharset.h (locale_charset): Update
header.
* grub-core/lib/posix_wrap/langinfo.h (nl_langinfo): Return static
string.
* Makefile.util.def (grub-mklayout): New file.
(grub-kbdcomp): New script.
* grub-core/Makefile.am (KERNEL_HEADER_FILES) [COND_mips_yeeloong]:
Add keyboard_layouts.h.
* grub-core/Makefile.core.def (kernel): Add commands/keylayouts.c and
commands/boot.c on yeeloong.
(keylayouts): New module.
* grub-core/bus/usb/ohci.c
* grub-core/bus/usb/uhci.c
* grub-core/bus/usb/usbhub.c (rescan): New variable.
(grub_usb_add_hub): Poll interrupt pipe for device handling.
(attach_root_port): Likewise.
(poll_nonroot_hub): Likewise.
(grub_usb_poll_devices): Likewise.
(detach_device): Close transfer.
* grub-core/bus/usb/usbtrans.c (grub_usb_execute_and_wait_transfer): New
function.
(grub_usb_bulk_setup_readwrite): Likewise.
(grub_usb_bulk_finish_readwrite): Likewise.
* grub-core/commands/keylayouts.c: New file.
* grub-core/commands/keystatus.c (grub_getkeystatus): New function.
* grub-core/commands/menuentry.c (hotkey_aliases): All several new
aliases.
* grub-core/term/at_keyboard.c: Restructured to use keylayouts and
support scancode 2.
* grub-core/term/usb_keyboard.c: Restructured to use keylayouts.
* include/grub/keyboard_layouts.h: New file.
* util/grub-mklayout.c: New file.
* util/grub-kbdcomp.in: Likewise.
Also-By: Aleš Nesrsta <starous@volny.cz>
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
rules.
* grub-core/kern/emu/hostdisk.c (read_device_map): Don't
canonicalise device paths under /dev/mapper/.
(convert_system_partition_to_system_disk): Compare the
uncanonicalised path to /dev/mapper/ rather than the canonicalised
path, since device nodes under /dev/mapper/ are often symlinks.
needing to be compiled with serial support.
(ls): Indicate that multiple files are accepted.
* grub-core/commands/ls.c (GRUB_MOD_INIT): Update help text to
indicate that multiple files are accepted.
* grub-core/partmap/gpt.c (grub_gpt_partition_type_bios_boot)
[GRUB_UTIL]: New variable.
(gpt_partition_map_iterate): Set part.parent.
(gpt_partition_map_embed) [GRUB_UTIL]: New function.
(grub_gpt_partition_map) [GRUB_UTIL]: Set .embed.
* grub-core/partmap/msdos.c (pc_partition_map_embed) [GRUB_UTIL]:
New function.
(grub_msdos_partition_map) [GRUB_UTIL]: Set .embed.
* include/grub/partition.h (grub_embed_type_t) [GRUB_UTIL]: New type.
(grub_partition_map) [GRUB_UTIL]: New field embed.
* util/grub-setup.c (grub_gpt_partition_type_bios_boot): Removed.
(setup): Use ->embed.
Reported by: Yves Blusseau.
* include/grub/command.h (grub_command_flags_t): New flags
GRUB_COMMAND_ACCEPT_DASH and GRUB_COMMAND_OPTIONS_AT_START.
* grub-core/lib/arg.c (grub_arg_parse): Handle new flags.
* grub-core/commands/echo.c (GRUB_MOD_INIT): Use new flags.
* util/sparc64/ieee1275/grub-setup.c: ... and this ...
* util/grub-setup.c: ... into this.
* include/grub/sparc64/ieee1275/boot.h (grub_boot_blocklist) [ASM_FILE]:
New struct.
* grub-core/fs/ext2.c (grub_ext2_open): Use return error value when
possible.
All users updated.
* disk/loopback.c (grub_loopback): Remove has_partitions.
All users updated.
(options): Remove partitions. All users updated.
* util/grub-fstest.c (fstest): Don't pass "-p" to loopback.
* util/i386/pc/grub-setup.c (setup): copy partition table only when
actual partition table is found.
* configure.ac (GRUB_KERNEL_MACHINE_LINK_ADDR): Removed.
* grub-core/Makefile.core.def (kernel): Make ldflags just use the
right address. Add sparc64_ieee1275_ldflags.
* grub-core/loader/sparc64/ieee1275/linux.c: Remove leftover include.
* util/grub-mkimagexx.c (locate_sections): Correct grub_host_to_target32
to grub_host_to_target_addr
(load_image): Likewise.
* grub-core/Makefile.core.def (vbeinfo): Removed.
(vbetest): Removed.
(videoinfo): New module.
* grub-core/commands/i386/pc/vbeinfo.c: Removed.
* grub-core/commands/i386/pc/vbetest.c: Removed.
* grub-core/commands/videoinfo.c: New file.
* grub-core/commands/videotest.c (grub_cmd_videotest): Support mode
specification.
(grub_cmd_videotest) [GRUB_MACHINE_PCBIOS]: Load vbe.mod when invoked
as vbetest.
(GRUB_MOD_INIT) [GRUB_MACHINE_PCBIOS]: New command vbetest.
(GRUB_MOD_FINI) [GRUB_MACHINE_PCBIOS]: Unregister vbetest.
* grub-core/video/efi_gop.c (grub_video_gop_fill_mode_info): Fill
mode_number. New parameter mode. All users updated.
(grub_video_gop_iterate): New function.
(grub_video_efi_gop): New member iterate.
* grub-core/video/i386/pc/vbe.c (framebuffer): Removed leftover fields.
(grub_vbe_set_video_mode): Remove setting useless fields.
(vbe2videoinfo): New function.
(grub_video_vbe_iterate): Likewise.
(grub_video_vbe_setup): Use vbe2videoinfo.
(grub_video_vbe_print_adapter_specific_info): New function.
(grub_video_vbe_adapter): New fields iterate and
print_adapter_specific_info.
* include/grub/video.h (GRUB_VIDEO_MODE_*): Transform into enum.
All users updated.
(grub_video_mode_info): New field mode_number.
(grub_video_adapter): New fields iterate and
print_adapter_specific_info.
* grub-core/kern/emu/getroot.c (grub_util_get_dev_abstraction):
Return GRUB_DEV_ABSTRACTION_NONE if device is in device.map.
* grub-core/kern/emu/hostdisk.c
(convert_system_partition_to_system_disk): Support mdX.
(find_system_device): New parameter add. All users updated.
(grub_util_biosdisk_is_present): New function.
* include/grub/emu/hostdisk.h (grub_util_biosdisk_is_present): New
proto.
* grub-core/Makefile.core.def (halt): Add commands/acpihalt.c on i386-pc.
* grub-core/commands/acpihalt.c: New file.
* grub-core/commands/i386/pc/halt.c (grub_cmd_halt): Call grub_acpi_halt.
* include/grub/acpi.h (grub_acpi_fadt): New member pm1a.
(grub_acpi_halt): New proto.
(GRUB_ACPI_SLP_EN): New const.
(GRUB_ACPI_SLP_TYP_OFFSET): Likewise.
(GRUB_ACPI_OPCODE_*): New enum.
(GRUB_ACPI_EXTOPCODE_*): Likewise.
* grub-core/video/ieee1275.c (stdout_ihandle): New variable.
(have_setcolors): Likewise.
(grub_video_ieee1275_init): Fill stdout_ihandle and have_setcolors.
(grub_video_ieee1275_setup): Use grub_video_ieee1275_set_palette.
(grub_video_ieee1275_set_palette): Implement.
Set prefix_drive on EFI and PC to (,$grub_partition) as last resort.
* util/i386/pc/grub-setup.c (setup): Don't touch prefix.
Fixes a bug reported by Yves Blusseau.
* conf/Makefile.common (CFLAGS_PLATFORM): Add -mflush-func
=grub_cpu_flush_cache on all mips and not only yeeloong.
* configure.ac (COND_mips): New conditional.
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Add libgcc on all
platforms.
* grub-core/kern/emu/cache.S (__mips__): Use _flush_cache.
* grub-core/kern/emu/full.c (grub_arch_dl_init_linker)
[GRUB_LINKER_HAVE_INIT]: New function.
(grub_emu_post_init): Likewise.
* grub-core/kern/emu/lite.c (grub_emu_post_init): Likewise.
* grub-core/kern/emu/main.c: Use grub_emu_post_init.
* include/grub/cache.h (_mips): Include mips/cache.h.
* include/grub/disk.h [GRUB_UTIL || GRUB_MACHINE_EMU]: Add missing
LVM and RAID prototypes.
* include/grub/emu/misc.h (grub_emu_post_init): New proto.
* include/grub/mips/time.h (grub_cpu_idle) [GRUB_MACHINE_EMU]: New
function.
Solaris support in grub_find_zpool_from_dir(). Thanks
Seth Goldberg for referring to getextmntent() facility.
* configure.ac: Check for getextmntent(), `sys/mnttab.h' and
`sys/mkdev.h'.
* grub-core/kern/emu/misc.c [HAVE_SYS_MNTTAB_H]: Include
`<sys/mnttab.h>'.
[HAVE_SYS_MKDEV_H]: Include `<sys/mkdev.h>'.
[HAVE_GETEXTMNTENT] (grub_find_zpool_from_dir): Add getextmntent()
method for finding zpool name.
actively require those modules to be absent, so grub-fstest needs
its own initialisation and finalisation code.
* Makefile.am (grub_fstest.pp): New target.
(grub_fstest_init.lst): Likewise.
(grub_fstest_init.c): Likewise.
* Makefile.util.def (grub-fstest): Add grub_fstest_init.c.
and grub-core/disk/host.c to ...
(grub-fstest): ... here. Having the host disk implementation
present confuses grub-probe and other utility programs.
* util/grub-mkconfig.in: Only verify readability of grub.cfg.new
when writing to a file, not when writing to stdout.
* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Improve
with (optional) parameters to specify device and relative path.
* util/grub-install.in: Use is_path_readable_by_grub() to
verify readability of a few critical files.
* util/grub-mkconfig.in: Use is_path_readable_by_grub() to
verify readability of grub.cfg.new.
* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Improve
with (optional) parameters to specify device and relative path.
* util/grub-install.in: Use is_path_readable_by_grub() to
verify readability of a few critical files.
* util/grub-mkconfig.in: Use is_path_readable_by_grub() to
verify readability of grub.cfg.new.
GRUB_IEEE1275_FLAG_HAS_CURSORONOFF when appropriate.
* grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_setcursor):
Use terminfo and don't use cursor-on/cursor-off unless it's known
to work.
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New element
GRUB_IEEE1275_FLAG_HAS_CURSORONOFF.
starts with "(,", fill the drive containing the loaded image in
between those two characters, but expect that a full partition
specification including partition map names will follow.
* tests/grub_script_not.in: New test.
* Makefile.util.def: Rules for new test.
* grub-core/script/execute.c (grub_script_execute_cmdline): Handle
! command as a special case.
* grub-core/script/yylex.l (GRUB_PARSER_TOKEN_NOT): Removed.
* tests/grub_script_expansion.in: New test.
* Makefile.util.def: Rule for new test.
* grub-core/commands/wildcard.c: New file, implements filename
expansion support for GRUB script.
* grub-core/Makefile.core.def: Rule update for regexp.mod.
* grub-core/script/argv.c: Cosmetic changes.
* grub-core/script/execute.c (grub_script_arglist_to_argv):
Refactored to perform wildcard expansion on arguments.
* include/grub/script_sh.h (grub_script_wildcard_translator): New
struct.
* tests/util/grub-shell.in: Fix quoting for read input.
of regexp.
* tests/grub_cmd_regexp.in: New test.
* Makefile.util.def: Rule for new test.
* grub-core/commands/regexp.c: New option -s to update environment
variables with regexp matches.
(grub_file_seekable): New inline function.
* grub-core/io/gzio.c (test_header): Don't test end magic if file isn't
easily seekable.
(grub_gzio_open): Set not_easly_seekable.
* grub-core/fs/i386/pc/pxe.c (grub_pxefs_open): Set not_easily_seekable.
* grub-core/io/bufio.c (grub_bufio_open): Propagate not_easily_seekable.
* tests/grub_script_return.in: New test.
* Makefile.util.def: Rules for new test.
* grub-core/script/execute.c (grub_script_return): New function.
* grub-core/script/main.c: Register/unregister return commaond.
* include/grub/script_sh.h (grub_script_return): New prototype.
* grub-core/script/lexer.c (append_newline): Removed.
(grub_script_lexer_yywrap): Refactored.
(grub_script_lexer_init): Refactored.
* grub-core/script/yylex.l (yywrap): New function.
(grub_lexer_resplit): New function.
(grub_lexer_unput): New function.
* include/grub/script_sh.h (grub_lexer_param): New members, unput
and resplit.
* tests/grub_script_echo1.in: Added few more testcases.
* grub-core/boot/i386/pc/lnxboot.S: Use
GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE.
* grub-core/kern/i386/pc/startup.S: Move grub_prefix to compressed part.
* include/grub/offsets.h: Rename GRUB_MACHINE_DATA_END to
GRUB_MACHINE_PREFIX_END. All users updated.
(GRUB_KERNEL_I386_PC_PREFIX): Set to GRUB_KERNEL_I386_PC_RAW_SIZE.
(GRUB_KERNEL_I386_PC_PREFIX_END): Set to GRUB_KERNEL_I386_PC_PREFIX
+ 0x40.
(GRUB_KERNEL_I386_PC_RAW_SIZE): Decrease.
* util/grub-mkimage.c (image_target_desc): Change data_end to
prefix_end. All users updated.
required by the boot protocol.
* include/grub/i386/relocator.h (struct grub_relocator32_state): Add
ebp and edi members.
* grub-core/lib/i386/relocator.c (grub_relocator_boot): Handle
state.ebp and state.edi.
* grub-core/lib/i386/relocator32.S (grub_relocator32_start): Set
%ebp and %edi according to grub_relocator32_ebp and
grub_relocator32_edi respectively.
* grub-core/loader/i386/linux.c (grub_linux_boot): Zero state.ebp
and state.edi.
* util/grub-mkimage.c (image_target_desc): New enum value
IMAGE_I386_PC_PXE.
(image_targets): New target i386-pc-pxe.
(generate_image): Handle i386-pc-pxe image.
* grub-core/fs/i386/pc/pxe.c (grub_pxe_pxenv): Put correct type bangpxe.
(grub_pxe_scan): Fix types and pxe_rm_entry computation.
All users updated.
* include/grub/i386/pc/pxe.h (grub_pxe_bangpxe): New struct.
(grub_pxe_pxenv): Correct type.
* Makefile.util.def (grub-mkrescue): Use x86 tg instead of
x86_noieee1275 which are functionaly equivalent in this case.
(grub-install): Make source on each platform explicit. Enable on
all noemu.
* gentpl.py (x86_efi_pc): Removed group.
(x86_noefi): Likewise.
(i386_noefi): Likewise.
(x86_noieee1275): Likewise.
(i386_noieee1275): Likewise.
(i386_noefi_noieee1275): Likewise.
(i386_pc_qemu_coreboot): Likewise.
(i386_coreboot_multiboot): Likewise.
(i386_pc_coreboot_multiboot_qemu): Likewise.
(x86_noefi_mips): Likewise.
(noieee1275): Likewise.
(ieee1275_mips): Likewise.
(noemu_noieee1275): Likewise.
(cmos): New group.
(usb): Likewise.
(videoinkernel): Likewise.
(videomodules): Likewise.
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Remove
include/grub/elf.h, include/grub/elfload.h, include/grub/net.h,
include/grub/reader.h, include/grub/symbol.h, include/grub/types.h,
include/grub/loader.h, include/grub/msdos_partition.h,
include/grub/machine/biosdisk.h, include/grub/machine/boot.h,
include/grub/machine/console.h, include/grub/machine/vga.h,
include/grub/machine/vbe.h, include/grub/machine/init.h,
include/grub/machine/kernel.h, include/grub/cpu/time.h,
include/grub/cpu/types.h, include/grub/gzio.h and include/grub/menu.h
(KERNEL_HEADER_FILES) [i386-pc]: Add include/grub/machine/int.h.
(KERNEL_HEADER_FILES) [i386-ieee1275]: Add include/grub/i386/pit.h
* grub-core/Makefile.core.def (kernel): Explicit the source for
startup. Explicit the platforms using kern/generic/rtc_get_time_ms.c.
Split ieee1275_mips. Remove kern/i386/halt.c. Remove kern/i386/misc.S.
Enable kern/i386/pit.c on all x86. Remove kern/i386/ieee1275/init.c.
Use videoinkernel tag.
(usb): Enable on all usb.
(usbserial_common): Likewise.
(usbserial_pl2303): Likewise.
(usbserial_ftdi): Likewise.
(uhci): Enable on all x86.
(ohci): Enable on all pci.
(cmostest): Enable on all CMOS.
(acpi): Include commands/acpi.c on all platforms.
(halt): Add relevant lib/*/halt.c.
(hdparm): Enable on all pci.
(lspci): Likewise.
(usbtest): Enable on all usb.
(ata): Enable on all pci.
(ata_pthru): Likewise.
(usbms): Enable on all usb.
(usb_keyboard): Likewise.
(font): Use tag videomodules.
(bufio): Likewise.
(datetime): Use tag cmos. Enable on all noemu.
(mmap): Use tags common and x86.
(gfxterm): Use tag videomodules.
(bitmap): Likewise.
(bitmap_scale): Likewise.
(video_fb): Likewise.
(video): Likewise.
* grub-core/bus/usb/ohci.c (grub_ohci_td): Make link_td a pointer and
adjust padding accordingly. All users updated.
(grub_ohci_transaction): Fix bad format specification.
(GRUB_MOD_INIT): Add asserts for struct size.
* grub-core/bus/usb/uhci.c (grub_uhci_pci_iter): Add explicit casts.
(grub_alloc_td): Likewise.
(grub_free_queue): Likewise.
(grub_uhci_transfer): Likewise.
(grub_uhci_transaction): Fix bad format specification.
* grub-core/bus/usb/usbtrans.c (grub_usb_control_msg): Likewise.
(grub_usb_bulk_readwrite): Likewise.
* grub-core/kern/i386/misc.S (grub_stop): Moved from here ...
* grub-core/commands/i386/pc/halt.c (stop): ...here. Transformed into C.
Made static.
* grub-core/lib/i386/halt.c (stop): ... and here. Transformed into C.
Made static.
* grub-core/kern/i386/pc/startup.S (grub_halt): Moved from here ...
* grub-core/commands/i386/pc/halt.c (grub_halt): ...here.
Transformed into C.
* grub-core/kern/i386/pc/startup.S (grub_biosdisk_rw_int13_extensions):
Moved from here ...
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw_int13_extensions):
... here. Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S (grub_biosdisk_rw_standard):
Moved from here ...
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw_standard):
... here. Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S
(grub_biosdisk_check_int13_extensions): Moved from here ...
* grub-core/disk/i386/pc/biosdisk.c
(grub_biosdisk_check_int13_extensions): ... here. Transformed into C.
Made static.
* grub-core/kern/i386/pc/startup.S
(grub_biosdisk_get_cdinfo_int13_extensions): Moved from here ...
* grub-core/disk/i386/pc/biosdisk.c
(grub_biosdisk_get_cdinfo_int13_extensions): ... here.
Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S
(grub_biosdisk_get_diskinfo_int13_extensions): Moved from here ...
* grub-core/disk/i386/pc/biosdisk.c
(grub_biosdisk_get_diskinfo_int13_extensions): ... here.
Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S
(grub_biosdisk_get_diskinfo_standard): Moved from here ...
* grub-core/disk/i386/pc/biosdisk.c
(grub_biosdisk_get_diskinfo_standard): ... here.
Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S
(grub_biosdisk_get_num_floppies): Moved from here ...
* grub-core/disk/i386/pc/biosdisk.c
(grub_biosdisk_get_num_floppies): ... here.
Transformed into C. Made static.
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_diskinfo_real):
New function.
* grub-core/kern/i386/pc/startup.S (grub_pxe_scan): Moved from here ...
* grub-core/fs/i386/pc/pxe.c (grub_pxe_scan): ... here.
Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S (grub_rm_entry): Moved from here ...
* grub-core/fs/i386/pc/pxe.c (grub_rm_entry): ... here.
Transformed into C. Made static.
* grub-core/kern/i386/ieee1275/init.c: Removed.
* grub-core/kern/i386/misc.S: Likewise.
* grub-core/kern/i386/pc/startup.S (grub_get_memsize):
Splitted from here ...
* grub-core/kern/i386/pc/init.c (grub_get_conv_memsize): ... here.
Transformed into C. Made static. All users updated.
* grub-core/kern/i386/pc/mmap.c (grub_get_ext_memsize): ... and here.
Transformed into C. Made static. All users updated.
* grub-core/kern/i386/pc/startup.S (grub_get_eisa_mmap):
Moved from here...
* grub-core/kern/i386/pc/mmap.c (grub_get_eisa_mmap): ... here.
Transformed into C. Made static. All users updated.
* grub-core/kern/i386/pc/startup.S (grub_get_mmap_entry):
Moved from here...
* grub-core/kern/i386/pc/mmap.c (grub_get_mmap_entry): ... here.
Transformed into C. Made static. All users updated.
* grub-core/kern/i386/pc/startup.S (grub_stop_floppy):
Removed (replaced by C version).
* grub-core/kern/i386/pc/startup.S (grub_vga_set_mode):
Moved from here...
* grub-core/video/i386/pc/vga.c (grub_vga_set_mode): ...here.
Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_controller_info):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_controller_info):
... here. Transformed into C.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_mode_info):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_mode_info):
... here. Transformed into C.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_mode):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_mode):
... here. Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_mode):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_mode):
... here. Transformed into C.
* grub-core/kern/i386/pc/startup.S
(grub_vbe_bios_getset_dac_palette_width):Moved from here...
* grub-core/video/i386/pc/vbe.c
(grub_vbe_bios_getset_dac_palette_width):... here. Transformed into C.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_memory_window):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_memory_window):
... here. Transformed into C.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_memory_window):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_memory_window):
... here. Transformed into C.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_scanline_length):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_scanline_length):
... here. Transformed into C.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_scanline_length):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_scanline_length):
... here. Transformed into C.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_display_start):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_display_start):
... here. Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_display_start):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_display_start):
... here. Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_palette_data):
Moved from here...
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_palette_data):
... here. Transformed into C. Made static.
* grub-core/kern/i386/pc/startup.S (grub_pxe_call): Receive
pxe_rm_entry as third argument.
(grub_bios_interrupt): New function.
* grub-core/kern/i386/qemu/mmap.c: Remove useless include.
* grub-core/kern/i386/qemu/startup.S (codestart): Do cli;hlt instead
of calling grub_stop.
* grub-core/kern/efi/efi.c (grub_halt): Moved from here ...
* grub-core/lib/efi/halt.c (grub_halt): ...here.
* grub-core/kern/emu/main.c (grub_halt): Moved from here ...
* grub-core/lib/emu/halt.c (grub_halt): ... here.
* grub-core/lib/i386/halt.c: Moved from here ...
* grub-core/lib/i386/halt.c: ... here.
* grub-core/kern/ieee1275/openfw.c (grub_halt): Moved from here ...
* grub-core/lib/ieee1275/halt.c (grub_halt): ... here.
* grub-core/loader/i386/pc/linux.c (grub_linux16_boot): Call
grub_stop_floppy.
* grub-core/loader/i386/xnu.c (guessfsb) [IEEE1275]: Enable.
* include/grub/i386/coreboot/init.h: Removed.
* include/grub/i386/multiboot/init.h: Likewise.
* include/grub/i386/pc/biosdisk.h: Removed all function prototypes.
* include/grub/i386/pc/init.h: Likewise except grub_gate_a20.
* include/grub/i386/pc/int.h: New file.
* include/grub/i386/pc/pxe.h (GRUB_PXE_SIGNATURE): New definition.
(grub_pxe_scan): Removed.
(grub_pxe_call): Update prototype.
* include/grub/i386/pc/vbe.h: Removed EXPORT_FUNC and useless
prototypes.
* include/grub/i386/pc/vga.h (grub_vga_set_mode): Removed.
* include/grub/i386/qemu/init.h: Removed.
* include/grub/mips/yeeloong/kernel.h (grub_reboot): Add missing
noreturn.
(grub_halt): Likewise.
* include/grub/misc.h (grub_halt): Removed EXPORT_FUNC.
(grub_reboot): Likewise.
* grub-core/kern/i386/coreboot/init.c (grub_stop_floppy): Moved from here...
* include/grub/i386/floppy.h (grub_stop_floppy): ...here. Inlined.
* grub-core/kern/i386/pc/startup.S (grub_hard_stop): Removed.