Commit Graph

2509 Commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko 774683685f Lift up core size limits on some platforms. Fix potential memory
corruption with big core on small memory systems. Document remaining
	limits.
2013-03-07 08:17:24 +01:00
Vladimir 'phcoder' Serbinenko f6b58fe538 * grub-core/term/terminfo.c (grub_terminfo_cls): Issue an explicit
gotoxy to 0,0.
2013-03-05 20:00:51 +01:00
Vladimir 'phcoder' Serbinenko 19ce697dfd Remove all trampoline support. Add -Wtrampolines when
present. Remove symbols used for trampolines to make
	link fail if trampolines are present.
2013-03-03 15:57:30 +01:00
Vladimir 'phcoder' Serbinenko 73b5d90fe2 * grub-core/script/execute.c (grub_script_arglist_to_argv): Move
append out of its parent.
2013-03-03 15:26:29 +01:00
Vladimir 'phcoder' Serbinenko cb758e96cc * grub-core/commands/regexp.c (set_matches): Move setvar out of its
parent.
2013-03-03 15:24:02 +01:00
Vladimir 'phcoder' Serbinenko 3188131f72 * grub-core/kern/env.c, include/grub/env.h: Change iterator through
all vars to a macro. All users updated.
2013-03-03 01:34:27 +01:00
Vladimir 'phcoder' Serbinenko e42b251403 * grub-core/disk/ieee1275/nand.c: Fix compilation on
i386-ieee1275.
2013-03-03 01:30:55 +01:00
Vladimir 'phcoder' Serbinenko 6e4146c41e Move to more hookless approach in IEEE1275 devices handling. 2013-03-02 23:51:19 +01:00
Vladimir 'phcoder' Serbinenko 99fcda8a7b * grub-core/kern/term.c (grub_term_normal_color),
(grub_term_highlight_color): Add back lost defaults.
2013-03-02 23:23:51 +01:00
Vladimir 'phcoder' Serbinenko 73bf57e2c8 Make elfload not use hooks. Opt for flags and iterators instead. 2013-03-02 16:45:57 +01:00
Vladimir 'phcoder' Serbinenko 7f8c105f61 * grub-core/lib/ia64/longjmp.S: Fix the name of longjmp function.
* grub-core/lib/ia64/setjmp.S: Fix the name of setjmp function.
2013-03-02 15:31:17 +01:00
Vladimir 'phcoder' Serbinenko 396d4091e7 * grub-core/script/execute.c (gettext_append): Remove nested functions. 2013-03-02 12:17:52 +01:00
Vladimir 'phcoder' Serbinenko 19e29ee1a9 * grub-core/normal/charset.c (grub_bidi_logical_to_visual): Add
hook pass-through parameter. All users updated and unnested.
2013-03-02 11:47:59 +01:00
Vladimir 'phcoder' Serbinenko 74a2742144 * grub-core/commands/loadenv.c (grub_cmd_list_env): Move print_var
out of its parent.
2013-03-02 11:45:01 +01:00
Vladimir 'phcoder' Serbinenko b46d4213d5 * grub-core/fs/hfs.c: Remove nested functions. 2013-03-02 11:31:00 +01:00
Vladimir 'phcoder' Serbinenko e114c3cc54 * grub-core/fs/hfsplus.c (grub_hfsplus_btree_iterate_node): Pass
the context through.
	(grub_hfsplus_iterate_dir): Move nested function out of its parent.
2013-03-01 14:02:27 +01:00
Vladimir 'phcoder' Serbinenko ca9c260868 * grub-core/kern/emu/hostdisk.c (read_device_map): Remove nested
function.
2013-03-01 13:46:24 +01:00
Vladimir 'phcoder' Serbinenko 5d983f5fc2 * grub-core/gentrigtables.c: Make tables const. 2013-03-01 11:15:09 +01:00
Vladimir 'phcoder' Serbinenko 3056d3e752 Remove nested functions from videoinfo iterators. 2013-03-01 11:11:36 +01:00
Vladimir 'phcoder' Serbinenko e230377407 * grub-core/loader/i386/pc/linux.c (grub_cmd_linux): Fix compilation
for 64-bit platforms.
2013-03-01 10:39:41 +01:00
Vladimir 'phcoder' Serbinenko f42e3a2f67 * grub-core/disk/efi/efidisk.c: Transform iterate_child_devices into
a FOR_CHILDREN macro.
2013-03-01 10:37:11 +01:00
Vladimir 'phcoder' Serbinenko be174e5ef3 * grub-core/kern/main.c (grub_set_prefix_and_root): Strip trailing
platform from firmware path.
2013-03-01 10:35:51 +01:00
Vladimir 'phcoder' Serbinenko 0789b67232 Enable linux16 on non-BIOS systems for i.a. memtest.
* grub-core/loader/i386/pc/linux.c (grub_cmd_linux): Handle hole at 0
	correctly.
	* grub-core/Makefile.core.def (linux16): Enable on all x86 flavours.
2013-02-28 22:48:41 +01:00
Vladimir 'phcoder' Serbinenko 005a9c32df * grub-core/kern/i386/coreboot/mmap.c (grub_linuxbios_table_iterate):
Fix end of table condition.
2013-02-28 13:16:39 +01:00
Vladimir 'phcoder' Serbinenko ff2b3cd928 * grub-core/lib/arg.c (grub_arg_show_help): Move showargs
out of its parent.
2013-02-28 11:00:59 +01:00
Vladimir 'phcoder' Serbinenko 4fc40ff8f3 * grub-core/fs/jfs.c: Remove nested functions. 2013-02-28 10:51:32 +01:00
Vladimir 'phcoder' Serbinenko be42d97a79 * grub-core/fs/minix.c: Remove nested functions. 2013-02-28 10:50:01 +01:00
Vladimir 'phcoder' Serbinenko 99373ce472 * grub-core/fs/iso9660.c: Remove nested functions. 2013-02-28 10:30:35 +01:00
Vladimir 'phcoder' Serbinenko 5aec2afe2f * grub-core/commands/parttool.c (grub_cmd_parttool): Move show_help out
of parent function.
2013-02-28 09:43:25 +01:00
Vladimir 'phcoder' Serbinenko 43c918828d * grub-core/loader/machoXX.c: Remove nested functions. 2013-02-27 20:56:23 +01:00
Colin Watson 4eb8b75659 Remove nested functions from disk and file read hooks.
* include/grub/disk.h (grub_disk_read_hook_t): New type.
	(struct grub_disk): Add read_hook_data member.
	* include/grub/file.h (struct grub_file): Likewise.
	* include/grub/fshelp.h (grub_fshelp_read_file): Add read_hook_data
	argument.

	Update all callers.
2013-02-27 17:19:15 +01:00
Andrey Borzenkov df6da5a52d * grub-core/partmap/msdos.c (grub_partition_msdos_iterate):
Fix off by one error in enumerating extended partitions.
2013-02-27 10:02:39 +01:00
Andrey Borzenkov 21aecde5f6 * grub-core/disk/efi/efidisk.c(grub_efidisk_get_device_name): Fix
memory leak if device name is not found.
2013-02-26 22:45:00 +01:00
Andrey Borzenkov f1a19118e5 * grub-core/normal/menu_entry.c (update_screen): remove
unused variable `off' which caused scroll down arrow to be always shown.
2013-02-25 22:53:40 +01:00
Andrey Borzenkov 958bfd2067 * grub-core/normal/menu_entry.c (insert_string): fix off by one
access to unallocated memory.
2013-02-25 22:42:25 +01:00
Andrey Borzenkov b7b78edb1c * Makefile.util.def: Add partmap/msdos.c to common library.
* include/grub/msdos_partition.h: Add GRUB_PC_PARTITION_TYPE_LDM
	* grub-core/disk/ldm.c: Check for existence of
	GRUB_PC_PARTITION_TYPE_LDM.
2013-02-25 22:11:06 +01:00
Vladimir 'phcoder' Serbinenko 28d468d6f2 * grub-core/normal/misc.c (grub_normal_print_device_info): Use KiB to display
sizes and display sector size.
2013-02-25 10:45:19 +01:00
Vladimir 'phcoder' Serbinenko d55ffb0249 Implement new command cmosdump. 2013-02-24 19:44:17 +01:00
Vladimir 'phcoder' Serbinenko b5ea6ce03a Support Openfirmware disks with non-512B sectors.
* grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_open): Get the block
	size of the disk.
	* (grub_ofdisk_get_block_size): New function.
	* (grub_ofdisk_prepare): Use the correct block size.
	* (grub_ofdisk_read): Likewise.
	* (grub_ofdisk_write): Likewise.
	* include/grub/ieee1275/ofdisk.h (grub_ofdisk_get_block_size):
	New proto.
2013-02-19 09:10:26 +01:00
Vladimir 'phcoder' Serbinenko cc0e476fe8 * grub-core/commands/lsacpi.c: Fix types on 64-bit platform. 2013-02-06 17:37:29 +01:00
Vladimir 'phcoder' Serbinenko c5dbdc3357 * grub-core/disk/cryptodisk.c (grub_cryptodisk_scan_device): Don't stop
on first error.
2013-02-04 15:36:03 +01:00
Vladimir 'phcoder' Serbinenko 3f078c0fca * grub-core/fs/fshelp.c (find_file): Set oldnode to zero after
freeing it.
2013-02-01 21:51:09 +01:00
Vladimir 'phcoder' Serbinenko 66a93674b2 Implement USBDebug (full USB stack variant). 2013-02-01 21:49:29 +01:00
Vladimir 'phcoder' Serbinenko c9f0c1346e * grub-core/commands/lsacpi.c: Show more info. Hide some boring parts
unless they have unexpected values.
2013-02-01 21:45:39 +01:00
Vladimir 'phcoder' Serbinenko cfe1288b8d * grub-core/bus/usb/usb.c (grub_usb_device_attach): Add missing
grub_print_error.
2013-02-01 21:43:49 +01:00
Vladimir 'phcoder' Serbinenko e42b99698c * grub-core/bus/usb/serial/common.c (grub_usbserial_attach): Fix missing
zero-out of port structure.
2013-02-01 21:32:17 +01:00
Vladimir 'phcoder' Serbinenko cf94fd6209 * grub-core/fs/xfs.c (grub_xfs_read_block): Fix computation in presence
of extended attributes.
2013-01-30 09:22:43 +01:00
Vladimir 'phcoder' Serbinenko af18fdb4df * grub-core/normal/menu_text.c (grub_menu_init_page): Fix behaviour
when menu highlight color isn't set.
2013-01-27 16:12:05 +01:00
C. Masloch 08bcec5020 Improve FreeDOS direct loading support compatibility.
* include/grub/i386/relocator.h (grub_relocator16_state):
	New member ebp.
	* grub-core/lib/i386/relocator.c (grub_relocator16_ebp): New extern
	variable.
	(grub_relocator16_boot): Handle %ebp.
	* grub-core/lib/i386/relocator16.S: Likewise.
	* grub-core/loader/i386/pc/freedos.c:
	Load BPB to pass kernel which partition to load from.
	Check that kernel file is not too large.
	Set register dl to BIOS unit number as well.
2013-01-27 16:07:25 +01:00
Vladimir 'phcoder' Serbinenko e661c180ea * grub-core/lib/libgcrypt_wrap/cipher_wrap.h: Include sys/types.h rather
than defining WORDS_BIGENDIAN manually.
2013-01-22 07:46:29 +01:00
Colin Watson d44892fed9 * grub-core/font/font.c (blit_comb: do_blit): Make static instead of
nested.
(blit_comb: add_device_width): Likewise.
2013-01-21 21:03:26 +00:00
Colin Watson 5fdbaed168 Remove nested functions from USB iterators.
* include/grub/usb.h (grub_usb_iterate_hook_t): New type.
(grub_usb_controller_iterate_hook_t): Likewise.
(grub_usb_iterate): Add hook_data argument.
(grub_usb_controller_iterate): Likewise.
(struct grub_usb_controller_dev.iterate): Likewise.

Update all implementations and callers.
2013-01-21 21:02:24 +00:00
Vladimir 'phcoder' Serbinenko 18288f17ac Improve spkmodem reliability by adding a separator between bytes. 2013-01-21 21:05:33 +01:00
Vladimir 'phcoder' Serbinenko ec5010a3eb Improve spkmomdem reliability by adding a separator between bytes. 2013-01-21 20:03:15 +01:00
Vladimir 'phcoder' Serbinenko bc1369732f Make color variables global instead of it being per-terminal. 2013-01-21 17:53:41 +01:00
Vladimir 'phcoder' Serbinenko 7d8848f363 * grub-core/commands/ls.c (grub_ls_print_devices): Add missing
asterisk.
2013-01-21 17:46:24 +01:00
Colin Watson ed12a00309 Fix powerpc and sparc64 build failures caused by un-nesting memory
map iterators.
2013-01-21 14:41:06 +00:00
Colin Watson 6a0db4492c * grub-core/disk/arc/arcdisk.c (grub_arcdisk_iterate): Fix
parameter declarations.
2013-01-21 13:59:28 +00:00
Vladimir 'phcoder' Serbinenko ccd86b215f * grub-core/commands/lsmmap.c: Fix unused variable on emu. 2013-01-21 14:57:35 +01:00
Colin Watson 115c2cc180 * grub-core/partmap/msdos.c (embed_signatures): Add the signature of
an Acer registration utility with several sightings in the wild.
Reported by: Rickard Westman.  Fixes Ubuntu bug #987022.
2013-01-21 11:10:25 +00:00
Colin Watson fc524edf65 Remove nested functions from filesystem directory iterators.
* include/grub/fs.h (grub_fs_dir_hook_t): New type.
(struct grub_fs.dir): Add hook_data argument.

Update all implementations and callers.
2013-01-21 01:33:46 +00:00
Colin Watson 6a0debbd91 * grub-core/loader/i386/linux.c (grub_cmd_initrd): Don't add the
initrd size to addr_min, since the initrd will be allocated after
this address.
2013-01-20 23:03:35 +00:00
Vladimir 'phcoder' Serbinenko b879aa7b47 Split long USB transfers into short ones. 2013-01-20 22:45:53 +01:00
Colin Watson 6c724b85b4 Remove nested functions from ELF iterators. 2013-01-20 15:54:09 +00:00
Colin Watson 25239370fd Remove nested functions from device iterators.
* include/grub/arc/arc.h (grub_arc_iterate_devs_hook_t): New type.
(grub_arc_iterate_devs): Add hook_data argument.
* include/grub/ata.h (grub_ata_dev_iterate_hook_t): New type.
(struct grub_ata_dev.iterate): Add hook_data argument.
* include/grub/device.h (grub_device_iterate_hook_t): New type.
(grub_device_iterate): Add hook_data argument.
* include/grub/disk.h (grub_disk_dev_iterate_hook_t): New type.
(struct grub_disk_dev.iterate): Add hook_data argument.
(grub_disk_dev_iterate): Likewise.
* include/grub/gpt_partition.h (grub_gpt_partition_map_iterate):
Likewise.
* include/grub/msdos_partition.h (grub_partition_msdos_iterate):
Likewise.
* include/grub/partition.h (grub_partition_iterate_hook_t): New
type.
(struct grub_partition_map.iterate): Add hook_data argument.
(grub_partition_iterate): Likewise.
* include/grub/scsi.h (grub_scsi_dev_iterate_hook_t): New type.
(struct grub_scsi_dev.iterate): Add hook_data argument.

Update all callers.
2013-01-20 15:52:15 +00:00
Colin Watson 6c0314d638 Fix typos for "developer" and "development". 2013-01-20 13:24:47 +00:00
Vladimir 'phcoder' Serbinenko 17334a6b6a Rewrite spkmodem to use PIT for timing. Double the speed. 2013-01-17 20:06:52 +01:00
Vladimir 'phcoder' Serbinenko 7d462559da Add new command pcidump. 2013-01-16 20:44:11 +01:00
Vladimir 'phcoder' Serbinenko b78d6c32e3 New terminal outputs using serial: morse and spkmodem. 2013-01-16 20:39:54 +01:00
Vladimir 'phcoder' Serbinenko 34f71cb866 Improve bidi handling in entry editor. 2013-01-16 13:41:16 +01:00
Vladimir 'phcoder' Serbinenko 4542e71b8b * grub-core/script/lexer.c (grub_script_lexer_init): Rename getline
argument to prevent name collision.
2013-01-16 09:06:11 +01:00
Colin Watson 09fd6d8293 Remove nested functions from script reading and parsing.
* grub-core/kern/parser.c (grub_parser_split_cmdline): Add
getline_data argument, passed to getline.
* grub-core/kern/rescue_parser.c (grub_rescue_parse_line): Add
getline_data argument, passed to grub_parser_split_cmdline.
* grub-core/script/lexer.c (grub_script_lexer_yywrap): Pass
lexerstate->getline_data to lexerstate->getline.
(grub_script_lexer_init): Add getline_data argument, saved in
lexerstate->getline_data.
* grub-core/script/main.c (grub_normal_parse_line): Add getline_data
argument, passed to grub_script_parse.
* grub-core/script/script.c (grub_script_parse): Add getline_data
argument, passed to grub_script_lexer_init.
* include/grub/parser.h (grub_parser_split_cmdline): Update
prototype.  Update all callers to pass appropriate getline data.
(struct grub_parser.parse_line): Likewise.
(grub_rescue_parse_line): Likewise.
* include/grub/reader.h (grub_reader_getline_t): Add void *
argument.
* include/grub/script_sh.h (struct grub_lexer_param): Add
getline_data member.
(grub_script_parse): Update prototype.  Update all callers to pass
appropriate getline data.
(grub_script_lexer_init): Likewise.
(grub_normal_parse_line): Likewise.

* grub-core/commands/legacycfg.c (legacy_file_getline): Add unused
data argument.
* grub-core/kern/parser.c (grub_parser_execute: getline): Make
static instead of nested.  Rename to ...
(grub_parser_execute_getline): ... this.
* grub-core/kern/rescue_reader.c (grub_rescue_read_line): Add unused
data argument.
* grub-core/normal/main.c (read_config_file: getline): Make static
instead of nested.  Rename to ...
(read_config_file_getline): ... this.
(grub_normal_read_line): Add unused data argument.
* grub-core/script/execute.c (grub_script_execute_sourcecode:
getline): Make static instead of nested.  Rename to ...
(grub_script_execute_sourcecode_getline): ... this.
* util/grub-script-check.c (main: get_config_line): Make static
instead of nested.
2013-01-15 12:03:25 +00:00
Colin Watson d0d4b8a063 Remove nested functions from memory map iterators.
* grub-core/efiemu/mm.c (grub_efiemu_mmap_iterate): Add hook_data
argument, passed to hook.
* grub-core/kern/i386/coreboot/mmap.c
(grub_linuxbios_table_iterate): Likewise.
(grub_machine_mmap_iterate: iterate_linuxbios_table): Make static
instead of nested.
(grub_machine_mmap_iterate): Add hook_data argument.
* grub-core/kern/i386/multiboot_mmap.c (grub_machine_mmap_iterate):
Add hook_data argument, passed to hook.
* grub-core/kern/i386/pc/mmap.c (grub_machine_mmap_iterate):
Likewise.
* grub-core/kern/i386/qemu/mmap.c (grub_machine_mmap_iterate):
Likewise.
* grub-core/kern/ieee1275/mmap.c (grub_machine_mmap_iterate):
Likewise.
* grub-core/kern/mips/arc/init.c (grub_machine_mmap_iterate):
Likewise.
* grub-core/kern/mips/loongson/init.c (grub_machine_mmap_iterate):
Likewise.
* grub-core/kern/mips/qemu_mips/init.c (grub_machine_mmap_iterate):
Likewise.
* grub-core/mmap/efi/mmap.c (grub_efi_mmap_iterate): Likewise.
(grub_machine_mmap_iterate): Likewise.
* grub-core/mmap/mmap.c (grub_mmap_iterate): Likewise.
* include/grub/efiemu/efiemu.h (grub_efiemu_mmap_iterate): Update
prototype.
* include/grub/memory.h (grub_memory_hook_t): Add data argument.
Remove NESTED_FUNC_ATTR from here and from all users.
(grub_mmap_iterate): Update prototype.
(grub_efi_mmap_iterate): Update prototype.  Update all callers to
pass appropriate hook data.
(grub_machine_mmap_iterate): Likewise.

* grub-core/commands/acpi.c (grub_acpi_create_ebda: find_hook): Make
static instead of nested.
* grub-core/commands/lsmmap.c (grub_cmd_lsmmap: hook): Likewise.
Rename to ...
(lsmmap_hook): ... this.
* grub-core/efiemu/mm.c (grub_efiemu_mmap_init: bounds_hook):
Likewise.
(grub_efiemu_mmap_fill: fill_hook): Likewise.
* grub-core/kern/i386/coreboot/init.c (grub_machine_init:
heap_init): Likewise.
* grub-core/kern/i386/pc/init.c (grub_machine_init: hook): Likewise.
Rename to ...
(mmap_iterate_hook): ... this.
* grub-core/kern/ieee1275/init.c (grub_claim_heap: heap_init):
Likewise.
* grub-core/lib/ieee1275/relocator.c
(grub_relocator_firmware_get_max_events: count): Likewise.
(grub_relocator_firmware_fill_events: fill): Likewise.  Rename
to ...
(grub_relocator_firmware_fill_events_iter): ... this.
* grub-core/lib/relocator.c (grub_relocator_alloc_chunk_align:
hook): Likewise.  Rename to ...
(grub_relocator_alloc_chunk_align_iter): ... this.
* grub-core/loader/i386/bsd.c (generate_e820_mmap: hook): Likewise.
Rename to ...
(generate_e820_mmap_iter): ... this.
* grub-core/loader/i386/linux.c (find_mmap_size: hook): Likewise.
Rename to ...
(count_hook): ... this.
(grub_linux_boot: hook): Likewise.  Rename to ...
(grub_linux_boot_mmap_find): ... this.
(grub_linux_boot: hook_fill): Likewise.  Rename to ...
(grub_linux_boot_mmap_fill): ... this.
* grub-core/loader/i386/multiboot_mbi.c (grub_fill_multiboot_mmap:
hook): Likewise.  Rename to ...
(grub_fill_multiboot_mmap_iter): ... this.
* grub-core/loader/multiboot.c (grub_get_multiboot_mmap_count:
hook): Likewise.  Rename to ...
(count_hook): ... this.
* grub-core/loader/multiboot_mbi2.c (grub_fill_multiboot_mmap:
hook): Likewise.  Rename to ...
(grub_fill_multiboot_mmap_iter): ... this.
* grub-core/loader/powerpc/ieee1275/linux.c
(grub_linux_claimmap_iterate: alloc_mem): Likewise.
* grub-core/loader/sparc64/ieee1275/linux.c (alloc_phys: choose):
Likewise.  Rename to ...
(alloc_phys_choose): ... this.
(determine_phys_base: get_physbase): Likewise.
* grub-core/mmap/i386/mmap.c (grub_mmap_malign_and_register:
find_hook): Likewise.
* grub-core/mmap/i386/pc/mmap.c (preboot: fill_hook): Likewise.
(malloc_hook: count_hook): Likewise.
* grub-core/mmap/i386/uppermem.c (grub_mmap_get_lower: hook):
Likewise.  Rename to ...
(lower_hook): ... this.
(grub_mmap_get_upper: hook): Likewise.  Rename to ...
(upper_hook): ... this.
(grub_mmap_get_post64: hook): Likewise.  Rename to ...
(post64_hook): ... this.
* grub-core/mmap/mips/uppermem.c (grub_mmap_get_lower: hook):
Likewise.  Rename to ...
(lower_hook): ... this.
(grub_mmap_get_upper: hook): Likewise.  Rename to ...
(upper_hook): ... this.
* grub-core/mmap/mmap.c (grub_mmap_iterate: count_hook): Likewise.
(grub_mmap_iterate: fill_hook): Likewise.
(fill_mask): Pass addr and mask within a single struct.
(grub_cmd_badram: hook): Make static instead of nested.  Rename
to ...
(badram_iter): ... this.
(grub_cmd_cutmem: hook): Likewise.  Rename to ...
(cutmem_iter): ... this.
2013-01-15 12:02:35 +00:00
Vladimir 'phcoder' Serbinenko 22099030ad * grub-core/kern/emu/hostdisk.c (read_device_map): Explicitly
delimit path in strings using quotes.
	* util/getroot.c (grub_guess_root_devices): Likewise.
	(grub_make_system_path_relative_to_its_root): Likewise.
	* util/grub-probe.c (probe): Likewise.
	* util/ieee1275/ofpath.c (find_obppath): Likewise.
	(xrealpath): Likewise.
2013-01-13 22:45:16 +01:00
Vladimir 'phcoder' Serbinenko 4a9950ecb0 Fix compilation with older compilers.
* grub-core/Makefile.core.def (mpi): Add mpi-inline.c.
	* grub-core/lib/libgcrypt_wrap/cipher_wrap.h: Remove redundant
	declarations.
	* grub-core/lib/posix_wrap/string.h: Include sys/types.h.
	* grub-core/lib/posix_wrap/sys/types.h: Add common types.
	* grub-core/lib/xzembed/xz_dec_lzma2.c (dict_put): Replace byte
	identifier with b.
	* grub-core/lib/xzembed/xz_dec_stream.c (dec_vli): Likewise.
	* include/grub/crypto.h: Add type defines.
	* util/import_gcrypth.sed: Remove duplicate type defines.
2013-01-13 21:06:25 +01:00
Vladimir 'phcoder' Serbinenko adcc602041 New command list_trusted.
* grub-core/commands/verify.c (grub_cmd_list): New function.
2013-01-13 17:49:05 +01:00
Colin Watson ca3a74469a Remove nested functions from PCI iterators.
* grub-core/bus/pci.c (grub_pci_iterate): Add hook_data argument,
passed to hook.  Update all callers to pass appropriate hook data.
* grub-core/bus/emu/pci.c (grub_pci_iterate): Likewise.
* include/grub/pci.h (grub_pci_iteratefunc_t): Add data argument.
Remove NESTED_FUNC_ATTR from here and from all users.
(grub_pci_iterate): Update prototype.
* grub-core/bus/cs5536.c (grub_cs5536_find: hook): Make static
instead of nested.  Rename to ...
(grub_cs5536_find_iter): ... this.
* grub-core/kern/efi/mm.c (stop_broadcom: find_card): Likewise.
* grub-core/kern/mips/loongson/init.c (init_pci: set_card):
Likewise.
* grub-core/kern/vga_init.c (grub_qemu_init_cirrus: find_card):
Likewise.
* grub-core/video/bochs.c (grub_video_bochs_setup: find_card):
Likewise.
* grub-core/video/cirrus.c (grub_video_cirrus_setup: find_card):
Likewise.
* grub-core/video/efi_uga.c (find_framebuf: find_card): Likewise.
* grub-core/video/radeon_fuloong2e.c
(grub_video_radeon_fuloong2e_setup: find_card): Likewise.
* grub-core/video/sis315pro.c (grub_video_sis315pro_setup:
find_card): Likewise.
* grub-core/video/sm712.c (grub_video_sm712_setup: find_card):
Likewise.
2013-01-13 01:10:41 +00:00
Vladimir 'phcoder' Serbinenko f8e98fee04 * grub-core/commands/verify.c: Mark messages for translating. 2013-01-12 16:31:17 +01:00
Vladimir 'phcoder' Serbinenko 055b36b6a6 * grub-core/lib/libgcrypt_wrap/mem.c (gcry_x*alloc): Make out of memory
fatal.
2013-01-12 16:27:37 +01:00
Vladimir 'phcoder' Serbinenko f7ff879bd2 * grub-core/lib/libgcrypt_wrap/mem.c (_gcry_log_bug): Make gcrypt bugs
fatal.
2013-01-12 16:21:06 +01:00
Vladimir 'phcoder' Serbinenko 5e3b8dcbb5 Import gcrypt public-key cryptography and implement signature checking. 2013-01-11 21:32:42 +01:00
Vladimir 'phcoder' Serbinenko 535714bdcf * grub-core/fs/ntfs.c: Ue more appropriate types.
* grub-core/fs/ntfscomp.c: Likewise.
	* include/grub/ntfs.h: Likewise.
2013-01-11 07:41:05 +01:00
Vladimir 'phcoder' Serbinenko 3e4f356646 Support Apple FAT binaries on non-Apple platforms.
* include/grub/macho.h (GRUB_MACHO_FAT_EFI_MAGIC): New define.
	* include/grub/i386/macho.h (GRUB_MACHO_CPUTYPE_IS_HOST_CURRENT):
	Likewise.
	* grub-core/loader/efi/chainloader.c (grub_cmd_chainloader): Parse
	Apple FAT binaries.
2013-01-10 12:50:01 +01:00
Vladimir 'phcoder' Serbinenko 4dedb13f51 * grub-core/kern/disk.c (grub_disk_write): Fix sector number on 4K
sector devices.
2013-01-10 08:09:26 +01:00
Colin Watson f8861eaf9f * grub-core/io/bufio.c (grub_bufio_open): Use grub_zalloc instead of
explicitly zeroing elements.
* grub-core/io/gzio.c (grub_gzio_open): Likewise.
* grub-core/io/lzopio.c (grub_lzopio_open): Remove explicit zeroing
of elements in a structure already allocated using grub_zalloc.
* grub-core/io/xzio.c (grub_xzio_open): Likewise.
2013-01-07 10:45:05 +00:00
Vladimir 'phcoder' Serbinenko c6f1e92f0b * grub-core/fs/minix.c (grub_minix_read_file): Simplify arithmetics. 2013-01-07 11:27:18 +01:00
Vladimir 'phcoder' Serbinenko f797ec85a0 * grub-core/fs/ext2.c (grub_ext2_read_block): Use shifts rather than
divisions.
2013-01-05 18:37:34 +01:00
Vladimir 'phcoder' Serbinenko 033d0b4b0b * grub-core/fs/ntfs.c: Eliminate useless divisions in favor of shifts.
* grub-core/fs/ntfscomp.c: Likewise.
	* include/grub/ntfs.h (grub_ntfs_data): Replace spc with log_spc.
	(grub_ntfs_comp): Likewise.
2013-01-05 17:36:04 +01:00
Vladimir 'phcoder' Serbinenko 21d1b9a029 * grub-core/fs/nilfs2.c (-grub_nilfs2_palloc_groups_per_desc_block):
Rename to ...
	(grub_nilfs2_palloc_log_groups_per_desc_block): ... this. Return log
	of groups_per_block. All users updated.
2013-01-05 16:53:04 +01:00
Vladimir 'phcoder' Serbinenko 10ca8645cc * grub-core/disk/diskfilter.c (grub_diskfilter_write): Call
grub_error properly.
	* grub-core/disk/ieee1275/nand.c (grub_nand_write): Likewise.
	* grub-core/disk/loopback.c (grub_loopback_write): Likewise.
2013-01-05 15:10:46 +01:00
Vladimir 'phcoder' Serbinenko dadddb7665 * grub-core/fs/iso9660.c (grub_iso9660_susp_iterate): Avoid hang if
entry->len = 0.
2013-01-03 21:27:00 +01:00
Colin Watson c3fc8394a0 * grub-core/tests/lib/test.c (grub_test_run): Return non-zero on
test failures, so that a failing unit test correctly causes 'make
check' to fail.
2013-01-02 16:42:48 +00:00
Colin Watson 45d26abb40 Fix failing printf test.
* grub-core/kern/misc.c (grub_vsnprintf_real): Parse '-', '.', and
'$' in the correct order when collecting type information.
2013-01-02 12:48:31 +00:00
Colin Watson 5c67ea6cd9 Remove several trivially-unnecessary uses of nested functions.
* grub-core/commands/i386/pc/sendkey.c
(grub_cmd_sendkey: find_key_code, find_ascii_code): Make static
instead of nested.
* grub-core/commands/legacycfg.c (legacy_file: getline): Likewise.
Rename to ...
(legacy_file_getline): ... this.
* grub-core/commands/loadenv.c (grub_cmd_load_env: set_var):
Likewise.
* grub-core/kern/corecmd.c (grub_core_cmd_set: print_env): Likewise.
* grub-core/kern/fs.c (grub_fs_probe: dummy_func): Likewise.  Rename
to ...
(probe_dummy_iter): ... this.
* grub-core/kern/i386/coreboot/mmap.c
(grub_linuxbios_table_iterate: check_signature): Likewise.
* grub-core/kern/parser.c (grub_parser_split_cmdline:
check_varstate): Likewise.  Mark inline.
* grub-core/lib/arg.c (find_short: fnd_short): Likewise.  Pass
an additional parameter.
(find_long: fnd_long): Likewise.  Pass two additional parameters.
* grub-core/lib/crc.c (init_crc32c_table: reflect): Likewise.
* grub-core/lib/crc64.c (init_crc64_table: reflect): Likewise.
* grub-core/lib/ieee1275/cmos.c (grub_cmos_find_port: hook):
Likewise.  Rename to ...
(grub_cmos_find_port_iter): ... this.
* grub-core/lib/ieee1275/datetime.c (find_rtc: hook): Likewise.
Rename to ...
(find_rtc_iter): ... this.

* grub-core/normal/menu_entry.c (run): Fold nested editor_getsource
function directly into the function body, since it is only called
once.
2012-12-31 17:31:38 +00:00
Colin Watson 33a68ac643 * grub-core/bus/usb/ehci.c (grub_ehci_pci_iter): Remove incorrect
__attribute__ ((unused)).
* grub-core/video/bochs.c (find_card): Likewise.
* grub-core/video/cirrus.c (find_card): Likewise.
* grub-core/video/radeon_fuloong2e.c (find_card): Likewise.
* grub-core/video/sis315pro.c (find_card): Likewise.
* grub-core/video/sm712.c (find_card): Likewise.
2012-12-30 09:57:58 +00:00
Colin Watson 7024b3c0c2 Backport gnulib fixes for C11. Fixes Savannah bug #37738.
* grub-core/gnulib/stdio.in.h (gets): Warn on use only if
HAVE_RAW_DECL_GETS.
* m4/stdio_h.m4 (gl_STDIO_H): Check for gets.
2012-12-28 06:43:35 +00:00
Vladimir 'phcoder' Serbinenko ce96d01c93 * grub-core/disk/cryptodisk.c (grub_cmd_cryptomount): Strip brackets
around device name if necessarry.
2012-12-10 19:15:51 +01:00
Paulo Flabiano Smorigo 64ebd2f4b9 * grub-core/kern/ieee1275/init.c (grub_machine_get_bootlocation): Use
dynamic allocation for the bootpath buffer.
2012-12-10 16:23:16 +01:00
Dr. Tilmann Bubeck 74b2fe3e4f * grub-core/gfxmenu/view.c (init_terminal): Avoid making terminal
window too small.
2012-12-10 16:14:12 +01:00
Vladimir 'phcoder' Serbinenko 969b804f2a * grub-core/term/gfxterm.c (grub_virtual_screen_setup): Get font as
argument rather than font name. All users updated.
	(grub_gfxterm_set_window): Likewise.
2012-12-10 16:07:33 +01:00
Vladimir 'phcoder' Serbinenko cc1ce5f9b4 * grub-core/fs/ufs.c (grub_ufs_dir): Stop if direntlen is 0 to avoid
infinite loop on corrupted FS.
2012-12-10 09:22:40 +01:00
Vladimir 'phcoder' Serbinenko e77a16ca02 Fix big-endian mtime.
* grub-core/fs/ufs.c (grub_ufs_inode): Split improperly attached
	together sec and usec.
	(grub_ufs_dir): Use correct byteswapping for UFS time.
2012-12-08 21:14:08 +01:00
Vladimir 'phcoder' Serbinenko d9c48c7b7c Support big-endian UFS1.
* Makefile.util.def (libgrubmods): Add ufs_be.c
	* grub-core/Makefile.core.def (ufs1_be): New module.
	* grub-core/fs/ufs_be.c: New file.
	* grub-core/fs/ufs.c: Declare grub_ufs_to_le* and use them throughout
	the file.
2012-12-08 20:56:58 +01:00
Paulo Flabiano Smorigo 48ff08895d * grub-core/net/bootp.c (parse_dhcp_vendor): Fix double increment. 2012-11-28 14:14:20 +01:00
Christoph Junghans a31b11bd96 * grub-core/Makefile.am (moddep.lst): Use $(AWK) rather than awk.
Fixes Savannah bug #37558.
2012-10-12 15:37:49 +01:00
Colin Watson e8a5d5d4da * grub-core/commands/configfile.c (GRUB_MOD_INIT): Correct
description of extract_entries_configfile.
2012-10-12 15:34:33 +01:00
Christoph Junghans 9e0bee42cd * grub-core/Makefile.am (moddep.lst): Use $(AWK) instead of awk 2012-10-12 15:04:02 +02:00
Colin Watson 39525c22be * grub-core/loader/i386/linux.c (allocate_pages): Fix spelling of
preferred_address.
(grub_cmd_linux): Likewise.
* grub-core/net/icmp6.c (struct prefix_option): Fix spelling of
preferred_lifetime.  Update all users.
2012-10-05 13:09:19 +01:00
Vladimir 'phcoder' Serbinenko b78c312722 * grub-core/fs/affs.c (grub_affs_mount): Support AFFS bootblock in
sector 1.
2012-09-26 09:33:41 +02:00
Colin Watson 794c8c3375 Fix grub-emu build on FreeBSD.
* Makefile.util.def (grub-mount): Add LIBGEOM to ldadd.
* grub-core/net/drivers/emu/emunet.c: Only include Linux-specific
headers on Linux.
(GRUB_MOD_INIT): Return immediately on non-Linux platforms; this
implementation is currently Linux-specific.
* util/getroot.c (exec_pipe): Define only on Linux or when either
libzfs or libnvpair is unavailable.
(find_root_devices_from_poolname): Remove unused path variable.
2012-09-22 21:19:58 +01:00
Colin Watson 86d08fdb18 * grub-core/partmap/msdos.c (pc_partition_map_embed): Revert
incorrect off-by-one fix from 2011-02-12.  A 62-sector core image
should fit before end == 63.
2012-09-19 02:44:54 +01:00
Vladimir 'phcoder' Serbinenko 7ddffdadea * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN on mac.
	* grub-core/term/ieee1275/console.c (grub_console_init_lately): Use
	ieee1275-nocursor if GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN is set.
	* grub-core/term/terminfo.c (grub_terminfo_set_current): Add new type
	ieee1275-nocursor.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New value
	GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN.
2012-09-18 11:52:19 +02:00
Vladimir 'phcoder' Serbinenko 4e09245441 * grub-core/loader/i386/linux.c (grub_cmd_linux): Fix incorrect
le-conversion.
	Reported by: BURETTE, Bernard.
2012-09-18 11:44:29 +02:00
Colin Watson dfd39dbdea * grub-core/term/terminfo.c: Only fix up powerpc key repeat on
IEEE1275 machines.  Fixes powerpc-emu compilation.
* include/grub/terminfo.h: Likewise.
2012-09-14 11:23:36 +01:00
Vladimir 'phcoder' Serbinenko 3bfa763c48 * include/grub/efi/api.h (grub_efi_runtime_services): Make vendor_guid
a const pointer.
	* grub-core/efiemu/runtime/efiemu.c (efiemu_memcpy): Make from a
	const pointer.
	(efiemu_set_variable): Make vendor_guid a const pointer.
2012-09-12 08:31:05 +02:00
Vladimir 'phcoder' Serbinenko 592fd0e4d6 * grub-core/disk/diskfilter.c (free_array) [GRUB_UTIL]: Fix memory leak.
* util/getroot.c (grub_find_device): Likewise.
	(get_mdadm_uuid): Likewise.
	(grub_util_is_imsm): Likewise.
	(grub_util_pull_device): Likewise.
	* util/grub-probe.c (probe): Likewise.
2012-09-11 07:53:26 +02:00
Benoit Gschwind 801a3027be * grub-core/loader/efi/appleloader.c (devpath_8): New var.
(devs): Add devpath_8.
2012-09-10 09:34:29 +02:00
Peter Jones c5052c81ab * grub-core/Makefile.core.def (efifwsetup): New module.
* grub-core/commands/efi/efifwsetup.c: New file.
	* grub-core/kern/efi/efi.c (grub_efi_set_variable): New function
	* include/grub/efi/api.h (GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI):
	New define.
	* include/grub/efi/efi.h (grub_efi_set_variable): New proto.
2012-09-08 09:40:24 +02:00
Vladimir 'phcoder' Serbinenko 64498f2538 * grub-core/disk/ieee1275/ofdisk.c (scan): Check function return value.
* grub-core/lib/ieee1275/datetime.c (grub_get_datetime): Likewise.
	(grub_set_datetime): Likewise.
2012-09-05 08:56:08 +02:00
Vladimir 'phcoder' Serbinenko 9cc836a27b * grub-core/script/yylex.l: Ignore unused-function and sign-compare
warnings.
2012-09-05 08:51:31 +02:00
Vladimir 'phcoder' Serbinenko bcfcea0174 * grub-core/partmap/dvh.c (grub_dvh_is_valid): Add missing byteswap. 2012-09-05 08:47:39 +02:00
Vladimir 'phcoder' Serbinenko a40994852d * grub-core/fs/xfs.c (grub_xfs_read_block): Make keys a const pointer. 2012-09-05 08:45:07 +02:00
starous 39b27f1eaf EHCI and OHCI PCI bus master 2012-07-22 21:09:30 +02:00
Vladimir 'phcoder' Serbinenko 7bd29c01f0 New command `lsefi'.
* grub-core/Makefile.core.def (lsefi): New module.
	* grub-core/commands/efi/lsefi.c: New file.
	* include/grub/efi/api.h: Add more GUIDs.
2012-07-22 19:59:06 +02:00
Vladimir 'phcoder' Serbinenko ac625d8f79 * grub-core/loader/i386/bsd.c (grub_bsd_elf32_size_hook): Fix mask.
(grub_bsd_elf32_hook): Likewise.
	(grub_bsd_elf64_size_hook): Likewise.
	(grub_bsd_elf64_hook): Likewise.
	(grub_bsd_load_elf): Likewise.
2012-07-22 16:30:48 +02:00
Vladimir 'phcoder' Serbinenko e73bb80170 * grub-core/lib/xzembed/xz_dec_stream.c (hash_validate): Fix behaviour
if hash function is unavailable.
	(dec_stream_header): Likewise.
2012-07-22 16:27:03 +02:00
Vladimir 'phcoder' Serbinenko e81db8b5fd * grub-core/normal/autofs.c (autoload_fs_module): Save and restore
filter state.
2012-07-22 16:23:46 +02:00
Vladimir 'phcoder' Serbinenko d187a1c3d7 Fix coreboot compilation.
* grub-core/term/i386/pc/vga_text.c (grub_vga_text_init): Rename to ...
	(grub_vga_text_init_real): ... this.
	(grub_vga_text_fini): Rename to ...
	(grub_vga_text_fini_real): ... this.
2012-07-22 16:21:24 +02:00
Vladimir 'phcoder' Serbinenko 91a05f64e6 * grub-core/Makefile.am: Fix path to boot/i386/pc/startup_raw.S. 2012-07-07 14:29:01 +02:00
Vladimir 'phcoder' Serbinenko 6af96df768 * grub-core/lib/legacy_parse.c: Support clear and testload. 2012-07-02 11:31:31 +02:00
Vladimir 'phcoder' Serbinenko 4d569e12e3 * grub-core/term/efi/serial.c: Support 1.5 stop bits. 2012-07-02 11:30:04 +02:00
Vladimir 'phcoder' Serbinenko 073b57bb8e * grub-core/fs/ext2.c: Experimental support for 64-bit. 2012-07-02 11:28:42 +02:00
Vladimir 'phcoder' Serbinenko a706f4cc6b * grub-core/net/tftp.c (ack): Fix endianness problem.
(tftp_receive): Likewise.
	Reported by: Michael Davidsaver.
2012-07-02 11:22:50 +02:00
Vladimir 'phcoder' Serbinenko a18f3b98c6 * include/grub/list.h (FOR_LIST_ELEMENTS_SAFE): New macro.
* include/grub/command.h (FOR_COMMANDS_SAFE): Likewise.
	* grub-core/commands/help.c (grub_cmd_help): Use FOR_COMMANDS_SAFE.
2012-07-02 11:19:22 +02:00
Vladimir 'phcoder' Serbinenko 3569288126 * grub-core/loader/i386/linux.c (find_efi_mmap_size): Don't decrease
efi_mmap_size.
	Reported by: Stuart Hayes.
2012-07-02 11:14:37 +02:00
Vladimir 'phcoder' Serbinenko e80fdf7d2e missing file from last commit 2012-06-28 15:36:48 +02:00
Vladimir 'phcoder' Serbinenko c35fc5bd15 Add monochrome text support (mda_text, aka `hercules' in grub-legacy).
* grub-core/Makefile.core.def (mda_text): New module.
	* grub-core/lib/legacy_parse.c (grub_legacy_parse): Support `hercules'.
	* grub-core/term/i386/vga_common.c (grub_console_cur_color): Moved to ..
	* grub-core/term/i386/pc/vga_text.c (cur_color): ... here
	* grub-core/term/i386/pc/console.c (grub_console_cur_color): ... and
	here.
	* grub-core/term/i386/vga_common.c (grub_console_getwh): Moved to ..
	* grub-core/term/i386/pc/vga_text.c (grub_console_getwh): ... here
	* grub-core/term/i386/pc/console.c (grub_console_getwh): ... and
	here.
	* grub-core/term/i386/vga_common.c (grub_console_setcolorstate): Moved
	to ..
	* grub-core/term/i386/pc/vga_text.c (grub_console_setcolorstate):
	... here
	* grub-core/term/i386/pc/console.c (grub_console_setcolorstate): ... and
	here.
	* grub-core/term/i386/vga_common.c: Removed.
	* include/grub/i386/vga_common.h: Likewise.
	* include/grub/vga.h (grub_vga_cr_bw_write): New function.
	(grub_vga_cr_bw_read): Likewise.
	* include/grub/vgaregs.h (GRUB_VGA_IO_CR_BW_INDEX): New enum value.
	(GRUB_VGA_IO_CR_BW_DATA): Likewise.
	* grub-core/term/i386/pc/vga_text.c [MODE_MDA]: Call
	grub_vga_cr_bw_read/grub_vga_cr_bw_write instead of
	grub_vga_cr_read/grub_vga_cr_write.
	(grub_vga_text_setcolorstate) [MODE_MDA]: Ignore color.
2012-06-28 15:27:54 +02:00
Vladimir 'phcoder' Serbinenko 5f91f70146 * configure.ac: Bump version to 2.00.
* grub-core/normal/main.c (features): Add feature_200_final.
2012-06-28 02:06:36 +02:00
Vladimir 'phcoder' Serbinenko f923ad22ce * grub-core/loader/i386/linux.c (find_efi_mmap_size): Increase
additional size to 3 pages.
	Reported by: Stuart Hayes.
2012-06-27 22:55:09 +02:00
Vladimir 'phcoder' Serbinenko 58eee08fff * grub-core/commands/wildcard.c (check_file): Fix bad logic.
put explicit "/" for empty path.
	(wildcard_expand): Improve dprintf.
2012-06-27 21:13:06 +02:00
Vladimir 'phcoder' Serbinenko c59bdff709 * grub-core/fs/fshelp.c (grub_fshelp_find_file): Don't free oldnode if
it's equal to currnode. This can happen with "" symlink.
2012-06-27 19:37:40 +02:00
Vladimir 'phcoder' Serbinenko 73a68bcb3a * grub-core/term/arc/console.c (grub_console_init_output): Add one since
the value returned by firmware is the maximal position, not diumension.
	(grub_terminfo_output_state): Use a more sane fallback.
2012-06-26 23:34:32 +02:00
Vladimir 'phcoder' Serbinenko 392a603b67 * grub-core/term/terminfo.c (print_terminfo): Print terminal dimensions. 2012-06-26 23:32:00 +02:00
Vladimir 'phcoder' Serbinenko 42d0867ff7 * grub-core/kern/mips/arc/init.c (grub_machine_init): Set clock
frequency to 150 MHz.
2012-06-26 23:28:23 +02:00
Vladimir 'phcoder' Serbinenko 489509f40e Apple fixes.
* grub-core/lib/i386/relocator16.S: Use correct __APPLE__ and not
	__APPLE_
	* grub-core/lib/i386/relocator_common.S [__APPLE__]: Fix gdtdesc
	definition.
	* grub-core/lib/i386/relocator64.S [__APPLE__]: Assemble jmp manually.
2012-06-26 14:56:28 +02:00
Vladimir 'phcoder' Serbinenko 9f3fc8835f Handle slash in HFS label.
* grub-core/fs/hfs.c (macroman_to_utf8): New argument slash_translate.
	(grub_hfs_dir): Tanslate slash.
	(grub_hfs_label): Don't translate slash.
2012-06-26 14:53:35 +02:00
Vladimir 'phcoder' Serbinenko 54853fd72e * grub-core/commands/ls.c (grub_ls_list_devices): Disable
network protocol listing since it introduces problematic dependency on
	net module.
2012-06-26 03:45:46 +02:00
Vladimir 'phcoder' Serbinenko c50c867da3 Init video early on yeeloong to avoid being rebooted by watchdog.
* grub-core/Makefile.am (gensm712): New target.
	(sm712_start.S): Likewise.
	(boot/mips/loongson/fwstart.S): Depend on sm712_start.S
	* grub-core/boot/mips/loongson/fwstart.S [!FULOONG2F]: Init SM712.
	* grub-core/video/sm712.c [GENINIT]: Generate compact init procedure
	description.
	* include/grub/vga.h: Move registry definitions to...
	* include/grub/vgaregs.h: ... here.
2012-06-26 03:36:14 +02:00
Vladimir 'phcoder' Serbinenko 5f92c8a110 * grub-core/boot/decompressor/minilib.c (grub_memcmp): Fix the compare
signedness.
2012-06-26 03:31:41 +02:00
Vladimir 'phcoder' Serbinenko 754ad9ebbe * grub-core/disk/diskfilter.c (scan_disk) [GRUB_UTIL]: Put more
informative verbose message.
	(read_lv): Handle 64-bit segment size.
2012-06-25 17:54:46 +02:00
Vladimir 'phcoder' Serbinenko 315654c269 * grub-core/disk/lvm.c (grub_lvm_getvalue): Handle 64-bit values. 2012-06-25 17:52:20 +02:00
Vladimir 'phcoder' Serbinenko fb022c79ef * grub-core/fs/fat.c (grub_fat_iterate_dir_next): Don't stop on a space
character but still remove trainling spaces.
	(grub_fat_label): Ignore archive flag.
2012-06-25 17:47:52 +02:00
Vladimir 'phcoder' Serbinenko 8645f72c72 * grub-core/loader/i386/linux.c (grub_cmd_initrd): Avoid unnecessarry
cast between linux_kernel_header and linux_kernel_params.
2012-06-25 17:44:36 +02:00
Vladimir 'phcoder' Serbinenko 36498496a0 * include/grub/diskfilter.h (grub_raid5_recover_func_t): Use proper
type for size.
	(grub_raid6_recover_func_t): Likewise.
	* grub-core/disk/raid5_recover.c (grub_raid5_recover): Likewise.
	* grub-core/disk/raid6_recover.c (grub_raid6_recover): Likewise.
2012-06-25 17:36:50 +02:00
Grégoire Sutre 650cfcfea2 Fix overflow in grub_util_get_fd_size for NetBSD. 2012-06-25 10:09:57 +02:00
Vladimir 'phcoder' Serbinenko 2fb97ed37a * grub-core/boot/mips/loongson/fwstart.S: Add missing setting of high
half of $a0.
2012-06-23 11:27:27 +02:00
Vladimir 'phcoder' Serbinenko 0f92dca7ef * grub-core/kern/mm.c (grub_free): Fix agglomerating of free regions. 2012-06-23 00:39:10 +02:00
Vladimir 'phcoder' Serbinenko 3988c4a09f * grub-core/kern/mm.c (get_header_from_pointer): Put a more informative
message on double free. Put the value of magic in case of mismatch.
2012-06-22 23:54:43 +02:00
Vladimir 'phcoder' Serbinenko 9e86d4c59a Speed-up video on yeeloong.
* grub-core/video/sm712.c (framebuffer): Remove render_target and
	add cached_ptr.
	(grub_video_sm712_video_fini): Unmap cached_ptr.
	(grub_video_sm712_setup): Use cache address and grub_video_fb_setup.
	(grub_video_sm712_set_active_render_target): Removed.
	(grub_video_adapter): Use grub_video_fb_set_active_render_target.
	(grub_video_sm712_swap_buffers): Call grub_video_fb_swap_buffers and
	sync caches.
2012-06-22 23:47:34 +02:00
Vladimir 'phcoder' Serbinenko ed24c31201 Avoid flushing the same line multiple times on loongson.
* grub-core/kern/mips/cache.S [GRUB_MACHINE_MIPS_LOONGSON]:
	Step in 32 bytes and not 1 byte.
	* grub-core/kern/mips/cache_flush.S [GRUB_MACHINE_MIPS_LOONGSON]:
	Likewise.
2012-06-22 23:36:33 +02:00
Vladimir 'phcoder' Serbinenko 982f1909cf Implement flow control for http.
* grub-core/net/http.c (parse_line): Handle response 206.
	(http_receive): Stall if too many packets are in the queue.
	(http_establish): Fix range header.
	(http_seek): Fix double free.
	(http_close): Likewise.
	(http_packets_pulled): New function.
	(grub_http_protocol): Set http_seek
	* grub-core/net/tcp.c (grub_net_tcp_socket): New field `i_stall'.
	(ack_real): Set window depending on i_stall.
	(grub_net_send_tcp_packet): Likewise.
	(grub_net_tcp_stall): New function.
	(grub_net_tcp_unstall): Likewise.
	* include/grub/net/tcp.h (grub_net_tcp_stall): New proto.
	(grub_net_tcp_unstall): Likewise.
2012-06-22 22:09:31 +02:00
Vladimir 'phcoder' Serbinenko bd407d6e5e * grub-core/net/tftp.c: Decrease stall to 50 packets. 2012-06-22 22:04:16 +02:00
Vladimir 'phcoder' Serbinenko c7564b8e13 * grub-core/net/net.c (grub_net_fs_open): Free resources on failed open. 2012-06-22 22:02:47 +02:00
Vladimir 'phcoder' Serbinenko b27069e06d Implement flow control for tftp.
* grub-core/net/net.c (receive_packets): Decrease the stop to 10
	packets but stop only if stop condition is satisfied.
	(grub_net_fs_read_real): Call packets_pulled after real read. Use
	`stall' instead of `eof' as stop condition.
	* grub-core/net/http.c (parse_line): Set `stall' on EOF.
	(http_err): Likewise.
	* grub-core/net/tftp.c (ack): Replace the first argument with data
	instead of socket.
	(tftp_receive): Stall if too many packets are in wait queue.
	(tftp_packets_pulled): New function.
	(grub_tftp_protocol): Set packets_pulled.
	* include/grub/net.h (grub_net_packets): New field count.
	(grub_net_put_packet): Increment count.
	(grub_net_remove_packet): Likewise.
	(grub_net_app_protocol): New field `packets_pulled'.
	(grub_net): New field `stall'.
2012-06-22 14:17:46 +02:00
Vladimir 'phcoder' Serbinenko 6b9cfac683 * grub-core/net/net.c (receive_packets): Stop after 100 packets to let
sync part to handle them.
2012-06-22 12:42:31 +02:00
Vladimir 'phcoder' Serbinenko f35abd8190 * grub-core/kern/main.c (grub_set_prefix_and_root): Fix memory leak.
* grub-core/net/drivers/ieee1275/ofnet.c
	(grub_ieee1275_net_config_real): Likewise.
2012-06-22 11:51:48 +02:00
Vladimir 'phcoder' Serbinenko 0e7ec82034 * grub-core/net/bootp.c (grub_net_configure_by_dhcp_ack): Don't create
the direct route for server/gateway.
2012-06-21 22:20:57 +02:00
Vladimir 'phcoder' Serbinenko 9d611a318d * grub-core/net/bootp.c (grub_net_configure_by_dhcp_ack): Prefer
IP address to server name since we may not hame the DNS.
2012-06-21 22:15:10 +02:00
Vladimir 'phcoder' Serbinenko 418f45abd1 * grub-core/net/dns.c (grub_cmd_nslookup): Init addresses to 0 to avoid
freeing random buffer on failure.
	* grub-core/net/net.c (grub_net_resolve_address): Likewise.
2012-06-21 22:11:47 +02:00
Vladimir 'phcoder' Serbinenko 44a0efc180 * grub-core/net/bootp.c (grub_cmd_bootp): Fix packet allocation size. 2012-06-21 22:08:33 +02:00
Vladimir 'phcoder' Serbinenko 531e2241a6 * grub-core/net/drivers/emu/emunet.c (get_card_packet): Allocate the
reserved bytes.
	* grub-core/net/drivers/i386/pc/pxe.c (grub_pxe_recv): Likewise.
	* grub-core/net/drivers/ieee1275/ofnet.c (get_card_packet): Likewise.
	Handle malloc error correctly.
2012-06-21 22:05:41 +02:00
Vladimir 'phcoder' Serbinenko cde393c9a3 * grub-core/script/execute.c (grub_script_arglist_to_argv): Escape
blocks.
2012-06-21 22:02:09 +02:00
Vladimir 'phcoder' Serbinenko 538478d082 * grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Fix double
increment.
2012-06-21 21:59:52 +02:00
Vladimir 'phcoder' Serbinenko 9b55efe09a * grub-core/net/dns.c (grub_cmd_nslookup): Use configured DNS servers if
none is explicitly specified.
2012-06-21 00:14:51 +02:00
Vladimir 'phcoder' Serbinenko 9eb832c365 * grub-core/net/dns.c (grub_net_add_dns_server): Don't erase old servers
while reallocating.
2012-06-20 23:51:56 +02:00
Vladimir 'phcoder' Serbinenko d6b7c7c986 Respect netmask from bootp/dhcp.
* grub-core/net/bootp.c (parse_dhcp_vendor): Parse mask.
	(grub_net_configure_by_dhcp_ack): Use mask and grub_net_add_ipv4_local.
	* grub-core/net/net.c (grub_net_add_addr): Split creating local route
	into ...
	(grub_net_add_ipv4_local): ... this.
	(grub_cmd_addaddr): Use grub_net_add_ipv4_local.
	* include/grub/net.h (GRUB_NET_BOOTP_NETMASK): New enum value.
	(grub_net_add_ipv4_local): New proto.
2012-06-20 23:46:50 +02:00
Vladimir 'phcoder' Serbinenko 67caf9eb06 * grub-core/loader/i386/linux.c (grub_linux_boot): Setup video before
determining EFI memory map size.
2012-06-20 23:39:33 +02:00
Vladimir 'phcoder' Serbinenko 436575581e * grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Escape commas. 2012-06-20 23:37:24 +02:00
Vladimir 'phcoder' Serbinenko eb6d0dd3a1 * grub-core/kern/main.c (grub_set_prefix_and_root): Skip escaped commas
when looking for partition separator.
2012-06-20 23:33:34 +02:00
Vladimir 'phcoder' Serbinenko 3123054474 * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_encode_devname):
Escape commas.
2012-06-20 23:31:59 +02:00
Vladimir 'phcoder' Serbinenko 918a25179c Restructure FAT driver to avoid hook in label reading as it hits a
GCC bug.

	* include/grub/err.h (grub_err_t): New enum value GRUB_ERR_EOF.
	* grub-core/fs/fat.c (grub_fat_iterate_context): New struct.
	(grub_fat_iterate_dir): Split into ...
	(grub_fat_iterate_init): ... this, ...
	(grub_fat_iterate_fini): ... this, ...
	(grub_fat_iterate_dir_next): ... and this. All users updated.
2012-06-20 23:29:28 +02:00
Vladimir 'phcoder' Serbinenko 9f1d654e67 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum value
GRUB_IEEE1275_FLAG_BROKEN_REPEAT.
	* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_BROKEN_REPEAT on PowerBook3,3.
	* include/grub/terminfo.h (grub_terminfo_input_state) [__powerpc__]:
	New fields last_key and last_key_time.
	* grub-core/term/terminfo.c (grub_terminfo_getkey): Transform
	extended key-esc into extended key-extended key.
2012-06-20 22:19:26 +02:00
Vladimir 'phcoder' Serbinenko 52f0f64384 Avoid unnecessary memcpy of whole video buffer.
* grub-core/video/fb/video_fb.c (dirty): New struct.
	(framebuffer): Add members current_dirty and previous_dirty.
	(dirty): New function.
	(grub_video_fb_fill_rect): Update dirty.
	(common_blitter): Likewise.
	(grub_video_fb_scroll): Likewise.
	(doublebuf_blit_update_screen): Copy only dirty part.
	(doublebuf_pageflipping_update_screen): Likewise.
	(grub_video_fb_doublebuf_blit_init): Init dirty.
	(doublebuf_pageflipping_init): Likewise.
	(grub_video_fb_setup): Likewise.
2012-06-19 19:34:51 +02:00
Vladimir 'phcoder' Serbinenko e169a1805f * grub-core/net/drivers/ieee1275/ofnet.c (search_net_devices): Decrease
poll rate.
2012-06-19 15:44:51 +02:00
Vladimir 'phcoder' Serbinenko 485568790c Fix wildcard regexp dot and other special characters handling.
Reported by: Robert Mabee.

	* grub-core/commands/wildcard.c (isregexop): Add "|+{}[]?".
	(make_regex): Escape "|+{}[]". Transform '?' to '.?'.
	(split_path): Trigger expansion on '?'.
	(unescape): New function.
	(wildcard_expand): Unescape parts copied without globbing.
	* grub-core/script/execute.c (wildcard_escape): Escape '?'.
	(grub_script_arglist_to_argv): Don't unescape expansions.
2012-06-19 14:13:19 +02:00
Vladimir 'phcoder' Serbinenko 0494408e7e * include/grub/net.h (grub_net_card): New member txbufsize.
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum values
	GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX and
	GRUB_IEEE1275_FLAG_VIRT_TO_REAL_BROKEN.
	* grub-core/net/drivers/efi/efinet.c (grub_efinet_findcards): Use
	txbufsize.
	* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Use
	compatible property to check for macs. Set
	GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX and
	GRUB_IEEE1275_FLAG_VIRT_TO_REAL_BROKEN on macs.
	* grub-core/net/drivers/ieee1275/ofnet.c (card_open): Don't add suffix
	if GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX is set.
	(send_card_buffer): Use txbuf.
	(grub_ofnet_findcards): Allocate txbuf. Simplify code flow and move
	nested function out of the parent while on it.
2012-06-19 11:34:52 +02:00
Vladimir 'phcoder' Serbinenko cc35fe8f31 * grub-core/net/drivers/ieee1275/ofnet.c (get_card_packet): Fix packet
presence check.
	(grub_ieee1275_net_config_real): Fix config pointer.
2012-06-19 11:25:37 +02:00
Vladimir 'phcoder' Serbinenko 970a0a09dd * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_parse_args): Extend
filename parsing to non-block devices.
2012-06-19 11:23:13 +02:00
Vladimir 'phcoder' Serbinenko 3e19bf879f * grub-core/kern/device.c (grub_device_open): Remove dead code. 2012-06-19 11:20:34 +02:00
Vladimir 'phcoder' Serbinenko c62d1a0c64 * include/grub/elf.h: Rename R_PPC to GRUB_R_PPC to avoid collisions.
All users updated.
2012-06-18 21:09:57 +02:00
Vladimir 'phcoder' Serbinenko 70aaf3053a Speed-up video on fuloong.
* grub-core/bus/bonito.c (grub_pci_device_map_range_cached):
	New function.
	(grub_pci_device_unmap_range): Handle non-cached address.
	* grub-core/video/sis315pro.c (framebuffer): Remove render_target and
	add direct_ptr.
	(grub_video_sis315pro_video_fini): Unmap direct_ptr.
	(grub_video_sis315pro_setup): Use cache address and grub_video_fb_setup.
	(grub_video_sis315pro_set_active_render_target): Removed.
	(grub_video_sis315pro_get_info_and_fini): Use uncached address.
	(grub_video_adapter): Use grub_video_fb_set_active_render_target.
	(grub_video_sis315pro_swap_buffers): Call grub_video_fb_swap_buffers and
	sync caches.
	* include/grub/mips/loongson/pci.h (grub_pci_device_map_range_cached):
	New proto.
2012-06-17 01:09:32 +02:00
Vladimir 'phcoder' Serbinenko ba67e2c635 Avoid slow read-back from VRAM.
* include/grub/video_fb.h (grub_video_fb_doublebuf_update_screen_t):
	Move from here ...
	* grub-core/video/fb/video_fb.c
	(grub_video_fb_doublebuf_update_screen_t): ... here. Remove arguments.
	* grub-core/video/fb/video_fb.c (framebuf_t): New type.
	(front_target): Remove front_target. Add pages.
	(grub_video_fb_init): Skip setting front_pages.
	(grub_video_fb_fini): Likewise.
	(doublebuf_blit_update_screen): Use pages.
	(grub_video_fb_doublebuf_blit_init): Likewise.
	(doublebuf_pageflipping_init): Allocate offscreen buffer.
	(doublebuf_pageflipping_update_screen): Use offscreen buffer.
	(grub_video_fb_setup): Prefer doublebuffing.
2012-06-15 23:57:20 +02:00
Vladimir 'phcoder' Serbinenko 377c98cba2 * grub-core/normal/main.c (GRUB_MOD_INIT): Ignore errors when loading
gzio.
2012-06-15 23:42:34 +02:00
Vladimir 'phcoder' Serbinenko eac49cffc8 Add loongson tests.
* tests/util/grub-shell.in: Handle loongson.
	* tests/partmap_test.in: Add loongson to the list of platform using ATA
	drivers.
	* grub-core/tests/boot/linux.init-mips.S (SHUTDOWN_MAGIC3) [REBOOT]:
	Reboot instead of shutdown if REBOOT is defined.
2012-06-15 19:42:25 +02:00
Vladimir 'phcoder' Serbinenko 0321415e86 * grub-core/lib/mips/loongson/reboot.c (grub_reboot): Use 32-bit
sized ports since unlike on real hardware qemu supports only 32-bit
	regs.
2012-06-15 19:36:10 +02:00
Vladimir 'phcoder' Serbinenko 4abde34671 Revert usb-quiesce since it's wrong.
* grub-core/disk/ieee1275/ofdisk.c (quiesce): Removed.
	(grub_ofdisk_init): Don't do quiesce.
2012-06-13 22:44:45 +02:00
Vladimir 'phcoder' Serbinenko 61f1d93b09 * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Apply
PowerMac workaround to Xserves as well.
	Information supplied by: Benjamin Herrenschmidt.
2012-06-13 01:38:40 +02:00
Vladimir 'phcoder' Serbinenko a09eb54103 Don't assume that beginning address is also the entry point on ppc.
* grub-core/loader/powerpc/ieee1275/linux.c (linux_entry): New variable.
	(grub_linux_boot): Use linux_entry.
	(grub_linux_load32): Fill linux_entry. Fix setting linux_addr.
	(grub_linux_load64): Likewise.
2012-06-13 01:15:15 +02:00
Vladimir 'phcoder' Serbinenko cbe0b4efdb * grub-core/term/ieee1275/console.c (grub_console_fini): Don't
needlessly lose the console.
2012-06-13 01:06:35 +02:00
Vladimir 'phcoder' Serbinenko 3006e9810f * grub-core/normal/dyncmd.c (read_command_list): Don't access freed
space.
2012-06-13 01:04:14 +02:00
Vladimir 'phcoder' Serbinenko 7da036bbcb Remove non-functional EFI grub_get_rtc. Put a better fatal message
than current grub_get_rtc() not implemented when booted with
	coreboot without TSC.

	* grub-core/Makefile.am: Exclude efi/time.h from kernel headers.
	Add machine/time.h to kernel headers on loongson.
	* grub-core/Makefile.core.def (kernel): Remove
	kern/generic/rtc_get_time_ms.c on qemu-multiboot-coreboot.
	* grub-core/kern/efi/efi.c (grub_rtc_get_time_ms): Removed.
	(grub_get_rtc): Likewise.
	* grub-core/kern/generic/rtc_get_time_ms.c: Include grub/machine/time.h.
	* grub-core/kern/i386/coreboot/init.c (grub_get_rtc): Removed.
	* grub-core/kern/i386/pc/init.c: Include grub/machine/init.h.
	* grub-core/kern/i386/tsc.c (grub_tsc_init)
	[!GRUB_MACHINE_PCBIOS && !GRUB_MACHINE_IEEE1275]: Call grub_fatal
	rather than installing known non-working time source.
	* grub-core/kern/ieee1275/init.c (grub_get_rtc): Removed.
	* grub-core/kern/mips/loongson/init.c: Include grub/machine/time.h.
	* include/grub/time.h: Don't include machine/time.h.
	* include/grub/efi/time.h: Removed.
	* include/grub/i386/efi/time.h: Likewise.
	* include/grub/i386/ieee1275/time.h: Likewise.
	* include/grub/powerpc/ieee1275/time.h: Likewise.
	* include/grub/sparc64/ieee1275/time.h: Likewise.
	* include/grub/x86_64/efi/time.h: Likewise.
2012-06-11 20:44:38 +02:00
Vladimir 'phcoder' Serbinenko 4e5a96b02e Remove dor on i and j when combining with above diacritics.
* include/grub/unicode.h (GRUB_UNICODE_DOTLESS_LOWERCASE_I): New enum
	value.
	(GRUB_UNICODE_DOTLESS_LOWERCASE_J): Likewise.
	* grub-core/font/font.c (grub_font_construct_dry_run): Replace i and j
	with dotless variants when any combining above is present.
2012-06-11 00:20:55 +02:00
Vladimir 'phcoder' Serbinenko 96f7e60eae Stop polling as soon as we have the packet we were waiting for.
* include/grub/net.h (grub_net_poll_cards): New argument stop_condition.
	All users updated.
	* grub-core/net/arp.c (have_pending): New var.
	(pending_req): Likewise.
	(grub_net_arp_send_request): Fill pending_req and use have_pending as
	stop indicator.
	(grub_net_arp_receive): Set have_pending.
	* grub-core/net/dns.c (recv_data): New field stop.
	(recv_hook): Set stop.
	(grub_net_dns_lookup): Init stop and use as stop condition.
	* grub-core/net/http.c (http_establish): Use headers_recv as stop
	condition.
	* grub-core/net/net.c (grub_net_poll_cards): New argument
	stop_condition. Stop when it goes true.
	* grub-core/net/tcp.c (grub_net_tcp_open): Use `established' as stop
	indicator.
	* grub-core/net/tftp.c (tftp_open): Use `have_oack' as stop indicator.
2012-06-09 11:06:55 +02:00
Vladimir 'phcoder' Serbinenko 3e74723951 Keep TX and RX buffers on EFI rather than always allocate new ones.
* include/grub/net.h (grub_net_card_driver): Allow driver to modify
	card. All users updated.
	(grub_net_card): New members txbuf, rcvbuf, rcvbufsize and txbusy.
	* grub-core/net/drivers/efi/efinet.c (send_card_buffer): Reuse buffer.
	(get_card_packet): Likewise.
	(grub_efinet_findcards): Init new fields.
2012-06-09 11:00:18 +02:00
Vladimir 'phcoder' Serbinenko f695e99a75 * grub-core/term/ieee1275/serial.c (do_real_config): Fix cast to fix
compilation error on sparc64.
2012-06-09 10:55:02 +02:00
Vladimir 'phcoder' Serbinenko 9e5e66d15e Use ITC on IA64 rather than broken routine based on daytime.
* grub-core/kern/efi/efi.c (grub_rtc_get_time_ms) [__ia64__]: Remove on
	ia64.
	(grub_get_rtc) [__ia64__]: Likewise.
	* grub-core/kern/ia64/efi/init.c (divisor): New variable.
	(get_itc): New function.
	(grub_rtc_get_time_ms): Likewise.
	(grub_machine_init): Calibrate ITC.
	* include/grub/efi/time.h (grub_get_rtc), (GRUB_TICKS_PER_SECOND):
	Keep only on non-ia64. Don't export since it's broken and used only
	if TSC is unavailable.
2012-06-09 10:52:39 +02:00
Vladimir 'phcoder' Serbinenko a176740446 * grub-core/disk/efi/efidisk.c (find_parent_device): Return the parent
even if it's used.
	(name_devices): Replace #if 0 with #ifdef DEBUG_NAMES.
	Skip if parent is unused.
2012-06-09 10:43:24 +02:00
Vladimir 'phcoder' Serbinenko 5e619f408d Fix wildcard escaping.
* grub-core/commands/wildcard.c (wildcard_escape): Moved from here ...
	* grub-core/script/execute.c (wildcard_escape): .. to here.
	Don't escape dot.
	* grub-core/commands/wildcard.c (wildcard_unescape): Moved from here ...
	* grub-core/script/execute.c (wildcard_unescape): .. to here.
	Don't escape dot.
	* grub-core/script/execute.c (gettext_append): Always escape.
	(grub_script_arglist_to_argv): Always handle escaping/unescaping.
	* grub-core/script/yylex.l: Don't cut away the escaping.
	* tests/grub_script_echo1.in: Add tests with wildcard.
2012-06-08 22:54:21 +02:00
Vladimir 'phcoder' Serbinenko c8ca585593 * grub-core/bus/usb/serial/ftdi.c (real_config): Handle 1.5 stop bits.
(ftdi_hw_configure): Likewise.
	* grub-core/bus/usb/serial/pl2303.c (GRUB_PL2303_STOP_BITS_1_5): New
	define.
	(real_config): Handle 1.5 stop bits.
	(pl2303_hw_configure): Likewise.
2012-06-08 20:40:40 +02:00
Vladimir 'phcoder' Serbinenko 7183452c00 * Makefile.am: Add ppc linux bootcheck.
* grub-core/tests/boot/linux-ppc.cfg: New file.
	* grub-core/tests/boot/linux.init-ppc.S: Likewise.
2012-06-08 20:35:54 +02:00
Vladimir 'phcoder' Serbinenko 61c42af084 ESCC serial driver for conducting sautomated tests in qemu.
Not tested on real hardware.

	* include/grub/serial.h (grub_serial_port): New field escc_desc.
	* grub-core/term/ieee1275/escc.c: New file.
	* grub-core/Makefile.core.def (escc): New module.
2012-06-08 19:42:59 +02:00
Vladimir 'phcoder' Serbinenko 08fd129137 * grub-core/term/ieee1275/serial.c (do_real_config): Set handle to
invalid on error.
	(serial_hw_fetch): Don't read invalid handle.
	(serial_hw_put): Don't write into invalid handle.
2012-06-08 19:34:57 +02:00
Vladimir 'phcoder' Serbinenko 08dafeeaae Add a 1.5 stop bits value.
* grub-core/term/serial.c (grub_cmd_serial): Handle 1.5.
	* include/grub/serial.h (grub_serial_stop_bits_t): Add
	GRUB_SERIAL_STOP_BITS_1_5.
2012-06-08 19:32:57 +02:00
Vladimir 'phcoder' Serbinenko 9068fdcf0b * grub-core/commands/wildcard.c (wildcard_expand): Set default return
value rather than let it uninited.
2012-06-08 19:29:43 +02:00
Vladimir 'phcoder' Serbinenko f4d5820f28 * grub-core/commands/wildcard.c (+check_file): New function.
(wildcard_expand): Don't expand to non-existing files, expand with
	suffix and not attempt to expand if not needed.
2012-06-07 23:18:04 +02:00
Vladimir 'phcoder' Serbinenko 3d2de9a7ba * grub-core/disk/efi/efidisk.c (name_devices): Don't make disks
out of partitions containing other partitions.
2012-06-07 21:55:55 +02:00
Vladimir 'phcoder' Serbinenko c5c81ff978 Pass PCIINFO on BIOS to OpenBSD since otherwise it fails to boot
on some qemu versions with GRUB.

	* include/grub/i386/openbsd_bootarg.h (OPENBSD_BOOTARG_PCIBIOS): New
	define.
	(grub_openbsd_bootarg_pcibios): New struct.
	* grub-core/loader/i386/bsd.c (grub_openbsd_boot) [GRUB_MACHINE_PCBIOS]:
	Add PCIINFO.
2012-06-07 16:41:52 +02:00
Vladimir 'phcoder' Serbinenko cede3ca325 * grub-core/Makefile.core.def (vga_text): Disable on muliboot
and coreboot since it's already in kernel.
2012-06-07 15:18:21 +02:00
Vladimir 'phcoder' Serbinenko 558d3a6023 * util/getroot.c (grub_util_get_dm_node_linear_info): Moved from here...
* grub-core/kern/emu/hostdisk.c (grub_util_get_dm_node_linear_info):
	to here. New return value start. All users updated.
	Recursively scan linear mappings.
	* include/grub/emu/hostdisk.h (grub_util_get_dm_node_linear_info): New
	proto.
	* grub-core/kern/emu/hostdisk.c (grub_hostdisk_find_partition_start):
	Use grub_util_get_dm_node_linear_info.
	* util/getroot.c (convert_system_partition_to_system_disk): Use
	grub_util_info rather than grub_dprintf.
	(grub_util_biosdisk_get_grub_dev): Add a new grub_util_info.
2012-06-07 14:24:48 +02:00
Vladimir 'phcoder' Serbinenko 7bc06a4995 * grub-core/disk/ieee1275/ofdisk.c (quiesce): New function.
(grub_ofdisk_fini): Quiesce USB devices.
2012-06-06 19:00:04 +02:00
Vladimir 'phcoder' Serbinenko 49cea015c0 * grub-core/loader/powerpc/ieee1275/linux.c (grub_linux_boot): Sync
caches.
2012-06-06 18:58:19 +02:00
Vladimir 'phcoder' Serbinenko 5b25873518 * grub-core/disk/pata.c (grub_pata_pio_read)
[GRUB_MACHINE_MIPS_QEMU_MIPS]: Don't byteswap even on mipseb.
	(grub_pata_pio_write) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Likewise.
2012-06-06 12:38:49 +02:00
Vladimir 'phcoder' Serbinenko 37ba07ebaf Extend automated tests to qemu-mips.
* Makefile.am: reorganise tests and enable qemu-mips.
	* configure.ac (COND_mipseb), (COND_mipsel): New conditions.
	* grub-core/tests/boot/linux.init-mips.S: New file.
	* tests/partmap_test.in: Handle ata0 disks.
	* tests/util/grub-shell.in: Handle qemu-mips. Make defaults work on
	non-pc i386.
2012-06-06 12:36:33 +02:00
Vladimir 'phcoder' Serbinenko 004be2cd95 * grub-core/kern/mips/qemu_mips/init.c (grub_exit): Implement.
(grub_halt): Likewise.
	* grub-core/lib/mips/qemu_mips/reboot.c (grub_reboot): Likewise.
2012-06-06 12:28:25 +02:00
Vladimir 'phcoder' Serbinenko b1622487a8 * grub-core/term/serial.c (grub_serial_register)
[GRUB_MACHINE_MIPS_QEMU_MIPS]: Don't autostart console in order to bring
	the behaviour in line with x86 platforms.
2012-06-06 12:25:13 +02:00
Vladimir 'phcoder' Serbinenko b7b4ab33ae * grub-core/commands/hdparm.c (le16_to_char): Always byte-swap strings.
(grub_ata_strncpy): Likewise.
	(grub_ata_identify): Add missing byteswaps.
2012-06-06 12:22:32 +02:00
Vladimir 'phcoder' Serbinenko 5e3535aee7 * grub-core/term/i386/pc/vga_text.c (screen_write_char): Add missing
byte-swap.
	(screen_read_char): Likewise.
	(grub_vga_text_cls): Likewise.
2012-06-06 12:20:08 +02:00
Vladimir 'phcoder' Serbinenko c21b17e6e0 * grub-core/loader/efi/chainloader.c (copy_file_path): Handle non-ASCII
filenames.
	(make_file_path): Likewise.
2012-06-06 02:34:32 +02:00
Vladimir 'phcoder' Serbinenko bf293dece0 * grub-core/disk/ieee1275/ofdisk.c (scan): Support vscsi on IBM
machines.
	Tested by: Paulo Flabiano Smorigo.
	Crucial information about API supplied by: Coleen <Last name unknown>.
	Reviewed by: Coleen <Last name unknown>.
2012-06-06 02:31:27 +02:00
Vladimir 'phcoder' Serbinenko 7284143a54 * grub-core/genmod.sh.in: Enable objconv errors 2030, 2050 and 2031
as they are fatal.
2012-06-05 17:20:39 +02:00
Vladimir 'phcoder' Serbinenko b99f3e00a1 * grub-core/Makefile.am (rs_decoder.S): Add missing -ffreestanding. 2012-06-05 17:18:04 +02:00
Vladimir 'phcoder' Serbinenko 6cce6f3864 * grub-core/commands/videoinfo.c (hook): Show pitch. 2012-06-05 12:03:36 +02:00
Vladimir 'phcoder' Serbinenko efbeefe90f * grub-core/mmap/i386/pc/mmap.c (malloc_hook):
Allocate in multiples of 16 to avoid adding a few bytes free region the
	windows bugs upon.
2012-06-03 18:00:37 +02:00
Vladimir 'phcoder' Serbinenko 15a940bbd8 * grub-core/commands/i386/pc/drivemap.c (install_int13_handler):
Allocate in multiples of 16 to avoid adding a few bytes free region the
	windows bugs upon.
	* grub-core/mmap/i386/pc/mmap.c (malloc_hook): Likewise.
2012-06-03 17:47:20 +02:00
Vladimir 'phcoder' Serbinenko 6e5efd60a1 * grub-core/video/efi_gop.c (grub_video_gop_setup): Reject invalid
resolutions.
	* grub-core/video/i386/pc/vbe.c (grub_vbe_get_preferred_mode): Likewise.
	* grub-core/video/video.c (grub_video_edid_preferred_mode): Likewise.
2012-06-02 20:15:11 +02:00
Vladimir 'phcoder' Serbinenko 45dbe3000b * grub-core/normal/menu_entry.c (print_line): Fix off-by-one error which
resulted in \\ at the end of the line.
2012-06-02 14:46:22 +02:00
Vladimir 'phcoder' Serbinenko 6d8db94786 * grub-core/kern/parser.c (grub_parser_state_transitions): Handle \t.
(grub_parser_cmdline_state): Likewise.
	(grub_parser_split_cmdline): Likewise.
2012-06-02 14:39:35 +02:00
Vladimir 'phcoder' Serbinenko 00d41dee71 * grub-core/normal/menu_entry.c (update_screen): Fix loop condition to
fix partially stale display.
2012-06-02 14:30:52 +02:00
Vladimir 'phcoder' Serbinenko f95d1f117a * grub-core/normal/menu_entry.c (backward_char): Use right line for
substraction.
2012-06-02 14:28:12 +02:00
Vladimir 'phcoder' Serbinenko 6297e19736 * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_write) [__linux__]:
Fix MBR remapping workaround.
	(grub_util_biosdisk_read) [__linux__]: Likewise.
2012-06-02 13:48:44 +02:00
Christer Weinigel 684aef11c5 * grub-core/normal/main.c (grub_file_getline): Fix off-by-one error. 2012-05-31 14:34:12 +02:00
Vladimir 'phcoder' Serbinenko 05b0bb9100 * grub-core/loader/i386/linux.c (grub_linux_boot): Use right version.
(grub_cmd_linux): Likewise.
2012-05-31 14:06:11 +02:00
Christer Weinigel bda36bfa77 Fix EHCI low-speed.
* grub-core/bus/usb/ehci.c (GRUB_EHCI_MULT_ONE): Fix the value.
	(GRUB_EHCI_MULT_TWO): Likewise.
	(GRUB_EHCI_MULT_THREE): Likewise.
	(GRUB_EHCI_CMASK_MASK): New enum value.
	(GRUB_EHCI_SMASK_MASK): Likewise.
	(GRUB_EHCI_CMASK_OFF): Likewise.
	(GRUB_EHCI_SMASK_OFF): Likewise.
	(grub_ehci_pci_iter): Enable periodic schedule.
	(grub_ehci_parse_notrun): Likewise.
	(grub_ehci_restore_hw): Likewise.
	(grub_ehci_setup_qh): Set flags for low speed transfers.
	(grub_ehci_find_qh): Use periodic list for low speed.
	(grub_ehci_setup_transfer): Check periodic queue as well.
	(grub_ehci_check_transfer): Likewise.
	(grub_ehci_cancel_transfer): Cancel periodic transfer.
2012-05-31 14:02:46 +02:00
Peter Jones bcc75fb3f7 * include/grub/i386/linux.h (linux_kernel_params): Add v206.
* grub-core/loader/i386/linux.c (grub_linux_boot): Use v206.
	(grub_cmd_linux) [__x86_64__]: Validate grub_efi_system_table.
2012-05-31 13:23:30 +02:00
Vladimir 'phcoder' Serbinenko f19cb95e1d * grub-core/loader/i386/linux.c (grub_linux_boot): Fix overflow and
uninited variable. Allocate at least setup_sects.
2012-05-31 12:04:55 +02:00
Vladimir 'phcoder' Serbinenko a4e5ca80d9 Fix handling of EFI with big memory maps.
* grub-core/loader/i386/linux.c (GRUB_LINUX_CL_OFFSET): Removed.
	(real_mode_mem): Likewise.
	(real_mode_target): Likewise.
	(real_mode_pages): Likewise.
	(prot_mode_pages): Likewise.
	(linux_params): New var.
	(linux_cmdline): Likewise.
	(free_pages): Don't set real mode variables.
	(allocate_pages): Don't allocate real mode memory.
	(grub_e820_add_region): Remove the limit.
	(grub_linux_boot): Allocate and copy real mode memory.
	(grub_linux_unload): Free linux_cmdline.
	(grub_cmd_linux): Use temporary storage for parameters.
	(grub_cmd_initrd): Likewise.
	* include/grub/i386/linux.h (GRUB_E820_MAX_ENTRY): Removed.
	(linux_kernel_params): Make it 1K big.
2012-05-30 14:56:53 +02:00
Vladimir 'phcoder' Serbinenko ddb7355862 * Makefile.util.def: Remove -Wno-format.
* grub-core/Makefile.core.def: Likewise.
2012-05-30 13:56:50 +02:00
Vladimir 'phcoder' Serbinenko 941e3a6d96 * grub-core/commands/gptsync.c (grub_cmd_gptsync): Propagate the
relaxation of protective MBR requirements.
2012-05-30 13:51:50 +02:00
Vladimir 'phcoder' Serbinenko 84e1569ee4 * grub-core/kern/i386/pc/startup.S [__APPLE__]: Add a workaround for
objconv bug.
2012-05-29 13:54:33 +02:00
Vladimir 'phcoder' Serbinenko 130c0f77d4 * grub-core/gdb/i386/machdep.S: Make usable with Apple assembler.
Binary on other platforms stays identical.
2012-05-29 13:52:26 +02:00
Vladimir 'phcoder' Serbinenko 176d5f7d82 * grub-core/lib/posix_wrap/sys/types.h [__APPLE__]: Include stddef
rather than defining size_t ourselves to avoid conflict.
2012-05-28 17:55:46 +02:00
Vladimir 'phcoder' Serbinenko 7de5e20af4 * grub-core/fs/hfs.c (grub_hfs_dir): Use memset instead of
initialisation to avoid __bzero reference.
2012-05-28 17:54:18 +02:00
Vladimir 'phcoder' Serbinenko f7143efe1b * grub-core/boot/i386/pc/startup_raw.S [__APPLE__]: Add Apple assembly
version.
	* grub-core/commands/i386/pc/drivemap_int13h.S [__APPLE__]: Likewise.
	* grub-core/kern/i386/pc/startup.S [__APPLE__]: Likewise.
	* grub-core/lib/i386/relocator16.S [__APPLE__]: Likewise.
	* grub-core/lib/i386/relocator_common.S [__APPLE__]: Likewise.
	* grub-core/mmap/i386/pc/mmap_helper.S [__APPLE__]: Likewise.
2012-05-28 17:51:57 +02:00
Vladimir 'phcoder' Serbinenko e6ad0555e4 * grub-core/efiemu/runtime/efiemu.c: Replace APPLE_CC with __APPLE__.
* grub-core/kern/misc.c: Likewise.
	* grub-core/loader/i386/xnu.c: Likewise.
	* include/grub/i386/tsc.h: Likewise.
	* include/grub/symbol.h: Likewise.
2012-05-28 17:49:18 +02:00
Vladimir 'phcoder' Serbinenko f7194551c4 * include/grub/misc.h (memcmp) [__APPLE__]: Mark as regparm 0.
(memmove) [__APPLE__]: Likewise.
	(memcpy) [__APPLE__]: Likewise.
	(memset) [__APPLE__]: Likewise.
	* grub-core/kern/misc.c (memcmp) [__APPLE__]: Likewise.
	(memmove) [__APPLE__]: Likewise.
	(memcpy) [__APPLE__]: Likewise.
	(memset) [__APPLE__]: Likewise.
2012-05-28 17:37:18 +02:00
Vladimir 'phcoder' Serbinenko 85a730ca9f * grub-core/genmod.sh.in: Fix a bug in Apple part which caused
dependency discard.
2012-05-28 17:32:24 +02:00
Vladimir 'phcoder' Serbinenko 40e80b9403 * grub-core/normal/main.c (read_config_file): Provide config_file and
config_directory.
	* util/grub.d/41_custom.in: Use config_directoy when available.
2012-05-27 15:34:41 +02:00
Vladimir 'phcoder' Serbinenko 9da59c3275 * grub-core/fs/bfs.c (iterate_in_b_tree): Add missing NESTED_FUNC_ATTR.
(grub_bfs_dir): Likewise.
2012-05-27 15:31:54 +02:00
Peter Jones 2787ae53d6 The old code gives arguments to a printf function which can't work
correctly, and the compiler complains.

	* grub-core/tests/example_functional_test.c (example_test): Add
	missing text.
	* grub-core/tests/lib/test.c (add_failure): Rewrite.
	* include/grub/test.h (grub_test_assert_helper): New declaration.
	(grub_test_assert): Use grub_test_assert_helper.
2012-05-27 14:26:18 +02:00
Vladimir 'phcoder' Serbinenko 526ef13d34 * grub-core/Makefile.core.def (example_functional_test): Rename to ...
(exfctest): ... this to avoid overlong filenames.
	All users updated.
2012-05-27 14:12:48 +02:00
Vladimir 'phcoder' Serbinenko 20dd511c8c Handle "." and ".." on squashfs.
* grub-core/fs/squash4.c (grub_fshelp_node): New field stsize.
	Make inode numbers into stack.
	(grub_squash_read_symlink): Use stack.
	(grub_squash_iterate_dir): Use stack. Create "." and ".." nodes.
	(make_root_node): Fill stack.
	(grub_squash_open): Use stack.
2012-05-27 13:44:48 +02:00
Vladimir 'phcoder' Serbinenko 1d80c62a8f * grub-core/kern/emu/hostdisk.c (open_device): Set dest->dev to 0 after
freeing.
2012-05-27 13:19:09 +02:00
Vladimir 'phcoder' Serbinenko 8b43f587ae * grub-core/fs/jfs.c (grub_jfs_find_file): Handle "." and "..". 2012-05-27 01:03:26 +02:00
Vladimir 'phcoder' Serbinenko 80a3dc3fb4 * grub-core/fs/ntfs.c (list_file): Set mtime to correct value. 2012-05-27 01:00:46 +02:00
Vladimir 'phcoder' Serbinenko 47e297d4a4 * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Don't skip "." and
"..".
2012-05-27 00:58:48 +02:00
Vladimir 'phcoder' Serbinenko df042ccb21 * grub-core/fs/hfsplus.c (grub_hfsplus_catfile): New field parentid.
(grub_hfsplus_iterate_dir): Add "." and "..".
2012-05-27 00:56:55 +02:00
Vladimir 'phcoder' Serbinenko fc977f485f * grub-core/fs/cpio.c (canonicalize): Handle "..".
(grub_cpio_find_file) [MODE_USTAR]: Handle hardlinks.
2012-05-27 00:54:41 +02:00
Vladimir 'phcoder' Serbinenko f3250e5f1f * grub-core/fs/btrfs.c (GRUB_BTRFS_ITEM_TYPE_INODE_REF): New enum value.
(find_path): Handle "." and "..".
2012-05-27 00:47:37 +02:00
Vladimir 'phcoder' Serbinenko fd8ed4c5c5 * grub-core/fs/affs.c (grub_affs_file): New field hardlink.
(GRUB_AFFS_FILETYPE_HARDLINK): New enum value.
	(grub_affs_iterate_dir): Handle hardlinks.
2012-05-27 00:45:41 +02:00
Matthew Garrett 4ce776d23e * grub-core/term/efi/console.c (grub_efi_console_init): Set text mode.
(grub_efi_console_fini): Likewise.
	* grub-core/video/efi_gop.c (framebuffer): New field offscreen.
	(grub_video_gop_fill_mode_info): Rename to ...
	(grub_video_gop_fill_real_mode_info): ... this.
	(grub_video_gop_fill_mode_info): New function.
	(grub_video_gop_setup): Setup double framebuffer.
	(grub_video_gop_get_info_and_fini): Use original framebuffer.
	Free offscreen.
	(grub_video_gop_swap_buffers): Copy framebuffer.
	(grub_video_gop_fini): Free offscreen buffer.
	* include/grub/efi/graphics_output.h (grub_efi_gop_blt_operation_t):
	New enum.
	(grub_efi_gop_blt_pixel): New struct.
2012-05-26 13:33:34 +02:00
Vladimir 'phcoder' Serbinenko 77ceedb634 Fix extent overflow comparator.
* grub-core/fs/hfsplus.c (grub_hfsplus_extkey_internal): Add type.
	(grub_hfsplus_read_block): Set type.
	(grub_hfsplus_cmp_extkey): Compare type.
2012-05-26 11:54:20 +02:00
Vladimir 'phcoder' Serbinenko 0a9aa0f6e1 * grub-core/fs/hfsplus.c (grub_hfsplus_label): Use found ptr rather
than 0.
2012-05-25 00:47:49 +02:00
Vladimir 'phcoder' Serbinenko 7026b0e278 * grub-core/normal/misc.c (grub_normal_print_device_info): Dsiplay
ext* instead of ext2.
2012-05-23 09:10:56 +02:00
Vladimir 'phcoder' Serbinenko c2a51adee8 * grub-core/normal/term.c (read_terminal_list): Terminate the terminal
name with \0.
2012-05-23 09:09:36 +02:00
Vladimir 'phcoder' Serbinenko 13c6353fc7 * grub-core/partmap/gpt.c (grub_gpt_partition_map_iterate): Accept
protective entry in any slot.
	* grub-core/partmap/msdos.c (grub_partition_msdos_iterate): Reject
	if protective entry is found in any slot.

	Protective entry in non-first slot make no sense but is a widespread
	brain damage.
2012-05-22 09:09:00 +02:00
Vladimir 'phcoder' Serbinenko 4cf6be1bd9 * grub-core/fs/squash4.c (grub_squash_read_data): Add missing byte-swap. 2012-05-22 08:38:17 +02:00
Vladimir 'phcoder' Serbinenko 937d1c44b1 * grub-core/fs/reiserfs.c (grub_reiserfs_iterate_dir): Fix size byteswap
with old reiserfs.
	(grub_reiserfs_open): Don't free root.
2012-05-22 08:30:57 +02:00
Vladimir 'phcoder' Serbinenko 021d90ecac * grub-core/fs/fshelp.c (grub_fshelp_find_file): Set currnode to 0
after freeing for safety.
2012-05-22 08:24:27 +02:00
Vladimir 'phcoder' Serbinenko 967b2b649a * grub-core/commands/sleep.c (do_print): Add missing grub_refresh.
Reported by: Jordan Uggla.
2012-05-22 00:02:21 +02:00
Benjamin Herrenschmidt dcaaae9dbe * grub-core/kern/powerpc/dl.c (trampoline_template): Use r12 instead
of r0.
2012-05-21 22:40:34 +02:00
Vladimir 'phcoder' Serbinenko 7086ad524f Remove unjustified hard dependency of normal.mod on gfxterm.
* include/grub/term.h (grub_term_output): New member fullscreen.
	* include/grub/gfxterm.h (grub_gfxterm_fullscreen): Removed.
	* grub-core/term/gfxterm.c (grub_gfxterm_fullscreen): Make static.
	(grub_gfxterm): Set .fullscreen.
	* grub-core/normal/menu.c (menu_init): Use fullscreen.
	* grub-core/gfxmenu/gfxmenu.c (GRUB_MOD_INIT): Likewise.
2012-05-21 22:17:11 +02:00
Vladimir 'phcoder' Serbinenko a4469c8806 * grub-core/fs/affs.c (grub_affs_mtime): Add missing grub_dl_ref. 2012-05-21 22:07:28 +02:00
Vladimir 'phcoder' Serbinenko 4e46148696 * grub-core/kern/fs.c (grub_fs_probe): Handle GRUB_ERR_OUT_OF_RANGE as
a bad FS.
2012-05-21 22:02:56 +02:00
Vladimir 'phcoder' Serbinenko aa78f5c4e6 * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Mark plain
ISO9660 names as case-insensitive, lowercase it and remove trailing dot.
2012-05-18 12:51:02 +02:00
Vladimir 'phcoder' Serbinenko 197626b569 * grub-core/fs/jfs.c (grub_jfs_data): New field caseins.
(grub_jfs_mount): Fill caseins.
	(grub_jfs_find_file): Respect caseins.
2012-05-17 13:50:33 +02:00
Vladimir 'phcoder' Serbinenko 8ad3f28cec * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Don't strrchr
through UTF-16.
2012-05-17 13:47:23 +02:00
Vladimir 'phcoder' Serbinenko 0c6c324e90 * grub-core/fs/fat.c (grub_fat_find_dir): Fix error message.
New argument origpath. All users updated.
2012-05-17 13:45:00 +02:00
Vladimir 'phcoder' Serbinenko c6666ba687 * grub-core/fs/ntfs.c (read_data): Prevent overflow.
(read_attr): Ensure that we read start of possibly compressed block.
2012-05-15 17:17:06 +02:00
Vladimir 'phcoder' Serbinenko e28e5fe519 * include/grub/ntfs.h (grub_ntfs_comp_table_element): New struct.
(grub_ntfs_comp): Use grub_ntfs_comp_table_element for comp_table.
	All users updated.
2012-05-15 17:09:14 +02:00
Vladimir 'phcoder' Serbinenko 5560e9d6e1 * grub-core/disk/ieee1275/ofdisk.c (scan): Don't scan device tree if
GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS is set.
	* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS on IBM hardware.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum value
	GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS.
2012-05-13 20:29:23 +02:00
Vladimir 'phcoder' Serbinenko bfb320c644 * grub-core/kern/fs.c (grub_fs_probe): Handle GRUB_ERR_OUT_OF_RANGE as
a bad FS.
2012-05-13 20:23:02 +02:00
Vladimir 'phcoder' Serbinenko def3df7520 * grub-core/fs/udf.c (read_string): Bail out on size=0.
(grub_udf_read_symlink): Handle read_string failure.
2012-05-13 20:18:33 +02:00
Vladimir 'phcoder' Serbinenko 5eae317511 * grub-core/kern/emu/hostdisk.c (read_device_map): Improve TRANSLATORS
comment.
2012-05-12 14:15:45 +02:00
Vladimir 'phcoder' Serbinenko c1ad82db74 Fix handling of UDF symlinks.
* grub-core/fs/udf.c (read_string): New argument outbuf.
	All users updated.
	(grub_ufs_read_symlink): Rename to ...
	(grub_udf_read_symlink): ... this. All users updated.
	Handle symlinks with more than one component.
2012-05-12 13:54:26 +02:00
Vladimir 'phcoder' Serbinenko 33eca6e005 * grub-core/fs/affs.c (grub_affs_read_symlink): Fix handling of long
symlinks. Replace leading colon with a slash.
2012-05-12 13:44:48 +02:00
Vladimir 'phcoder' Serbinenko 57f4a70b0d * grub-core/fs/jfs.c (grub_jfs_find_file): Handle multiple slashes in
filename.
2012-05-12 13:41:02 +02:00
Vladimir 'phcoder' Serbinenko 38c8ee20ca * grub-core/fs/bfs.c (find_in_b_tree) [MODE_AFS]: Fix handling of exact
match in inner node.
2012-05-12 13:35:58 +02:00
Vladimir 'phcoder' Serbinenko 2e57f28fc7 * grub-core/fs/bfs.c (mount): Improve filesystem detection reliability.
* grub-core/fs/ext2.c (grub_ext2_mount): Likewise.
	* grub-core/fs/hfs.c (grub_hfs_mount): Likewise.
	* grub-core/fs/hfsplus.c (grub_hfsplus_mount): Likewise.
	* grub-core/fs/jfs.c (grub_jfs_mount): Likewise.
	* grub-core/fs/minix.c (grub_minix_mount): Likewise.
	* grub-core/fs/ntfs.c (grub_ntfs_mount): Likewise.
	* grub-core/fs/romfs.c (grub_romfs_mount): Likewise.
	* grub-core/fs/xfs.c (grub_xfs_mount): Likewise.
2012-05-12 13:31:05 +02:00
Vladimir 'phcoder' Serbinenko f1a6254cf1 Flush block cache on adding disk to device map.
* grub-core/kern/emu/hostdisk.c (flush_initial_buffer): New function.
	(grub_hostdisk_os_dev_to_grub_drive): Call flush_initial_buffer on
	adding.
	(read_device_map): Likewise.
	(open_device): Flush on opening.
2012-05-11 21:03:47 +02:00
Vladimir 'phcoder' Serbinenko 690434e81d * grub-core/fs/cpio.c (grub_cpio_find_file): Handle prefix.
(handle_symlink): Fix off-by-one error.
	Canonicalize the target.
	(grub_cpio_dir): Canonicalize the name.
	Fix memory leak.
	Set directory.
	(grub_cpio_open): Canonicalize the name.
2012-05-10 23:38:01 +02:00
Vladimir 'phcoder' Serbinenko 742d2be63a * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Fix symlink
handling.
2012-05-10 23:35:03 +02:00
Vladimir 'phcoder' Serbinenko 3244fe96e7 * grub-core/fs/ufs.c (grub_ufs_find_file): Fix handling of double slash.
* grub-core/fs/minix.c (grub_minix_find_file): Likewise.
2012-05-10 23:33:44 +02:00
Vladimir 'phcoder' Serbinenko 6d521c5b41 Fix UFS1 big file support.
* grub-core/fs/ufs.c (INODE): Removed.
	(INODE_SIZE): Always use 64-bit byte-swap since size field is always
	64-bit.
	(INODE_MODE): Simplify.
	(grub_ufs_inode): Use uint64_t for size and not int64_t.
	(grub_ufs_lookup_symlink): Don't use INODE.
2012-05-10 00:25:36 +02:00
Vladimir 'phcoder' Serbinenko 21b82e176e Fix minixfs with non-power-of-two blocks since it's supported by minix.
* grub-core/fs/minix.c (GRUB_MINIX_ZONESZ): Use block_size.
	(grub_minix_data): Replace log_block_size with block_size.
	(grub_minix_read_file): Use block_size but avoid 64-bit division.
	(grub_minix_mount): Fill block_size.
2012-05-10 00:12:02 +02:00
Vladimir 'phcoder' Serbinenko f417ed0432 Fix wrapped HFS+ handling.
* grub-core/fs/fshelp.c (grub_fshelp_read_file): New argument
	blocks_start. All users updated.
	* grub-core/fs/hfsplus.c (grub_hfsplus_read_block): Don't add
	wrapping offset.
	(grub_hfsplus_read_file): Pass embedding offset to fshelp_read_file.
2012-05-09 13:02:59 +02:00
Vladimir 'phcoder' Serbinenko 607d282b29 Fix long symlinks on reiserfs.
* grub-core/fs/reiserfs.c (grub_fshelp_node): New field size.
	(grub_reiserfs_read_symlink): Use grub_reiserfs_read_real.
	(grub_reiserfs_iterate_dir): Save size for non-directories.
	(grub_reiserfs_open): Don't reread stat block as we already know the
	size.
	(grub_reiserfs_read): Split into...
	(grub_reiserfs_read_real): ... and ...
	(grub_reiserfs_read): ...this.
2012-05-09 12:55:43 +02:00
Vladimir 'phcoder' Serbinenko ae16024d92 Fix non-indexed JFS.
* grub-core/fs/jfs.c (grub_jfs_sblock): New field flags.
	(grub_jfs_data): New field namecomponentlen.
	(grub_jfs_mount): Fill namecomponentlen.
	(grub_jfs_getent): Use namecomponentlen rather than hardcoded 11.
2012-05-09 02:12:16 +02:00
Vladimir 'phcoder' Serbinenko eea1e26e52 * grub-core/script/yylex.l: Ugly fix for "\\\n ".
* tests/grub_script_echo1.in: Add tests.
2012-05-08 23:20:02 +02:00
Bean 5efb817d64 * grub-core/net/ip.c (reassemble): Make asm_buffer into asm_netbuff.
All users updated.
	(free_rsm): Free header as well.
	(free_old_fragments): Fix memory leak.
	* grub-core/net/netbuff.c (grub_netbuff_free): Make return void.
	* grub-core/net/tftp.c (tftp_receive): Fix memory leak.
	(destroy_pq): Likewise.
	* include/grub/net/netbuff.h (grub_netbuff_free): Make return void.
2012-05-08 16:03:02 +02:00
Vladimir 'phcoder' Serbinenko 668ea6d26d * grub-core/commands/hashsum.c (grub_cmd_hashsum): Align space for
resulting hash as a precaution.
2012-05-08 14:22:38 +02:00
Vladimir 'phcoder' Serbinenko 1739b1fef8 * grub-core/net/bootp.c (set_env_limn_ro): Replace reserved ':' with
'_' in variable names.
	* grub-core/net/net.c (grub_net_network_level_interface_register):
	Likewise.
2012-05-08 14:07:49 +02:00
Vladimir 'phcoder' Serbinenko 6ae485aaef Fix AFFS with non-512B blocks.
* grub-core/fs/affs.c (grub_affs_rblock): Make type uint32_t.
	(AFFS_MAX_LOG_BLOCK_SIZE): New definition.
	(grub_affs_data): Replace blocksize with log_blocksize.
	(grub_affs_read_block): Fix non-512B blocks.
	(grub_affs_read_symlink): Likewise.
	(grub_affs_iterate_dir): Likewise. Fix freeing corruption.
	(grub_affs_read): Fix non-512B blocks.
	(grub_affs_label): Likewise.
	(grub_affs_mtime): Likewise.
	(grub_affs_mount): Fix block detection routine.
2012-05-08 04:38:19 +02:00
Vladimir 'phcoder' Serbinenko d20fab8471 Add filesystem mtime to AFFS.
* grub-core/fs/affs.c (grub_affs_file): Make type unsigned.
	(aftime2ctime): New function.
	(grub_affs_dir): Use aftime2ctime.
	(grub_affs_label): Fix return value.
	(grub_affs_mtime): New function.
	(grub_affs_fs): Add mtime.
2012-05-08 01:51:34 +02:00
Vladimir 'phcoder' Serbinenko e87b10f5d6 * grub-core/fs/affs.c (grub_affs_read_symlink): Convert latin1 into
UTF-8.
2012-05-07 22:00:19 +02:00
Vladimir 'phcoder' Serbinenko 7dceec9b69 * grub-core/fs/sfs.c (grub_sfs_read_symlink): Convert latin1 into
UTF-8.
2012-05-07 21:57:51 +02:00
Vladimir 'phcoder' Serbinenko 2f48221f5c * grub-core/fs/affs.c (grub_affs_iterate_dir): Mark as case insensitive. 2012-05-07 19:09:02 +02:00
Vladimir 'phcoder' Serbinenko dacd85cfb0 * grub-core/fs/sfs.c (grub_sfs_rblock): New fields createtime and
flags.
	(FLAGS_CASE_SENSITIVE): New enum value.
	(cache_entry): New struct.
	(grub_fshelp_node): Add fields cache_off, next_extent, cache_allocated,
	cache_size and cache.
	(grub_sfs_data): Remove blocksize. All users switched to log_blocksize.
	Add log_blocksize and fshelp_flags.
	(grub_sfs_read_extent): Handle non-512 blocks.
	(grub_sfs_read_block): Add cаche and handle non-512 blocks.
	(grub_sfs_read_file): Handle non-512 blocks.
	(grub_sfs_mount): Handle non-512 blocks. Fill log_blocksize and
	fshelp_flags.
	(grub_sfs_read_symlink): Handle non-512 blocks.
	(grub_sfs_iterate_dir): Init new fields. Mark as case-insensitive.
	(grub_sfs_dir): Free cache.
	(grub_sfs_close): Likewise.
2012-05-07 19:07:16 +02:00
Vladimir 'phcoder' Serbinenko 24e9a854b8 * grub-core/fs/bfs.c (read_bfs_file): Fix overflow with over 2TiB
filesystems.
2012-05-06 16:20:55 +02:00
Vladimir 'phcoder' Serbinenko 62ace64dd9 * grub-core/fs/affs.c (grub_affs_read_block): Fix theoretical overflow. 2012-05-06 16:18:00 +02:00
Vladimir 'phcoder' Serbinenko 83b2e89cf7 * grub-core/commands/ls.c (grub_ls_list_files): Fix overflow. 2012-05-06 16:10:29 +02:00
Vladimir 'phcoder' Serbinenko 75ccaea346 * grub-core/fs/sfs.c (grub_fshelp_node): Fix types.
(grub_sfs_read_extent): Likewise.
	(grub_sfs_read_block): Likewise.
	(grub_sfs_mount): Likewise.
	(grub_sfs_iterate_dir): Likewise.
	(grub_sfs_read_symlink): Use strncpy instead of strcpy.
	(grub_sfs_read): Remove unnecessarry and wrong temporary variable.
2012-05-06 04:42:28 +02:00
Vladimir 'phcoder' Serbinenko 1b8463f2c4 Fix errors on compressed NTFS with 512B clusters.
* include/grub/ntfs.h (grub_ntfscomp_func_t): Use appropriately sized
	types.
	* grub-core/fs/ntfs.c (grub_ntfs_read): Return correct -1 on error and
	not 0.
	* grub-core/fs/ntfscomp.c (read_block): Use appropriately-sized types.
	Relax check for inline extents.
	(ntfscomp): Return correct -1 on error and not 0.
2012-05-04 17:37:17 +02:00
Vladimir 'phcoder' Serbinenko 6f5d5ee865 * grub-core/fs/squash4.c (grub_squash_inode): Fix offset field.
(grub_squash_read_data): Fix offset byte-swapping.
2012-05-04 17:13:24 +02:00
Vladimir 'phcoder' Serbinenko ce41ab7aab * grub-core/kern/misc.c (grub_strcmp): Use unsigned comparison as
per common usage and preffered in several parts of code.
	(grub_memcmp): Likewise.
	(grub_strncmp): Likewise.
	* include/grub/misc.h (grub_strcasecmp): Likewise.
	(grub_strncasecmp): Likewise.
	* Makefile.util.def (cmp_test): New test.
	(grub_script_strcmp): Likewise.
	* tests/cmp_unit_test.c: New file.
	* tests/grub_script_strcmp.in: Likewise.
	* grub-core/fs/hfsplus.c (grub_hfsplus_cmp_catkey): Add a comment.
2012-05-04 12:08:22 +02:00
Vladimir 'phcoder' Serbinenko 0a308f64e9 * grub-core/fs/bfs.c (bfs_strcmp) [MODE_AFS]: Use signed comparison. 2012-05-04 10:52:26 +02:00
Vladimir 'phcoder' Serbinenko 4e9b28192a * grub-core/commands/menuentry.c: Fix typo in TRANSLATORS comments 2012-05-04 01:20:38 +02:00
Vladimir 'phcoder' Serbinenko 076aeb5022 * grub-core/kern/fs.c (grub_fs_probe) [GRUB_UTIL]: Add workaround for
btrfs.
2012-05-04 00:36:23 +02:00
Vladimir 'phcoder' Serbinenko 9a1b669c37 * grub-core/net/net.c (defserver_set_env): New function.
(defserver_get_env): Likewise.
	(GRUB_MOD_INIT): Register net_default_server and pxe_default_server.
2012-05-04 00:26:53 +02:00
Vladimir 'phcoder' Serbinenko 5f6ac15e84 * grub-core/kern/emu/hostdisk.c (read_device_map): Skip invalid Fedora
entries.
2012-05-04 00:07:55 +02:00
Vladimir 'phcoder' Serbinenko 11858300e9 * grub-core/commands/menuentry.c: Add TRANSLATORS comments.
* grub-core/kern/emu/hostdisk.c: Likewise.
2012-05-03 23:43:59 +02:00
Vladimir 'phcoder' Serbinenko 9e8bc27a40 * grub-core/fs/btrfs.c (grub_btrfs_lzo_decompress): Fix offset when
crossing page boundary.
2012-05-03 22:16:45 +02:00
Vladimir 'phcoder' Serbinenko aa01499d05 Fix B-tree search in BFS, especially in presence of non-ASCII
characters.

	* grub-core/fs/bfs.c (bfs_strcmp): New function.
	(find_in_b_tree): Use standard bsearch + btree algorithm.
2012-05-03 20:29:10 +02:00
Matthew Garrett 9d34bb85da Suspend broadcom cards in order to stop their DMA.
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Add pci.h on x86 EFI.
	* grub-core/Makefile.core.def (kernel): Add pci.c on x86 EFI.
	(pci): Don't build on x86 EFI.
	* grub-core/bus/pci.c (grub_pci_find_capability): New function.
	* grub-core/kern/efi/mm.c (stop_broadcom) [__i386__ || __x86_64__]:
	New function.
	(grub_efi_finish_boot_services) [__i386__ || __x86_64__]: Call
	stop_broadcom if running on EFI.
	* include/grub/pci.h (GRUB_PCI_CLASS_NETWORK): New enum value.
	(GRUB_PCI_CAP_POWER_MANAGEMENT): Likewise.
	(GRUB_PCI_VENDOR_BROADCOM): Likewise.
	(grub_pci_find_capability): New proto.

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2012-05-03 17:26:55 +02:00
Vladimir 'phcoder' Serbinenko 1516bfb43a * grub-core/fs/reiserfs.c (grub_reiserfs_iterate_dir): Put a trailing
zero after directory block since last entry may be not 0-terminated if
	it ends on block boundary. Use continue instead of if spanning whole
	loop.
2012-05-03 16:43:05 +02:00
Vladimir 'phcoder' Serbinenko a3a0eace51 Support 4K sectors UDF inline files.
* grub-core/fs/udf.c (grub_udf_file_entry): Don't specify padding size.
	(grub_udf_extended_file_entry): Likewise.
	(grub_fshelp_node): Name the anonymous union. Put block at the end.
	All users updated.
	(get_fshelp_size): New function.
	(grub_udf_read_icb): Read whole block.
	(grub_udf_iterate_dir): Likewise.
	(grub_udf_dir): Likewise.
	(grub_udf_open): Likewise.
2012-05-03 09:29:20 +02:00
Vladimir 'phcoder' Serbinenko c82f16c1be * grub-core/fs/ufs.c (grub_ufs_get_file_block): Support triple indirect. 2012-05-03 09:25:25 +02:00
Vladimir 'phcoder' Serbinenko 59fd2aacd0 * grub-core/fs/ufs.c (grub_ufs_lookup_symlink): Use proper check for
inline symlinks in addition to workaround.
2012-05-03 09:21:09 +02:00
Vladimir 'phcoder' Serbinenko 3b4afb4de1 * grub-core/fs/xfs.c (grub_xfs_iterate_dir): Handle read_inode errors. 2012-05-03 09:15:29 +02:00
Vladimir 'phcoder' Serbinenko f45c794ab5 * grub-core/fs/xfs.c (GRUB_XFS_EXTENT_BLOCK): Fix bitmask. 2012-05-03 09:11:32 +02:00
Vladimir 'phcoder' Serbinenko f25cecbdb3 * grub-core/fs/zfs/zfs.c (nvlist_find_value): Fix return value. 2012-05-03 09:09:30 +02:00
Vladimir 'phcoder' Serbinenko bb9a34e88d Fix reiserfs big seek times.
* grub-core/fs/reiserfs.c (grub_reiserfs_get_item): New argument
	exact. All users updated.
	(grub_reiserfs_read): Use nearest btree search for seeking.
	Fix return value on error.
2012-05-02 10:30:52 +02:00
Vladimir 'phcoder' Serbinenko dc478aeae5 * grub-core/commands/legacycfg.c (legacy_file): Default to restricted
entries.
	* grub-core/commands/menuentry.c (grub_cmd_menuentry): Likewise.
	* docs/grub.texi: Update menuentry description.
2012-05-02 10:26:09 +02:00
Vladimir 'phcoder' Serbinenko a626fdd76a * grub-core/net/ip.c (handle_dgram): Fix undeclared variable. 2012-05-01 15:29:44 +02:00
Vladimir 'phcoder' Serbinenko b2f6847735 * grub-core/normal/autofs.c (read_fs_list): Revert accidental wrong
commit.
2012-05-01 15:26:36 +02:00
Bean ba15b2afa0 * grub-core/net/ip.c (handle_dgram): Fix DHCP mac comparison.
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2012-05-01 15:20:20 +02:00
Vladimir 'phcoder' Serbinenko a188012e6c * grub-core/kern/file.c (grub_file_read): Read nothing if len = 0.
Special behaviour for len = 0 to read whole file isn't used anywhere and
	can cause buffer ovewrflows in several places.
2012-05-01 15:08:29 +02:00
Vladimir 'phcoder' Serbinenko f0a53ed2c2 * grub-core/normal/autofs.c (read_fs_list): Fix memory leak. 2012-05-01 15:06:34 +02:00
Vladimir 'phcoder' Serbinenko 5ed554f014 Handle RAIDZ on non-512B sectors.
* grub-core/fs/zfs/zfs.c (grub_zfs_device_desc): New member
	max_children_ashift.
	(fill_vdev_info_real): Fill max_children_ashift.
	(read_device): Use max_children_ashift.
2012-05-01 15:05:26 +02:00
Vladimir 'phcoder' Serbinenko ddc583571e * grub-core/fs/fshelp.c (grub_fshelp_find_file): Fix memory leak. 2012-05-01 15:03:27 +02:00
Vladimir 'phcoder' Serbinenko e3282399ad * grub-core/kern/emu/hostdisk.c (read_device_map): Reject non-standard
disk names.
	* docs/grub.texi: Update device.map parts.
2012-05-01 15:02:34 +02:00
Vladimir 'phcoder' Serbinenko ee618bd491 Don't scan into non-diskfilter devices having diskfilter names.
* grub-core/disk/diskfilter.c (is_valid_diskfilter_name): New function.
	(scan_disk): New argument accept_diskfilter. Fix recursion depth
	handling.
	(scan_disk_hook): New function.
2012-05-01 14:59:30 +02:00
Bean bdf8886428 * grub-core/net/drivers/efi/efinet.c (get_card_packet): Fix buffer
allocation.
2012-04-29 18:43:22 +02:00
Vladimir 'phcoder' Serbinenko bc95c8c0e1 * grub-core/term/ieee1275/console.c (grub_console_dimensions): Use 80x24
geometry on serial consoles.
2012-04-26 20:51:06 +02:00
Vladimir 'phcoder' Serbinenko 147fbcab72 * grub-core/term/terminfo.c (grub_terminfo_readkey): Increase timeout
because of network consoles.
2012-04-26 18:57:22 +02:00
Vladimir 'phcoder' Serbinenko 0f42c8898f * grub-core/term/terminfo.c (grub_terminfo_getkey): Fix incorrect queue
handling.
2012-04-26 18:55:39 +02:00
Vladimir 'phcoder' Serbinenko 4a3594c9b1 * grub-core/disk/diskfilter.c (read_segment): Fix the case when disknr
falls on Q syndrom.
2012-04-26 12:51:03 +02:00
Vladimir 'phcoder' Serbinenko 5cb5387977 * grub-core/fs/nilfs2.c (grub_nilfs2_palloc_entry_offset_log):
Fix argument to grub_nilfs2_palloc_bitmap_block_offset.
2012-04-26 12:49:35 +02:00
Vladimir 'phcoder' Serbinenko b282dfe5ac * grub-core/fs/squash4.c (lzo_decompress): Set grub_errno on error.
Allocate at lest 8192 for temporary buffer as required for lzo.
2012-04-26 01:16:25 +02:00
Vladimir 'phcoder' Serbinenko daa59f47f6 * grub-core/fs/fat.c (grub_fat_mount): Don't add logical_sector_bits
to cluster_bits, since it's already added in.
	(grub_fat_read_data): Likewise.
2012-04-25 16:28:06 +02:00
Vladimir 'phcoder' Serbinenko 986748ce79 * grub-core/fs/ntfs.c (grub_ntfs_mount): Support 256-byte sectors,
as long as cluster size is multiple of 512 bytes.
2012-04-25 11:56:24 +02:00
Vladimir 'phcoder' Serbinenko 385f9abbe3 * grub-core/kern/emu/hostdisk.c (map): Make static. 2012-04-23 17:14:48 +02:00
Samuel Thibault 524b5d3a7c Fix hurd build.
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_size) [__GNU__]: Do
not define nr variable.
2012-04-22 18:44:19 +02:00
Vladimir 'phcoder' Serbinenko 9a06490c07 Fix kfreebsd compile and behaviour.
* grub-core/kern/emu/hostdisk.c (grub_util_follow_gpart_up): Fix
	format-security.
	* util/getroot.c: Fix wait.h include.
	(grub_guess_root_devices): Error if grub_find_device fails.
	(grub_util_get_geom_abstraction): Fix shadowing and format-security.
	(grub_util_get_dev_abstraction): Likewise.
	(grub_util_pull_device): Likewise.
	(grub_util_get_grub_dev): Likewise.
	* util/lvm.c (grub_util_lvm_isvolume): Likewise.
2012-04-21 16:49:56 +02:00
Vladimir 'phcoder' Serbinenko ebbd24f3eb * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_write): Fix opening
mode.
2012-04-19 20:35:06 +02:00
Vladimir 'phcoder' Serbinenko 9c815e0120 * grub-core/commands/search_wrap.c (grub_cmd_search): Handle old
--fs-uuid --set UUID syntax.
2012-04-19 11:32:59 +02:00
Vladimir 'phcoder' Serbinenko 59e2651a06 * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_write): Fix message
disunification.
2012-04-18 23:48:52 +02:00
Bean 1501ac21b0 * grub-core/disk/ata.c (grub_ata_strncpy): Put terminating zero at right
place.
2012-04-18 23:21:38 +02:00
Vladimir 'phcoder' Serbinenko cb7f944e44 * grub-core/kern/emu/hostdisk.c (open_device): New argument max. All
users updated.
	(grub_util_biosdisk_read): Handle Linux partitions not exactly
	corresponding to GRUB partitions.
	(grub_util_biosdisk_write): Likewise.
2012-04-18 23:18:51 +02:00
Vladimir 'phcoder' Serbinenko b72d44a11a Scan mdraid before LVM.
* include/grub/diskfilter.h (grub_diskfilter_register): Renamed to ..
	(grub_diskfilter_register_front): ... this.
	(grub_diskfilter_register_back): New function.
	All users of grub_diskfilter_register updated.
2012-04-18 23:11:33 +02:00
Vladimir 'phcoder' Serbinenko b41be5623a * grub-core/loader/i386/linux.c (allocate_pages): Overwrite low memory
boot services if we have no other choice.
2012-04-17 13:00:06 +02:00
Vladimir 'phcoder' Serbinenko e0595a73b2 * grub-core/fs/zfs/zfs.c: Disable -Wstrict-aliasing. 2012-04-13 19:26:36 +02:00
Vladimir 'phcoder' Serbinenko 4ed80652d2 * grub-core/fs/minix.c (grub_minix_data): Fix ino type.
(grub_minix_read_file): Likewise.
	(grub_minix_read_inode): Likewise.
	(grub_minix_find_file): Likewise.
	(grub_minix_dir): Likewise.
2012-04-13 17:08:38 +02:00
Vladimir 'phcoder' Serbinenko ee5207750f * grub-core/lib/relocator.c (grub_relocator_alloc_chunk_align): Remove
redundant buggy overlap check.
2012-04-13 16:55:20 +02:00
Vladimir 'phcoder' Serbinenko 9bab65c49d * grub-core/loader/i386/linux.c (grub_cmd_linux): Avoid accessing
kh.loadflags on pre-2.00 kernels.
2012-04-11 22:40:20 +02:00
Vladimir 'phcoder' Serbinenko 3c491b479c Terminate UNDI and PXE before launching the payload to avoid problems
with DMA.

	* grub-core/commands/boot.c (grub_loader_noreturn): Rename to ...
	(grub_loader_flags): ... this. All users updated.
	(grub_loader_boot): Check for GRUB_LOADER_FLAG_NORETURN.
	* grub-core/loader/i386/pc/pxechainloader.c (grub_cmd_pxechain): Mark
	loader as GRUB_LOADER_FLAG_PXE_NOT_UNLOAD.
	* grub-core/net/drivers/i386/pc/pxe.c (grub_pxe_shutdown): New
	function.
	(grub_pxe_restore): Likewise.
	(fini_hnd): New var.
	(GRUB_MOD_INIT): Register shutdown hook.
	(GRUB_MOD_FINI): Shutdown and unregister shutdown hook.
	* include/grub/loader.h (GRUB_LOADER_FLAG_NORETURN): New const.
	(GRUB_LOADER_FLAG_PXE_NOT_UNLOAD): Likewise.
	(grub_loader_set): Rename second argument to flags.
2012-04-11 22:32:31 +02:00
Vladimir 'phcoder' Serbinenko 851ffadac2 * grub-core/normal/charset.c (grub_ucs4_to_utf8): Return number of
written bytes.
	(grub_get_num_of_utf8_bytes): New function.
	(grub_ucs4_to_utf8_alloc): Use grub_get_num_of_utf8_bytes.
	* grub-core/normal/menu_entry.c (run): Convert entry to UTF-8 before
	executing it.
	* include/grub/charset.h (grub_get_num_of_utf8_bytes): New proto.
	(grub_ucs4_to_utf8): Change return type.
2012-04-07 20:11:04 +02:00
Vladimir 'phcoder' Serbinenko 491c57a815 * grub-core/commands/usbtest.c (usb_print_str): Silence spurious
warning.
2012-04-07 20:03:38 +02:00
Vladimir 'phcoder' Serbinenko 756773df7c * grub-core/lib/adler32.c: Recode due to license unclearness. 2012-04-07 19:58:39 +02:00
Vladimir 'phcoder' Serbinenko fd556a962e * grub-core/io/lzopio.c (read_block_header): Fix incorrect byte swapping
(test_header): Likewise.
2012-04-07 19:54:51 +02:00
Vladimir 'phcoder' Serbinenko d61357cec2 * grub-core/gettext/gettext.c (grub_gettext_pread): Fix the case when
len = 0.
	(grub_gettext_translate_real): Handle 0th string.
	(grub_gettext_translate): Ensure that "" isn't translated.
2012-04-04 14:41:55 +02:00
Vladimir 'phcoder' Serbinenko 505e41dc36 * grub-core/disk/diskfilter.c (grub_diskfilter_memberlist): Add
TRANSLATORS comment.
	(grub_diskfilter_print_partmap): Propagate changing of error into
	warning.
2012-04-04 14:33:38 +02:00
Vladimir 'phcoder' Serbinenko ac66b453df Handle big-endian minixfs (fixes minixfs tests on bigendian).
* grub-core/fs/minix.c: Replace le with minix. Add necessary defines,
	modify names. Introduce MODE_BIGENDIAN.
	* grub-core/fs/minix_be.c: New file.
	* grub-core/fs/minix2_be.c: Likewise
	* grub-core/fs/minix3_be.c: Likewise.
	* Makefile.util.def (libgrubmods): Add minix_be, minix2_be and
	minix3_be.
	* grub-core/Makefile.core.def (minix_be): New module.
	(minix2_be): Likewise.
	(minix3_be): Likewise.
2012-04-01 21:35:18 +02:00
Felix f65a829e41 * grub-core/loader/efi/appleloader.c (devpath_7): New var.
(devs): Add MBP 2011.
2012-04-01 21:30:24 +02:00
Vladimir 'phcoder' Serbinenko 0a2d5a8275 * grub-core/font/font.c (blit_comb): Handle dagesh somewhat. 2012-04-01 21:27:17 +02:00
Vladimir 'phcoder' Serbinenko d162588970 * grub-core/normal/cmdline.c (print_completion): New field
prompt_len.
	(grub_cmdline_get): Handle width properly.
2012-04-01 21:25:17 +02:00
Vladimir 'phcoder' Serbinenko 6d36a236d2 * grub-core/commands/lsacpi.c (options): Add missing terminator. 2012-04-01 21:22:48 +02:00
Vladimir 'phcoder' Serbinenko d73ff15de4 Fix exfat endianness handling.
* grub-core/fs/fat.c (grub_fat_data): Make fat_sector 32-bit.
	(grub_fat_mount) [MODE_EXFAT]: Fix bpb.num_reserved_sectors byte-swap.
	(grub_fat_iterate_dir) [MODE_EXFAT]: Fix attr byte-swap.
	Byte-swap utf16 when necessary.
	(grub_fat_label) [MODE_EXFAT]: Byte-swap utf16 when necessary.
2012-03-31 19:04:13 +02:00
Anton Blanchard bbb39a458b Fix btrfs endianness handling.
* grub-core/fs/btrfs.c (key_cmp): Use grub_le_to_cpu for clarity.
	(lower_bound): Make root uint64_t. Use root in le.
	(grub_btrfs_read_logical): Fix template key init. Fix address byteswap.
	(find_path): Fix template key init.
	(grub_btrfs_dir): Fix mtime byteswap.
	* include/grub/types.h (grub_cpu_to_le64_compile_time): New macro.

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2012-03-31 18:45:13 +02:00
Vladimir 'phcoder' Serbinenko 354e0af7d3 * grub-core/fs/btrfs.c (grub_btrfs_read_logical): New argument
recursion_depth. Break infinite resursions. All users updated.
2012-03-31 18:38:29 +02:00
Anton Blanchard 255818026e * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Do not byteswap
8 bit values.
2012-03-31 12:08:50 +02:00
Vladimir 'phcoder' Serbinenko 5d1182a66b * grub-core/disk/diskfilter.c (grub_diskfilter_memberlist): Degrade
the error when some elements are missing into a warning.
2012-03-28 17:56:45 +02:00
Vladimir 'phcoder' Serbinenko 3f8cdd9052 * grub-core/normal/charset.c (bidi_line_wrap): Fix out-of-range swap. 2012-03-28 17:54:54 +02:00
Vladimir 'phcoder' Serbinenko e1bd676b4e Fix tab and wide character handling in editor and menu.
* grub-core/normal/charset.c (grub_unicode_aglomerate_comb): Don't
	agglomerate control characters with combining marks.
	(bidi_line_wrap): Allow break on tab.
	(grub_unicode_get_comb_start): New function.
	* grub-core/normal/menu_entry.c: Restructure to handle wide characters
	and tab correctly.
	* grub-core/normal/menu_text.c (print_entry): Replace \n, \r, \b and \e
	with a space.
	* grub-core/normal/term.c (print_ucs4_terminal): New argument
	fixed_tab_size. All users updated.
	* include/grub/term.h (GRUB_TERM_TAB_WIDTH): New const.
	(grub_term_getcharwidth): Handle \t.
	* include/grub/unicode.h (grub_unicode_glyph_dup): Fix allocation
	and copy.
2012-03-27 17:07:26 +02:00
Vladimir 'phcoder' Serbinenko 22e6a774f9 Handle big-endian mdraid.
* Makefile.util.def (libgrubkern): Add mdraid_linux_be.c.
	* grub-core/Makefile.core.def (mdraid09_be): New module.
	* grub-core/disk/mdraid_linux.c: Use grub_md_to_cpu* and grub_cpu_to_md*
	rather than grub_le_to_cpu* and grub_cpu_to_le*.
	* grub-core/disk/mdraid_linux_be.c: New file.
2012-03-26 16:10:40 +02:00
Vladimir 'phcoder' Serbinenko 3c0eae66fa * grub-core/gettext/gettext.c (GRUB_MOD_INIT): Handle errors. 2012-03-26 16:07:42 +02:00
Vladimir 'phcoder' Serbinenko ac6fd21803 * grub-core/script/argv.c (grub_script_argv_split_append): Skip leading
spaces.
	* tests/grub_script_leading_whitespace.in: New file.
	* Makefile.util.def (grub_script_leading_whitespace): New test.
2012-03-19 13:29:43 +01:00
Vladimir 'phcoder' Serbinenko ba287dd8e0 * grub-core/kern/dl.c (grub_dl_add): Make global in order for gdb_grub
to work.
2012-03-19 11:10:11 +01:00
Vladimir 'phcoder' Serbinenko d2d58d0ab4 * grub-core/fs/jfs.c (grub_jfs_label): Use first label if second one
starts with control character.
2012-03-19 11:07:28 +01:00
Vladimir 'phcoder' Serbinenko 0382d9bb22 * grub-core/gdb/cstub.c (grub_gdb_inbuf): Increase the size to avoid
overflow.
	(grub_gdb_outbuf): Likewise.
2012-03-19 10:59:16 +01:00
Vladimir 'phcoder' Serbinenko d83ff9f955 * grub-core/commands/menuentry.c (grub_normal_add_menu_entry): Add
zero terminator. Fixes a crash.
2012-03-19 10:56:43 +01:00