Commit Graph

3912 Commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko 0b6225bd27 * util/grub-mkimage.c (generate_image): Explicitly init decompress_size.
* util/grub-mkimagexx.c (MASK3): New define.
	(add_value_to_slot_20b): Use MASK3.
	(add_value_to_slot_21): Likewise.
	(relocate_addresses): Fix format specification.
	(load_image): Explicitly init symtab_section.
2012-02-11 11:50:10 +01:00
Vladimir 'phcoder' Serbinenko b055f8f676 * util/getroot.c (grub_find_root_devices_from_mountinfo): Fix types.
(grub_util_biosdisk_get_grub_dev): Fix format specification.
2012-02-11 11:41:22 +01:00
Vladimir 'phcoder' Serbinenko b77c2fb725 * grub-core/kern/emu/full.c (grub_arch_dl_get_tramp_got_size): Enable
on powerpc.
	Reported by: Lennart Sorensen
2012-02-11 11:35:54 +01:00
Vladimir 'phcoder' Serbinenko e3ec28abcf * gentpl.py: Add missing license header.
* docs/grub.texi: Update copyright year.
2012-02-11 11:31:13 +01:00
Grégoire Sutre c8d9ead677 Source grub-mkconfig_lib from the build directory at build time. 2012-02-10 18:16:27 +01:00
Vladimir 'phcoder' Serbinenko ebcecdf1c3 Increase warning level.
* conf/Makefile.common (CFLAGS_GNULIB): Add -Wno-redundant-decls
	-Wno-unreachable-code -Wno-conversion -Wno-old-style-definition.
	* configure.ac (HOST_CFLAGS): Add bunch of -W arguments.
	(TARGET_CFLAGS): Likewise.
	(HOST_CFLAGS): Add -Werror unless --disable-werror is activated.
	* grub-core/Makefile.core.def (decompressor_xz): Add
	-Wno-unreachable-code.
	(normal): Add -Wno-redundant-decls.
	(xzio): Add -Wno-unreachable-code.
	(lzopio): Add -Wno-redundant-decls -Wno-error.
	* grub-core/commands/acpi.c: Add exception to -Wcast-align.
	* grub-core/commands/lsacpi.c: Add exception to -Wcast-align.
	* grub-core/gensymlist.sh: Add exception to -Wmissing-format-attribute.
	* grub-core/kern/dl.c: Add exception to -Wcast-align.
	* grub-core/kern/efi/efi.c (grub_efi_modules_addr): Likewise.
	* grub-core/kern/i386/coreboot/init.c: Add exception to
	-Wsuggest-attribute=noreturn.
	* grub-core/kern/ia64/dl.c: Add exception to -Wcast-align.
	* grub-core/kern/ia64/dl_helper.c: Likewise.
	* grub-core/kern/mips/dl.c: Likewise.
	* grub-core/kern/sparc64/dl.c: Likewise.
	* grub-core/lib/LzmaEnc.c: Add exception to -Wshadow.
	* grub-core/lib/libgcrypt_wrap/cipher_wrap.h (memcpy): Likewise.
	(memcmp): Likewise.
	* grub-core/lib/pbkdf2.c: Add exception to -Wunreachable-code.
	* grub-core/loader/ia64/efi/linux.c: Add exception to -Wcast-align.
	* grub-core/loader/mips/linux.c: Likewise.
	* grub-core/loader/multiboot_elfxx.c: Likewise.
	* grub-core/script/parser.y: Add exception to -Wunreachable-code.
	* grub-core/video/sm712.c: Add exception to -Wcast-align.
	* util/import_gcry.py: Add -Wno-cast-align to modules checked by hand.
	* grub-core/font/font.c (grub_font_loader_init): Add explicit cast and
	fixme.
	* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Likewise.
	* grub-core/kern/i386/multiboot_mmap.c (grub_machine_mmap_init):
	Fix prototype.
2012-02-10 16:48:48 +01:00
Vladimir 'phcoder' Serbinenko 37bb97fe9a * grub-core/lib/i386/relocator16.S: Fix incorrect use of absolute
address.
2012-02-10 14:47:06 +01:00
Vladimir 'phcoder' Serbinenko 29a3550b61 * grub-core/commands/legacycfg.c (grub_cmd_legacy_kernel):
Avoid improper use of strings.
	(grub_cmd_legacy_initrdnounzip): Likewise.
2012-02-10 14:30:19 +01:00
Vladimir 'phcoder' Serbinenko dfdffd0d94 * include/grub/emu/misc.h (grub_util_warn): Add missing format
attribute.
	(grub_util_info): Likewise.
	(grub_util_error): Likewise.
2012-02-10 14:15:14 +01:00
Vladimir 'phcoder' Serbinenko 102fae4a1c * util/grub-mount.c (fuse_init): Avoid improper use of strings.
* util/grub-fstest.c (fstest): Likewise.
2012-02-10 14:12:43 +01:00
Vladimir 'phcoder' Serbinenko 7e94d044ad * grub-core/disk/geli.c (grub_md_sha256_real): Respect format security.
(grub_md_sha512_real): Likewise.
	(grub_util_get_geli_uuid): Likewise.
	* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors): Likewise.
	(grub_util_biosdisk_open): Fix format specification.
	Respect format security.
	* grub-core/kern/emu/misc.c (xmalloc): Respect format security.
	(xrealloc): Likewise.
	(xasprintf): Likewise.
2012-02-10 14:01:53 +01:00
Vladimir 'phcoder' Serbinenko 5ebd976935 * util/import_gcry.py: Include grub/crypto.h in init.c. 2012-02-10 13:58:53 +01:00
Vladimir 'phcoder' Serbinenko 495fc8c181 * util/grub-mkimage.c (compress_kernel_lzma): Respect format security.
(generate_image): Make prefix a const char *.
	Fix format specifications. Respect format security.
	Avoid void * arithmetics.
	Avoid shadowing.
	(argp_parser): Remove unused variable. Respect format security.
	* util/grub-mkimagexx.c (relocate_symbols): Avoid shadowing.
	(count_funcs) [!MKIMAGE_ELF64]: #if-out.
	(count_funcs): Remove unused variable.
	(relocate_addresses): Fix format specification.
	Disable x86-64 with elf32. Remove unused variables.
	(add_fixup_entry): Avoid shadowing.
	(make_reloc_section): Fix format specification.
	Use assert.
	(locate_sections): Fix format specifications.
	(load_image): Avoid shadowing.
2012-02-10 13:56:18 +01:00
Vladimir 'phcoder' Serbinenko 043c2ea33b * util/grub-setup.c (setup): Remove unused variable. Avoid shadowing.
Fix format specifications. Respect format security.
	Don't translate already translated grub_errmsg.
	(argp_parser): Remove unused variable
2012-02-10 13:49:24 +01:00
Vladimir 'phcoder' Serbinenko 3ec65a8187 * util/grub-mkrelpath.c (argp_parser): Remove unused variable. 2012-02-10 13:47:04 +01:00
Vladimir 'phcoder' Serbinenko a4d9fe4a95 * util/grub-mkpasswd-pbkdf2.c (argp_parser): Remove unused variable.
(main): Likewise. Use xmalloc. Respect format security.
2012-02-10 13:44:57 +01:00
Vladimir 'phcoder' Serbinenko 15b81d49bc * util/grub-mklayout.c (console_grub_equivalence): Make "layout"
a const char *.
	(argp_parser): Remove unused variable.
2012-02-10 13:42:00 +01:00
Vladimir 'phcoder' Serbinenko 31731fc04f * util/grub-mkfont.c (grub_font_info): Make name a const char *.
(add_pixel): Make static.
	(add_font): Likewise.
	(write_string_section): Make name and str a const char *.
	(write_be16_section): Make name a const char *.
	(print_glyphs): Make static.
	(write_font_ascii_bitmap): Likewise.
	(write_font_width_spec): Likewise.
	(write_font_pf2): Likewise.
	(argp_parser): Remove unused variable.
	Respect format security.
	(main): Avoid shadowing. Respect format security.
2012-02-10 13:31:43 +01:00
Vladimir 'phcoder' Serbinenko 0809527b9d * util/grub-editenv.c (argp_parser): Make static.
(create_envblk_file): Use xmalloc.
	(open_envblk_file): Likewise.
	Resepect format security.
	(set_variables): Respect format security.
2012-02-10 13:26:19 +01:00
Vladimir 'phcoder' Serbinenko 45b0c8b797 * util/getroot.c (grub_find_device): Respect format security.
(get_mdadm_uuid): Remove unused variable.
	(grub_util_pull_device): Dont call gettext on already translated
	grub_errmsg.
	(find_system_device): Remove unused variable.
	(grub_util_get_grub_dev): Likewise.
	(grub_make_system_path_relative_to_its_root): Respect format security.
2012-02-10 13:17:12 +01:00
Vladimir 'phcoder' Serbinenko 1b024b4ea0 * util/grub-fstest.c (execute_command): Make first argument
a const char *.
	(read_file): Avoid shadowing.
	Reuse underlying error message if device open fails.
	(cmd_cmp): Respect format security.
	(root): Make const char *.
	(fstest): Remove args argument and use global copy.
	Respect format security.
	(argp_parser): Make static.
	(main): Make default_root const char *.
2012-02-10 13:08:59 +01:00
Vladimir 'phcoder' Serbinenko 5d1d4e288f * util/grub-mount.c (root): Make const char *.
(execute_command): Make first argument a const char *.
	(fuse_init): Respect format security.
	(argp_parser): Make static. Remove unused variable.
	(main):  Make default_root a const char *.
	Respect format security.
2012-02-10 13:03:21 +01:00
Vladimir 'phcoder' Serbinenko 36eb7379b3 * util/grub-probe.c (probe): Don't call gettext on already translated
grub_errmsg.
	Remove unused variables.
	(argp_parser): Remove unused variable.
2012-02-10 12:57:00 +01:00
Vladimir 'phcoder' Serbinenko 76fb2ea93b * util/grub-script-check.c (argp_parser): Remove unused variable.
(main): Rename read to curread to avoid shadowing.
2012-02-10 12:54:40 +01:00
Vladimir 'phcoder' Serbinenko 56c98584c7 * util/misc.c (grub_util_write_image_at): Fix format specification.
(grub_util_write_image): Likewise.
	(grub_script_execute_argument_to_string): Removed (unused).
	(grub_script_execute_menuentry): Likewise.
	(grub_putchar): Likewise.
2012-02-10 12:52:46 +01:00
Vladimir 'phcoder' Serbinenko 164ebb480d * include/grub/symbol.h (EXT_C) [GRUB_UTIL]: Removed.
(FUNCTION) [GRUB_UTIL]: Likewise.
	(VARIABLE) [GRUB_UTIL]: Likewise.
2012-02-10 12:47:42 +01:00
Vladimir 'phcoder' Serbinenko 44318d6168 * include/grub/misc.h: Avoid evaluationg NEED_ENABLE_EXECUTE_STACK and
NEED_REGISTER_FRAME_INFO in GRUB_UTIL.
2012-02-10 12:45:32 +01:00
Vladimir 'phcoder' Serbinenko 31a2600267 * grub-core/partmap/bsdlabel.c (iterate_real): Fix freeing of static
buffer.
2012-02-10 12:43:11 +01:00
Vladimir 'phcoder' Serbinenko 6fa679671e * grub-core/disk/ldm.c (grub_util_get_ldm): Remove unused variables.
(grub_util_ldm_embed): Likewise.
2012-02-10 12:36:02 +01:00
Vladimir 'phcoder' Serbinenko 9a7428e638 * util/grub-editenv.c (print_var): Rename name to varname to
avoid shadowing.
	(main): Rename index to curindex to avoid shadowing.
	MAke filename a const char *.
2012-02-10 12:28:34 +01:00
Vladimir 'phcoder' Serbinenko 4f96abd198 * grub-core/script/lexer.c (grub_script_lexer_init): Rename getline
to arg_getline to avoid shadowing.
2012-02-10 12:25:27 +01:00
Vladimir 'phcoder' Serbinenko 44d10dada6 * grub-core/partmap/gpt.c (gpt_partition_map_embed): Rename disk to
disk_ to avoid shadowing.
2012-02-10 12:24:03 +01:00
Vladimir 'phcoder' Serbinenko 340ba63ede * grub-core/lib/LzFind.c (MatchFinder_GetIndexByte): Rename index to
curindex to avoid shadowing.
	Make static.
	(MatchFinder_GetNumAvailableBytes): Make static.
2012-02-10 12:21:28 +01:00
Vladimir 'phcoder' Serbinenko 22965bce9b * grub-core/fs/squash4.c (direct_read): Rename read to curread to
avoid shadowing.
2012-02-10 12:17:40 +01:00
Vladimir 'phcoder' Serbinenko 7b5784d4d3 * grub-core/disk/cryptodisk.c (grub_cryptodisk_endecrypt): Rename
argument from encrypt to do_encrypt to avoid shadowing.
2012-02-10 12:11:50 +01:00
Vladimir 'phcoder' Serbinenko 6f48ca0143 * grub-core/loader/multiboot_elfxx.c (grub_multiboot_load_elf): Fix
incorrect nesting of #if's.
2012-02-09 23:53:27 +01:00
Vladimir 'phcoder' Serbinenko a4ea2dff4b * grub-core/commands/lsacpi.c (disp_acpi_xsdt_table): #if'-out the
checks which are always false on some platforms.
	(grub_cmd_lsacpi): Likewise.
	* grub-core/kern/misc.c (grub_strtoul): Likewise.
	* grub-core/loader/multiboot.c (grub_multiboot_set_video_mode):
	Likewise.
2012-02-09 23:48:34 +01:00
Vladimir 'phcoder' Serbinenko def9fc1bb2 * grub-core/disk/diskfilter.c (read_segment): Renome unreachable code.
* grub-core/net/ip.c (grub_net_recv_ip4_packets): Likewise.
2012-02-09 23:43:43 +01:00
Vladimir 'phcoder' Serbinenko a67b2a046c * grub-core/gnulib/regex.h (re_pattern_buffer): Declare buffer as
re_dfa_t to avoid breaking alignment invariants.
	* grub-core/gnulib/regex_internal.h (re_dfa_t): Moved to ...
	* grub-core/gnulib/regex.h (re_dfa_t): ... here.
2012-02-09 23:40:17 +01:00
Vladimir 'phcoder' Serbinenko 44c6828db4 * grub-core/loader/i386/xnu.c (grub_xnu_boot): Fix printf.
* grub-core/loader/ia64/efi/linux.c (grub_cmd_fpswa): Likewise.
2012-02-09 23:32:03 +01:00
Vladimir 'phcoder' Serbinenko bebe0dd022 * grub-core/kern/i386/qemu/mmap.c (grub_machine_mmap_init):
Fix declaration.
2012-02-09 23:25:14 +01:00
Vladimir 'phcoder' Serbinenko a9cdb3cf18 * grub-core/bus/usb/ehci.c (grub_ehci_ehcc_read32): Restructure to
conserve alignment invariants.
	(grub_ehci_ehcc_read16): Likewise.
	(grub_ehci_oper_read32): Likewise.
	(grub_ehci_oper_write32): Likewise.
	(grub_ehci_pci_iter) [!GRUB_HAVE_UNALIGNED_ACCESS]: Check alignment.
	Conserve alignment invariants.
2012-02-09 23:18:53 +01:00
Vladimir 'phcoder' Serbinenko ccc3b1b898 * grub-core/kern/emu/full.c (grub_emu_post_init): Remove raid reinit.
* include/grub/disk.h [GRUB_MACHINE_EMU]: Remove now useless LVM/RAID
	declarations.
2012-02-09 23:15:27 +01:00
Vladimir 'phcoder' Serbinenko 987fbd95d0 * grub-core/kern/emu/hostfs.c (grub_hostfs_close):
Remove unused variable.
2012-02-09 23:12:09 +01:00
Vladimir 'phcoder' Serbinenko 0df363f328 * grub-core/efiemu/loadcore_common.c (grub_efiemu_loadcore_load):
Remove set in if.
2012-02-09 22:57:51 +01:00
Vladimir 'phcoder' Serbinenko b2c0c4a6c6 * include/grub/net.h: Remove double declarations. 2012-02-09 22:44:28 +01:00
Vladimir 'phcoder' Serbinenko 690c531fc5 Remove "payload" command in ia64 Linux loader since I couldn't
find any evidence of it being used for anything.
	Replace "relocate" command with an environment variable

	* grub-core/loader/ia64/efi/linux.c (ia64_boot_param): Remove extra
	fields.
	(ia64_boot_payload): Removed.
	(last_payload): Likewise.
	(RELOCATE_OFF): Likewise.
	(RELOCATE_ON): Likewise.
	(RELOCATE_FORCE): Likewise.
	(relocate): Likewise.
	(free_pages): Don't free payloads.
	(grub_load_elf64): Use common error messages.
	Use "linux_relocate" variable.
	Increase the space after boot_params.
	(grub_cmd_payload): Removed.
	(grub_cmd_relocate): Likewise.
	(grub_cmd_fpswa): Improve messages.
	(cmd_payload): Removed.
	(cmd_relocate): Likewise.
	(GRUB_MOD_INIT): Don't register "payload" and "relocate".
	(GRUB_MOD_FINI): Don't unregister "payload" and "relocate".
2012-02-09 15:09:40 +01:00
Vladimir 'phcoder' Serbinenko 01783768d2 Convert UHCI to DMA framework.
* grub-core/bus/usb/uhci.c (grub_uhci): Add chunk and phys members.
	(grub_uhci_pci_iter): Fill new members
	(grub_alloc_td): Use P2V and V2P functions.
	(grub_free_queue): Likewise.
	(grub_alloc_qh): Likewise.
	(grub_uhci_setup_transfer): Likewise.
	(grub_uhci_check_transfer): Likewise.
2012-02-09 15:00:05 +01:00
Vladimir 'phcoder' Serbinenko 432069398f * grub-core/video/colors.c (grub_video_parse_color): Fix error message.
Remove assignment in if while on it.
2012-02-09 14:48:35 +01:00
Vladimir 'phcoder' Serbinenko 571e140e26 * util/grub-mkstandalone.in: Fix modules directory. 2012-02-09 14:45:56 +01:00
Vladimir 'phcoder' Serbinenko a9d96eeb21 * util/grub-mkimage.c (image_targets): Set default_compression to lzma
on i386-pc target.
	(argp_parser): Accept "auto" as compression specification.
2012-02-09 14:43:21 +01:00
Vladimir 'phcoder' Serbinenko e4e37e8dfa Fix `help' with unloaded modules.
* include/grub/normal.h (grub_dyncmd_get_cmd): New proto.
	* grub-core/normal/dyncmd.c (grub_dyncmd_get_cmd): New function.
	(grub_dyncmd_dispatcher): Small stylistic fix.
	* grub-core/commands/help.c (grub_cmd_help): Load missing modules when
	explicit help is requested.
2012-02-09 14:38:34 +01:00
Vladimir 'phcoder' Serbinenko e1ea3ade95 * grub-core/fs/cpio.c (grub_cpio_dir): Fix a bug with multiple listing.
Explicitly init restart while on it.
2012-02-09 14:27:05 +01:00
Vladimir 'phcoder' Serbinenko 275568816c * grub-core/lib/posix_wrap/wchar.h (mbrtowc): Set pwc to zero to avoid
uninited variable.
2012-02-09 14:24:55 +01:00
Vladimir 'phcoder' Serbinenko d65f6b36de * util/grub-mknetdir.in: Use . rather than source for POSIX
compatibility.
2012-02-08 20:27:46 +01:00
Vladimir 'phcoder' Serbinenko 0a1e473c9b * util/grub-probe.c (main): Fix trailing space in compatibility hint. 2012-02-08 20:23:53 +01:00
Vladimir 'phcoder' Serbinenko ce6647c83c * grub-core/kern/partition.c (grub_partition_get_name): Fix uninited
variable.
2012-02-08 20:19:44 +01:00
Vladimir 'phcoder' Serbinenko 667478942a * grub-core/commands/hdparm.c (grub_cmd_hdparm): Accept device name
without quotes.
2012-02-08 20:12:41 +01:00
Vladimir 'phcoder' Serbinenko 71645f6ec2 * grub-core/net/net.c (GRUB_MOD_INIT): Don't register netfs. 2012-02-08 20:10:17 +01:00
Vladimir 'phcoder' Serbinenko 0e1c1f61b6 * grub-core/kern/partition.c (grub_partition_get_name): Fix reverse
iteration of partitions.
2012-02-08 19:53:46 +01:00
Vladimir 'phcoder' Serbinenko 9c4b5c13e6 Improve gettext support. Stylistic fixes and error handling fixes while
on it.
2012-02-08 19:26:01 +01:00
Vladimir 'phcoder' Serbinenko 215c90cb82 * grub-core/lib/i386/relocator16.S: Revert moving A20 code into PM
part. Instead setup the correct stack in RM.
	* grub-core/lib/i386/relocator.c (grub_relocator16_boot): Reserve place
	for stack.
	* include/grub/i386/relocator_private.h: New file.
2012-02-07 22:31:14 +01:00
Vladimir 'phcoder' Serbinenko b5c1f9bf41 * grub-core/commands/minicmd.c (GRUB_MOD_INIT): Add missing SIZE
argument.
	* util/grub-fstest.c (options): Add missing DEVICE part.
2012-02-05 11:32:11 +01:00
Vladimir 'phcoder' Serbinenko b525fd834d Clarify and unify messages.
* grub-core/commands/hashsum.c (options): Unify messages.
	* grub-core/commands/keystatus.c (GRUB_MOD_INIT): Don't mark a
	literal-only message as translatable.
	* grub-core/commands/lsacpi.c (GRUB_MOD_INIT): Likewise.
	* grub-core/loader/ia64/efi/linux.c (GRUB_MOD_INIT): Likewise.
	* grub-core/commands/legacycfg.c (GRUB_MOD_INIT): Add quoting around
	commands.
	* grub-core/commands/menuentry.c (options): Clarify that it's a keyboard
	key, not the key used to unlock. Clarify what it's used for.
	* grub-core/kern/emu/hostdisk.c (read_device_map): Unify error message.
	* grub-core/loader/xnu.c (grub_xnu_load_driver): Remove erroneous colon.
	* grub-core/script/main.c (GRUB_MOD_INIT): Clarify [n] to be [NUM].
	* util/grub-editenv.c (options): Unify "verbose" message.
	* util/grub-fstest.c (read_file): Unify error message.
	(fstest): Add quotes around commands.
	(options): Unify "verbose" message.
	* util/grub-install.in: Add quotes around variable name.
	* util/grub-kbdcomp.in: Unify error message.
	* util/grub-mkfont.c (main): Likewise.
	* util/grub-mkrescue.in: Likewise.
	* util/grub-mklayout.c (options): Unify "verbose" message.
	* util/grub-mkstandalone.in: Unify help and verbose messages.
	* util/grub-mount.c (options): Unify "verbose" message.
	* util/grub-probe.c (options): Likewise.
	* util/grub-script-check.c (options): Likewise.
	* util/grub-setup.c (setup): Unify no-terminator message.
	(options): Use DEVICE and not DEV.
	Unify "verbose" message.
	* util/ieee1275/ofpath.c (xrealpath): Unify error message.
2012-02-05 11:23:47 +01:00
Vladimir 'phcoder' Serbinenko 0ae70393ba Improve and unify messages.
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors): Add argument
	name. All users updated.
	Print filename in error.
	(read_device_map): Print filename in error.
	* util/getroot.c (grub_guess_root_devices): Print filename in error.
	(grub_util_get_os_disk): Likewise.
	(grub_util_biosdisk_get_grub_dev): Likewise.
	(grub_util_check_block_device): Likewise.
	(grub_util_check_char_device): Likewise.
	(grub_make_system_path_relative_to_its_root): Likewise.
	* util/grub-editenv.c (create_envblk_file): Likewise.
	(open_envblk_file): Likewise.
	(write_envblk): Likewise.
	* util/grub-fstest.c (cmd_cp): Likewise.
	(cmd_cat): Likewise.
	(cmd_cmp): Likewise.
	* util/grub-menulst2cfg.c (main): Likewise.
	* util/grub-mkfont.c (write_font_ascii_bitmap): Likewise.
	(write_font_width_spec): Likewise.
	(write_font_pf2): Likewise.
	* util/grub-mkimage.c (generate_image): New argument outname.
	All users updated.
	Remove unreacheable message.
	(options): Unify messages.
	(help_filter): Likewise.
	* util/grub-mklayout.c (usage): Removed (unused).
	(main): Print filename in error.
	* util/grub-mkrescue.in: Fix wrong quoting.
	* util/grub-setup.c (setup): Print filename in error.
	* util/ieee1275/ofpath.c (vendor_is_ATA): Likewise.
	(check_sas): Likewise.
	* util/misc.c (grub_util_get_fp_size): Removed.
	(grub_util_get_image_size): Print filename in error.
	(grub_util_read_at): Removed.
	(grub_util_read_image): Print filename in error.
	(grub_util_load_image): Likewise.
	(grub_util_write_image_at): New argument filename. All users updated.
	Print filename in error.
	(grub_util_write_image): New argument filename. All users updated.
	Print filename in error.
	* util/raid.c (grub_util_raid_getmembers): Print filename in error.
	* util/resolve.c (grub_util_resolve_dependencies): Likewise.
2012-02-05 11:07:33 +01:00
Vladimir 'phcoder' Serbinenko 0a96117de7 * grub-core/Makefile.core.def (pxechain): New module.
* grub-core/loader/i386/pc/pxechainloader.c: New file.
	* grub-core/net/drivers/i386/pc/pxe.c (grub_pxe_get_cached): New
	function.
	(grub_pc_net_config_real): Use grub_pxe_get_cached.
	* include/grub/i386/pc/pxe.h (grub_pxe_get_cached): New proto.
2012-02-05 10:33:52 +01:00
Vladimir 'phcoder' Serbinenko aca002f7e4 * grub-core/kern/err.c (GRUB_MAX_ERRMSG): Move to ...
* include/grub/err.h (GRUB_MAX_ERRMSG): ... here.
	* include/grub/err.h (grub_error_saved): New struct.
	(grub_errmsg): Make array size explicit.
	* include/grub/misc.h (grub_error_save): New function.
	(grub_error_load): Likewise.
	* grub-core/kern/err.c (grub_error_stack_items): Use grub_error_saved.
	(grub_error_push): Update `errno' member name.
	(grub_error_pop): Likewise
	* grub-core/net/tftp.c (tftp_data): New member save_err.
	(tftp_receive): Save error.
	(tftp_open): Restore error.
2012-02-05 10:24:53 +01:00
Vladimir 'phcoder' Serbinenko a51dab1328 * grub-core/lib/i386/relocator16.S (grub_relocator16_start): Move switch
to real mode down to execute A20-related code in protected mode as
	intended.
2012-02-05 10:12:18 +01:00
Grégoire Sutre eb6e664936 * grub-core/disk/diskfilter.c (grub_diskfilter_make_raid): Return
NULL when the argument `level' has an unexpected value.
2012-02-05 01:22:04 +01:00
Vladimir 'phcoder' Serbinenko 92cd0f6e45 Move platform-dependent files from $prefix to $prefix/$platform.
* config.h.in (GRUB_TARGET_CPU): New definition.
	(GRUB_PLATFORM): Likewise.
	* configure.ac: Define GRUB_TARGET_CPU and GRUB_PLATFORM.
	* grub-core/commands/parttool.c (grub_cmd_parttool): Update dir.
	* grub-core/efiemu/main.c (grub_efiemu_autocore): Likewise.
	* grub-core/kern/dl.c (grub_dl_load): Likewise.
	* grub-core/normal/autofs.c (read_fs_list): Likewise.
	* grub-core/normal/crypto.c (read_crypto_list): Likewise.
	* grub-core/normal/dyncmd.c (read_command_list): Likewise.
	* grub-core/normal/term.c (read_terminal_list): Likewise.
	* grub-core/gettext/gettext.c (grub_mofile_open_lang): Use
	$prefix/locale.
	(grub_gettext_init_ext): Likewise.
	* grub-core/normal/main.c (GRUB_MOD_INIT): Define grub_cpu and
	grub_platform.
	* util/grub-install.in: Update directories.
	* util/grub-mknetdir.in: Likewise.
	* util/grub-mkrescue.in: Likewise.
2012-02-04 21:47:29 +01:00
Vladimir 'phcoder' Serbinenko db606889a9 * grub-core/kern/ieee1275/openfw.c (grub_claimmap): Change to
grub_error framework. All users updated.
2012-02-04 14:00:23 +01:00
Vladimir 'phcoder' Serbinenko c39992a436 * grub-core/gettext/gettext.c: Mostly rewritten to avoid using
lists (by always binsearching), improve caching (cache strings
	used for binsearch, not only results), improve
	maintainability (by using more structured binary search) and correct
	error handling.
2012-02-04 13:35:17 +01:00
Vladimir 'phcoder' Serbinenko 1e5ec32f2d * grub-core/script/execute.c (grub_script_return): Fix warning. 2012-02-04 12:21:21 +01:00
Vladimir 'phcoder' Serbinenko ac576cde1d * grub-core/script/execute.c (grub_script_return): Fix potential
NULL-dereference.
	Reported by: Jim Meyering.
2012-02-04 11:52:10 +01:00
Vladimir 'phcoder' Serbinenko 498453f661 * po/POTFILES.in: Regenerate.
* util/grub-install.in: Gettextize the strings missed in first pass.
2012-02-03 22:52:23 +01:00
Vladimir 'phcoder' Serbinenko 8be63f2ef6 * Makefile.util.def (grub-mkdevicemap): Removed.
* include/grub/emu/hostdisk.h (grub_util_get_os_disk): New proto.
	* include/grub/util/deviceiter.h: Removed.
	* util/deviceiter.c: Likewise.
	* util/getroot.c (grub_util_get_os_disk): New function.
	* util/grub-install.in: Remove grub-mkdevicemap. Use -t disk as
	replacement for EFI.
	* util/grub-mkdevicemap.c: Removed.
	* util/grub-probe.c (probe): Handle PRINT_DISK.
	(argp_parser): Handle -t disk.
2012-02-03 22:36:51 +01:00
Vladimir 'phcoder' Serbinenko 8e1e4e3903 * util/grub-mkfont.c: Migrate to argp.
* util/grub-mklayout.c: Likewise.
	* util/grub-mkpasswd-pbkdf2.c: Likewise.
	* util/grub-mkrelpath.c: Likewise.
	* util/grub-probe.c: Likewise.
	* util/grub-script-check.c: Likewise.
2012-02-03 21:45:43 +01:00
Vladimir 'phcoder' Serbinenko 4459819a52 * util/grub-reboot.in: Add missing datarootdir.
Add missing newline.
	* util/grub-set-default.in: Add missing datarootdir.
	* util/powerpc/ieee1275/grub-mkrescue.in: Add missing newline.
	* util/grub-mkrescue.in: Likewise.
2012-02-03 21:30:05 +01:00
Vladimir 'phcoder' Serbinenko f65741c7a4 * util/grub.d/30_os-prober.in: Fix TRANSLATORS comment. 2012-02-03 21:25:10 +01:00
Vladimir 'phcoder' Serbinenko c1a33466d8 * util/grub-kbdcomp.in: Add decent help and gettextize.
* docs/man/grub-kbdcomp.h2m: New file.
2012-02-03 21:22:12 +01:00
Vladimir 'phcoder' Serbinenko c76899a0ea Migrate grub-mkimage.c to argp.
* Makefile.util.def (grub-mkimage): Add util/argp_common.c.
	(grub-setup): Likewise.
	* util/grub-setup.c (print_version): Move to ...
	* util/argp_common.c (print_version): ... here.
	* util/grub-setup.c (argp_program_version_hook): Move to ...
	* util/argp_common.c (argp_program_version_hook): ... here.
	* util/grub-setup.c (argp_parser): Add exit (1) on fatal error for
	safety.
	* util/grub-mkimage.c (main): Migrate to argp.
2012-02-03 21:18:37 +01:00
Vladimir 'phcoder' Serbinenko 57db0757f4 * util/grub-mkrescue.in: Use same message as
util/powerpc/ieee1275/grub-mkrescue.in with %s in place of command
	for better translations.
2012-02-03 14:45:45 +01:00
Vladimir 'phcoder' Serbinenko 18534ad91e * util/powerpc/ieee1275/grub-mkrescue.in: Gettextize. Unify the command
options with generic grub-mkrescue.in with the goal of future
	merge.
2012-02-03 14:38:39 +01:00
Vladimir 'phcoder' Serbinenko c84ba308b5 * grub-core/kern/mm.c: Add missing include of i18n.h
* grub-core/lib/relocator.c: Likewise.
2012-02-03 14:20:31 +01:00
Vladimir 'phcoder' Serbinenko 347998c27f * grub-core/loader/ia64/efi/linux.c (find_mmap_size): Replace fatal with
error.
	(allocate_pages): Check return value.
	Replace fatal with error.
	(grub_linux_boot): Replace printf with dprintf.
	Check find_mmap_size return value.
	Replace fatal with error.
	Don't call grub_machine_fini.
	(grub_load_elf64): Replace printf with dprintf.
	(grub_cmd_linux): Likewise.
	(grub_cmd_initrd): Likewise.
	(grub_cmd_payload): Likewise.
2012-02-03 13:53:12 +01:00
Vladimir 'phcoder' Serbinenko c779226e6c * grub-core/loader/i386/xnu.c (grub_cmd_devprop_load): Fix error
message.
	* grub-core/video/radeon_fuloong2e.c
	(grub_video_radeon_fuloong2e_setup): Likewise.
	* grub-core/video/sis315pro.c (grub_video_sis315pro_setup): Likewise.
	* grub-core/video/video.c (grub_video_set_mode): Don't override
	standard out of memory message.
2012-02-03 12:47:07 +01:00
Grégoire Sutre dc87d45a7a NetBSD disk wedge support. 2012-02-03 12:32:21 +01:00
Mark Wooding 055f856f71 * util/grub-mkconfig.in: Use umask rather than chmod to create
grub.cfg.new to avoid insecure grub.cfg.
2012-02-03 12:15:53 +01:00
Vladimir 'phcoder' Serbinenko 4a9f8346c9 * grub-core/commands/ls.c: Gettextize.
* grub-core/commands/setpci.c: Likewise.
        * grub-core/commands/videotest.c: Likewise.
        * grub-core/disk/geli.c: Likewise.
        * grub-core/kern/mm.c: Likewise.
        * grub-core/lib/relocator.c: Likewise.
        * grub-core/loader/efi/appleloader.c: Likewise.
        * grub-core/loader/i386/xnu.c: Likewise.
        * grub-core/loader/ia64/efi/linux.c: Likewise.
        * grub-core/loader/xnu.c: Likewise.
        * grub-core/net/dns.c: Likewise.
        * grub-core/net/net.c: Likewise.
        * grub-core/script/lexer.c: Likewise.
        * grub-core/script/parser.y: Likewise.
        * grub-core/script/yylex.l: Likewise.
        * util/getroot.c: Likewise.
        * util/grub-setup.c: Likewise.
2012-02-03 11:56:49 +01:00
Vladimir 'phcoder' Serbinenko a646a366bb * grub-core/fs/reiserfs.c (grub_reiserfs_get_item): Use proper error
number.
2012-02-03 11:50:18 +01:00
Vladimir 'phcoder' Serbinenko 54e2be2630 * grub-core/disk/ldm.c (grub_util_ldm_embed): Correct error message. 2012-02-03 11:48:42 +01:00
Vladimir 'phcoder' Serbinenko f7c71e68b5 * grub-core/commands/search_file.c (SEARCH_TARGET): Remove obsolete
macro.
	* grub-core/commands/search_label.c (SEARCH_TARGET): Likewise.
	* grub-core/commands/search_uuid.c (SEARCH_TARGET): Likewise.
2012-02-03 11:46:18 +01:00
Vladimir 'phcoder' Serbinenko a32d5c712d * util/grub-mkstandalone.in: Fix help messages. Gettextize.
* util/grub-install.in: Gettextize.
	* util/grub-mkconfig.in: Likewise.
	* util/grub-mkconfig_lib.in: Replace gettext with echo -n and not echo
	if not available.
	(grub_warn): Gettextize.
	* util/grub-mknetdir.in: Gettextize.
	* util/grub-mkrescue.in: Likewise.
	* util/grub-mkstandalone.in: Likewise.
	* util/grub-reboot.in: Likewise.
	* util/grub-set-default.in: Likewise.
	* util/grub.d/00_header.in: Likewise.
	* util/grub.d/10_hurd.in: Likewise.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/10_netbsd.in: Likewise.
	* util/grub.d/10_windows.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
	* po/POTFILES-shell.in: Regenerate.
2012-02-03 11:42:22 +01:00
Richard Laager 69edd81ab7 * util/grub-mkimage.c (main): Fix format-security warning.
* util/grub-mkrelpath.c (main): Likewise.
	* util/grub-probe.c (main): Likewise.
2012-02-03 11:07:18 +01:00
Richard Laager 65f08dbfe0 * util/grub-probe.c (probe): Don't crash on canonicalize_file_name
failure.
	Put back lost PRINT_DRIVE.
2012-02-03 11:02:06 +01:00
Richard Laager e9084abefd * util/getroot.c (find_root_devices_from_libzfs): Fix compilation error.
(grub_guess_root_devices): Replace strlen with sizeof.
	Avoid crash.
	(find_root_devices_from_poolname): Remove unused variable.
	Handle raidzN.
2012-02-03 10:50:56 +01:00
Vladimir 'phcoder' Serbinenko cf5f7ee788 Support install on multi-device filesystems.
* include/grub/emu/getroot.h (grub_guess_root_device): Renamed to ...
	(grub_guess_root_devices): ...this. Return char **. All users updated.
	* include/grub/emu/misc.h (grub_find_root_device_from_mountinfo):
	Removed.
	* util/getroot.c (find_root_device_from_libzfs): Moved pool logic to ...
	(find_root_devices_from_poolname): ... here.
	(grub_find_root_devices_from_mountinfo): Return char **. Make static.
	Support zfs-fuse.
	(grub_guess_root_device): Rename to ...
	(grub_guess_root_devices): ... this. Return char **. All users updated.
	* util/grub-install.in: Handle multi-device filesystems.
	* util/grub-probe.c (probe). Make device_names a char **. Add delim
	argument. All users updated.
	Handle multi-device filesystems.
	Use 'delim' as separator.
	Remove device check to allow filesystems on file.
	(main): Support -0 argument. Handle multi-device.
	* util/grub-setup.c (setup): Remove root argument. Handle multi-device.
	Fix a cross-device check while on it.
	(arguments): Remove root_dev.
	(argp_parser): Remove -r.
	(main): Remove root_dev.
2012-02-03 10:35:28 +01:00
Vladimir 'phcoder' Serbinenko 2f53a9ed1f * grub-core/fs/zfs/zfscrypt.c: Add link to documentation. 2012-02-01 18:30:51 +01:00
Vladimir 'phcoder' Serbinenko 17e1d934c7 * grub-core/commands/videotest.c (grub_cmd_videotest): Fix subset
symbol.
	Reported by: NODA, Kai <nodakai>.
2012-02-01 17:47:47 +01:00
Vladimir 'phcoder' Serbinenko d3e3fab52a Fix ehci on amd64.
* grub-core/bus/usb/usbhub.c (grub_usb_hub_add_dev): Use %p to print
	pointers.
	* grub-core/bus/usb/ehci.c (grub_ehci_pci_iter): Likewise.
	(grub_ehci_setup_qh): Likewise.
	(grub_ehci_find_qh): Likewise.
	(grub_ehci_transaction): Likewise.
	(grub_ehci_setup_transfer): Likewise.
	(grub_ehci_check_transfer): Likewise.
	(grub_ehci_portstatus): Likewise.
	(grub_ehci_detect_dev): Likewise.
	(grub_ehci_transfer_controller_data): New field td_last_phys.
	(grub_ehci_setup_transfer): Fill td_last_phys.
	(grub_ehci_check_transfer): Use td_last_phys.
2012-02-01 16:13:17 +01:00
Seth Goldberg 3008675bea * grub-core/normal/context.c (grub_env_extractor_close): Don't crash
if no submenu is present.
2012-02-01 15:35:30 +01:00
Aleš Nesrsta fc9b5652f6 CBI support.
* include/grub/usb.h (grub_usbms_protocol_t): New values
	GRUB_USBMS_PROTOCOL_CB and GRUB_USBMS_PROTOCOL_CBI.
	* grub-core/disk/usbms.c (GRUB_USBMS_CBI_CMD_SIZE): New define.
	(GRUB_USBMS_CBI_ADSC_REQ): Likewise.
	(grub_usbms_dev): Add subclass, protocol and intrpt.
	Remove in_maxsz and out_maxsz.
	(grub_usbms_reset): Rename to ...
	(grub_usbms_bo_reset): .. this.
	(grub_usbms_cbi_cmd): New function.
	(grub_usbms_cbi_reset): Likewise.
	(grub_usbms_reset): Likewise.
	(grub_usbms_attach): Recognize cbi. Same subclass and protocol.
	(grub_usbms_transfer): Rename to ...
	(grub_usbms_transfer_bo): ... this.
	(grub_usbms_transfer_cbi): Likewise.
	(grub_usbms_transfer): Likewise.
2012-02-01 15:19:10 +01:00
Aleš Nesrsta a2b81d5399 EHCI support. All of the credit goes to Aleš Nesrsta. I've just added
the support for the CS5536 modification thereos and few bugfixes.

	* grub-core/Makefile.core.def (ehci): New module.
	* grub-core/bus/usb/ehci.c: New file.
	* grub-core/bus/usb/usbhub.c (grub_usb_hub_add_dev): New arguments
	port and hubaddr. All users updated.
	Save port and hubaddr into dev structure.
	* include/grub/cs5536.h (GRUB_CS5536_MSR_USB_BASE_SMI_ENABLE): New
	define.
	* include/grub/pci.h (grub_dma_phys2virt): New function.
	(grub_dma_virt2phys): Likewise.
	* include/grub/usb.h (grub_usb_device): New members port and hubaddr.
2012-02-01 14:18:43 +01:00
Vladimir 'phcoder' Serbinenko b1d51f028b * grub-core/fs/fat.c (grub_fat_mount) [!MODE_EXFAT]: Remove fstype
check as some mkfs implementations omit it.
2012-01-31 23:26:07 +01:00
Vladimir 'phcoder' Serbinenko fc694106da * docs/grub.texi (Unicode): Mention identifier and space limitations. 2012-01-31 22:59:32 +01:00
Vladimir 'phcoder' Serbinenko 6c0920e31b * grub-core/fs/jfs.c (grub_jfs_sblock): Make volname a char array.
Add new member volname2.
	(grub_jfs_label): Use volname2 if available.
2012-01-31 22:49:11 +01:00
Vladimir 'phcoder' Serbinenko d1a46f9abd * grub-core/fs/nilfs2.c (grub_nilfs2_super_block): Expand volume_name
over last_mounted as seen in image generated by mkfs.nilfs2.
	(grub_nilfs2_label): Use sizeof for the size of s_volume_name.
2012-01-31 22:43:29 +01:00
Vladimir 'phcoder' Serbinenko dec8ed14b9 * grub-core/fs/fat.c (grub_fat_dir_entry) [MODE_EXFAT]: Expand label
to 15 UTF-16 characters as seen in FS generated by mkexfatfs.
	(grub_fat_label) [MODE_EXFAT]: Use macros for size.
2012-01-31 22:38:08 +01:00
Vladimir 'phcoder' Serbinenko 7397c69bb8 * grub-core/fs/romfs.c (grub_romfs_mount): Fix a bug with labels going
over the sector.
2012-01-31 22:25:07 +01:00
Vladimir 'phcoder' Serbinenko b3fe42adb7 * grub-core/fs/zfs/zfs.c (get_filesystem_dnode): Support space in
subvolume name (by removing a bogus and useless check).
2012-01-31 22:20:37 +01:00
Vladimir 'phcoder' Serbinenko 10476bb0db * grub-core/fs/ext2.c (grub_ext2_label): Fix field size. Change to
sizeof while on it.
2012-01-31 22:12:57 +01:00
Vladimir 'phcoder' Serbinenko 9c08ad8707 * grub-core/disk/scsi.c (grub_scsi_read_capacity): Renamed to ...
(grub_scsi_read_capacity10): ... this.
	(grub_scsi_read_capacity16): New function.
	(grub_scsi_open): Use read_capacity16 if read_capacity10 returned
	0xffffffff.
	Fix off-by-one error.
	* include/grub/scsi.h (grub_scsi): Rename size to last_block and make it
	64-bit unsigned.
	* include/grub/scsicmd.h (grub_scsi_read_capacity): Rename to ...
	(grub_scsi_read_capacity10): ... this.
	(grub_scsi_read_capacity_data): Rename to ...
	(grub_scsi_read_capacity10_data): ... this. Rename size to last_block.
	(grub_scsi_read_capacity16): New struct.
	(grub_scsi_read_capacity16_data): Likewise.
	(grub_scsi_cmd_t): Rename grub_scsi_cmd_read_capacity to
	grub_scsi_cmd_read_capacity10.
	New command grub_scsi_cmd_read_capacity16.
2012-01-30 18:33:11 +01:00
Vladimir 'phcoder' Serbinenko bc8d0f45a5 SCSI >2TiB support.
* grub-core/disk/scsi.c (grub_scsi_read16): New function.
	(grub_scsi_write16): Likewise.
	(grub_scsi_read): Use read16 when necessary.
	(grub_scsi_write): Likewise.
	* include/grub/scsicmd.h (grub_scsi_read16): New struct.
	(grub_scsi_write16): Likewise.
	(grub_scsi_cmd_t): Add READ16 and WRITE16.
2012-01-30 12:47:26 +01:00
Vladimir 'phcoder' Serbinenko cc774926f1 SCSI write support (for usbms mainly).
* grub-core/disk/scsi.c (grub_scsi_write10): Uncomment. Make buffer
	a const pointer.
	(grub_scsi_write): Implement.
	* include/grub/scsi.h (grub_scsi_dev): Make write buffer a const pointer
2012-01-30 12:26:11 +01:00
Vladimir 'phcoder' Serbinenko 67639fd75e * grub-core/io/lzopio.c (uncompress_block): Fix use of incorrect
variable.
2012-01-30 01:18:02 +01:00
Vladimir 'phcoder' Serbinenko 9079d3ed4e * grub-core/lib/posix_wrap/string.h (memchr): New function. 2012-01-29 23:58:42 +01:00
Vladimir 'phcoder' Serbinenko c6a6f20445 * po/POTFILES.in: Regenerate. 2012-01-29 23:50:37 +01:00
Vladimir 'phcoder' Serbinenko ecbf8cd1b7 * grub-core/lib/posix_wrap/assert.h (assert_real): Replace grub_fatal
with grub_printf to avoid unnecessary fatal failure.
2012-01-29 23:48:35 +01:00
Vladimir 'phcoder' Serbinenko 0b3b3b38bd * grub-core/lib/posix_wrap/limits.h (SHRT_MAX): New define.
(INT_MAX): Likewise.
	* grub-core/lib/posix_wrap/stdio.h (snprintf): New function.
	* grub-core/lib/posix_wrap/stdlib.h (abs): Likewise.
	* grub-core/lib/posix_wrap/string.h (memcmp): Likewise.
	(strcpy): Likewise.
	(strstr): Likewise.
	(strchr): Likewise.
	(strncpy): Likewise.
	(strcat): Likewise.
	(strncat): Likewise.
	(strcoll): Likewise.
	* include/grub/types.h (GRUB_SHRT_MAX): New define.
	(GRUB_INT_MAX): Likewise.
2012-01-29 23:27:31 +01:00
Vladimir 'phcoder' Serbinenko db7337a3d3 * grub-core/gnulib/regcomp.c (regerror): Don't use abort on
unexpected error.
	(optimize_utf8): Likewise.
	* grub-core/lib/posix_wrap/stdlib.h (abort): Removed.
2012-01-29 23:22:57 +01:00
Vladimir 'phcoder' Serbinenko f37c87e1ba * grub-core/boot/i386/pc/lnxboot.S: Use
GRUB_DECOMPRESSOR_MAX_DECOMPRESSOR_SIZE.
	* grub-core/boot/i386/pc/startup_raw.S: Ensure about boot_dev
	location.
	* include/grub/offsets.h (GRUB_DECOMPRESSOR_I386_PC_BOOT_DEVICE): New
	definition.
	(GRUB_DECOMPRESSOR_I386_PC_MAX_DECOMPRESSOR_SIZE): Likewise.
2012-01-29 23:20:02 +01:00
Vladimir 'phcoder' Serbinenko 63fe43f3c3 * util/getroot.c (grub_util_get_dm_node_linear_info): Fix memory leak.
* grub-core/disk/cryptodisk.c (cryptodisk_cleanup): Disable for
	now to avoid double free.
	* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_dev): Rename to
	hostdisk.
	* include/grub/disk.h (grub_disk_dev_id): New id HOSTDISK.
	* util/grub-probe.c (escape_of_path): Always return a new copy.
	(print_full_name): Escape path.
	(probe): Don't call grub_util_devname_to_ofpath on NULL.
	Fix hints on abstractions.
2012-01-29 21:49:44 +01:00
Vladimir 'phcoder' Serbinenko ebe2c96154 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device):
Don't add "root" line if no compatibility hont is available.
	Suggested by: Seth Goldberg.
2012-01-29 20:52:37 +01:00
Vladimir 'phcoder' Serbinenko 2b5336a24a * include/grub/ata.h (grub_ata): Add a new element maxbuffer.
* grub-core/disk/ata.c (grub_ata_readwrite): Limit to ata->maxbuffer.
	* grub-core/disk/pata.c (grub_pata_open): Set ata->maxbuffer.
	* grub-core/disk/ahci.c (grub_ahci_open): Likewise.
2012-01-29 19:00:30 +01:00
Vladimir 'phcoder' Serbinenko 74310bd8a7 * include/grub/zfs/dnode.h (DN_MIN_INDBLKSHIFT): Removed. 2012-01-29 18:56:44 +01:00
Vladimir 'phcoder' Serbinenko c30582ba5d * util/grub-pe2elf.c (ehdr): Make static.
(shdr): Likewise.
	(num_sections): Likewise.
	(offset): Likewise.
2012-01-29 18:53:38 +01:00
Vladimir 'phcoder' Serbinenko 5f47782c29 Eliminate ofpath limits and possible overflows.
* util/ieee1275/ofpath.c (grub_util_info) [STANDALONE]: New function.
	(OF_PATH_MAX): Removed.
	(MAX_DISK_CAT): New const.
	(find_obppath): Use allocated rather than preallocated buffer.
	Return result. Argument of_path removed. All users updated.
	Add missing fdstat.
	(xrealpath): New function.
	(block_device_get_sysfs_path_and_link): Remove sysfs argument.
	Allocate rather than use preallocated buffer. All users updated.
	(__of_path_common): Use allocated rather than preallocatecd buffer.
	Return result. Argument of_path removed. All users updated.
	(vendor_is_ATA): Read only needed part form the file.
	(check_sas): Allocate depending on contents rather than fixed.
	(main) [STANDALONE]: Handle NULL result.
2012-01-29 18:51:21 +01:00
Vladimir 'phcoder' Serbinenko f990cbf90e * grub-core/normal/completion.c (iterate_dev): Close the disk. 2012-01-29 18:20:02 +01:00
Vladimir 'phcoder' Serbinenko 9c6e84b838 Cryptodisk write support.
* grub-core/disk/cryptodisk.c (grub_crypto_pcbc_encrypt): New function.
	(grub_cryptodisk_decrypt): Moved logic to ...
	(grub_cryptodisk_endecrypt): ...this. New argument "encrypt".
	(grub_cryptodisk_write): Implement.
	* grub-core/kern/emu/hostdisk.c (nwrite): Rename to ...
	(grub_util_fd_write): ... this. Make global.
	* include/grub/emu/hostdisk.h (grub_util_fd_write): New proto.
2012-01-29 18:16:48 +01:00
Vladimir 'phcoder' Serbinenko 87cf97447e * include/grub/list.h (grub_list_remove): Don't crash if element is
removed twice.
2012-01-29 18:09:53 +01:00
Vladimir 'phcoder' Serbinenko ca8c0baf25 Rename ofconsole to console.
* grub-core/commands/terminal.c (handle_command): Handle ofconsole
	as sysnonym to console.
	* grub-core/term/ieee1275/ofconsole.c: Renamed to ..
	* grub-core/term/ieee1275/console.c: ... this. All users updated.
	Rename grub_ofconsole_ to grub_console_. All users updated
	(grub_console_term_output): Rename "ofconsole" to "console".
	* grub-core/term/terminfo.c (grub_cmd_terminfo): Handle "ofconsole"
	as "console".
2012-01-29 17:01:27 +01:00
Vladimir 'phcoder' Serbinenko 64c8b8f64c * grub-core/loader/i386/pc/plan9.c (grub_cmd_plan9): Remove PXE
handling.
	* include/grub/disk.h (grub_disk_dev_id): Remove obsolete
	GRUB_DISK_DEVICE_UUID_ID, GRUB_DISK_DEVICE_PXE_ID and
	GRUB_DISK_DEVICE_FILE_ID.
2012-01-29 16:34:39 +01:00
Vladimir 'phcoder' Serbinenko f6c434d581 * grub-core/kern/partition.c (grub_partition_get_name): Simplify logic
and improve performance.
2012-01-29 16:24:07 +01:00
Vladimir 'phcoder' Serbinenko 5858b42d07 * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_encode_devname): Fix
missing ieee1275/ prefix on whole disk.
2012-01-29 16:22:23 +01:00
Vladimir 'phcoder' Serbinenko 4ed3c26b0d * include/grub/powerpc/ieee1275/util/biosdisk.h: Remove.
* include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
2012-01-29 16:20:41 +01:00
Vladimir 'phcoder' Serbinenko df71143ea1 * grub-core/fs/cpio.c (handle_symlink): Fix a bug. 2012-01-29 15:36:06 +01:00
Vladimir 'phcoder' Serbinenko 076e7c0fda Merge common RAID and LVM logic to an abstract diskfilter.
Add LDM support using the same framework.

	* Makefile.util.def (libgrubkern): Add grub-core/disk/ldm.c,
	grub-core/disk/diskfilter.c and grub-core/partmap/gpt.c.
	(libgrubmods): Remove grub-core/disk/raid.c and
	grub-core/partmap/gpt.c.
	* grub-core/Makefile.core.def (ldm): New module.
	(raid): Renamed to diskfilter. All users updated.
	* grub-core/disk/raid.c: Moved to ...
	* grub-core/disk/diskfilter.c: ... here.
	* grub-core/disk/diskfilter.c: Rename grub_raid_ to grub_diskfilter_.
	(lv_num): New var.
	(find_array): Renamed to ...
	(find_lv): ... this. Support multi-LV. Skip nameless LVs
	(grub_is_array_readable): Renamed to ...
	(grub_is_lv_readable): ... this. Support multinode hierarchy.
	(insert_array): New argument id.
	(is_node_readable): New function.
	(scan_device): Rename to ...
	(scan_disk): .. this. Restrict to one disk.
	(scan_devices): New function.
	(grub_diskfilter_iterate): Support multi-LV.
	Skip invisible and nameless LVs.
	(grub_diskfilter_memberlist): Support multi-LV.
	(grub_diskfilter_read_node): New function.
	(grub_raid_read): Most of logic moved to ...
	(read_segment): ... here
	(read_lv): New function.
	(grub_diskfilter_get_vg_by_uuid): New function.
	(grub_diskfilter_make_raid): Likewise.
	* grub-core/disk/ldm.c: New file.
	* grub-core/disk/lvm.c (vg_list): Removed.
	(lv_count): Likewise.
	(scan_depth): Likewise.
	(is_lv_readable): Likewise.
	(grub_lvm_getvalue): Advance pointer past the number.
	(find_lv): Removed.
	(do_lvm_scan): Refactored into ...
	(grub_lvm_detect): ... this. Support raid.
	(grub_lvm_iterate): Removed.
	(grub_lvm_memberlist): Likewise.
	(grub_lvm_open): Likewise.
	(grub_lvm_close): Likewise.
	(read_lv): Likewise.
	(read_node): Likewise.
	(is_node_readable): Likewise.
	(is_lv_readable): Likewise.
	(grub_lvm_read): Likewise.
	(grub_lvm_write): Likewise.
	(grub_lvm_dev): Use diskfilter
	(GRUB_MOD_INIT): Likewise.
	(GRUB_MOD_FINI): Likewise.
	* grub-core/disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Use
	new interface.
	* grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Likewise.
	* grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise.
	* grub-core/disk/raid5_recover.c (grub_raid5_recover): Use
	grub_diskfilter_read_node.
	Fix a bug with xor.
	* grub-core/disk/raid6_recover.c (grub_raid6_recover): Use
	grub_diskfilter_read_node.
	Support GRUB_RAID_LAYOUT_MUL_FROM_POS.
	* grub-core/kern/disk.c (grub_disk_dev_list): Make global.
	(grub_disk_dev_iterate): Move from here...
	* include/grub/disk.h (grub_disk_dev_iterate): ... to here. Inlined.
	* grub-core/kern/emu/hostdisk.c (grub_hostdisk_find_partition_start):
	Make global.
	(grub_hostdisk_find_partition_start): Likewise.
	(grub_hostdisk_os_dev_to_grub_drive): New function.
	(grub_util_biosdisk_get_osdev): Check that disk is biosdisk.
	* grub-core/kern/emu/hostdisk.c (make_device_name): Move to ...
	* util/getroot.c (make_device_name): ... here.
	* grub-core/kern/emu/hostdisk.c (grub_util_get_dm_node_linear_info):
	Move to ...
	* util/getroot.c (grub_util_get_dm_node_linear_info): ...here.
	* grub-core/kern/emu/hostdisk.c
	(convert_system_partition_to_system_disk): Move to ...
	* util/getroot.c (convert_system_partition_to_system_disk): ...here.
	* grub-core/kern/emu/hostdisk.c (device_is_wholedisk): Move to ...
	* util/getroot.c (device_is_wholedisk): ... here.
	* grub-core/kern/emu/hostdisk.c (find_system_device): Move to ...
	* util/getroot.c (find_system_device): ... here.
	* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_present):
	Move to ...
	* util/getroot.c (grub_util_biosdisk_is_present): ...here.
	* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev):
	Move to ...
	* util/getroot.c (grub_util_biosdisk_get_grub_dev): ... here.
	Handle LDM.
	* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy):
	Move to ...
	* util/getroot.c (grub_util_biosdisk_is_floppy): ... here.
	* grub-core/partmap/gpt.c (grub_gpt_partition_map_iterate): Made global.
	* include/grub/disk.h (grub_disk_dev_id): Replaced RAID and LVM with
	DISKFILTER.
	* include/grub/raid.h: Renamed to ...
	* include/grub/diskfilter.h: ... this.
	* include/grub/diskfilter.h: Rename grub_raid_* to grub_diskfilter_*
	(GRUB_RAID_LAYOUT_*): Make into array.
	(GRUB_RAID_LAYOUT_MUL_FROM_POS): New value.
	(grub_diskfilter_vg): New struct.
	(grub_diskfilter_pv_id): Likewise.
	(grub_raid_member): Removed.
	(grub_raid_array): Likewise.
	(grub_diskfilter_pv): New struct.
	(grub_diskfilter_lv): Likewise.
	(grub_diskfilter_segment): Likewise.
	(grub_diskfilter_node): Likewise.
	(grub_diskfilter_get_vg_by_uuid): New proto.
	(grub_raid_register): Inline.
	(grub_diskfilter_unregister): Likewise.
	(grub_diskfilter_make_raid): New proto.
	(grub_diskfilter_vg_register): Likewise.
	(grub_diskfilter_read_node): Likewise.
	(grub_diskfilter_get_pv_from_disk) [GRUB_UTIL]: Likewise.
	* include/grub/emu/hostdisk.h (grub_util_get_ldm): New proto.
	(grub_util_is_ldm): Likewise.
	(grub_util_ldm_embed) [GRUB_UTIL]: Likewise.
	(grub_hostdisk_find_partition_start): Likewise.
	(grub_hostdisk_os_dev_to_grub_drive): Likewise.
	* include/grub/gpt_partition.h (GRUB_GPT_PARTITION_TYPE_LDM):
	New definition.
	(grub_gpt_partition_map_iterate): New proto.
	* include/grub/lvm.h (grub_lvm_vg): Removed.
	(grub_lvm_pv): Likewise.
	(grub_lvm_lv): Likewise.
	(grub_lvm_segment): Likewise.
	(grub_lvm_node): Likewise.
	* util/getroot.c [...]
	* util/grub-probe.c (probe_raid_level): Handle diskfilter.
	(probe_abstraction): Likewise.
	* util/grub-setup.c (setup): Remove must_embed. Support LDM.
	(main): Remove dead logic.
2012-01-29 14:28:01 +01:00
Vladimir 'phcoder' Serbinenko 8a7f9b9c50 Simplify root device discover and don't fail when trying to open
incorrect devices.

	* grub-core/disk/efi/efidisk.c (get_diskname_from_path_real): New
	function.
	(get_diskname_from_path): Likewise.
	(grub_efidisk_get_device_name): Use get_diskname_from_path instead
	of iterating.
2012-01-28 13:26:20 +01:00
Vladimir 'phcoder' Serbinenko 30545b8567 * grub-core/Makefile.core.def (setpci): Enable on all PCI platforms. 2012-01-27 13:52:48 +01:00
Vladimir 'phcoder' Serbinenko 28ea58cf69 * grub-core/fs/zfs/zfs.c (nvlist_find_value): Check that we don't go
pastthe end.
2012-01-27 13:50:21 +01:00
Vladimir 'phcoder' Serbinenko 692dabca8c * util/grub-install.in: Add missing \.
Reported by: gentoofan
2012-01-27 13:12:00 +01:00
Vladimir 'phcoder' Serbinenko f6e4ea709f * grub-core/fs/squash4.c (xz_decompress): Fix return value.
(direct_read): Use correct compressed size.
	(grub_squash_read_data): Likewise.
2012-01-27 13:09:57 +01:00
Vladimir 'phcoder' Serbinenko ca1dacea3c * docs/grub.texi (Platform limitations): New section.
(Platform-specific operations): Likewise.
	* docs/grub-dev.texi (Porting): Likewise.
2012-01-26 19:40:47 +01:00
Vladimir 'phcoder' Serbinenko 7626111087 IEEE1275 disk write support.
* grub-core/kern/ieee1275/ieee1275.c (grub_ieee1275_write): Make buffer
	const void *.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_write): Likewise.
	* grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_read): Move open
	and seek loginc to ...
	(grub_ofdisk_prepare): ... here.
	(grub_ofdisk_write): Implement.
2012-01-25 18:32:08 +01:00
Vladimir 'phcoder' Serbinenko fc36d6038b ARC disk write support.
* grub-core/disk/arc/arcdisk.c (handle_writable): New var.
	(reopen): New argument writable. All users updated.
	Handle required access mode.
	(grub_arcdisk_write): Implement.
	* include/grub/arc/arc.h (grub_arc_file_access): New enum.
	(grub_arc_firmware_vector): Make buffer to write a const buffer.
2012-01-25 16:13:34 +01:00
Vladimir 'phcoder' Serbinenko e06c2e7abc * grub-core/fs/btrfs.c (grub_btrfs_device): New field size.
(read_sblock): Don't attempt to read superblocks outside the disk size.
2012-01-25 15:10:56 +01:00
Vladimir 'phcoder' Serbinenko ff4479581d * grub-core/fs/nilfs2.c (grub_nilfs2_load_sb): Use device size from
first superblock to find the second one when possible.
2012-01-25 15:09:00 +01:00
Vladimir 'phcoder' Serbinenko 9e88df393a * util/grub-install.in: Fix an ARC bug.
Print a warning if no platform-specific setup is available.
2012-01-25 15:06:27 +01:00
Vladimir 'phcoder' Serbinenko bb26e4ff16 Use static allocation rather than scratch pointer in reed_solomon.
It decreases its size significantly and avoids a variable in .text.

	* grub-core/lib/reed_solomon.c (scratch): Removed.
	(chosenstat): New const or static array.
	(sigma): Likewise.
	(errpot): Likewise.
	(errpos): Likewise.
	(sy): Likewise.
	(mstat): Likewise.
	(errvals): Likewise.
	(eqstat): Likewise.
	(pol_evaluate): Replace x with log_x argument. All users updated.
	(syndroms): Removed.
	(gauss_solve): Use statically allocated arrays.
	(rs_recover): Likewise.
	Calculate syndroms directly.
	(decode_block): Use statically allocated arrays.
	(grub_reed_solomon_add_redundancy) [TEST]: Fix -DTEST compilation.
	(main) [TEST]: Allow -DTEST -DSTANDALONE.
2012-01-24 14:49:31 +01:00
Vladimir 'phcoder' Serbinenko 2e13ede59e Eliminate fixed limit on reed solomon decoder length.
* grub-core/boot/i386/pc/lnxboot.S: Scan for multiboot signature
	rather than hardcoding the address.
	* grub-core/boot/i386/pc/startup_raw.S: Add new data field
	no_reed_solomon_length.
	Move gate_a20 to no-reed-solomon part.
	Don't force a particular size of no reed-solomon part.
	* include/grub/offsets.h (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART):
	Removed.
	(GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_LENGTH): New define.
	* util/grub-setup.c (setup): Read no_rs_length from the image itself.
2012-01-24 14:39:29 +01:00