* util/i386/pc/grub-setup.c: Include `<assert.h>'.
(struct boot_blocklist): Move from here ...
* include/grub/i386/pc/boot.h [ASM_FILE]
(struct grub_boot_blocklist): ... to here. Update all users.
(setup): Only initialize `start' member of `first_block'
structure. Add assert() calls to verify the other members.
* util/i386/pc/grub-mkimage.c: Include `<assert.h>'.
(generate_image): Fix broken blocklist length initialization.
Add assert() call to verify blocklist `segment' field.
carles [Sun, 3 Jan 2010 18:50:51 +0000 (19:50 +0100)]
2010-01-03 Carles Pina i Estany <carles@pina.cat>
* commands/acpi.c (GRUB_MOD_INIT): Capitalise some words from help.
* commands/efi/loadbios.c (GRUB_MOD_INIT): Capitalise BIOS.
* commands/i386/pc/drivemap.c (GRUB_MOD_INIT): Remove space. Add
full stop.
* commands/loadenv.c (GRUB_MOD_INIT): Remove command name from
summary. Gettextizze the strings.
* commands/probe.c (grub_cmd_probe): Capitalise UUID and FS.
* commands/xnu_uuid.c (GRUB_MOD_INIT): Capitalise XNU.
* disk/loopback.c (grub_arg_options): Capitalise first letter. Add
full stop.
(GRUB_MOD_INIT): Remove command name from summary.
* hello/hello.c (GRUD_MOT_INIT): Add missing full stop. Improve the
summary.
* loader/i386/bsd.c (grub_arg_option): Capitalise CDROM.
* term/i386/pc/serial.c (options): Add full stops.
(GRUB_MOD_INIT): Remove command name from the summary.
carles [Fri, 1 Jan 2010 17:58:00 +0000 (18:58 +0100)]
2010-01-01 Carles Pina i Estany <carles@pina.cat>
* commands/help.c: Include `grub/mm.h' and `grub/normal.h'.
(grub_cmd_help): Print the cmd->name before the cmd->summary. Cut the
string using string width.
* normal/menu_text.c (grub_print_message_indented): Use
grub_print_spaces and not print_spaces.
(print_timeout): Likewise.
(print_spaces): Move to...
* include/grub/term.h: ... here. Change the name to grub_print_spaces.
Robert Millan [Tue, 29 Dec 2009 14:04:18 +0000 (14:04 +0000)]
2009-12-29 Robert Millan <rmh.grub@aybabtu.com>
* configure.ac: Check for TARGET_CFLAGS initialization before we
initialize it ourselves (sigh).
Move a few modifications to TARGET_CFLAGS to be unconditional
(extra warning flags, loop alignment, i386 CPU extensions, GCC 4.4
eh_frame)
* gettext/gettext.c (grub_gettext_delete_list): Add `void' argument.
* term/i386/pc/at_keyboard.c
(keyboard_controller_wait_untill_ready): Likewise.
(keyboard_controller_led): Rename `led_status' paramter to avoid
name conflict.
carles [Sat, 26 Dec 2009 11:06:35 +0000 (12:06 +0100)]
2009-12-27 Carles Pina i Estany <carles@pina.cat>
* video/readers/jpeg.c (cmd): Declare.
(grub_cmd_jpegtest): Use `grub_command_t' type.
(GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
Assign to `cmd'.
(GRUB_MOD_FINI): Use `cmd' to unregister.
* video/readers/png.c (cmd): Declare.
(grub_cmd_pngtest): Use `grub_command_t' type.
(GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
Assign to `cmd'.
(GRUB_MOD_FINI): Use `cmd' to unregister.
* video/readers/tga.c (cmd): Declare.
(grub_cmd_tgatest): Use `grub_command_t' type.
(GRUB_MOD_INIT): Fix arguments passed to `grub_register_command'.
Assign to `cmd'.
(GRUB_MOD_FINI): Use `cmd' to unregister.
2009-12-25 Vladimir Serbinenko <phcoder@gmail.com>
* kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions):
Ignore return status if CF is cleared.
(grub_biosdisk_get_diskinfo_standard): Likewise.
Robert Millan [Fri, 25 Dec 2009 21:38:09 +0000 (21:38 +0000)]
2009-12-25 Robert Millan <rmh.grub@aybabtu.com>
* term/i386/pc/at_keyboard.c
(keyboard_controller_wait_untill_ready): New function.
(grub_keyboard_controller_write, grub_keyboard_controller_read)
(keyboard_controller_led): Use keyboard_controller_wait_untill_ready()
for keyboard polling, rather than duplicate the same loop. This
saves a few bytes in code size.
Robert Millan [Fri, 25 Dec 2009 20:33:41 +0000 (20:33 +0000)]
2009-12-25 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/at_keyboard.h (NUM_LOCK, SCROLL_LOCK): New macros.
* term/i386/pc/at_keyboard.c (KEYBOARD_STATUS_NUM_LOCK)
(KEYBOARD_LED_SCROLL, KEYBOARD_LED_NUM, KEYBOARD_LED_CAPS): New macros.
(led_status): New variable.
(keyboard_controller_led): New function.
(grub_at_keyboard_getkey_noblock): Handle num lock and scroll lock,
update led status for caps lock, num lock and scroll lock.
Robert Millan [Thu, 24 Dec 2009 14:15:32 +0000 (14:15 +0000)]
2009-12-24 Robert Millan <rmh.grub@aybabtu.com>
* include/multiboot.h (struct multiboot_aout_symbol_table)
(struct multiboot_elf_section_header_table): New structure
declarations (stolen from GRUB Legacy).
(struct multiboot_info): Replace opaque `syms' with a.out and ELF
table information.
(multiboot_aout_symbol_table_t, multiboot_elf_section_header_table_t)
(multiboot_info_t, multiboot_memory_map_t, multiboot_module_t): New
type aliases.
Robert Millan [Thu, 24 Dec 2009 14:09:06 +0000 (14:09 +0000)]
2009-12-24 Robert Millan <rmh.grub@aybabtu.com>
For consistency with [multiboot]/docs/boot.S.
* include/multiboot.h (MULTIBOOT_MAGIC): Rename from this ...
(MULTIBOOT_HEADER_MAGIC): ... to this. Update all users.
(MULTIBOOT_MAGIC2): Rename from this ...
(MULTIBOOT_BOOTLOADER_MAGIC): ... to this. Update all users.
2009-12-22 Vladimir Serbinenko <phcoder@gmail.com>
* commands/memrw.c (cmd_read_byte, cmd_read_word, cmd_read_dword):
Use grub_extcmd_t. All users updated.
(options): New variable.
(grub_cmd_read): Restructure for readability. Support "-v" option.
(grub_cmd_write): Restructure for readability.
Felix Zielcke [Tue, 22 Dec 2009 11:12:51 +0000 (12:12 +0100)]
2009-12-22 Felix Zielcke <fzielcke@z-51.de>
* genmk.rb (class SCRIPT): Use sed to substitute @pkglib_DATA@
with the actual contents of the correspondending make variable.
* util/grub-mkrescue.in (pkglib_DATA): New variable.
(process_input_dir): Copy all $pkglib_DATA files instead of explicitly
specifying `*.lst' and `efiemu??.o'
Robert Millan [Mon, 21 Dec 2009 20:22:12 +0000 (20:22 +0000)]
2009-12-21 Robert Millan <rmh.grub@aybabtu.com>
* util/mkisofs/msdos_partition.h: New file (based on
include/grub/msdos_partition.h).
* util/mkisofs/mkisofs.c (use_protective_msdos_label): New variable.
(OPTION_PROTECTIVE_MSDOS_LABEL): New macro.
(ld_options, main): Recognize --protective-msdos-label.
* util/mkisofs/mkisofs.h (use_protective_msdos_label): New declaration.
* util/mkisofs/write.c: Include `"msdos_partition.h"'.
(padblock_write): If `use_protective_msdos_label' is set, patch a
protective DOS-style label in the output image.
* util/grub-mkrescue.in: Use --protective-msdos-label.
carles [Sun, 20 Dec 2009 23:32:15 +0000 (23:32 +0000)]
2009-12-20 Carles Pina i Estany <carles@pina.cat>
* include/grub/auth.h: Include `<grub/i18n.h>'.
(GRUB_GET_PASSWORD): Gettextizze string.
* include/grub/normal.h (STANDARD_MARGIN): New macro, moved from
menu_text.c.
(grub_utf8_to_ucs4_alloc): Fix indentation.
(grub_print_ucs4): Likewise.
(grub_getstringwidth): Likewise.
(print_message_indented): New declaration.
* normal/auth.c: Include `<grub/i18n.h>'.
(grub_auth_check_authentication): Gettexttize string.
* normal/cmdline.c: Include `<grub/i18n.h>'.
(grub_cmdline_get): Gettextizze.
* normal/color.c: Include `<grub/i18n.h>'.
(grub_parse_color_name_pair): Gettexttize strings.
* normal/main.c (grub_normal_reader_init): Cleanup gettexttized
string (use `print_message_indented').
* normal/menu_text.c (STANDARD_MARGIN): Moved from here to
`include/grub/normal.h'.
(print_message_indented): Renamed to ...
(grub_print_message_indented): ... this. Remove `static' qualifer (now
used in normal/main.c).
(print_message): Use `grub_print_message_indented' instead of
`print_message_indented'.
(print_timeout): Likewise.
* normal/misc.c: Include `<grub/term.h>' and `<grub/i18n.h>'.
(grub_normal_print_device_info): Gettexttize strings.
* po/POTFILES: Add `auth.c', `color.c' and `misc.c'.
carles [Sat, 19 Dec 2009 00:05:41 +0000 (00:05 +0000)]
2009-12-19 Carles Pina i Estany <carles@pina.cat>
* normal/menu_text.c (STANDARD_MARGIN): New macro.
(print_message_indented): Add `margin_left' and `margin_right'
parameters.
(print_message): Update `print_message_indented' calls. Adds '\n' to the
strings.
(print_timeout): Use `print_message_indented' to print the message.
Deletes `second_stage' parameter.
(run_menu): Update `print_timeout' calls.
2009-12-18 Vladimir Serbinenko <phcoder@gmail.com>
Fix console palette on OpenFirmware.
* term/ieee1275/ofconsole.c (MAX): Removed.
(colors): Redone based on VGA palette.
(grub_ofconsole_setcolor): Discard brightness bit since only 8
colors are supported.
(grub_ofconsole_init_output): Use ARRAY_SIZE instead of hardcoded size.
2009-12-18 Vladimir Serbinenko <phcoder@gmail.com>
Fix potential EfiEmu double prepare.
* efiemu/main.c (prepared): New variable
(grub_efiemu_unload): Set prepare to '0'.
(grub_efiemu_prepare): Return if already prepared. Set prepared.
set_virtual_address_map support.
* include/grub/efi/efi.h (grub_efi_set_virtual_address_map): New
prototype.
* include/grub/efiemu/efiemu.h (grub_efiemu_write_sym_markers): New
prototype.
(grub_efiemu_crc32): Likewise.
(grub_efiemu_crc64): Likewise.
(grub_efiemu_set_virtual_address_map): Likewise.
* include/grub/autoefi.h (grub_autoefi_exit_boot_services):
New definition.
(grub_autoefi_set_virtual_address_map): Likewise.
* kern/efi/efi.c (grub_efi_set_virtual_address_map): New function.
* loader/i386/xnu.c (grub_xnu_boot): Call set_virtual_address_map.
Restructure flow to accomodate it.
* efiemu/prepare.c (grub_efiemu_prepare): Support set_virtual_address_map.
(grub_efiemu_crc): Recompute CRC32.
* efiemu/runtime/efiemu.c (ptv_relocated): Renamed to ...
(efiemu_ptv_relocated): ... this. Made global. All users updated.
* efiemu/symbols.c (relocated_handle): New variable.
(grub_efiemu_free_syms): Free relocated_handle.
(grub_efiemu_alloc_syms): Allocate relocated_handle.
(grub_efiemu_write_sym_markers): New function.
(grub_efiemu_set_virtual_address_map): Likewise.
Newer XNU parameters.
* include/grub/i386/xnu.h (GRUB_XNU_BOOTARGS_VERMINOR): Change to 5.
* include/grub/xnu.h (grub_xnu_extheader): Add nameaddr and namesize.
(grub_xnu_fill_devicetree): New prototype.
(grub_xnu_heap_real_start): New variable.
* loader/xnu.c (get_name_ptr): New function.
(grub_xnu_load_driver): Fill namelen and name.
64-bit xnu support.
* conf/i386-efi.rmk (xnu_mod_SOURCES): Add 'loader/macho32.c'
and 'loader/macho64.c'.
* conf/i386-pc.rmk: Likewise.
* conf/x86_64-efi.rmk: Likewise.
* include/grub/i386/macho.h (grub_macho_thread64): New structure.
* include/grub/xnu.h (grub_xnu_is_64bit): New variable.
* include/grub/macho.h (grub_macho_segment64): New structure.
* include/grub/machoload.h (grub_macho32_size): Renamed from ...
(grub_macho_size32): ... to this.
(grub_macho32_get_entry_point): Renamed from ...
(grub_macho_get_entry_point32): ... to this.
(grub_macho_contains_macho64): New prototype.
(grub_macho_size64): Likewise.
(grub_macho_get_entry_point64): Likewise.
(grub_macho32_load): Renamed from ...
(grub_macho_load32): ... to this.
(grub_macho32_filesize): Renamed from ...
(grub_macho_filesize32): ... to this.
(grub_macho32_readfile): Renamed from ...
(grub_macho_readfile32): ... to this.
(grub_macho_filesize64): New prototype.
(grub_macho_readfile64): Likewise.
(grub_macho_parse32): Likewise.
(grub_macho_parse64): Likewise.
* loader/macho.c: Split into ...
* loader/machoXX.c: ... and this. Replace 32 with XX.
* loader/macho32.c: New file.
* loader/macho64.c: Likewise.
* loader/xnu.c (grub_xnu_is_64bit): New variable.
(grub_cmd_xnu_kernel): Make 32-bit only.
(grub_cmd_xnu_kernel64): New function.
(grub_xnu_load_driver): Support Mach-O 64.
(grub_cmd_xnu_mkext): Likewise.
* util/grub.d/30_os-prober.in (osx_entry): New function.
Generate entries for 64-bit boot too.
Eliminate ad-hoc tree format in XNU and EfiEmu.
* efiemu/main.c (grub_efiemu_prepare): Update comment.
* efiemu/pnvram.c: Rewritten to use environment variables.
All users updated.
Inline utf16_to_utf8.
* kern/misc.c (grub_utf16_to_utf8): Move from here ...
* include/grub/charset.h (grub_utf16_to_utf8): ... to here. Inlined.
All users updated.
* include/grub/misc.h (grub_utf16_to_utf8): Removed.
* bus/usb/usb.c (grub_usb_get_string): Move from here ...
* commands/usbtest.c (grub_usb_get_string): ... move here.
(usb_print_str): Fix error handling.
* include/grub/usb.h (grub_usb_get_string): Remove.
UTF-8 to UTF-16 transformation.
* conf/common.rmk (pkglib_MODULES): Add charset.mod
(charset_mod_SOURCES): New variable.
(charset_mod_CFLAGS): Likewise.
(charset_mod_LDFLAGS): Likewise.
* include/grub/utf.h: New file.
* lib/utf.c: New file. (Based on grub_utf8_to_ucs4 from kern/misc.c)