2011-07-05 Vladimir Serbinenko VGA text support in qemu-mips * grub-core/Makefile.core.def (kernel): Add term/i386/pc/vga_text.c, term/i386/vga_common.c and kern/vga_init.c on qemu-mips. * grub-core/kern/mips/qemu_mips/init.c (grub_machine_init): Init vga text. * grub-core/kern/i386/qemu/init.c: Renamed to ... * grub-core/kern/vga_init.c: ... this. * grub-core/kern/vga_init.c (VGA_ADDR) [__mips__]: Adjust. (grub_qemu_init_cirrus) [__mips__]: Skip PCI and adjust the I/O base. * grub-core/term/i386/pc/vga_text.c (VGA_TEXT_SCREEN) [__mips__]: Adjust. * include/grub/vga.h [GRUB_MACHINE_MIPS_QEMU_MIPS]: Declare GRUB_MACHINE_PCI_IO_BASE. 2011-07-05 Vladimir Serbinenko MIPS qemu flash support. * grub-core/boot/mips/startup_raw.S [GRUB_MACHINE_MIPS_QEMU_MIPS]: Check magic. * grub-core/kern/mips/qemu_mips/init.c (probe_mem): New function. (grub_machine_init): Probe memory if its size isn't known. * util/grub-mkimage.c (image_targets): Add flash targets. (generate_image): Handle flash targets. 2011-07-05 Vladimir Serbinenko MIPS qemu at_keyboard support. * gentpl.py (videoinkernel): Add qemu-mips. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Add necessary headers. * grub-core/Makefile.core.def (kernel): Add at_keyboard and layout. * grub-core/kern/mips/qemu_mips/init.c (grub_machine_init): Init new modules. * grub-core/term/at_keyboard.c (grub_keyboard_controller_init) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Don't consider original set. * grub-core/term/serial.c (grub_serial_register) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Make com0 explicitly active. 2011-07-05 Vladimir Serbinenko CMOS support on sparc. * gentpl.py (cmos): Add powerpc and sparc. * grub-core/Makefile.core.def (datetime): Add lib/ieee1275/cmos.c on powerpc and sparc. * grub-core/lib/cmos_datetime.c (grub_get_datetime) [__powerpc__ || __sparc__]: Rename to grub_get_datetime_cmos. (grub_set_datetime) [__powerpc__ || __sparc__]: Likewise to grub_set_datetime_cmos. * grub-core/lib/ieee1275/cmos.c: New file. * grub-core/lib/ieee1275/datetime.c (no_ieee1275_rtc): New vaiable. (find_rtc): Set no_ieee1275_rtc on error. (grub_get_datetime): Call grub_get_datetime_cmos on error. (grub_set_datetime): Call grub_set_datetime_cmos on error. * include/grub/cmos.h (grub_cmos_read): Return grub_err_t since it may fail. Move value to argument. All users updated (grub_cmos_write): Likewise. (grub_cmos_read) [__powerpc__ || __sparc__]: Rewritten. (grub_cmos_write) [__powerpc__ || __sparc__]: Likewise. * include/grub/datetime.h [__powerpc__ || __sparc__]: Declare grub_get_datetime_cmos and grub_set_datetime_cmos. 2011-07-02 Grégoire Sutre * util/grub-mkconfig.in: Use @PACKAGE@ instead of hardcoded name when sourcing grub-mkconfig_lib. * util/update-grub_lib.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. 2011-06-28 Colin Watson * grub-core/term/gfxterm.c (grub_virtual_screen_setup): Use default_bg_color rather than black. (grub_gfxterm_fullscreen): Likewise. (grub_gfxterm_background_color_cmd): Save new background color in default_bg_color. 2011-06-27 Vladimir Serbinenko * grub-core/Makefile.core.def (chain): Fix coreboot filename. 2011-06-27 Vladimir Serbinenko * grub-core/disk/pata.c (grub_pata_initialize) [QEMU_MIPS]: Fix a mismerge. 2011-06-27 Vladimir Serbinenko Chainloading on coreboot support. * grub-core/Makefile.core.def (chain): Add coreboot. * grub-core/loader/i386/coreboot/chainloader.c: New file. 2011-06-27 Vladimir Serbinenko * grub-core/loader/i386/bsd.c (grub_bsd_load): Handle relocator failure if it happens. 2011-06-27 Vladimir Serbinenko Implement time command. * grub-core/Makefile.core.def (time): New module. * grub-core/commands/time.c: New file. * grub-core/script/parser.y: Remove "time" keyword. * grub-core/script/yylex.l: Likewise. 2011-06-27 Vladimir Serbinenko * include/grub/loader.h (grub_loader_unregister_preboot_hook): Export. 2011-06-27 Vladimir Serbinenko * grub-core/lib/relocator.c (malloc_in_range): Fix a memory corruption when handling leftovers. 2011-06-27 Vladimir Serbinenko * util/ieee1275/grub-ofpathname.c (main): Handle --help and --version so that help2man doesn't fail. 2011-06-27 Vladimir Serbinenko * grub-core/net/drivers/ieee1275/ofnet.c (send_card_buffer) Use right type in pointers on sparc64. (get_card_packet): Likewise. 2011-06-27 Colin Watson * grub-core/commands/videoinfo.c (hook): Indicate current video mode with `*'. (grub_cmd_videoinfo): Fetch current video mode. 2011-06-27 Vladimir Serbinenko * grub-core/disk/scsi.c (grub_scsi_read): Limit SCSI reads to 32K because of underlying system restrictions. 2011-06-27 Vladimir Serbinenko * util/grub-mkrescue.in: Rename "ata" to "pata" and add ahci when necessary. 2011-06-27 Vladimir Serbinenko Coreboot video support. * grub-core/Makefile.core.def (vga): Extend to coreboot and multiboot. (vbe): Likewise. * grub-core/kern/i386/coreboot/startup.S: Include int.S. * grub-core/kern/i386/pc/startup.S (grub_bios_interrupt): Moved from here ... * grub-core/kern/i386/int.S: ... here. * grub-core/video/i386/pc/vbe.c: Updated includes. * grub-core/video/i386/pc/vga.c: Likewise. * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_SCRATCH_ADDR): New definition. (GRUB_MEMORY_MACHINE_SCRATCH_SEG): Likewise. (GRUB_MEMORY_MACHINE_SCRATCH_SIZE): Likewise. * include/grub/i386/pc/int.h (GRUB_CPU_INT_FLAGS_DEFAULT) [!PCBIOS]: Disable interrupts. * include/grub/i386/pc/vga.h: Removed. All users updated. 2011-06-27 Vladimir Serbinenko * grub-core/disk/ahci.c (grub_ahci_readwrite_real): Use proper definitions for dprintf. * grub-core/disk/pata.c (grub_pata_readwrite): Likewise. 2011-06-27 Vladimir Serbinenko * grub-core/net/drivers/ieee1275/ofnet.c (send_card_buffer): Fix prototype. (get_card_packet): Likewise. 2011-06-26 Yves Blusseau Display the path of the file when file is not found * grub-core/fs/fat.c: Display the filename when file is not found. * grub-core/fs/fshelp.c: Likewise. * grub-core/fs/hfs.c: Likewise. * grub-core/fs/jfs.c: Likewise. * grub-core/fs/minix.c: Likewise. * grub-core/fs/ufs.c: Likewise. * grub-core/fs/btrfs.c: Likewise. * grub-core/commands/i386/pc/play.c: Likewise. 2011-06-26 Szymon Janc * grub-core/commands/cmp.c (grub_cmd_cmp): Remove unnecessary NULL pointer checks before calling grub_free(). * grub-core/commands/wildcard.c (match_devices): Likewise. * grub-core/commands/wildcard.c (match_files): Likewise. * grub-core/fs/cpio.c (grub_cpio_dir): Likewise. * grub-core/fs/cpio.c (grub_cpio_open): Likewise. * grub-core/fs/udf.c (grub_udf_read_block): Likewise. * grub-core/fs/xfs.c (grub_xfs_read_block): Likewise. * grub-core/loader/efi/chainloader.c (grub_cmd_chainloader): Likewise. * grub-core/normal/cmdline.c (grub_cmdline_get): Likewise. * grub-core/script/yylex.l (grub_lexer_unput): Likewise. * grub-core/video/readers/jpeg.c (grub_video_reader_jpeg): Likewise. * grub-core/video/readers/png.c (grub_png_output_byte): Likewise. 2011-06-25 Patrick * grub-core/kern/main.c (grub_load_normal_mode): Correct the comment. 2011-06-25 Vladimir Serbinenko * grub-core/net/i386/pc/pxe.c (grub_pxe_recv): Fix declaration. (grub_pxe_send): Likewise. (GRUB_MOD_INIT): Fix types. 2011-06-24 Szymon Janc * grub-core/io/xzio.c: Fix code style issues 2011-06-24 Vladimir Serbinenko 2011-06-24 Manoel Rebelo Abranches Network infrastructure. The ARP protocol was made by Paulo Pinatti * include/grub/net/arp.h: New file. * include/grub/net/device.h: Likewise. * include/grub/net/ethernet.h: Likewise. * include/grub/net/ip.h: Likewise. * include/grub/net/netbuff.h: Likewise. * include/grub/net/tftp.h: Likewise. * include/grub/net/udp.h: Likewise. * include/grub/ieee1275/ofnet.h: Likewise. * include/grub/emu/export.h: Likewise. * include/grub/net.h: Likewise. * grub-core/net/arp.c: Likewise. * grub-core/net/ethernet.c: Likewise. * grub-core/net/ip.c: Likewise. * grub-core/net/udp.c: Likewise. * grub-core/net/tftp.c: Likewise. * grub-core/net/netbuff.c: Likewise. * grub-core/net/net.c: Likewise. * grub-core/net/drivers/emu/emunet.c: Likewise. * grub-core/net/drivers/ieee1275/ofnet.c: Likewise. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Add net.h, ofnet.h and export.h. * grub-core/Makefile.core.def (net): New module. (tftp): Likewise. (ofnet): Likewise. (emunet): Likewise. * grub-core/commands/ls.c (grub_ls_list_devices) [!GRUB_UTIL]: List network protocols. * grub-core/kern/device.c (grub_net_open) : New variable. (grub_device_open): Handle network device. (grub_device_close): Likewise. * grub-core/kern/file.c (grub_file_net_seek) : New variable. (grub_grubnet_fini): Likewise. (grub_file_seek): Seek in network device. * grub-core/kern/fs.c (grub_fs_probe): Handle network devices. * grub-core/kern/ieee1275/init.c (grub_machine_set_prefix): Handle network root. (grub_machine_fini): Call grub_grubnet_fini. * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_parse_args): Handle network. (grub_ieee1275_get_aliasdevname): New function. * grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_get_mbi_size): Add unofficial Solaris network info. (grub_multiboot_make_mbi): Likewise. * grub-core/fs/i386/pc/pxe.c: Moved from here ... * grub-core/net/i386/pc/pxe.c: ...here. Adapted for new design. * include/grub/device.h (grub_fs): Removed. * include/grub/err.h (grub_err_t): Add network-related values. * include/grub/i386/pc/pxe.h: Removed bootp parts. * include/grub/ieee1275/ieee1275.h (grub_ofnetcard_data): New struct. (grub_ieee1275_get_aliasdevname): New proto. * include/grub/net.h: Rewritten. 2011-06-24 Vladimir Serbinenko * grub-core/disk/raid.c (insert_array): Ensure uniqueness of readable names. 2011-06-24 Vladimir Serbinenko * grub-core/commands/wildcard.c (match_files): Add a useful dprintf. (wildcard_expand): Don't stop on nonregexp parts after regexp ones since it truncates the output. Reported by: Ximin Luo. 2011-06-24 Vladimir Serbinenko * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Skip . and .. 2011-06-24 Vladimir Serbinenko * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load partmap before abstraction. 2011-06-24 Alexander Kurtz * util/grub-mkconfig_lib.in: Add missing quotes. 2011-06-24 Vladimir Serbinenko * grub-core/kern/emu/getroot.c (grub_guess_root_device): Revert to old method if mountinfo would return /dev/root and /dev/root doesn't exist. 2011-06-24 Vladimir Serbinenko ZFS zlib support * grub-core/fs/zfs/zfs.c (zlib_decompress): New function. (decomp_table): Add zlib entries. (zio_read): USe 8 bits for compression function rather than 3. * include/grub/zfs/zio.h (zio_compress): Add zlib values. 2011-06-24 Vladimir Serbinenko * grub-core/disk/ahci.c: Add missing license statements. * grub-core/fs/romfs.c: Likewise. * grub-core/lib/ia64/setjmp.S: Likewise. * grub-core/loader/i386/pc/freedos.c: Likewise. * grub-core/loader/ia64/efi/linux.c: Likewise. * grub-core/video/colors.c: Likewise. * include/grub/dl.h (GRUB_MOD_DEP): New macro. 2011-06-23 Vladimir Serbinenko AHCI support. * grub-core/Makefile.core.def (ata_pthru): Removed. (ahci): New module. (pata): Likewise. * grub-core/bus/usb/ohci.c (GRUB_MOD_FINI): Unregister preboot hook on unload. * grub-core/commands/hdparm.c (grub_hdparm_do_ata_cmd): Use ATA readwrite. (grub_hdparm_do_check_powermode_cmd): Likewise. (grub_hdparm_do_smart_cmd): Likewise. (grub_hdparm_set_val_cmd): Likewise. (grub_cmd_hdparm): Likewise. Check thta we have an ATA device. * grub-core/disk/ahci.c: New file. * grub-core/disk/ata.c: Factor out the low-level part into ... * grub-core/disk/pata.c: ... here. * grub-core/disk/ata_pthru.c: Contents moved to ... * grub-core/disk/pata.c: ... here. * grub-core/disk/scsi.c (grub_scsi_names): New array. (grub_scsi_iterate): Use grub_scsi_names. (grub_scsi_open): Likewise. * grub-core/kern/disk.c (grub_disk_ata_pass_through): Removed. * include/grub/ata.h (grub_ata_commands): Add DMA commands. (grub_ata_regs_t): New struct. (grub_disk_ata_pass_through_parms): Likewise. (grub_ata_device): Renamed to ... (grub_ata): ... this. (grub_ata_dev): New struct. Removed all low-level inline functions. * include/grub/scsi.h: Add PATA and AHCI subsystems. (grub_scsi_dev): Removed 'name' and 'id'. Added 'id' parameter to iterate hooks and open. All users updated. * util/grub-install.in: Handle AHCI disk module. 2011-06-23 Szymon Janc Add support for DRI and RSTn markers in JPEG files. * grub-core/video/readers/jpeg.c (JPEG_MARKER_DRI): New define. (JPEG_MARKER_RST0): Likewise. (JPEG_MARKER_RST1): Likewise. (JPEG_MARKER_RST2): Likewise. (JPEG_MARKER_RST3): Likewise. (JPEG_MARKER_RST4): Likewise. (JPEG_MARKER_RST5): Likewise. (JPEG_MARKER_RST6): Likewise. (JPEG_MARKER_RST7): Likewise. (grub_jpeg_data): New fields dri, r1, bitmap_ptr. (grub_jpeg_decode_dri): New function. (grub_jpeg_decode_sos): Move image data related part into grub_jpeg_decode_data function. (grub_jpeg_decode_data): New function. (grub_jpeg_reset): New function. (grub_jpeg_decode_jpeg): Handle new markers. 2011-06-23 Vladimir Serbinenko * util/ieee1275/ofpath.c (check_sas): Close fd. (main): Free of_path. Reported by: David Volgyes . 2011-06-23 Vladimir Serbinenko * util/grub-mkpasswd-pbkdf2.c (main): Don't double-close. Reported by: David Volgyes . 2011-06-23 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy): Close file after stat. Reported by: David Volgyes . 2011-06-23 Vladimir Serbinenko * util/raid.c (grub_util_raid_getmembers): Close fd before returning. Reported by: David Volgyes . 2011-06-23 Vladimir Serbinenko * grub-core/lib/reed_solomon.c (rs_recover) [STANDALONE]: Prevent memory leak. 2011-06-23 Vladimir Serbinenko * grub-core/lib/reed_solomon.c (rs_recover): Prevent memory leak. (main): Close file. Reported by: David Volgyes . 2011-06-23 Vladimir Serbinenko * grub-core/loader/i386/xnu.c (grub_cpu_xnu_fill_devprop): Don't attempt to continue if allocation is failed. Reported by: David Volgyes . 2011-06-23 David Volgyes * grub-core/bus/usb/ohci.c (grub_ohci_pci_iter): Avoid NULL-pointer dereference. 2011-06-23 Vladimir Serbinenko Fix spurious warning. * grub-core/partmap/acorn.c (grub_acorn_boot_block): Make a union. (acorn_partition_map_find): Use .bin member. 2011-06-23 Vladimir Serbinenko * grub-core/kern/emu/getroot.c (grub_guess_root_device): Don't accept /dev/root as a valid device. 2011-06-23 Jim Meyering Avoid NULL deref in grub_device_open. * grub-core/kern/device.c (grub_device_open): Don't dereference a NULL pointer upon failed grub_env_get. 2011-06-23 Vladimir Serbinenko Support non-512B sectors and agglomerate reads. * Makefile.util.def (libgrubmods.a): Add grub-core/commands/testload.c. * grub-core/disk/efi/efidisk.c (grub_efidisk_data): Remove disk_io. (disk_io_guid): Removed. (make_devices): Locate solely by BlockIO. (grub_efidisk_open): Fill log_sector_size and total_sectors. (grub_efidisk_read): Use read_blocks. (grub_efidisk_write): Use write_blocks. * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_open): Fill log_sector_size. (get_safe_sectors): Handle non-512B sectors. (grub_biosdisk_read): Remove special CDROM handling. Handle non-512B sectors. (grub_biosdisk_write): Handle non-512B sectors. * grub-core/disk/scsi.c (grub_scsi_open): Fill log_sector_size. (grub_scsi_read): Remove special non-512B block handling (now handled one level up). * grub-core/kern/disk.c (grub_disk_open): Fill default log_sector_size and do sanity checks. (grub_disk_adjust_range): Handle non-512B sectors. (transform_sector): New function. (grub_disk_read_small): Likewise. (grub_disk_read): Rewritten. (grub_disk_write): Handle non-512B sectors. * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_open): Fill log_sector_size. (open_device): Use log_sector_size. (grub_util_biosdisk_read): Likewise. (grub_util_biosdisk_write): Likewise. * grub-core/partmap/msdos.c (grub_partition_msdos_iterate): Handle non-512B sectors. (pc_partition_map_embed): Likewise. * include/grub/disk.h (grub_disk): New field log_sector_size. (GRUB_DISK_CACHE_SIZE): Redefined from GRUB_DISK_CACHE_BITS. (GRUB_DISK_CACHE_BITS): Increased to 6. * util/grub-fstest.c (fstest): New command testload. (argp_parser): Likewise. 2011-06-16 Robert Millan Detect `ataraid' devices on GNU/kFreeBSD. Fix for ATA devices using `ata' driver on kernel of FreeBSD 9. * util/deviceiter.c [__FreeBSD_kernel__] (get_ada_disk_name) (get_ataraid_disk_name): New functions. [__FreeBSD_kernel__] (grub_util_iterate_devices): Scan for ataraid (/dev/ar[0-9]+) and ada (/dev/ada[0-9]+) devices using get_ataraid_disk_name() and get_ada_disk_name(). 2011-06-13 Colin Watson * docs/man/grub-mklayout.h2m (DESCRIPTION): Add a reference to the input format. 2011-05-29 Colin Watson * docs/grub.texi (Obtaining and Building GRUB): Substitute `ftp.gnu.org' for `alpha.gnu.org'. 2011-05-27 Colin Watson * grub-core/kern/emu/hostdisk.c (linux_find_partition): Handle partitions under /dev/disk/by-id/. 2011-05-27 Colin Watson * grub-core/kern/emu/hostdisk.c (linux_find_partition): Give up after ten consecutive open failures. Scanning all the way up to 10000 is excessive and can cause serious performance problems in some configurations. Fixes Ubuntu bug #787461. 2011-05-21 Vladimir Serbinenko * grub-core/disk/arc/arcdisk.c (reopen): Close old handle before opening new one. 2011-05-21 Colin Watson 2011-05-21 Vladimir Serbinenko Don't stat devices unless we have to. * grub-core/kern/emu/getroot.c (grub_find_device): Recognize dir == /dev/mapper. (grub_guess_root_device): Use already known os_dev if possible. * grub-core/kern/emu/hostdisk.c (convert_system_partition_to_system_disk): Scan only in /dev/mapper if device is known to be a dm one. 2011-05-20 Colin Watson * util/grub-mkconfig.in: Export GRUB_CMDLINE_LINUX_XEN_REPLACE and GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT. Reported by: Pawel Tecza. 2011-05-19 Vladimir Serbinenko * grub-core/Makefile.core.def (lsacpi): Fix ia64 mismerge. (lsefisystab): Likewise. (lssal): Likewise. (lsefimmap): Likewise. (hdparm): Enable on qemu-mips. (setjmp): Add ia64 nodist. (serial): Simplify tags. 2011-05-18 Colin Watson * Makefile.util.def (grub-ofpathname): Install manual page. 2011-05-18 Colin Watson * grub-core/fs/squash4.c: Add missing GRUB_MOD_LICENSE. 2011-05-18 Colin Watson * .bzrignore: Add grub-core/modinfo.sh and a number of test files. 2011-05-18 Vladimir Serbinenko * grub-core/bus/usb/usbhub.c (poll_nonroot_hub): Downgrade a printf into dprintf. 2011-05-18 Vladimir Serbinenko Use full 64-bit division. * grub-core/kern/misc.c (grub_divmod64_full): Renamed to ... (grub_divmod64): ... this. * include/grub/misc.h (grub_divmod64): Removed. All users switch to full version. 2011-05-18 Colin Watson * util/grub-mkrescue.in: Use portable `.' rather than non-portable `source'. 2011-05-18 Colin Watson * grub-core/genmod.sh.in: Use 'set -e' rather than '#! /bin/sh -e', to avoid accidents when debugging with 'sh -x'. * grub-core/gensyminfo.sh.in: Likewise. * tests/example_scripted_test.in: Likewise. * tests/grub_cmd_regexp.in: Likewise. * tests/grub_script_blanklines.in: Likewise. * tests/grub_script_dollar.in: Likewise. * tests/grub_script_expansion.in: Likewise. * tests/grub_script_final_semicolon.in: Likewise. * tests/partmap_test.in: Likewise. * tests/util/grub-shell-tester.in: Likewise. * tests/util/grub-shell.in: Likewise. 2011-05-18 Colin Watson Move gfxmenu color handling to video, so that gfxterm can use it too. * grub-core/gfxmenu/named_colors.c: Move to ... * grub-core/video/colors.c: ... here. Rename grub_gui_get_named_color to grub_video_get_named_color. * grub-core/gfxmenu/gui_string_util.c (my_isxdigit): Move to ... * grub-core/video/colors.c (my_isxdigit): ... here. * grub-core/gfxmenu/gui_string_util.c (parse_hex_color_component): Move to ... * grub-core/video/colors.c (parse_hex_color_component): ... here. * grub-core/gfxmenu/gui_string_util.c (grub_gui_parse_color): Move to ... * grub-core/video/colors.c (grub_video_parse_color): ... here. * include/grub/gui.h (grub_gui_color_t): Move to ... * include/grub/video.h (grub_video_rgba_color_t): ... here. * include/grub/gui.h (grub_gui_color_rgb): Move to ... * include/grub/video.h (grub_video_rgba_color_rgb): ... here. * include/grub/gui.h (grub_gui_map_color): Move to ... * include/grub/video.h (grub_video_map_rgba_color): ... here. * include/grub/gui_string_util.h (grub_gui_get_named_color): Move to ... * include/grub/video.h (grub_video_get_named_color): ... here. * include/grub/gui_string_util.h (grub_gui_parse_color): Move to ... * include/grub/video.h (grub_video_parse_color): ... here. * grub-core/Makefile.core.def (kernel) [videoinkernel]: Add video/colors.c. (gfxmenu): Remove gfxmenu/named_colors.c. (video) [videomodules]: Add video/colors.c. Add a background_color command. * grub-core/term/gfxterm.c (grub_gfxterm_background_color_cmd): New function. (GRUB_MOD_INIT): Register background_color command. (GRUB_MOD_FINI): Unregister background_color command. (redraw_screen_rect): Allow blend/replace of text layer to be controlled independently from whether there is a background bitmap. (grub_gfxterm_background_image_cmd): Change blend_text_bg when changing bitmap. 2011-05-18 Vladimir Serbinenko Patch BPB in ntldr and chainloader --bpb. * grub-core/fs/fat.c: Include grub/fat.h. (grub_fat_bpb): Moved to ... * include/grub/fat.h (grub_fat_bpb): ... here. New file. * grub-core/loader/i386/pc/chainloader.c: Include grub/fat.h and grub/ntfs.h. * include/grub/i386/pc/chainloader.h (grub_chainloader_flags_t): Moved from here... * grub-core/loader/i386/pc/chainloader.c (grub_chainloader_flags_t): ... here. * grub-core/loader/i386/pc/chainloader.c (grub_chainloader_patch_bpb): New function. (grub_chainloader_cmd): Patch BPB if --bpb is given. (GRUB_MOD_INIT): Show --bpb. * grub-core/loader/i386/pc/ntldr.c (grub_cmd_ntldr): Patch BPB. * grub-core/normal/main.c (features): New variable. (GRUB_MOD_INIT): Set feature_* variables. * include/grub/i386/pc/chainloader.h (grub_chainloader_patch_bpb): New proto. * include/grub/ntfs.h (grub_ntfs_bpb): New field bios_drive. 2011-05-18 Vladimir Serbinenko * grub-core/Makefile.core.def (ieee1275_fb): Use enable=powerpc_ieee1275 for cleanness. 2011-05-18 Vladimir Serbinenko FreeDOS direct loading support. * docs/grub.texi (Supported OS): Add FreeDOS. * grub-core/Makefile.core.def (freedos): New module. * grub-core/lib/i386/relocator.c (grub_relocator16_ebx): New extern variable. (grub_relocator16_boot): Handle %ebx. * grub-core/lib/i386/relocator16.S: Likewise. * grub-core/loader/i386/pc/freedos.c: New file. 2011-05-18 Vladimir Serbinenko Long Linux command line support. * grub-core/loader/i386/linux.c (GRUB_LINUX_CL_END_OFFSET): Removed. (maximal_cmdline_size): New variable. (allocate_pages): Use maximal_cmdline_size. (grub_cmd_linux): Set and use maximal_cmdline_size. * grub-core/loader/i386/pc/linux.c (GRUB_LINUX_CL_END_OFFSET): Removed. (allocate_pages): Use maximal_cmdline_size. (grub_cmd_linux): Set and use maximal_cmdline_size. * include/grub/i386/linux.h (GRUB_LINUX_SETUP_MOVE_SIZE): Removed. (linux_kernel_header): Add fields kernel_alignment, relocatable, pad and cmdline_size. 2011-05-18 Vladimir Serbinenko 2011-05-18 Colin Watson Improve devmapper support * grub-core/kern/emu/getroot.c (grub_util_is_dmraid): Removed. (grub_util_is_lvm): New function. (grub_util_get_dev_abstraction): Assume dmraid if not lvm rather than lvm if not dmraid. Handle mapped md nodes. * grub-core/kern/emu/hostdisk.c (device_is_mapped): Rename to ... (grub_util_device_is_mapped): ... this. Make always available. All users updated. (grub_util_get_dm_node_linear_info) [HAVE_DEVICE_MAPPER]: New function. (convert_system_partition_to_system_disk): Handle lvm, mpath and dmraid nodes. * include/grub/emu/misc.h (grub_util_device_is_mapped): New proto. 2011-05-18 Vladimir Serbinenko Unify grub-mkrescue (except powerpc) and grrub-mknetdir across platforms * grub-core/Makefile.am (platform_DATA): Add modinfo.sh. * grub-core/modinfo.sh.in: New file. * grub-core/Makefile.core.def (modinfo.sh): New script. * util/grub-mknetdir.in: Use modinfo.sh. * util/grub-mkrescue.in: Likewise. 2011-05-17 Vladimir Serbinenko * grub-core/kern/ia64/dl_helper.c (grub_ia64_dl_get_tramp_got_size): Fix potential usage of Elf32 instead of Elf64 when compiling on 32-bit architecture. Add endianness macros while on it. 2011-05-17 Vladimir Serbinenko Use mipsel- rather than mips- in directories involving mipsel ports to allow both endiannesses coexist. * configure.ac: proparate target_cpu=mipsel rather than resetting to mips. All conditions adjusted. * tests/util/grub-shell-tester.in: Remove gratuitious target_cpu variable. * util/grub-install.in: Adjust conditions to take renaming into account. * util/grub-mkimage.c (image_targets): Likewise. New target mips-qemu_mips-elf for bigendian mips. 2011-05-17 Vladimir Serbinenko Avoid unnecessary copying on MIPS. * grub-core/boot/decompressor/none.c (grub_decompress_core): Exit early if src == dest. * util/grub-mkimage.c (generate_image): Arange for src == dest if compression is none. 2011-05-17 Vladimir Serbinenko Reduce memory footprint on SGI by putting modules before the kernel as opposed to after. * grub-core/Makefile.core.def (kernel): Increase linking address. (none_decompress): Likewise. (xz_decompress): Likewise. * grub-core/boot/mips/startup_raw.S: Use prewritten uncompression address. * grub-core/kern/mips/arc/init.c (grub_machine_init): Handle memory layout change. (grub_arch_modules_addr): New function. * grub-core/kern/mips/init.c (grub_arch_modules_addr): Moved from here... * grub-core/kern/mips/loongson/init.c (grub_arch_modules_addr): .. here * grub-core/kern/mips/qemu_mips/init.c (grub_arch_modules_addr): ... and here. * grub-core/kern/mips/startup.S (total_size): Rename to ... (grub_total_modules_size): ... this. Make global. [GRUB_MACHINE_ARC]: Don't attempt to move modules out of the bss. * include/grub/offsets.h (GRUB_KERNEL_MIPS_LOONGSON_UNCOMPRESSED_ADDR): New definition. (GRUB_KERNEL_MIPS_QEMU_MIPS_UNCOMPRESSED_ADDR): Likewise. (GRUB_KERNEL_MIPS_ARC_UNCOMPRESSED_ADDR): Likewise. (GRUB_KERNEL_MACHINE_UNCOMPRESSED_ADDR): Likewise. (GRUB_KERNEL_MIPS_ARC_LINK_ADDR): Increased. * util/grub-mkimage.c (image_target_desc): New flag PLATFORM_FLAGS_MODULES_BEFORE_KERNEL. (image_targets): Set PLATFORM_FLAGS_MODULES_BEFORE_KERNEL on mips-arc. (generate_image): Handle images with modules before kernel. 2011-05-17 Vladimir Serbinenko Prevent potential loss of memory map by overwrite on qemu-mips. * grub-core/boot/mips/startup_raw.S [GRUB_MACHINE_MIPS_QEMU_MIPS]: Save ram size in $s4. * grub-core/kern/mips/qemu_mips/init.c (RAMSIZE): Removed. All users changed to grub_arch_memsize. * grub-core/kern/mips/startup.S (grub_arch_machine): Restrict to Loongson. [GRUB_MACHINE_MIPS_QEMU_MIPS]: Save grub_arch_memsize. * grub-core/loader/mips/linux.c (grub_linux_boot): Pass memory size. * include/grub/mips/qemu_mips/memory.h (grub_arch_memsize): New external variable. 2011-05-17 Colin Watson * .bzrignore: Remove grub-dumpbios. 2011-05-17 Colin Watson * util/grub.d/20_linux_xen.in: Honour GRUB_CMDLINE_LINUX_XEN_REPLACE and GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT, which replace GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT (complementing the existing options which append). * docs/grub.texi (Simple configuration): Document new options. Reported by: Ian Jackson. Fixes Debian bug #617538. 2011-05-17 Colin Watson * util/grub-fstest.c (cmd_cat): New function. (fstest): Handle CMD_CAT. (options): Add cat. (argp_parser): Handle cat. 2011-05-17 Colin Watson * Makefile.util.def (grub-bin2h): Don't install. * docs/man/grub-bin2h.h2m: Remove. 2011-05-17 Vladimir Serbinenko * grub-core/kern/mips/startup.S (grub_arch_cpuclock): Move to the right place. 2011-05-17 Vladimir Serbinenko Reenable qemu-mips port. * configure.ac: Handle --target=qemu-mips and --target=qemu_mips. Fix small arc bug while on it. * gentpl.py: Handle qemu_mips. * grub-core/Makefile.am: Likewise. * grub-core/Makefile.core.def: Likewise. * grub-core/disk/ata.c [GRUB_MACHINE_MIPS_QEMU_MIPS]: Remove inappropriate includes. (grub_ata_pciinit) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Removed. (grub_ata_initialize): [GRUB_MACHINE_MIPS_QEMU_MIPS]: Rewritten. * grub-core/kern/main.c (grub_modules_get_end) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Enable. * grub-core/kern/mips/qemu-mips: Moved to .. * grub-core/kern/mips/qemu_mips: ... this. * grub-core/kern/mips/qemu_mips/init.c (grub_get_rtc): Removed. (grub_machine_init): Call terminfo_init and serial_init. * grub-core/kern/mips/startup.S: Change MIPS_LOONGSON to MACHINE. * grub-core/loader/mips/linux.c (params) [GRUB_MACHINE_MIPS_QEMU_MIPS]: New variable. (grub_linux_boot) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Handle the qemu-mips parameter passing. (grub_linux_unload) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Free params. (grub_cmd_linux) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Handle params. (grub_cmd_initrd) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Likewise. * include/grub/mips/qemu_mips/cmos.h: New file. * include/grub/mips/qemu-mips/kernel.h: Don't include cpu/kernel.h. * include/grub/mips/qemu-mips/memory.h (grub_machine_mmap_iterate): Removed. * include/grub/mips/qemu-mips/serial.h (GRUB_MACHINE_SERIAL_PORTS): Use correct mips-style address. * include/grub/mips/qemu-mips/time.h: Include cpu/time.h. (GRUB_TICKS_PER_SECOND): Removed. (grub_get_rtc): Likewise. (grub_cpu_idle): Likewise. * include/grub/offsets.h (GRUB_KERNEL_MIPS_QEMU_MIPS_LINK_ADDR): New definition. (GRUB_KERNEL_MIPS_QEMU_MIPS_LINK_ALIGN): Likewise. (GRUB_KERNEL_MIPS_QEMU_MIPS_COMPRESSED_SIZE): Likewise. (GRUB_KERNEL_MIPS_QEMU_MIPS_UNCOMPRESSED_SIZE): Likewise. (GRUB_KERNEL_MIPS_QEMU_MIPS_TOTAL_MODULE_SIZE): Likewise. (GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX): Likewise. (GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX_END): Likewise. (GRUB_KERNEL_MIPS_QEMU_MIPS_MOD_ALIGN): Likewise. * util/grub-mkimage.c (image_targets): Add mipsel-qemu_mips-elf. 2011-05-17 Vladimir Serbinenko SGI ARCS port. * Makefile.util.def (libgrubmods.a): Add dvh.c. * conf/Makefile.common (CCASFLAGS_PLATFORM): Add -mips3 on all mips platforms. * configure.ac: New target mips-arc. * gentpl.py: Likewise. * grub-core/Makefile.am: Likewise. * grub-core/Makefile.core.def: Likewise. (xz_decompress): Remove -D GRUB_MACHINE_LINK_ADDR. (none_decompress): Likewise. (lsdev): New module. (datetime): Use lib/arc/datetime.c on ARC. (part_dvh): New module. * grub-core/commands/arc/lsdev.c: New file. * grub-core/disk/arc/arcdisk.c: Likewise. * grub-core/kern/mips/arc/init.c: Likewise. * grub-core/kern/mips/cache_flush.S: Don't flush non 4-byte aligned addresses. * grub-core/kern/mips/dl.c (grub_arch_dl_check_header): Fix bigendian support. (grub_arch_dl_relocate_symbols): Likewise. * grub-core/kern/mips/loongson/init.c (grub_get_rtc): Moved from here... * grub-core/kern/mips/init.c (grub_get_rtc): ... here. * grub-core/kern/mips/startup.S (grub_arch_cpuclock): Have on all platforms. * grub-core/lib/arc/datetime.c: New file. * grub-core/loader/mips/linux.c: Always include time.h. Don't include pci.h on non-loongson. (envp_off) [!GRUB_MACHINE_MIPS_LOONGSON]: Remove. (grub_linux_boot): Set unused registers to 0. (grub_cmd_linux) [!GRUB_MACHINE_MIPS_LOONGSON]: Remove envp. * grub-core/mmap/mips/loongson/uppermem.c: Moved from here ... * grub-core/mmap/mips/uppermem.c: ...here. * grub-core/partmap/dvh.c: New file. * grub-core/term/arc/console.c: Likewise. * grub-core/term/terminfo.c (ANSI_C0_STR): New const. (grub_terminfo_set_current): Add terminal "arc". (grub_terminfo_readkey): Support ARC sequences. * include/grub/arc/arc.h: New file. * include/grub/arc/console.h: Likewise. * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_ARCDISK_ID. * include/grub/mips/arc/kernel.h: New file. * include/grub/mips/arc/memory.h: Likewise. * include/grub/mips/arc/time.h: Likewise. * include/grub/mips/loongson/kernel.h (grub_halt): Moved from here ... * include/grub/mips/kernel.h (grub_halt): ... here. * include/grub/mips/loongson.h (GRUB_CPU_REGISTER_WRAP): Moved from here... * include/grub/mips/mips.h (GRUB_CPU_REGISTER_WRAP): ... here. (GRUB_CPU_LOONGSON_COP0_TIMER_COUNT): Moved from here ... * include/grub/mips/mips.h (GRUB_CPU_LOONGSON_COP0_TIMER_COUNT): .. here * include/grub/mips/loongson/kernel.h (grub_reboot): Removed redundant proto. * include/grub/mips/loongson/memory.h (GRUB_ARCH_LOWMEMVSTART): Moved from here ... * include/grub/mips/memory.h (GRUB_ARCH_LOWMEMVSTART): ... here. (GRUB_ARCH_LOWMEMPSTART): Moved from here ... * include/grub/mips/memory.h (GRUB_ARCH_LOWMEMPSTART): ... here. (GRUB_ARCH_LOWMEMMAXSIZE): Moved from here ... * include/grub/mips/memory.h (GRUB_ARCH_LOWMEMMAXSIZE): ... here. (GRUB_ARCH_HIGHMEMPSTART): Moved from here ... * include/grub/mips/memory.h (GRUB_ARCH_HIGHMEMPSTART): ... here. (grub_phys_addr_t): Moved from here ... * include/grub/mips/memory.h (grub_phys_addr_t): ... here. (grub_vtop): Moved from here ... * include/grub/mips/memory.h (grub_vtop): ... here. (grub_map_memory): Moved from here ... * include/grub/mips/memory.h (grub_map_memory): ... here. (grub_unmap_memory): Moved from here ... * include/grub/mips/memory.h (grub_unmap_memory): ... here. (grub_machine_mmap_iterate): Moved from here ... * include/grub/mips/memory.h (grub_machine_mmap_iterate): ... here. (grub_mmap_get_lower): Moved from here ... * include/grub/mips/memory.h (grub_mmap_get_lower): ... here. (grub_mmap_get_upper): Moved from here ... * include/grub/mips/memory.h (grub_mmap_get_upper): ... here. * include/grub/mips/loongson/time.h (grub_arch_cpuclock): Moved from here ... * include/grub/mips/time.h (grub_arch_cpuclock): ... here. * include/grub/mips/loongson/time.h (grub_get_rtc): Moved from here ... * include/grub/mips/time.h (grub_get_rtc): ... here. * include/grub/mips/loongson/time.h (grub_arch_cpuclock): Moved from here ... * include/grub/mips/time.h (grub_arch_cpuclock): ... here. * include/grub/mips/loongson/time.h (grub_cpu_idle): Moved from here ... * include/grub/mips/time.h (grub_cpu_idle): ... here. * include/grub/offsets.h (GRUB_KERNEL_MIPS_ARC_LINK_ADDR): New definition. (GRUB_KERNEL_MIPS_ARC_LINK_ALIGN): Likewise. (GRUB_KERNEL_MIPS_ARC_COMPRESSED_SIZE): Likewise. (GRUB_KERNEL_MIPS_ARC_UNCOMPRESSED_SIZE): Likewise. (GRUB_KERNEL_MIPS_ARC_TOTAL_MODULE_SIZE): Likewise. (GRUB_KERNEL_MIPS_ARC_PREFIX): Likewise. (GRUB_KERNEL_MIPS_ARC_PREFIX_END): Likewise. (GRUB_KERNEL_MIPS_ARC_MOD_ALIGN): Likewise. (GRUB_MACHINE_LINK_ADDR): Likewise. * include/grub/terminfo.h (GRUB_TERMINFO_READKEY_MAX_LEN): Increased to 6. * util/grub-install.in: Run dvhtool on ARC. * util/grub-mkimage.c (image_targets): Add mips-arc. (generate_image): Handle ECOFF output for mips-arc. 2011-05-16 Vladimir Serbinenko * grub-core/bus/pci.c (grub_memalign_dma32): Always allocate in 64-byte blocks. 2011-05-16 Vladimir Serbinenko * grub-core/bus/usb/usbhub.c (attach_root_port): Wait 10ms after enabling port. 2011-05-16 Vladimir Serbinenko Skip incorrect USB devices. * grub-core/bus/usb/usb.c (grub_usb_device_initialize): Fail if configcnt == 0. * include/grub/usb.h (grub_usb_err_t): New enum value GRUB_USB_ERR_BADDEVICE. 2011-05-16 Vladimir Serbinenko Fuloong video init support. * include/grub/vga.h (grub_vga_write_arx): inb monochrome address as well. (grub_vga_read_arx): New function. * grub-core/video/sis315pro.c (GRUB_SIS315PRO_MMIO_SPACE): New definition. (framebuffer): New members io, mmioptr and mmiobase. (read_sis_cmd): New function. (write_sis_cmd): Likewise. (grub_video_sis315pro_setup): Do the initialisation. Use 640x480 rather than 640x400. * grub-core/video/sis315_init.c: New file. 2011-05-15 Vladimir Serbinenko * grub-core/bus/cs5536.c: Don't include grub/machine/kernel.h on non-loongson. * grub-core/kern/mips/dl.c (grub_arch_dl_init_linker): Fix argument to grub_dl_register_symbol. 2011-05-15 Vladimir Serbinenko Fix compilation errors. * grub-core/term/ns8250.c (serial_get_divisor): Declare 'port' as potentially unused. * grub-core/loader/i386/linux.c (grub_linux_setup_video): Handle GRUB_VIDEO_DRIVER_SIS315PRO. * grub-core/bus/cs5536.c (grub_cs5536_init_geode): Restrict DIVIL init to loongson machines. 2011-05-15 Vladimir Serbinenko Several FS mtime support. * grub-core/fs/affs.c (grub_affs_time): New struct. (grub_affs_file): New field mtime. (grub_fshelp_node): Changed 'block' and 'parent' to more appropriate type. Removed 'size'. New field 'di'. All users updated. (grub_affs_mount): Simplify checsum checking. (grub_affs_iterate_dir): New helper grub_affs_create_node. (grub_affs_dir): Handle mtime. * grub-core/fs/cpio.c (grub_cpio_find_file): Handle mtime. (grub_cpio_dir): Likewise. * grub-core/fs/hfs.c (grub_hfs_dirrec): New fields 'ctime' and 'mtime'. (grub_hfs_filerec): New field mtime. (grub_hfs_dir): Handle mtime. (grub_hfs_mtime): New function. (grub_hfs_fs): Register grub_hfs_mtime. * grub-core/fs/iso9660.c (grub_iso9660_date2): New struct. (grub_iso9660_dir): New field mtime. (grub_fshelp_node): New field dirent. (iso9660_to_unixtime): New function. (iso9660_to_unixtime2): Likewise. (grub_iso9660_read_symlink): Use node->dirent. (grub_iso9660_iterate_dir): Likewise. (grub_iso9660_dir): Set mtime. (grub_iso9660_mtime): New function. (grub_iso9660_fs): Register grub_iso9660_mtime. * grub-core/fs/jfs.c (grub_jfs_time): New struct. (grub_jfs_inode): New fields atime, ctime and mtime. (grub_jfs_dir): Set mtime. * grub-core/fs/minix.c (grub_minix_dir): Likewise. * grub-core/fs/ntfs.c (list_file): Set mtime. (grub_ntfs_dir): Likewise. * grub-core/fs/reiserfs.c (grub_fshelp_node): New field 'mtime'. (grub_reiserfs_iterate_dir): Set mtime. (grub_reiserfs_dir): Likewise. * grub-core/fs/sfs.c (grub_sfs_obj): New field mtime. (grub_fshelp_node): Likewise. (grub_sfs_iterate_dir): Set mtime. (grub_sfs_dir): Likewise. * grub-core/fs/udf.c (grub_udf_dir): Set mtime. * grub-core/fs/xfs.c (grub_xfs_time): New struct. (grub_xfs_inode): New fields atime, mtime, ctime. (grub_xfs_dir): Set mtime. * include/grub/datetime.h (grub_datetime2unixtime): New function. * include/grub/hfs.h (grub_hfs_sblock): New fields ctime and mtime. * include/grub/ntfs.h (grub_fshelp_node): New field mtime. Support UDF symlinks. * grub-core/fs/udf.c (grub_udf_iterate_dir): Handle symlinks. (grub_ufs_read_symlink): New function. All users updated. Check amiga partmap checksum. * grub-core/partmap/amiga.c (grub_amiga_rdsk): Pad to 128 bytes. (grub_amiga_partition): Likewise. (amiga_partition_map_checksum): New function. (amiga_partition_map_iterate): Check checksum. 2011-05-15 Vladimir Serbinenko ROMFS support. * Makefile.util.def (libgrubmods.a): Add romfs. * grub-core/Makefile.core.def (romfs): New module. * grub-core/fs/romfs.c: New file. 2011-05-15 Vladimir Serbinenko Squashfs v4 support. * Makefile.util.def (libgrubmods.a): Add squash4. * grub-core/Makefile.core.def (squash4): New module. * grub-core/fs/squash4.c: New file. * grub-core/io/gzio.c (grub_gzio): New members disk_input_off, disk_input_start, disk_input. (get_byte): Handle disk_input. (grub_zlib_disk_read): New function. * include/grub/deflate.h (grub_zlib_disk_read): New proto. 2011-05-15 Vladimir Serbinenko 2011-05-15 Feiran Zheng * Makefile.util.def (libgrubmods.a): Add minix3. * grub-core/Makefile.core.def (minix3): New module. * grub-core/fs/minix.c (GRUB_MINIX_MAGIC) [MODE_MINIX3]: New value. (GRUB_MINIX_BSIZE): Removed. (GRUB_MINIX_INODE_DIR_BLOCKS): New definition. All users updated. (grub_minix_ino_t): New type. (grub_minix_le_to_cpu_ino): New macro. (GRUB_MINIX_ZONE2SECT): New definition. All users updated. (grub_minix_sblock) [MODE_MINIX3]: Change for minix3. (grub_minix_data): New field block_size. (grub_minix_read_file): Handle 64-bit correctly. * grub-core/fs/minix3.c: New file. 2011-05-15 Tristan Gingold 2011-05-15 Robert Millan 2011-05-15 Vladimir Serbinenko IA64 support. * Makefile.util.def (libgrubmods.a): Add grub-core/kern/ia64/dl_helper.c * configure.ac: Add ia64-efi target. Probe for __ia64_trampoline, __udivsi3, __umoddi3, __udivdi3, __divsi3, __modsi3, __umodsi3, __moddi3 and __divdi3 symbols. * gentpl.py: Add ia64_efi platform. Rename x86_efi to efi and Add ia64-efi. All users updated. * grub-core/Makefile.am: Set KERNEL_HEADER_FILES for ia64-efi. * grub-core/Makefile.core.def (kernel.img): Add compile flags for ia64. Remove kern/generic/rtc_get_time_ms.c on EFI. Add kern/ia64/efi/startup.S, kern/ia64/efi/init.c, kern/ia64/dl.c, kern/ia64/dl_helper.c on ia64-efi. Add kern/emu/cache.c on emu. (linux): Use on loader/ia64/efi/linux.c on ia64. * grub-core/gensymlist.sh (grub_register_exported_symbols): Check whether symbol is a function. * grub-core/kern/dl.c [GRUB_MACHINE_EMU]: Include sys/mman.h. (grub_symbol): New field 'isfunc'. (grub_dl_resolve_symbol): Return whole symbol rather than just address. (grub_dl_register_symbol): New argument 'isfunc'. All users updated. (grub_dl_load_segments): Place all sections into the same region. [__ia64__]: Create trampolines and got. [GRUB_MACHINE_EMU]: Call mprotect. (grub_dl_resolve_symbols): Resolve symbol type as well. [__ia64__]: Create function descriptors. * grub-core/kern/efi/efi.c (grub_get_rtc): Renamed to ... (grub_rtc_get_time_ms): ... this. Expressions simplified. (grub_get_rtc): New function. * grub-core/kern/emu/cache.c [__ia64__]: New file. * grub-core/kern/emu/cache.S: Renamed to ... * grub-core/kern/emu/cache_s.S: ... this. [__ia64__]: Add a nop. * grub-core/kern/emu/full.c (grub_arch_dl_get_tramp_got_size) [__ia64__]: New function. * grub-core/kern/emu/lite.c [__ia64__]: Include ../ia64/dl.c. * grub-core/kern/ia64/dl.c: New file. * grub-core/kern/ia64/dl_helper.c: Likewise. * grub-core/kern/ia64/efi/init.c: New file. * grub-core/kern/ia64/efi/startup.S: Likewise. * grub-core/lib/efi/halt.c [__ia64__]: Don't try acpi. * grub-core/lib/ia64/longjmp.S: New file (from glibc). * grub-core/lib/ia64/setjmp.S: Likewise (from glibc). * grub-core/lib/setjmp.S [__ia64__]: Include ./ia64/setjmp.S. * grub-core/loader/ia64/efi/linux.c: New file. * include/grub/dl.h (GRUB_MOD_NAME): Redefined using C rather than asm. (GRUB_MOD_DEP): Likewise. (grub_dl) [__ia64__]: New fields got and tramp. (grub_dl): New field 'base'. (grub_dl_register_symbol): New argument isfunc. All users updated. (GRUB_IA64_DL_TRAMP_ALIGN): New definition. (GRUB_IA64_DL_TRAMP_SIZE): Likewise. (GRUB_IA64_DL_GOT_ALIGN): Likewise. (grub_ia64_dl_get_tramp_got_size): New proto. (GRUB_ARCH_DL_TRAMP_ALIGN) [__ia64__]: Likewise (GRUB_ARCH_DL_GOT_ALIGN) [__ia64__]: Likewise (grub_arch_dl_get_tramp_got_size) [__ia64__]: Likewise * include/grub/efi/api.h: Skip call wrappers on ia64. * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_IA64): New definition. * include/grub/efi/time.h (GRUB_TICKS_PER_SECOND): Change to 1000. * include/grub/elf.h (ELF_ST_INFO): New definition. * include/grub/ia64/efi/kernel.h: New file. * include/grub/ia64/efi/memory.h: Likewise. * include/grub/ia64/efi/time.h: Likewise. * include/grub/ia64/kernel.h: Likewise. * include/grub/ia64/setjmp.h: Likewise (from glibc). * include/grub/ia64/time.h: New file. * include/grub/ia64/types.h: Likewise. * include/grub/libgcc.h (__udivsi3, __umodsi3, __umoddi3, __udivdi3, __moddi3, __divdi3, __divsi3, __modsi3, __ia64_trampoline): New protos. * include/grub/offsets.h (GRUB_KERNEL_IA64_EFI_PREFIX): New definition. (GRUB_KERNEL_IA64_EFI_PREFIX_END): Likewise. * include/grub/types.h (PRIxGRUB_ADDR): Likewise. * util/grub-mkimage.c (image_target_desc): New field pe_target. All users updated. (EFI64_HEADER_SIZE): New definition. All users updated. (image_targets): Add ia64-efi. * util/grub-mkimagexx.c (relocate_symbols): New arguments jumpers and jumpers_addr. All users updated. Create function descriptors. (count_funcs): New function. (unaligned_uint32): New struct. (MASK20): New definition. (MASK19): Likewise. (MASKF21): Likewise. (add_value_to_slot_20b): New function. (add_value_to_slot_21_real): Likewise. (add_value_to_slot_21): Likewise. (ia64_kernel_trampoline): New struct. (nopm): New variable. (jump): Likewise. (make_trampoline): New function. (relocate_addresses): Handle ia64. (make_reloc_section): Likewise. (load_image): Likewise. 2011-05-15 Vladimir Serbinenko * grub-core/fs/btrfs.c (grub_btrfs_read_logical): Silence spurious warning. Move variables before code while on it. 2011-05-15 Vladimir Serbinenko Fuloong support. * configure.ac: Rename yeeloong platform to loongson. All users updated. * grub-core/Makefile.core.def (fwstart_fuloong): New image. * grub-core/boot/mips/loongson/fuloong.S: New file. * grub-core/boot/mips/loongson/fwstart.S: Wait for CS5536 to come up. Explicitly init CS5536. [FULOONG]: Don't use serial until CS5536 is available. Set GPIO based on dumps. (serial_hw_init) [FULOONG]: Handle CS5536 parts. [FULOONG]: Handle GPIO and memory controller differences. Parse machine type in $a2. * grub-core/boot/mips/startup_raw.S: Determine and save the architecture. * grub-core/bus/cs5536.c (gpiodump): Move to fwstart.S. (grub_cs5536_init_geode): Remove gpio part. Conditionalise DIVIL init on architecture type. * grub-core/kern/mips/loongson/init.c (grub_machine_init): Init SIS315E. Don't init at_keyboard on fuloong. (grub_halt): Support Fuloong. * grub-core/kern/mips/startup.S [LOONGSON]: Save $s7. * grub-core/loader/mips/linux.c (LOONGSON_MACHTYPE): Removed. (loongson_machtypes): New array. (grub_cmd_linux) [GRUB_MACHINE_MIPS_LOONGSON]: Pass the right machine type. * grub-core/term/ns8250.c (serial_get_divisor): New parameter port and config. All users updated. Handle CS5536 serial. * grub-core/term/serial.c (grub_serial_register): Conditionalise default port on machine type. Register serial as inactive. * grub-core/video/sis315pro.c: New file. * include/grub/cs5536.h (GRUB_CS5536_MSR_MAILBOX_CONFIG_ENABLED): New definition. (GRUB_CS5536_MSR_MAILBOX_CONFIG): Likewise. (GRUB_CS5536_MSR_DIVIL_LEG_IO_UART1_COM1): Likewise. (GRUB_CS5536_MSR_DIVIL_LEG_IO_UART2_COM3): Likewise. (GRUB_CS5536_MSR_DIVIL_UART1_CONF): Likewise. (GRUB_CS5536_MSR_DIVIL_UART2_CONF): Likewise. * include/grub/mips/loongson.h (GRUB_CPU_LOONGSON_SHUTDOWN_GPIO): Rename to ... (GRUB_CPU_YEELOONG_SHUTDOWN_GPIO): ... this. * include/grub/mips/loongson/kernel.h (GRUB_ARCH_MACHINE_YEELOONG): New definition. (GRUB_ARCH_MACHINE_FULOONG): Likewise. (grub_arch_machine): New extern var. * include/grub/mips/loongson/serial.h (GRUB_MACHINE_SERIAL_DIVISOR_115200): Renamed to ... (GRUB_MACHINE_SERIAL_PORT0_DIVISOR_115200): ... this. (GRUB_MACHINE_SERIAL_PORT): Renamed to ... (GRUB_MACHINE_SERIAL_PORT0): ... this. (GRUB_MACHINE_SERIAL_PORT2_DIVISOR_115200): New definition. (GRUB_MACHINE_SERIAL_PORT1): Likewise. (GRUB_MACHINE_SERIAL_PORT2): Likewise. (GRUB_MACHINE_SERIAL_PORTS): Include ports 1 and 2. * include/grub/term.h (grub_term_register_input_inactive): New inline function. (grub_term_register_output_inactive): Likewise. * include/grub/video.h (grub_video_driver_id): New value GRUB_VIDEO_DRIVER_SIS315PRO. * util/grub-mkimage.c (image_target_desc): Rename name to dirname. New field "names". All users updated. New field value IMAGE_FULOONG_FLASH. (generate_image): USe separate fwstart hashes for yeeloong and fuloong. 2011-05-14 Jordan Uggla * docs/grub.texi (Invoking grub-install): Fix additional outdated claims and add some clarification. 2011-05-14 Vladimir Serbinenko * util/grub.d/10_linux.in: Autoload gzio since it's needed on some platforms if kernel is compressed. 2011-05-14 Vladimir Serbinenko * grub-core/kern/mm.c (grub_memalign): Disable auto-unloadding of unused modules since currently referrence counter isn't reliable and there isn't much memory to recover there anyway. 2011-05-14 Vladimir Serbinenko * grub-core/kern/dl.c (grub_dl_load_file): Decrease ref counter rather than resetting it to allow modules to reference themselves in init. 2011-05-14 Vladimir Serbinenko * grub-core/kern/dl.c (grub_dl_unload): Don't decrease reference counter on dependencies since grub_dl_unref already handles this. 2011-05-14 Vladimir Serbinenko * grub-core/font/font_cmd.c (loadfont_command): Set grub_errno on error if not already done. 2011-05-14 Vladimir Serbinenko Fix few potential memory misusage. * grub-core/font/font.c (load_font_index): Don't free char_index to avoid double free. (grub_font_load): Zero-fill font at alloc for safety. Close file on error. (free_font): Free bmp_idx. 2011-05-14 Vladimir Serbinenko * docs/grub.texi (Installation): Fix several outdated claims. 2011-05-14 Vladimir Serbinenko Handle module_license on windows. * util/grub-pe2elf.c (MODLICENSE_SECTION): New definition. All following sections shifted. (insert_string): Make argument const char * instead of char *. (write_section_data): Handle long section names. Handle module_license. 2011-05-14 Vladimir Serbinenko * grub-core/commands/menuentry.c (grub_cmd_menuentry): Correctly handle class-free menuentries. (grub_normal_add_menu_entry): Add a check to be sure. 2011-05-14 Vladimir Serbinenko * grub-core/term/at_keyboard.c (set1_e0_mapping): Fix swap between PgUp and PgDown. 2011-05-13 Vladimir Serbinenko * configure.ac: Bump version to 1.99. 2011-05-13 Vladimir Serbinenko Give ATA device a bit more time on first try in order to allow disks to spin up. * grub-core/disk/ata.c (grub_atapi_identify): Use GRUB_ATA_TOUT_DEV_INIT if dev->present is 1. Reset dev->present on failure. (grub_ata_device_initialize): Set dev->present to 1. * include/grub/ata.h (GRUB_ATA_TOUT_DEV_INIT): New value. (grub_ata_device): New member 'present'. 2011-05-13 Vladimir Serbinenko * util/grub-mkimage.c (generate_image): Update hash. 2011-05-13 Vladimir Serbinenko Flush caches on DMA memory. * grub-core/kern/mips/cache.S (grub_arch_sync_dma_caches): New function. * grub-core/bus/pci.c (grub_memalign_dma32): Flush caches. (grub_dma_free): Likewise. * include/grub/cache.h (grub_arch_sync_dma_caches): New declaration. 2011-05-13 Vladimir Serbinenko * grub-core/boot/mips/yeeloong/fwstart.S: Add explicit set mips3 to avoid asm treating ld and sd as macros. 2011-05-13 Vladimir Serbinenko * grub-core/boot/mips/startup_raw.S: Flush cache after loading decompressor. 2011-05-13 Vladimir Serbinenko * grub-core/boot/mips/startup_raw.S: Use jalr rather than bal to call grub_decompress_core since later would fail if grub_decompress_core is too far. 2011-05-13 Vladimir Serbinenko * grub-core/kern/mips/dl.c (grub_arch_dl_relocate_symbols): Handle R_MIPS_JALR since it's used by newer compiler. 2011-05-10 Vladimir Serbinenko * util/grub.d/10_linux.in: Correctly handle the Linux in root. 2011-05-09 Vladimir Serbinenko * grub-core/loader/efi/chainloader.c (grub_chainloader_unload): Set file_path to 0 for surety. (grub_chainloader_boot): Set exit_data to NULL. Unset the loader once done. (grub_cmd_chainloader): Fix confusing error message if file is empty. 2011-05-09 Vladimir Serbinenko * grub-core/term/at_keyboard.c (fetch_key): Make a printf on unknown key into a dprintf. 2011-05-09 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (linux_find_partition): Don't abort on first non-existant partition. 2011-05-09 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (open_device): Set data->fd to -1 if openning fails. Reported by: Mark Korenberg. 2011-05-09 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (linux_find_partition): Prevent possible overflow. 2011-05-09 Vladimir Serbinenko * util/grub-mkimage.c (main): Explicitely flush and sync the output before closing to ensure that it will be readable by grub-setup. 2011-05-05 Vladimir Serbinenko * grub-core/loader/efi/appleloader.c (MAKE_PIWG_PATH): New macro. (devpath_1): Use MAKE_PIWG_PATH. (devpath_2): Likewise. (devpath_3): Likewise. (devpath_4): Likewise. (devpath_5): Likewise. (devpath_6): Likewise. The appleldr.mod was checked that to be binary identical to previous version. 2011-05-05 Zach Support 2010 Macbooks. * grub-core/loader/efi/appleloader.c (devpath_6): New variable. (devs): Add devpath_6. 2011-05-05 Vladimir Serbinenko * util/grub-mkpasswd-pbkdf2.c (main): Use /dev/urandom and not /dev/random. /dev/urandom is good enough for our purposes (salting). 2011-05-05 Vladimir Serbinenko * util/grub-mkrescue.in (process_input_dir): Include efiemu??.o. 2011-05-05 Vladimir Serbinenko * grub-core/lib/legacy_parse.c (grub_legacy_parse): Correctly handle hexadecimal. 2011-05-05 Vladimir Serbinenko * grub-core/efiemu/main.c (grub_efiemu_load_file): Return grub_errno and not 0 on failure. 2011-05-03 Colin Watson * grub-core/fs/i386/pc/pxe.c (grub_pxefs_dir): Return GRUB_ERR_BAD_FS rather than GRUB_ERR_IO if the disk is not a pxe disk; otherwise grub_fs_probe will not fall back to the next filesystem. (grub_pxefs_open): Likewise, for consistency. Reported and tested by: Ezekiel Grave. 2011-05-03 Colin Watson * tests/partmap_test.in: Don't hardcode path to parted. Reported by: Peter Hjalmarsson. Fixes Savannah bug #33150. 2011-05-01 Colin Watson * docs/grub.texi (GRUB only offers a rescue shell): Suggest the use of `ls' to find out which devices are available. 2011-04-25 Vladimir Serbinenko * grub-core/loader/i386/linux.c (grub_linux_boot): Supply target rather than source address for efi mmap buffer. 2011-04-25 Vladimir Serbinenko * grub-core/partmap/amiga.c (amiga_partition_map_iterate): Fix a wrong action on non-detecting the magic. 2011-04-25 Vladimir Serbinenko * grub-core/gnulib/regex.c: Remove GRUB_MOD_LICENSE since it's already supplied by another part of the module (fixes compilation on FreeBSD). 2011-04-25 Vladimir Serbinenko * grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Make mdraid UUID match the one used by mdadm. 2011-04-21 Colin Watson * po/README: Add instructions for creating po/LINGUAS. 2011-04-21 Colin Watson Add "SEE ALSO" sections to most man pages. Fixes Debian bug #551428. * docs/man/grub-editenv.h2m (SEE ALSO): New section. * docs/man/grub-emu.h2m (SEE ALSO): Likewise. * docs/man/grub-fstest.h2m (SEE ALSO): Likewise. * docs/man/grub-install.h2m (SEE ALSO): Likewise. * docs/man/grub-macho2img.h2m (SEE ALSO): Likewise. * docs/man/grub-menulst2cfg.h2m (SEE ALSO): Likewise. * docs/man/grub-mkconfig.h2m (SEE ALSO): Likewise. * docs/man/grub-mkdevicemap.h2m (SEE ALSO): Likewise. * docs/man/grub-mkfont.h2m (SEE ALSO): Likewise. * docs/man/grub-mkimage.h2m (SEE ALSO): Likewise. * docs/man/grub-mklayout.h2m (SEE ALSO): Likewise. * docs/man/grub-mknetdir.h2m (SEE ALSO): Likewise. * docs/man/grub-mkpasswd-pbkdf2.h2m (SEE ALSO): Likewise. * docs/man/grub-mkrelpath.h2m (SEE ALSO): Likewise. * docs/man/grub-mkrescue.h2m (SEE ALSO): Likewise. * docs/man/grub-ofpathname.h2m (SEE ALSO): Likewise. * docs/man/grub-pe2elf.h2m (SEE ALSO): Likewise. * docs/man/grub-probe.h2m (SEE ALSO): Likewise. * docs/man/grub-reboot.h2m (SEE ALSO): Likewise. * docs/man/grub-script-check.h2m (SEE ALSO): Likewise. * docs/man/grub-set-default.h2m (SEE ALSO): Likewise. * docs/man/grub-setup.h2m (SEE ALSO): Likewise. 2011-04-21 Colin Watson * grub-core/kern/emu/getroot.c (grub_find_root_device_from_mountinfo): Remove non-virtual-device test that was incorrectly reintroduced in r3214. Reported by: Ian Dall. Fixes Savannah bug #33133. 2011-04-21 Colin Watson Fix stack pointer handling in 16-bit relocator. * grub-core/lib/i386/relocator16.S (grub_relocator16_start): Move grub_relocator16_sp to %esp rather than %ss, and zero-extend it. Fixes Ubuntu bug #683904. 2011-04-20 Vladimir Serbinenko * configure.ac: Bump version to 1.99~rc2. 2011-04-20 Vladimir Serbinenko * include/grub/dl.h [ASM_FILE]: Adapt for assembly. * grub-core/lib/i386/setjmp.S: Add missing GRUB_MOD_LICENSE. * grub-core/lib/x86_64/setjmp.S: Likewise. * grub-core/lib/mips/setjmp.S: Likewise. * grub-core/lib/powerpc/setjmp.S: Likewise. * grub-core/lib/sparc64/setjmp.S: Likewise. 2011-04-20 Vladimir Serbinenko * grub-core/lib/efi/datetime.c: Add missing GRUB_MOD_LICENSE. * grub-core/lib/efi/datetime.c: Likewise. 2011-04-19 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_flush): New function. (grub_util_biosdisk_close): Use grub_util_biosdisk_flush. * include/grub/emu/hostdisk.h (grub_util_biosdisk_flush): New proto. * util/grub-setup.c (setup): Use grub_util_biosdisk_flush. 2011-04-19 Vladimir Serbinenko * grub-core/term/gfxterm.c (grub_gfxterm_fullscreen): Preserve previous bitmap. (grub_gfxterm_term_init): Likewise. 2011-04-19 Vladimir Serbinenko Take into account the decorations the computing menu entry width. * grub-core/gfxmenu/widget-box.c (get_border_width): New function. (grub_gfxmenu_create_box): Register get_border_width. * grub-core/gfxmenu/gui_list.c (draw_menu): Use get_border_width if available. * include/grub/gfxwidgets.h (grub_gfxmenu_box): New member get_border_width. 2011-04-18 Endres Puschner * grub-core/gfxmenu/icon_manager.c (grub_gfxmenu_icon_manager_get_icon): Don't skip first class. 2011-04-18 Vladimir Serbinenko * grub-core/fs/btrfs.c (grub_btrfs_read_logical): Support huge chunks. * include/grub/err.h (grub_err_t): New enum value GRUB_ERR_BUG. 2011-04-18 Vladimir Serbinenko Complete 64-bit division support. * grub-core/kern/misc.c (grub_divmod64): Rename to ... (grub_divmod64_full): ... this. Support 64-bit divisor and reminder. * include/grub/misc.h (grub_divmod64): Rename to ... (grub_divmod64_full): ... this. (grub_divmod64): New inline function. 2011-04-18 Vladimir Serbinenko * util/grub-mkimage.c (generate_image): Add forgotten comma. 2011-04-18 Vladimir Serbinenko * util/grub-mkimage.c (generate_image): Update fwstart.img hash after performing the necessary test. 2011-04-17 Vladimir Serbinenko * Makefile.am (multiboot.elf): Add -Wl,--build-id=none. (kfreebsd.elf): Likewise. (pc-chainloader.elf): Likewise. (ntldr.elf): Likewise. 2011-04-17 Vladimir Serbinenko Identify RAID by its UUID rather than (guessed) name. * grub-core/disk/raid.c (ascii2hex): New function. (grub_raid_open): Accept mduuid/%s specification. * grub-core/kern/emu/getroot.c (get_mdadm_name): Revamped into ... (get_mdadm_uuid): ... this. (grub_util_get_grub_dev): Use mduuid/%s if UUID is available. 2011-04-16 Vladimir Serbinenko * grub-core/gfxmenu/gui_image.c (rescale_image): Don't attempt to scale to negative size. 2011-04-13 Colin Watson * util/grub.d/10_linux.in: Add rootflags=subvol= if / is on a btrfs subvolume. * util/grub.d/20_linux_xen.in: Likewise. 2011-04-13 Colin Watson Rewrite /proc/self/mountinfo handling to cope with bind-mounts and move-mounts appearing out of order. Fixes Ubuntu bug #738345. * grub-core/kern/emu/getroot.c (find_root_device_from_mountinfo): Build a list of relevant visible mounts using the mnt_id and parent_mnt_id fields, and then scan that list at the end. 2011-04-12 Colin Watson * docs/grub.texi (normal): New section. (normal_exit): New section. (Embedded configuration): Add reference to normal. (GRUB only offers a rescue shell): Likewise. * docs/grub-dev.texi (Error Handling): Fix typo. 2011-04-12 Colin Watson * NEWS: Drop obsolete entry about probe-only btrfs support. 2011-04-12 Colin Watson * util/import_gcry.py: Fix typo. 2011-04-11 Vladimir Serbinenko * NEWS: Add btrfs support. 2011-04-11 Vladimir Serbinenko 2011-04-11 Colin Watson BtrFS support. Written by me (Vladimir) with important bugfixes and even more important testing by Colin. * Makefile.util.def (libgrubmods.a): Add crc.c and gzio.c * grub-core/Makefile.core.def (btrfs): Add crc.c. * grub-core/fs/btrfs.c: Stub replaced with real implementation. * grub-core/io/gzio.c (grub_gzio): New fields mem_input_size, mem_input_off and mem_input. All users updated to accept in-RAM input. (gzio_seek): New function. (test_zlib_header): Likewise. (grub_gzio_read): Likewise. (grub_zlib_decompress): Likewise. * grub-core/kern/emu/getroot.c (grub_find_root_device_from_mountinfo): Accept partial and non-virtual mounts. (grub_guess_root_device): Do rescanning after device_from_mountinfo to avoid receiving /dev/dm-X as device. * grub-core/kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Handle bind and partial mounts. * grub-core/lib/crc.c: New file. * include/grub/deflate.h: Likewise. * include/grub/emu/misc.h (grub_find_root_device_from_mountinfo): New proto. * include/grub/lib/crc.h: New file. 2011-04-11 Vladimir Serbinenko Implement automatic module license checking according to new GNU guidelines. * grub-core/kern/dl.c (grub_dl_check_license): New function. (grub_dl_load_core): Use grub_dl_check_license. * include/grub/dl.h (GRUB_MOD_SECTION): New macro. (GRUB_MOD_LICENSE): Likewise. (GRUB_MOD_DUAL_LICENSE): Likewise. All modules updated. 2011-04-11 Colin Watson * grub-core/fs/btrfs.c (grub_btrfs_fs) [GRUB_UTIL]: Set reserved_first_sector to 1. btrfs reserves plenty of space for boot loaders. Reported by: Gene Cumm. Fixes Ubuntu bug #757446. 2011-04-11 Vladimir Serbinenko * util/grub-fstest.c (cmd_cmp): Check that sizes match. 2011-04-11 Vladimir Serbinenko * util/grub-fstest.c (read_file): Report GRUB error if file opening failed. 2011-04-11 Vladimir Serbinenko * grub-core/kern/file.c (grub_file_open): Don't take into account the parenthesis in the middle of the filename. 2011-04-10 Vladimir Serbinenko * grub-core/loader/mips/linux.c (grub_cmd_initrd): Use correct limits rather than trying to put initrd way too high. Reported by: Ryan Lortie 2011-04-10 Vladimir Serbinenko * grub-core/boot/mips/yeeloong/fwstart.S (no_cs5536): Put back improperly removed string. 2011-04-10 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_data): New member is_disk. (grub_util_biosdisk_open): Don't apply ioctl on non-disk devices. (open_device) Likewise. (grub_util_biosdisk_close): Likewise. Reported by: Mark Korenberg. 2011-04-10 Alexander Kurtz * util/grub-mkconfig_lib.in: Add missing quotes. 2011-04-10 Colin Watson * grub-core/gnulib/argp-parse.c (__argp_input): Don't crash if pstate is NULL. 2011-04-10 Vladimir Serbinenko Dynamically count the number of lines for the lower banner. * grub-core/normal/menu_entry.c (per_term_screen): New member num_entries. (print_down): Use num_entries. (update_screen): Likewise. (grub_menu_entry_run): Set num_entries. * grub-core/normal/menu_text.c (menu_viewer_data): New member num_entries. (grub_print_message_indented): Move real part to ... (grub_print_message_indented_real): ... here. Additional argument dry_run. (draw_border): Additional argument num_entries. (print_message): Additional argument dry_run. (print_entries): Receive menu viewer data. (grub_menu_init_page): New argment num_entries. (menu_text_set_chosen_entry): Use num_entries. (grub_menu_try_text): Likewise. * grub-core/normal/term.c (print_ucs4_terminal): New argument dry_run. All users updated. (grub_ucs4_count_lines): New function. * include/grub/term.h (grub_term_cursor_x): Moved from here .. * grub-core/normal/menu_text.c (grub_term_cursor_x): ... to here. * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): Removed. (grub_term_border_height): Likewise. (grub_term_num_entries): Likewise. 2011-04-10 Vladimir Serbinenko * grub-core/boot/mips/yeeloong/fwstart.S: Fix address to error message. Remove now unused string. 2011-04-09 Colin Watson * docs/grub-dev.texi (Finding your way around): Update for 1.99 build system. (Getting started): GRUB is developed in Bazaar now, not Subversion. (Comment): Fix typo. (Getting started): General copy-editing. (Typical Development Experience): Likewise. (Error Handling): Likewise. (Video API): Likewise. 2011-04-09 Colin Watson * docs/grub-dev.texi: Replace MoinMoin syntax with Texinfo syntax throughout. 2011-04-08 Vladimir Serbinenko * util/grub-mkimage.c (main): Handle special naming of yeeloong directory. 2011-04-08 Colin Watson * docs/grub-dev.texi: Fix spelling of "developer" throughout. * grub-core/fs/i386/pc/pxe.c (parse_dhcp_vendor): Fix spelling of "development". 2011-04-08 Vladimir Serbinenko * grub-core/normal/menu_entry.c (run): Use grub_memcpy rather than grub_strcpy since the lines aren't necessarily 0-terminated. 2011-04-08 Vladimir Serbinenko * grub-core/lib/legacy_parse.c (legacy_commands): Find doesn't set root on legacy. 2011-04-08 Vladimir Serbinenko * grub-core/commands/probe.c (options): Argument to set isn't optional. (GRUB_MOD_INIT): DEVICE isn't optional. 2011-04-08 Vladimir Serbinenko * grub-core/normal/term.c (print_ucs4_terminal): Don't try to put the word on new line if it's too long anyway. Fixes a hang. 2011-04-08 Vladimir Serbinenko * include/grub/util/raid.h (grub_util_raid_getmembers): Make argument const. * util/grub-setup.c (main): Reuse md device name if available. * util/raid.c (grub_util_raid_getmembers): Receive device name and not GRUB name as argument. Based on patch by: Florian Wagner . 2011-04-08 Vladimir Serbinenko * grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_make_mbi): Place mbi on low memory for better compatibility. 2011-04-08 Vladimir Serbinenko * include/grub/efiemu/efiemu.h: Use grub_memory_hook_t type. 2011-04-08 Vladimir Serbinenko 2011-04-08 Colin Watson * autogen.sh: Ensure that collate and ctype locale is C. * conf/Makefile.common: Likewise. 2011-04-08 Vladimir Serbinenko * grub-core/normal/menu.c: Add missing include. 2011-04-08 Vladimir Serbinenko * grub-core/disk/raid.c [GRUB_UTIL]: Add missing include. 2011-04-08 Martin Zuther * util/grub-mkconfig.in: Ignore emacsen backup. 2011-04-08 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (open_device): Sync on close and not on open. (grub_util_biosdisk_close): Likewise. 2011-04-08 Vladimir Serbinenko * grub-core/kern/emu/getroot.c (grub_util_get_grub_dev): Add missing const attribute and use grub_isdigit. 2011-04-06 Andrey * grub-core/video/fb/video_fb.c (grub_video_fb_setup): Silence older gcc warning. 2011-04-06 Vladimir Serbinenko * grub-core/lib/relocator.c (grub_relocator_alloc_chunk_align): Add few useful grub_dprintf's. 2011-04-06 Vladimir Serbinenko * include/grub/fs.h (grub_dirhook_info): Use unsigned for 1-bit fields. 2011-04-06 Vladimir Serbinenko * util/grub.d/00_header.in: Don't use LANG unless unifont is available. 2011-04-06 Vladimir Serbinenko Output errors if theme loading failed. * grub-core/gfxmenu/gfxmenu.c (grub_gfxmenu_try): Move the call to grub_gfxterm_fullscreen on error paths to ... * grub-core/normal/menu.c (menu_init): ...here. Wait after showing theme loading error. 2011-04-06 Vladimir Serbinenko * include/grub/offsets.h (GRUB_KERNEL_I386_PC_RAW_SIZE): Let a bit more space for older compilers. (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): Likewise. 2011-04-06 Vladimir Serbinenko * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Detect spares and report them as not RAID members since they are useless for GRUB. * grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise. 2011-04-02 Vladimir Serbinenko Increase LVM implementation robustness in order not to crash on configurations like pvmove. Previously code assumed that in some places only lvs or only pvs are used whereas it seems that they are used interchangeably. * grub-core/disk/lvm.c (read_node): New function. (read_lv): Use read_node. (grub_lvm_scan_device): Use only first mirror on pvmove'd lvs. Match volumes only at the end when all lvs are found. Take both pvs (first) and lvs (second) into account. * include/grub/lvm.h (grub_lvm_segment): Merge fields stripe_* and mirror_* into node_*. All users updated. (grub_lvm_stripe): Merge this ... (grub_lvm_mirror): ... and this ... (grub_lvm_node): ... into this. All users updated. 2011-04-02 Vladimir Serbinenko * grub-core/disk/lvm.c (grub_lvm_scan_device): Print errors on the end of function to allow further scanning for LVMs. 2011-04-02 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_read): Don't close on failed seek as it breaks open fd reusage. 2011-04-02 Vladimir Serbinenko * util/grub-install.in: Add a recommendation to use --recheck before reporting bugs. 2011-04-02 Vladimir Serbinenko * docs/grub.texi (Vendor power-on buttons): Explain how the numbers are obtained. 2011-04-02 Vladimir Serbinenko GRUB developper manual based on existing Internals section and contributions by the various authors with active copyright assignment. * docs/Makefile.am (info_TEXINFOS): Add grub-dev.texi. * docs/font_char_metrics.png: New file. * docs/font_char_metrics.txt: Likewise. * docs/grub-dev.texi: Likewise. * docs/grub.texi (Internals): Move from here ... * docs/grub-dev.texi: ... here. 2011-04-01 Colin Watson Store the loopback device as data on loopback grub_disk structures, rather than the file it points to. This fixes use of freed memory if an existing loopback device is replaced. * grub-core/disk/loopback.c (grub_loopback_open): Store dev in disk->data, not dev->file. (grub_loopback_read): Adjust file assignment to match. Fixes Ubuntu bug #742967. 2011-04-01 Colin Watson * grub-core/disk/loopback.c (grub_cmd_loopback): Fix a memory leak when replacing an existing device. 2011-04-01 Vladimir Serbinenko Fix incorrect types in jfs.c. This enables >2TiB disks and fixes some memory corruptions. * grub-core/fs/jfs.c (struct grub_jfs_diropen): Interpret bytes as unsigned. (grub_jfs_lookup_symlink): Make ino a grub_uint32_t rather than int. (grub_jfs_blkno): Use 64-bit quantities for block sectors. (grub_jfs_read_inode): Likewise. (grub_jfs_opendir): Likewise. Remove now useless casts. (grub_jfs_getent): Likewise. Make ino a grub_uint32_t rather than int. (grub_jfs_mount): Ensure that blksize and log2_blksize are consistent. (grub_jfs_read_file): Use 64-bit quantities when necessary. Replace division and module with bit operations. (grub_jfs_find_file): Make ino a grub_uint32_t. (grub_jfs_lookup_symlink): Likewise. Use 64-bit quantities 2011-04-01 Colin Watson * grub-core/normal/menu_entry.c (run): Quieten uninitialised warning. (This was in fact always initialised before use, but GCC wasn't smart enough to prove that.) * grub-core/script/lexer.c (grub_script_lexer_yywrap): Likewise. 2011-03-31 Vladimir Serbinenko * grub-core/kern/x86_64/efi/callwrap.S (efi_wrap_0): Preserve 16-byte stack alignment. (efi_wrap_1): Likewise. (efi_wrap_2): Likewise. (efi_wrap_3): Likewise. (efi_wrap_4): Likewise. (efi_wrap_5): Likewise. (efi_wrap_6): Likewise. (efi_wrap_10): Likewise. Based on information by: Red Hat/Peter Jones. 2011-03-31 Colin Watson * grub-core/mmap/efi/mmap.c (grub_mmap_unregister): Remove set-but-not-used variable. 2011-03-31 Colin Watson * docs/grub.texi (Simple configuration): Be more explicit about GRUB_DEFAULT, and add an example. Reported by: Leslie Rhorer. 2011-03-30 Colin Watson * docs/grub.texi (Commands): Link to "GRUB only offers a rescue shell". 2011-03-30 Alexey Shvetsov * util/grub.d/10_linux.in: Add gentoo-specific config filename. * util/grub.d/20_linux_xen.in: Likewise. 2011-03-30 Vladimir Serbinenko * util/grub.d/10_linux.in: Try alternative config filenames where we parse config file. * util/grub.d/20_linux_xen.in: Likewise. 2011-03-30 Alexey Shvetsov * util/grub.d/10_linux.in: Add gentoo-specific Linux and initrd names. * util/grub.d/20_linux_xen.in: Likewise. 2011-03-30 Vladimir Serbinenko * grub-core/disk/raid.c (insert_array): Add few potentially useful grub_util_info. (grub_raid_register): Likewise. 2011-03-30 Vladimir Serbinenko * grub-core/kern/emu/getroot.c (grub_util_get_grub_dev) [__linux__]: Preserve partition number in mdadm code path. 2011-03-30 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev): Add few potentially useful grub_util_info. 2011-03-30 Vladimir Serbinenko * grub-core/disk/lvm.c (grub_lvm_scan_device): Remove spurious \n. 2011-03-30 Colin Watson * docs/grub.texi (default): Use @example rather than nested itemized lists to avoid breaking gendocs. 2011-03-30 Colin Watson * docs/grub.texi (Future): Update. 2011-03-30 Colin Watson * docs/grub.texi (Environment): New chapter. (Changes from GRUB Legacy): Link to "Environment block" section for details of limitations. (Simple configuration): Likewise. Link to documentation of gfxmode and gfxpayload variables from GRUB_GFXMODE and GRUB_GFXPAYLOAD respectively. (Shell-like scripting): Note that normal variables are stored in the environment. (gettext): Link to documentation of lang and locale_dir. (list_env): New section. (load_env): New section. (save_env): New section. (Reporting bugs): Fix typo. 2011-03-30 Vladimir Serbinenko * docs/grub.texi: Correctly use "terminal_input" and not "terminal" in the example. 2011-03-30 Vladimir Serbinenko * grub-core/term/at_keyboard.c (set_scancodes) [!GRUB_MACHINE_MIPS_YEELOONG && !GRUB_MACHINE_QEMU]: Use scancode set 1. 2011-03-30 Colin Watson * docs/grub.texi (Menu-specific commands): Remove some semantics that were true in GRUB Legacy but not in GRUB 2. (submenu): New section. (false): New section. (read): New section. (true): New section. 2011-03-30 Colin Watson * docs/grub.texi (Changes from GRUB Legacy): Minor proofreading. 2011-03-30 Colin Watson * docs/grub.texi (Simple configuration): Explain some of the current limitations of grub-mkconfig. Reported by: Leslie Rhorer. 2011-03-29 Vladimir Serbinenko Old macs search for boot.efi rather than for bootia32.efi. * util/grub-install.in: Copy bootia32.efi to boot.efi. * util/grub-mkrescue.in: Likewise. Suggested by: Peter Jones. 2011-03-29 Vladimir Serbinenko * util/grub.d/20_linux_xen.in: Accept old-style xen kernels. 2011-03-29 Vladimir Serbinenko * include/grub/lvm.h (grub_lvm_lv): New field 'visible'. (grub_lvm_segment): New fields 'type', 'mirror_count' and 'mirrors'. (grub_lvm_mirror): New struct. * grub-core/disk/lvm.c (grub_lvm_checkvalue): Commented out. (grub_lvm_iterate): Iterate only visible volumes. (grub_lvm_read): Factor out to .. (read_lv): ... this. Support mirrors. (grub_lvm_read): New wrapper function. (grub_lvm_scan_device): Parse mirrors. Skip everything that isn't stripped or mirrored. 2011-03-29 Vladimir Serbinenko * util/grub.d/10_linux.in: Skip vmlinux-* on x86 platforms. 2011-03-29 Colin Watson * docs/grub.texi (loopback): New section. 2011-03-29 Colin Watson * grub-core/disk/loopback.c (GRUB_MOD_INIT): Stop documenting removed -p option. 2011-03-29 Colin Watson * docs/grub.texi (BIOS installation): New section, partly based on previous text in other sections. (Installing GRUB using grub-install): Replace BIOS discussion with a cross-reference. (Images): Likewise. 2011-03-29 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (find_partition_start) [HAVE_DIOCGDINFO]: Add safety checks. 2011-03-29 Vladimir Serbinenko * util/grub.d/10_kfreebsd.in: Allow ufs.ko to be missing as it's per default compiled in kernel and prior to 8.0 isn't shipped at all. 2011-03-29 Colin Watson * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): If real_sb->size is zero (e.g. RAID-0), get the disk size from real_sb->data_size instead. Fixes Ubuntu bug #743136. 2011-03-29 Vladimir Serbinenko * grub-core/normal/misc.c (grub_normal_print_device_info): Use correct printf clauses for printing size and start. 2011-03-29 Vladimir Serbinenko * grub-core/fs/ext2.c (grub_ext2_read_inode): Fix an overflow. Reported and tested by: Timothy Nikkel. 2011-03-29 Vladimir Serbinenko * grub-core/term/gfxterm.c (dirty_region_add): Move core part to ... (dirty_region_add_real): ... this. (dirty_region_add): Don't discard margin refresh when performing scheduled repaint. 2011-03-29 Vladimir Serbinenko * grub-core/lib/relocator.c (allocate_regstart) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Avoid grub_dprintf since not all terminals are capabple of malloc-free operation. (allocate_inreg) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Likewise. (malloc_in_range) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Likewise. 2011-03-29 Mario Limonciello * util/grub-setup.c: Copy the partition table zone if floppy support is disabled, even if no partition table is found. Otherwise, the BIOS on Dell Latitude E series laptops will freeze during POST if an invalid partition table is contained in the PBR of the active partition when GRUB is installed to a partition. 2011-03-28 Colin Watson * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Remove stale comment. 2011-03-28 Colin Watson * grub-core/disk/raid.c (grub_raid_register): Adjust debug message to be specific about what kind of RAID device we're scanning for. 2011-03-26 Seth Goldberg * grub-core/kern/emu/getroot.c (find_root_device_from_libzfs): Don't return freed string. 2011-03-26 Vladimir Serbinenko * grub-core/fs/iso9660.c (grub_iso9660_label): Rtrim the label. 2011-03-26 Vladimir Serbinenko Use libgeom on FreeBSD to detect partitions. * Makefile.util.def (grub-mkimage): Add LIBGEOM to ldadd. (grub-mkrelpath): Likewise. (grub-script-check): Likewise. (grub-editenv): Likewise. (grub-mkpasswd-pbkdf2): Likewise. (grub-fstest): Likewise. (grub-mkfont): Likewise. (grub-mkdevicemap): Likewise. (grub-probe): Likewise. (grub-setup): Likewise. (grub-ofpathname): Likewise. (grub-mklayout): Likewise. (example_unit_test): Likewise. (grub-menulst2cfg): Likewise. * grub-core/Makefile.core.def (grub-emu): Likewise. (grub-emu-lite): Likewise. * configure.ac: Check for -lgeom on FreeBSD and set LIBGEOM. * grub-core/kern/emu/hostdisk.c [FreeBSD]: Include libgeom.h. Don't define HAVE_DIOCGDINFO. (follow_geom_up) [FreeBSD]: New function. (find_partition_start) [FreeBSD]: Rewritten using follow_geom_up. (convert_system_partition_to_system_disk) [FreeBSD]: Likewise. (grub_util_biosdisk_get_grub_dev) [FreeBSD]: Use FreeBSD path unconditionally of HAVE_DIOCGDINFO. 2011-03-26 Vladimir Serbinenko Fix FreeBSD compilation problem. * grub-core/kern/emu/hostdisk.c (MAJOR) [FreeBSD]: New definition. (FLOPPY_MAJOR) [FreeBSD]: Likewise. 2011-03-24 Colin Watson * grub-core/video/fb/video_fb.c (grub_video_fb_get_info_and_fini): Switch back to page zero before loading a kernel, since some kernel drivers expect that. Thanks to: Felix Kuehling. 2011-03-24 Vladimir Serbinenko * grub-core/lib/relocator.c (grub_relocator_alloc_chunk_addr) [DEBUG_RELOCATOR]: Reuse grub_mm_check. (grub_relocator_alloc_chunk_align) [DEBUG_RELOCATOR]: Likewise. 2011-03-24 Vladimir Serbinenko * include/grub/mm.h (GRUB_MM_CHECK): Rename to ... (grub_mm_check): ... this. MAke a function-like macro and use GRUB_FILE. 2011-03-24 Vladimir Serbinenko * grub-core/lib/relocator.c (allocate_inreg): Avoid dprintf unless DEBUG_RELOCATOR is defined since gfxterm can't cope with output when malloc is disabled. 2011-03-24 Vladimir Serbinenko * grub-core/loader/i386/bsdXX.c (grub_freebsd_load_elfmodule): Account for modules headers when counting the needed allocation size. 2011-03-23 Vladimir Serbinenko * grub-core/term/gfxterm.c (calculate_normal_character_width): Return 8 if no ASCII character is found to prevent crash. 2011-03-23 Alexander Kurtz * grub-core/video/bitmap.c (match_extension): Ignore case. 2011-03-23 Vladimir Serbinenko * grub-core/normal/menu_entry.c (init_line): Fix off-by-one error. 2011-03-23 Vladimir Serbinenko * grub-core/script/parser.y: Declare "time" as valid argument. 2011-03-23 Peter Jones Fix incorrect assert failure reporting. * grub-core/tests/example_functional_test.c (example_test): Add a failure comment. * grub-core/tests/lib/test.c (add_failure): Renamed to ... (failure_start): ...this. Check that malloc succeeded. Don't call xvasprintf. Return failure struct. (failure_append_vtext): New function. (failure_append_text): Likewise. (add_failure): Likewise. (grub_test_assert_helper): Likewise. * include/grub/test.h (grub_test_assert_helper): New declaration. (grub_test_assert): Macro rewritten. 2011-03-23 Vladimir Serbinenko * grub-core/normal/main.c (GRUB_MOD_INIT): Export pager variable. 2011-03-23 Vladimir Serbinenko * grub-core/lib/i386/pc/biosnum.c: Add missing include. 2011-03-23 Vladimir Serbinenko * grub-core/disk/usbms.c (grub_usbms_reset): Transform USB-style error into GRUB-style one. 2011-03-23 Vladimir Serbinenko * grub-core/bus/usb/usbtrans.c (grub_usb_control_msg): Return usb-style error and not grub_errno. * grub-core/bus/usb/usbhub.c (grub_usb_add_hub): Likewise. 2011-03-23 Vladimir Serbinenko * grub-core/bus/usb/uhci.c (grub_uhci_detect_dev): Return GRUB_USB_SPEED_NONE in case of failure and not the error code. 2011-03-23 Vladimir Serbinenko * grub-core/efiemu/i386/pc/cfgtables.c (grub_machine_efiemu_init_tables): Make declaration a prototype. * grub-core/loader/xnu.c (grub_xnu_lock): Likewise. (grub_xnu_unlock): Likewise. * grub-core/normal/cmdline.c (grub_cmdline_get/cl_set_pos_all): Likewise. 2011-03-23 Vladimir Serbinenko * grub-core/bus/usb/usb.c (attach_hooks): Make static. * grub-core/bus/usb/usbhub.c (hubs): Likewise. * grub-core/commands/hashsum.c (aliases): Likewise. * grub-core/commands/setpci.c (pci_registers): Likewise. * grub-core/disk/usbms.c (attach_hook): Likewise. * grub-core/fs/zfs/zfs.c (decomp_table): Likewise. (zio_checksum_table): Likewise. * grub-core/gettext/gettext.c (grub_gettext_msg_list): Likewise. * grub-core/gfxmenu/gfxmenu.c (cached_view): Likewise. * grub-core/lib/legacy_parse.c (legacy_commands): Likewise. * grub-core/lib/relocator.c (leftovers): Likewise. (extra_blocks): Likewise. * grub-core/loader/i386/bsd.c (relocator): Likewise. * grub-core/loader/i386/multiboot_mbi.c (modules): Likewise. (modules_last): Likewise. * grub-core/loader/i386/xnu.c (table_aliases): Likewise. (devices): Likewise. * grub-core/loader/multiboot_mbi2.c (modules): Likewise. (modules_last): Likewise. * grub-core/normal/auth.c (users): Likewise. * grub-core/normal/context.c (initial_menu): Likewise. (current_menu): Likewise. * grub-core/normal/crypto.c (crypto_specs): Likewise. * grub-core/term/serial.c (grub_serial_ports): Likewise. (grub_serial_terminfo_input_template): Likewise. (grub_serial_terminfo_output_template): Likewise. (grub_serial_terminfo_input): Likewise. (grub_serial_terminfo_output): Likewise. (registered): Likewise. * grub-core/term/usb_keyboard.c (attach_hook): Likewise. 2011-03-23 Vladimir Serbinenko * grub-core/video/bochs.c (grub_video_bochs_setup): Use grub_video_mode_type_t. * grub-core/video/cirrus.c (grub_video_cirrus_setup): Likewise. * grub-core/video/i386/pc/vbe.c (grub_video_vbe_setup): Likewise. * grub-core/video/i386/pc/vga.c (grub_video_vga_setup): Likewise. 2011-03-23 Vladimir Serbinenko * util/grub-install.in: Correct the x86-64 name as x86_64. 2011-03-11 Colin Watson * grub-core/boot/i386/pc/lnxboot.S (real_code_2): Ensure that the initial chunk read from the kernel always includes GRUB's multiboot header, which is now outside the first sector. 2011-03-09 Colin Watson * grub-core/loader/i386/linux.c (find_efi_mmap_size): Page-align cached mmap_size, so that this works correctly when called multiple times. Reported by: Daniel Kahn Gillmor. Should fix Debian bug #616638. 2011-03-09 Colin Watson * docs/grub.texi (Simple configuration): Tidy up formatting. 2011-03-07 Szymon Janc * grub-core/fs/zfs/zfs.c (zap_leaf_lookup): Set-but-not-used variable removed. 2011-02-12 Vladimir Serbinenko Workaround yet another IEEE1275 bug. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum value GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS. * grub-core/kern/ieee1275/mmap.c (grub_machine_mmap_iterate): Ignore adress_cells and size:cells if GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS is set. * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS on powermacs. 2011-02-12 Vladimir Serbinenko * grub-core/partmap/msdos.c (pc_partition_map_embed): Fix off by one error. 2011-02-11 Colin Watson * util/grub.d/20_linux_xen.in: Bail out early if linux_list is empty, since in that case we can only generate either nothing or a syntactically invalid configuration file. Reported by: Michal Suchanek. Fixes Debian bug #612898. 2011-02-09 Colin Watson * docs/grub.texi (Kernel): Add reference to grub-mkrescue. (Making a GRUB bootable CD-ROM): Likewise. (Invoking grub-mkrescue): New section. Reported by: Yann Dirson. Fixes Debian bug #612585. 2011-02-09 Colin Watson * util/grub-install.in: Remove unnecessary brackets from tr arguments. * util/grub.d/10_hurd.in: Likewise. * util/grub.d/10_kfreebsd.in: Likewise. * util/grub.d/10_linux.in: Likewise. * util/grub.d/20_linux_xen.in: Likewise. Reported by: Jamie Heilman. Fixes Debian bug #612564. 2011-02-08 Colin Watson * include/grub/file.h (not_easly_seekable): Rename to ... (not_easily_seekable): ... this. Update all users. 2011-01-28 Colin Watson * docs/grub.texi (Making a GRUB bootable CD-ROM): Update to describe grub-mkrescue. 2011-01-24 Vladimir Serbinenko * util/grub-mkimage.c (generate_image): Refuse to create the images bigger than the actual flash (512K) in Loongson machines. 512K is also the biggest chip supported by them. 2011-01-22 Vladimir Serbinenko * grub-core/kern/emu/getroot.c: Include config-util.h explicitly. 2011-01-22 Anthony DeRobertis * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Check super_offset field. 2011-01-22 Vladimir Serbinenko * util/grub-install.in: Ignore install device on platforms where it doesn't make sense. Always use UUIDs except on pc, efi and sparc64. Reported by: Daniel Kahn Gillmor. 2011-01-22 Vladimir Serbinenko * grub-core/bus/bonito.c (write_bases): Fix direction of the shift. 2011-01-22 Vladimir Serbinenko * grub-core/partmap/bsdlabel.c: Include grub/emu/misc.h and not grub/util/misc.h. (iterate_real): Don't rely on partition being non-NULL. 2011-01-22 Vladimir Serbinenko * grub-core/script/argv.c (round_up_exp): unsigned is 32-bit on all supported platforms. Put a compile time assert for this rather than generate a warning with 32-bit shift. 2011-01-22 Vladimir Serbinenko * grub-core/disk/scsi.c (grub_scsi_read): Fix binary and check and make logical expression more readable. 2011-01-22 Vladimir Serbinenko * grub-core/disk/raid.c (insert_array): Ensure uniqueness of p->number even if some elements have a name. Reported by: Alexander GQ Gerasiov. 2011-01-22 Colin Watson * util/grub-mkconfig_lib.in (is_path_readable_by_grub): Consider a path unreadable if `grub-probe -t abstraction' fails, for example if memberlist fails on an LVM volume group. Reported by: Darius Jahandarie. 2011-01-22 Colin Watson * docs/grub.texi (Simple configuration): Document GRUB_PRELOAD_MODULES. 2011-01-17 Colin Watson * .bzrignore: Remove nonexistent grub-pbkdf2. 2011-01-16 Vladimir Serbinenko * configure.ac: Bump version to 1.99~rc1. 2011-01-15 Vladimir Serbinenko * util/grub-mkimage.c (generate_image): Check fwstart.img checksum for safety. 2011-01-14 Vladimir Serbinenko * grub-core/kern/mips/yeeloong/init.c (grub_machine_init): Init boot module. 2011-01-14 Vladimir Serbinenko * grub-core/Makefile.core.def (fwstart): Add lost LDFLAGS. 2011-01-13 Vladimir Serbinenko * grub-core/fs/zfs/zfsinfo.c (grub_cmd_zfs_bootfs): Quote bootpath and diskdevid. 2011-01-13 Vladimir Serbinenko Fix compilation on cygwin. * conf/Makefile.common (STRIPFLAGS_KERNEL): Add -F elf32-i386 and -R .drectve on cygwin. * conf/i386-pc-cygwin-img-ld.sc: Merge rdata and pdata into data. * configure.ac: Use $(top_builddir) in TARGET_OBJ2ELF. (COND_CYGWIN): New condition. * grub-core/Makefile.am (%.mod): Set TARGET_OBJ2ELF. * grub-core/genmod.sh.in: Use ${TARGET_OBJ2ELF} and not @TARGET_OBJ2ELF@. * util/grub-pe2elf.c (write_symbol_table): Use pe_symtab->type and not type to determine whether aux is to be used. 2011-01-12 Vladimir Serbinenko * util/ieee1275/ofpath.c (grub_util_devname_to_ofpath): Use the realpath'ed device string. Handle floppy (somewhat). Issue error in unknown case rather than garbage. Reported by: Axel Beckert. 2011-01-12 Vladimir Serbinenko * util/grub.d/00_header.in (load_video): Handle the case when no video drivers available. Thanks to: Axel Beckert. 2011-01-12 Vladimir Serbinenko * util/grub-mkfont.c (write_font_pf2): Use appropriate type for data variable. Fixes problem on big endian platforms. 2011-01-12 Vladimir Serbinenko * grub-core/Makefile.core.def (ieee1275_fb): Disable on sparc. It doesn't work well there. 2011-01-12 Vladimir Serbinenko * grub-core/normal/context.c (grub_env_context_close): Silence spurious warning. * grub-core/normal/menu.c (grub_menu_execute_entry): Likewise. * grub-core/partmap/msdos.c (pc_partition_map_embed): Use unsigned counter. 2011-01-12 Vladimir Serbinenko Use alias->path rather than buggy "canon". * grub-core/disk/ieee1275/ofdisk.c (ofdisk_hash_add_real): New function. (ofdisk_hash_add): New argument curcan. All users updated. 2011-01-11 Colin Watson * configure.ac: Fall back to `true' if `makeinfo' does not exist. 2011-01-11 Vladimir Serbinenko * grub-core/loader/powerpc/ieee1275/linux.c (grub_linux_load32): Apply loadmask before doing any calculations. Use correct type for offset. (grub_linux_load64): Likewise. 2011-01-11 Colin Watson * util/grub-mklayout.c (console_grub_equivalences_shift): Terminate with NULL. (console_grub_equivalences_unshift): Likewise. Reported by: Daniel Dehennin. 2011-01-11 Vladimir Serbinenko * grub-core/fs/i386/pc/pxe.c (set_mac_env): Export variable. (set_env_limn_ro): Likewise. (GRUB_MOD_INIT): Likewise. * grub-core/hook/datehook.c (GRUB_MOD_INIT): Likewise. Change to ARRAY_SIZE while on it. (GRUB_MOD_FINI): Change to ARRAY_SIZE. * grub-core/normal/context.c (grub_env_export): Move from here ... * grub-core/kern/env.c (grub_env_export): ... here. * grub-core/normal/context.c (grub_cmd_export): Skip exporting root and prefix. * grub-core/kern/main.c (grub_main): Export root and prefix. * include/grub/env.h (grub_env_export): Export. Reported by: Seth Goldberg. 2011-01-11 Vladimir Serbinenko * grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_make_mbi): Take into account space used by ELF sections and multiboot palette. Reported by: Grégoire Sutre. 2011-01-11 Vladimir Serbinenko * BUGS: New file. 2011-01-10 Vladimir Serbinenko Pass more appropriate video id to Linux. * grub-core/loader/i386/linux.c (grub_linux_setup_video): Use grub_video_get_driver_id and variable gfxpayloadforcelfb to fill have_vga. (grub_linux_boot): Rely on grub_linux_setup_video to fill have_vga and shift params->lfb_size. * include/grub/i386/linux.h: Make an enume out of have_vga values. 2011-01-10 Vladimir Serbinenko * util/grub-menulst2cfg.c: Add missing include of misc.h. 2011-01-10 Vladimir Serbinenko * grub-core/fs/zfs/zfsinfo.c (grub_cmd_zfs_bootfs): Use comma as separator and pass bootpath/devid even if only one of them is available. Reported by: Seth Goldberg. 2011-01-10 Vladimir Serbinenko Don't use post-4G memory on EFI even if 64-bit since some non-compliant implementations bug on them. * grub-core/kern/efi/mm.c (grub_efi_allocate_pages): Skip post-4G memory. (filter_memory_map): Likewise. 2011-01-10 Vladimir Serbinenko * util/grub-kbdcomp.in: Add missing prefix and exec_prefix variables. Reported by: nebuchadnezzar. 2011-01-10 Vladimir Serbinenko * util/grub-kbdcomp.in: Add missing transform and bindir variables. Reported by: nebuchadnezzar. 2011-01-10 Vladimir Serbinenko Submenu default support. * grub-core/normal/menu.c (grub_menu_execute_entry): New parameter auto_boot. All users updated. Declared static. Handle chosen and default with submenus. (grub_menu_execute_with_fallback): Declared static. Don't notify failure if autobooted. Upper level does it. (menuentry_eq): New function. (get_entry_number): Use menuentry_eq. (show_menu): New parameter "autobooted". All users updated. (grub_show_menu): Likewise. * include/grub/normal.h (grub_show_menu): Likewise. * include/grub/menu.h (grub_menu_execute_entry): Removed. (grub_menu_execute_with_fallback): Likewise. 2011-01-10 Vladimir Serbinenko * util/grub-mklayout.c (usage): Update help text. 2011-01-10 Vladimir Serbinenko * grub-core/commands/legacycfg.c (legacy_file): Trim the line. 2011-01-10 Vladimir Serbinenko * util/grub-menulst2cfg.c (main): Trim the line. 2011-01-10 Vladimir Serbinenko * grub-core/kern/i386/pc/init.c (grub_get_conv_memsize): Removed. (grub_machine_init): Don't check amount of low memory as reportedly INT 12h can be broken and if low memory is too low we wouldn't have gotten into grub_machine_init anyway. 2011-01-10 Vladimir Serbinenko * grub-core/kern/i386/pc/mmap.c (grub_get_conv_memsize): New function. (grub_machine_mmap_iterate): Take low memory into account 2011-01-10 Vladimir Serbinenko * grub-core/fs/btrfs.c (grub_btrfs_mount): Transform out of range into badfs. Reported by: TiCPU. 2011-01-10 Vladimir Serbinenko * grub-core/disk/raid.c (insert_array): Display RAID name in duplicate members errors. 2011-01-09 Grégoire Sutre * util/grub.d/10_netbsd.in (netbsd_load_fs_module): New function. (netbsd_entry): Use netbsd_load_fs_module() to load filesystem module. 2011-01-09 Grégoire Sutre * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Handle openbsd and netbsd types being in part_bsd module. 2011-01-08 Vladimir Serbinenko * config.h.in (_LARGEFILE_SOURCE): Add missing define. (_FILE_OFFSET_BITS): Likewise. Reported by: Seth Goldberg. 2011-01-08 Grégoire Sutre * configure.ac: Check for libdevmapper header. 2011-01-08 Vladimir Serbinenko * grub-core/fs/zfs/zfs.c (dmu_read): Use void * for some pointers to avoid aliasing. (fzap_lookup): Likewise. (dnode_get): Likewise. (make_mdn): Likewise. (zfs_mount): Likewise. (fzap_iterate): Use temporary pointer to avoid aliasing. (grub_zfs_read): Likewise. * grub-core/loader/i386/xnu.c (grub_xnu_boot): Likewise. * grub-core/loader/xnu.c (grub_cmd_xnu_kernel): Use void * for some pointers to avoid aliasing. (grub_cmd_xnu_kernel64): Likewise. (grub_xnu_load_driver): Likewise. 2011-01-08 Vladimir Serbinenko * grub-core/commands/terminal.c (grub_cmd_terminal_input): Silence aliasing warning. (grub_cmd_terminal_output): Likewise. Reported and tested by: Grégoire Sutre. 2011-01-08 Vladimir Serbinenko * grub-core/term/at_keyboard.c (grub_keyboard_getkey): Silence spurious warning. Reported and tested by: Grégoire Sutre. 2011-01-08 Vladimir Serbinenko * configure.ac: Do CPU substitution even if it's specified explicitly. Reported and tested by: Alain Greppin. 2011-01-08 Vladimir Serbinenko * grub-core/Makefile.am (rs_decoder.S): Force compilation with -Os. Reported and tested by: Alain Greppin. 2011-01-08 Vladimir Serbinenko Satisfy some bison versions need for inttypes.h. * grub-core/lib/posix_wrap/inttypes.h: New file. * grub-core/lib/posix_wrap/sys/types.h (int8_t): New type. (int16_t): Likewise. (int32_t): Likewise. (int64_t): Likewise. Reported and tested by: Alain Greppin. 2011-01-08 Vladimir Serbinenko * grub-core/loader/i386/bsdXX.c (grub_netbsd_load_elf_meta): Silence spurious warning. Reported and tested by: Alain Greppin. 2011-01-07 Szymon Janc * docs/grub.texi (Support automatic decompression): Update with xz decompression support. 2011-01-07 Szymon Janc Improve loaders' kernel command line handling. * grub-core/lib/cmdline.c: New file. * include/grub/lib/cmdline.h: Likewise. * grub-core/loader/i386/linux.c (grub_cmd_linux): Use grub_create_loader_cmdline to create kernel command line. * grub-core/loader/i386/pc/linux.c (grub_cmd_linux): Likewise. * grub-core/loader/powerpc/ieee1275/linux.c (grub_cmd_linux): Likewise. * grub-core/loader/sparc64/ieee1275/linux.c (grub_cmd_linux): Likewise. * grub-core/Makefile.core.def (linux16): Add lib/cmdline.c on i386_pc. (linux): Add lib/cmdline.c on common. 2011-01-07 Vladimir Serbinenko * grub-core/fs/xfs.c (grub_xfs_iterate_dir): Take into account that inopos might be unaligned. 2011-01-07 Vladimir Serbinenko * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Add missing endian transformations. * grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise. Based on report by: Doug Nazar. 2011-01-07 Doug Nazar * grub-core/disk/raid5_recover.c (grub_raid5_recover): Add missing array->members[i].start_sector. * grub-core/disk/raid6_recover.c (grub_raid6_recover): Likewise. 2011-01-07 Vladimir Serbinenko * util/grub-setup.c (setup): Handle NetBSD and OpenBSD disklabels. Reported and tested by: Grégoire Sutre. 2011-01-06 Colin Watson * tests/util/grub-shell.in: Set serial terminfo type to `dumb', to avoid causing test failures by clearing the screen. 2011-01-06 Colin Watson * grub-core/kern/emu/getroot.c (find_root_device_from_mountinfo): Fix prefix check to handle the case where dir ends with a slash (most significantly, "/" itself). Reported by: Michael Vogt. 2011-01-05 Vladimir Serbinenko Run terminfo_cls on initing terminfo output to clear the screen and move the cursor to (0,0). * grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_init_output): Call grub_terminfo_output_init. * grub-core/term/serial.c (grub_serial_term_output): Set .init. * grub-core/term/terminfo.c (grub_terminfo_output_init): New function. * include/grub/terminfo.h (grub_terminfo_output_init): New declaration. 2011-01-05 Vladimir Serbinenko * util/grub-install.in: Determine ofpathname, nvsetenv and efibootmgr only when needed. 2011-01-05 Vladimir Serbinenko * grub-core/term/terminfo.c (grub_terminfo_readkey): Handle keys with CTRL. 2011-01-05 Vladimir Serbinenko The E820 type 5 is BADRAM, not EXEC_CODE. * grub-core/loader/i386/bsd.c (GRUB_E820_EXEC_CODE): Removed. (GRUB_E820_BADRAM): New define. * grub-core/loader/i386/linux.c (grub_linux_boot): Translate code into reserved. Propagate BADRAM. * grub-core/loader/i386/bsd.c (GRUB_E820_EXEC_CODE): Removed. (GRUB_E820_BADRAM): New define. 2011-01-04 Vladimir Serbinenko * grub-core/lib/efi/relocator.c (grub_relocator_firmware_fill_events): Ignore the memory post-4G. (grub_relocator_firmware_alloc_region): Additional debug statement. 2011-01-04 Vladimir Serbinenko * grub-core/kern/emu/getroot.c (grub_util_get_grub_dev): Check md/%s names. Reported by: David Pravec. 2011-01-04 Vladimir Serbinenko * grub-core/disk/i386/pc/biosdisk.c (GRUB_MOD_INIT): Workaround buggy BIOSes. 2011-01-04 Vladimir Serbinenko * grub-core/lib/reed_solomon.c (grub_reed_solomon_add_redundancy): Prevent overflow. (grub_reed_solomon_recover): Likewise. 2011-01-04 Vladimir Serbinenko * grub-core/lib/reed_solomon.c (main) [TEST]: Reactivate normal test. 2011-01-04 Vladimir Serbinenko * grub-core/lib/reed_solomon.c (scratch) [! STANDALONE]: Remove leftover variable. 2011-01-04 Colin Watson * grub-core/commands/legacycfg.c (GRUB_MOD_INIT): Fix typo in descriptions of extract_legacy_entries_source and extract_legacy_entries_configfile. Reported by: Seung Soo, Ha. 2011-01-03 Colin Watson * grub-core/bus/pci.c (grub_pci_iterate): Skip remaining functions on devices that do not implement function 0. 2011-01-03 Dave Vasilevsky * grub-core/fs/hfsplus.c: Make parent unsigned. (grub_hfsplus_cmp_catkey): Don't compare using subtraction, it overflows. (grub_hfsplus_cmp_extkey): Likewise 2011-01-03 Vladimir Serbinenko * util/grub-install.in: Correctly use bootloader_id and not GRUB_DISTRIBUTOR on efibootmgr line. 2011-01-03 Vladimir Serbinenko * util/grub-mkfont.c (main): Report errors in FT_New_Face. 2010-12-31 Ian Campbell * util/grub.d/20_linux_xen.in (linux_entry): Correctly capitalize Xen and reorder menu item wording to make it clearer that this entry will launch Xen. Print separate messages when loading Xen and Linux. 2010-12-31 Vladimir Serbinenko * grub-core/partmap/amiga.c (GRUB_AMIGA_PART_MAGIC): New define. (amiga_partition_map_iterate): Check "PART" magic to avoid a very long loop in case of incorrect amiga partmap. 2010-12-31 Vladimir Serbinenko * grub-core/partmap/amiga.c (GRUB_AMIGA_RDSK_MAGIC): New define. (amiga_partition_map_iterate): Use grub_memcmp instead of grub_strcmp. Reported by:EHeM. 2010-12-31 Vladimir Serbinenko * grub-core/loader/i386/bsdXX.c (grub_openbsd_find_ramdisk): Silence spurious warning. Reported by: crocket 2010-12-27 Vladimir Serbinenko * grub-core/loader/xnu.c (grub_cmd_xnu_kernel) [! GRUB_MACHINE_EFI]: Preload EFIemu. (grub_cmd_xnu_kernel64) [! GRUB_MACHINE_EFI]: Likewise. 2010-12-27 Vladimir Serbinenko * grub-core/loader/xnu.c (grub_cmd_xnu_kext): Abort if no kernel is loaded (grub_cmd_xnu_kextdir): Likewise. (grub_cmd_xnu_splash): Likewise. 2010-12-27 Vladimir Serbinenko Avoid using Reed-Solomon with 0 redundancy. * grub-core/kern/i386/pc/startup.S: Remove 0-data check. * grub-core/lib/reed_solomon.c (decode_block): Do not proceed on 0 data or 0 redundancy. (grub_reed_solomon_add_redundancy): Do not proceed with 0 redundancy. (grub_reed_solomon_recover): Likewise. 2010-12-27 Vladimir Serbinenko Don't use disk subsystem in freebsd_boot. * grub-core/loader/i386/bsd.c (freebsd_bootdev): New variable. (freebsd_biosdev): Likewise. (grub_freebsd_boot): Use freebsd_bootdev and freebsd_biosdev. (grub_cmd_freebsd): Set freebsd_bootdev and freebsd_biosdev. 2010-12-26 Vladimir Serbinenko Handling of files of unknown size is currently limited. They can't be used e.g. for initrd or modules. Moreover gzip handling of not easily seekable files is buggy. Disable unknown file size for now. May be inefficient but works. * grub-core/io/gzio.c (test_header): Always retrieve the file size. * grub-core/io/xzio.c (grub_xzio_open): Likewise. 2010-12-25 Mirko Parthey * grub-core/boot/i386/pc/boot.S: Fix %es:%bx pointing to nowhere on floppy probe. 2010-12-25 Jeroen Dekkers * grub-core/disk/raid.c (insert_array): Don't add spurious members. 2010-12-25 Shea Levy * grub-core/genmod.sh.in: Use @OBJCOPY@ rather than objcopy. 2010-12-25 Vladimir Serbinenko * util/grub.d/30_os-prober.in: Don't emit drivemap directive for Windows Server 2008. Reported by: Devin Giddings. 2010-12-25 Vladimir Serbinenko * grub-core/commands/acpihalt.c (grub_acpi_halt): Sleep for 1.5 before writing an error message because of async power management. * grub-core/kern/mips/yeeloong/init.c (grub_halt): Likewise. (grub_reboot): Likewise. 2010-12-23 Jordan Uggla * tests/util/grub-shell.in: Suppress "ACPI shutdown failed" error to keep unit tests from failing when they shouldn't. 2010-12-21 Colin Watson * include/grub/offsets.h (GRUB_KERNEL_I386_PC_RAW_SIZE): The previous patch increased the size of the RS code by 20 bytes (at least with gcc-4.4), so increase this by 20 bytes to match. (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): Likewise. 2010-12-21 Colin Watson * grub-core/lib/reed_solomon.c (gauss_solve): Fix size of standalone scratch area. Make sure to initialise chosen in standalone mode as well as non-standalone. Reported by: Robert Hooker and Andy Whitcroft. Tested by: Andy Whitcroft. 2010-12-21 Colin Watson * grub-core/commands/echo.c (grub_cmd_echo): Make UTF-8-clean by constructing a new unescaped string and passing it to grub_xputs in one go, rather than passing characters to grub_printf one at a time. 2010-12-21 Colin Watson * grub-core/fs/udf.c (read_string): Pacify GCC warning by initialising utf16. 2010-12-21 Colin Watson * util/grub-mkconfig_lib.in (gettext_quoted): Add clarifying comment. Add an extra layer of quotation, requiring the output of this function to be used in a printf format string. (gettext_printf): New function. * util/grub.d/10_hurd.in: Use gettext_printf where appropriate. Extract translatable strings from here-documents and use a temporary variable instead, so that xgettext can find them. * util/grub.d/10_kfreebsd.in: Likewise. * util/grub.d/10_linux.in: Likewise. * util/grub.d/20_linux_xen.in: Likewise. * po/grub.d.sed: New file. * po/Makefile.in.in ($(DOMAIN).pot-update): Extract gettext_printf arguments. Set c-format flags on all strings extracted from util/grub.d/ (xgettext refuses to include these itself for strings it extracted from a shell file, but these really are c-format). 2010-12-20 Vladimir Serbinenko * grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_add_module): Avoid next pointing to nowhere. 2010-12-19 Vladimir Serbinenko * grub-core/fs/affs.c (grub_affs_mount): Read data->bblock.rootblock rather than assuming than rootblock is exactly in the middle. (grub_affs_label): Likewise. 2010-12-19 Vladimir Serbinenko * grub-core/fs/affs.c (grub_affs_fs) [GRUB_UTIL]: Explicitly set reserved_first_sector to 0. * grub-core/fs/cpio.c (grub_cpio_fs) [GRUB_UTIL]: Likewise. * grub-core/fs/sfs.c (grub_sfs_fs) [GRUB_UTIL]: Likewise. * grub-core/fs/xfs.c (grub_xfs_fs) [GRUB_UTIL]: Likewise. 2010-12-19 Vladimir Serbinenko Fix handling of UTF-16 UDF labels. * grub-core/fs/udf.c (grub_udf_iterate_dir): Move string-parsing part (read_string): .. here. (grub_udf_label): Use read_string. 2010-12-19 BVK Chaitanya * grub-core/normal/menu_entry.c (run): Execute commands from menu editor under argument scope. Reported by: Jordan Uggla 2010-12-18 Vladimir Serbinenko * util/grub-mkfont.c (main): Handle errors from FT_Set_Pixel_Sizes. 2010-12-18 Colin Watson * grub-core/normal/term.c (print_more): Make \r or \n scroll one line, and other keys scroll an entire page (previous handling was for \r and \n to scroll a page and other keys to scroll two lines). 2010-12-18 Vladimir Serbinenko * grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_make_mbi): Set ptrdest to correct get_physical_target_address rather than incorrect get_virtual_current_address. 2010-12-18 kashyap garimella * grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_load): Use correct cat to grub_uint8_t * rather than grub_uint32_t *. 2010-12-10 Colin Watson * .bzrignore: Ignore grub-core/rs_decoder.S. 2010-12-10 Colin Watson * grub-core/gettext/gettext.c (grub_gettext_init_ext): Factor out .mo/.mo.gz opening sequence to ... (grub_mofile_open_lang): ... here. (grub_gettext_init_ext): If opening ll_CC fails, try ll. * util/grub.d/00_header.in (grub_lang): Include country part of locale. Reported by: Mario Limonciello. 2010-12-09 Robert Millan * NEWS: Document addition of ZFS support. 2010-12-04 Colin Watson * grub-core/kern/i386/pc/startup.S (grub_console_getkey): Use `>> 1' rather than `/ 2', as the latter requires -Wa,--divide which would require bumping our minimum binutils version. 2010-12-03 BVK Chaitanya * util/grub-script-check.c (main): Print script line number on error. 2010-12-01 Robert Millan * grub-core/fs/zfs/zfs.c: New file. * grub-core/fs/zfs/zfs_fletcher.c: Likewise. * grub-core/fs/zfs/zfs_lzjb.c: Likewise. * grub-core/fs/zfs/zfs_sha256.c: Likewise. * grub-core/fs/zfs/zfsinfo.c: Likewise. * include/grub/zfs/dmu.h: Likewise. * include/grub/zfs/dmu_objset.h: Likewise. * include/grub/zfs/dnode.h: Likewise. * include/grub/zfs/dsl_dataset.h: Likewise. * include/grub/zfs/dsl_dir.h: Likewise. * include/grub/zfs/sa_impl.h: Likewise. * include/grub/zfs/spa.h: Likewise. * include/grub/zfs/uberblock_impl.h: Likewise. * include/grub/zfs/vdev_impl.h: Likewise. * include/grub/zfs/zap_impl.h: Likewise. * include/grub/zfs/zap_leaf.h: Likewise. * include/grub/zfs/zfs.h: Likewise. * include/grub/zfs/zfs_acl.h: Likewise. * include/grub/zfs/zfs_znode.h: Likewise. * include/grub/zfs/zil.h: Likewise. * include/grub/zfs/zio.h: Likewise. * include/grub/zfs/zio_checksum.h: Likewise. * Makefile.util.def: Build ZFS into libgrubmods. * grub-core/Makefile.core.def: Build zfs.mod. 2010-11-30 Szymon Janc * grub-core/commands/regexp.c (grub_cmd_regexp): Remove unused variable. * grub-core/commands/wildcard.c (match_files): Likewise. 2010-11-30 Robert Millan * grub-core/loader/i386/bsd.c (grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module_elf): Check whether kernel is loaded using grub_loader_is_loaded(), rather than `kernel_type', which may still be `KERNEL_TYPE_NONE' under certain error conditions. 2010-11-30 Robert Millan * grub-core/commands/echo.c: Include `'. (grub_cmd_echo): Call grub_refresh() after printing a message. 2010-11-26 Vladimir Serbinenko Avoid using tricks for initialising endian variables. * grub-core/partmap/gpt.c (grub_gpt_partition_type_bios_boot): Make const. (GRUB_MOD_INIT): Don't byte-swap. * include/grub/gpt_partition.h (GRUB_GPT_PARTITION_TYPE_BIOS_BOOT): Use grub_cpu_to_le16_compile_time and grub_cpu_to_le32_compile_time. * include/grub/types.h (grub_swap_bytes16_compile_time): New macro. (grub_swap_bytes32_compile_time): Likewise. (grub_cpu_to_le32_compile_time): Likewise. (grub_cpu_to_le16_compile_time): Likewise. 2010-11-26 Vladimir Serbinenko * util/grub-setup.c (setup): Stop recommending --force. People who understand the dangers of blocklists are able to find this option anyway and the ones who don't shouldn't use it anyway. 2010-11-26 Robert Millan * grub-core/term/i386/pc/vga_text.c (VGA_TEXT_SCREEN): Beautify. Update all users. 2010-11-26 Colin Watson Fix LVM-on-RAID probing. * util/grub-probe.c (probe): Remember which disk was detected as RAID (perhaps an LVM physical volume). Use that disk's raidname rather than that of the top-level disk. 2010-11-25 BVK Chaitanya Fix cmdline argument quotes for setparams command of menuentry definitions. * grub-core/commands/menuentry.c (setparams_prefix): Use single quotes for arguments. * grub-core/lib/legacy_parse.c (grub_legacy_escape): Use grub_strchrsub function instead. * include/grub/misc.h (grub_strchrsub): New function. 2010-11-24 Colin Watson * util/deviceiter.c (grub_util_iterate_devices): Save a bit of effort by skipping "." and ".." entries up-front. Suggested by: Michael Lazarev. 2010-11-24 Colin Watson * grub-core/Makefile.core.def (xz_decompress): Move -lgcc from ldflags to ldadd, to fix link line ordering. (none_decompress): Likewise. 2010-11-24 Colin Watson * grub-core/Makefile.core.def (kernel): Add kern/emu/cache.S for emu platforms. (grub-emu-lite): Remove kern/emu/cache.S. 2010-11-23 Colin Watson * util/deviceiter.c (compare_devices): If the by-id link for a device couldn't be resolved, fall back to sorting by the by-id link rather than segfaulting. Reported and tested by: Daniel Mierswa. 2010-11-23 Colin Watson * Makefile.util.def (grub-menulst2cfg): List libraries in ldadd, not ldflags, to fix link line ordering. 2010-11-23 Colin Watson * grub-core/Makefile.am (gentrigtables): Put -lm after $<; some linkers are picky about this. 2010-11-23 Colin Watson * grub-core/Makefile.am (command.lst): Adjust sed expression ordering so that extended and priority commands aren't treated as ordinary commands. 2010-11-23 Colin Watson * include/grub/gpt_partition.h (GRUB_GPT_PARTITION_TYPE_BIOS_BOOT): Remove byte-swapping function calls, which are not valid in structure initialisers. * grub-core/partmap/gpt.c (grub_gpt_partition_type_bios_boot): Make non-const. (GRUB_MOD_INIT): Byte-swap data1, data2, and data3 fields of grub_gpt_partition_type_bios_boot. 2010-11-22 Colin Watson Fix test program build on GNU/kFreeBSD. * Makefile.util.def (example_unit_test): Add `$(LIBZFS) $(LIBNVPAIR)' library dependencies. 2010-11-22 Colin Watson * util/grub-install.in: Fix parsing of --grub-mkrelpath= option. 2010-11-22 Colin Watson * util/grub-install.in: Remove excessive quoting that broke installations to RAID devices. 2010-11-19 Vladimir Serbinenko * grub-core/loader/i386/linux.c (grub_cmd_linux): Pass correctly the bootloader version instead of 0. 2010-11-19 Vladimir Serbinenko * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Fix spurious warning. 2010-11-19 Vladimir Serbinenko * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Don't try to retrieve the metadat sector if size isn't known. * grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise. 2010-11-18 Robert Millan * grub-core/fs/btrfs.c (grub_btrfs_mount): Replace grub_strncmp() with grub_memcmp(). 2010-11-18 Vladimir Serbinenko * grub-core/normal/menu_entry.c (print_up): Fix displacement of up arrow. Reported by: Jordan Uggla. 2010-11-16 Vladimir Serbinenko Make better UTF compliant. * grub-core/normal/charset.c (grub_utf8_to_utf16): Handle 6- and 7-byte sequences as incorrect. (grub_is_valid_utf8): Likewise. (grub_utf8_to_ucs4): Likewise. (grub_ucs4_to_utf8): Handle codepoints outside of BMP. (grub_ucs4_to_utf8_alloc): Likewise. * include/grub/charset.h (grub_utf16_to_utf8): Likewise. 2010-11-16 Vladimir Serbinenko Make legacy_source behave like source. * grub-core/commands/legacycfg.c (legacy_file): Don't call grub_show_menu. (grub_cmd_legacy_source): Call grub_show_menu if needed. 2010-11-16 Colin Watson * conf/Makefile.common (CFLAGS_GNULIB): Add -Wno-unused-parameter. (-Wunused implies -Wunused-parameter, but not vice versa). 2010-11-16 Colin Watson * configure.ac: Make error messages less confusing by testing for -Wtrampolines rather than -Wno-trampolines (since -Wno-* is always accepted, but produces a diagnostic if something else is wrong). 2010-11-15 Vladimir Serbinenko * grub-core/term/at_keyboard.c (grub_keyboard_controller_read) [GRUB_MACHINE_MIPS_YEELOONG || GRUB_MACHINE_QEMU]: ifdef-ed out (now unused). (grub_keyboard_controller_init) [GRUB_MACHINE_MIPS_YEELOONG || GRUB_MACHINE_QEMU]: Don't attempt to read the initial state since controller isn't inited yet. 2010-11-15 Vladimir Serbinenko * grub-core/lib/relocator.c (malloc_in_range): Take into account that allocate_regbeg may need to create new chunk header. 2010-11-14 Vladimir Serbinenko Fix quoting in legacy parser. * grub-core/lib/legacy_parse.c (grub_legacy_escape): Correctly handle single quotes. (grub_legacy_parse): Likewise. Reported by: Jordan Uggla. Tested by: Jordan Uggla. 2010-11-14 Vladimir Serbinenko Don't add -lgcc on i386 and x86_64. * configure.ac (LIBS): Don't add -lgcc on i386 and x86_64. * conf/Makefile.common (LDADD_KERNEL): Likewise. * grub-core/Makefile.core.def (kernel): Use LDADD_KERNEL. 2010-11-14 Vladimir Serbinenko * configure.ac: Add -Wno-trampolines when supported. 2010-11-14 Modestas Vainius * grub-core/kern/emu/getroot.c (grub_util_is_dmraid): Recognise ddf1_ fakeraid. 2010-11-14 Giuseppe Caizzone Add generic logical block size support for UDF. * grub-core/fs/udf.c (GRUB_UDF_LOG2_BLKSIZE): Removed. (GRUB_UDF_BLKSZ): Removed. (struct grub_udf_data): New field "lbshift" to hold the logical block size of the file system in log2 format. All users updated. (sblocklist): Change type to unsigned. (grub_udf_mount): Change type of "sblklist" to unsigned. Move AVDP search before VRS recognition, because the latter requires knowledge of the logical block size, which is detected during the former. Detect and validate logical block size during AVDP search, adding support for block sizes 512, 1024 and 4096. Make VRS recognition independent of block size. 2010-11-14 Giuseppe Caizzone Properly handle deleted files on UDF. * grub-core/fs/udf.c (grub_udf_iterate_dir): Skip directory entries whose "characteristics" field has the bit GRUB_UDF_FID_CHAR_DELETED set. 2010-11-14 Giuseppe Caizzone Support reading files larger than 2 GiB. * grub-core/fs/udf.c (grub_udf_iterate_dir): Change type of variable "offset" to grub_off_t. (grub_udf_read_file): Likewise for parameter "pos". 2010-11-14 Vladimir Serbinenko * docs/grub.texi (Changes from GRUB Legacy): Note when save_env is unavailable. (Simple configuration): Refer to Changes from GRUB Legacy about save_env availability. 2010-11-14 Vladimir Serbinenko * util/grub-install.in: Ignore empty partition table detection instead of trying to include part_ module. 2010-11-14 Vladimir Serbinenko * grub-core/disk/lvm.c (GRUB_MOD_FINI): Reset the vg_list. Fixes LVM on RAID support. 2010-11-14 Vladimir Serbinenko Properly define WORDS_BIGENDIAN in wrapped environments. * grub-core/lib/libgcrypt_wrap/cipher_wrap.h (WORDS_BIGENDIAN): New definition. * grub-core/lib/posix_wrap/sys/types.h (WORDS_BIGENDIAN): Likewise. Reported by: Manoel Rebelo Abranches. Tested by: Manoel Rebelo Abranches. 2010-11-13 Vladimir Serbinenko * util/grub-mkconfig.in: Fix quoting. 2010-11-13 Vladimir Serbinenko Support big ext2 files. * grub-core/fs/ext2.c (grub_ext2_inode): Rename dir_acl to size_high. (grub_ext2_read_block): Support triple indirect blocks. (grub_ext2_read_file): Use 64-bit types and read size_high. (grub_ext2_open): Read size_high. Reported by: Ximin Luo. Tested by: Manoel Rebelo Abranches. 2010-11-13 Vladimir Serbinenko * util/grub-install.in: Handle filenames containing spaces. Reported by: Jordan Uggla. Tested by: Jordan Uggla. 2010-11-13 Vladimir Serbinenko * util/grub-mkconfig.in (grub_script_check): New variable. Use grub_script_check instead of grub-script-check. Reported by: Barry Jackson. 2010-11-13 Vladimir Serbinenko * docs/grub.texi (menu): Correct the order. Reported by: D. Hugh Redelmeier. 2010-11-12 Vladimir Serbinenko * grub-core/kern/i386/pc/startup.S (multiboot_trampoline): Add missing jump. 2010-11-08 Manoel Rebelo Abranches * include/grub/elfload.h (grub_elf32_size): New parameter. All users updated. Return maximum segments alignment. (grub_elf64_size): Likewise. * kern/elf.c (grub_elf32_size): New parameter. All users updated. Return maximum segments alignment. (grub_elf64_size): Likewise. * grub-core/loader/powerpc/ieee1275/linux.c: (grub_linux_claimmap_iterate): New function. Uses the "available" property in the "memory" node for memory allocation for kernel in the PowerPC loader. (grub_linux_load32): Correctly find linux entry point offset. (grub_linux_load64): Likewise. 2010-11-07 Robert Millan On mips-yeeloong, build with -march=loongson2f when this flag is available (GCC >= 4.4). * conf/Makefile.common [COND_mips_yeeloong] (CFLAGS_PLATFORM): Remove `-march=mips3'. * configure.ac: For mips-yeeloong, add -march=loongson2f if available, or otherwise add -march=mips3. 2010-11-07 BVK Chaitanya Suppress shell expansion on echo '*' and echo "*" like cases. Reported by: Jordan Uggla. * grub-core/script/execute.c (grub_script_arglist_to_argv): Escape string arguments before shell expansion. * tests/grub_cmd_echo.in: New testcases. 2010-11-07 Robert Millan * conf/mips-qemu-mips.rmk: Remove stale file from previous transition. 2010-11-07 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (convert_system_partition_to_system_disk): Handle devices like "sdaa1". 2010-11-06 Vladimir Serbinenko * include/grub/emu/misc.h: Don't include grub/util/libzfs.h. * include/grub/emu/misc.h (grub_get_libzfs_handle): Move from here ... * include/grub/util/libzfs.h (grub_get_libzfs_handle): ... here. 2010-11-06 Vladimir Serbinenko * grub-core/fs/ntfs.c (grub_ntfs_uuid): Make uppercase. 2010-11-06 Vladimir Serbinenko * util/grub-install.in: Replace useless recomendation to pass --modules with a recomendation to report a bug. 2010-11-06 Vladimir Serbinenko Properly register serial terminfo. Reported by: Jordan Uggla * grub-core/term/serial.c (grub_serial_terminfo_input_template): New const. (grub_serial_terminfo_output_template): Likewise. (grub_cmd_serial): Register "serial" with terminfo. (GRUB_MOD_INIT(serial)): Fill grub_serial_terminfo_input and grub_serial_terminfo_output. 2010-11-05 Robert Millan * util/grub-mkconfig.in: Remove gfxterm.mod probe (no longer needed). 2010-11-05 Robert Millan On Yeeloong, pass machine type information to Linux. * grub-core/loader/mips/linux.c [GRUB_MACHINE_MIPS_YEELOONG] (LOONGSON_MACHTYPE): New macro, set to "machtype=lemote-yeeloong-2f-8.9inches". [LOONGSON_MACHTYPE] (grub_cmd_linux): Pass LOONGSON_MACHTYPE as additional argument to Linux. 2010-11-04 Robert Millan * util/deviceiter.c (grub_util_iterate_devices): Increase SCSI limit to 48 (to cope with Sun Fire X4500), and IDE limit to 96 (its SATA disks are detected as slaveless IDE master drives on kFreeBSD). Reported by Carsten Aulbert. 2010-11-02 Colin Watson * util/bin2h.c (main): Fix spelling error in generated output. 2010-11-01 Grégoire Sutre * grub-core/partmap/bsdlabel.c (iterate_real): Fix an integer overflow. 2010-11-01 Vladimir Serbinenko * grub-core/loader/i386/linux.c (grub_cmd_linux): Autoload vbe.mod if vga= option is supplied. 2010-11-01 Vladimir Serbinenko * util/grub.d/10_hurd.in: Don't call savedefault on recovery entries. * util/grub.d/10_kfreebsd.in: Likewise. * util/grub.d/10_linux.in: Likewise. * util/grub.d/20_linux_xen.in: Likewise. 2010-11-01 Vladimir Serbinenko * grub-core/lib/arg.c (grub_arg_parse): Avoid interpreting direct argument as an argument to no-argument option. 2010-11-01 Vladimir Serbinenko * util/grub.d/10_linux.in: Add missing load_video with explicit GRUB_GFXPAYLOAD_LINUX. 2010-11-01 Vladimir Serbinenko * Makefile.am (libgrub.pp): Propagate the libgrub.a split. 2010-11-01 Vladimir Serbinenko * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Do not put elements with invlid index. * grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise. * grub-core/disk/raid.c (insert_array): Automatically reallocate members. * include/grub/raid.h (grub_raid_member): New struct. (grub_raid_array): Transform devices and start_sector into usage of grub_raid_member. All users updated (allocated_devs): New member. 2010-11-01 Vladimir Serbinenko * docs/man/grub-set-default.h2m: Clarify that only saved default entry is modified 2010-10-29 BVK Chaitanya NetBSD build fix for getline function conflict from gnulib. * Makefile.util.def (libgrubkern.a): New library for grub kernel components that depend on gnulib headers. (libgrubmods.a): Renamed from earlier libgrub.a. * conf/Makefile.common: Remove gnulib from *_LIBRARY flags. 2010-10-26 Vladimir Serbinenko * util/grub-setup.c (setup): Refuse to do a cross-disk embeddingless install rather than creating a broken install. 2010-10-26 Vladimir Serbinenko * util/grub-setup.c (argp): Remove misleading example of installing to a partition. 2010-10-26 Vladimir Serbinenko * util/grub-setup.c (setup): Clarify the error message. 2010-10-26 Vladimir Serbinenko * include/grub/types.h (grub_target_off_t): Removed no longer used type. 2010-10-23 Vladimir Serbinenko * grub-core/kern/emu/misc.c (grub_make_system_path_relative_to_its_root) [HAVE_LIBZFS && HAVE_LIBNVPAIR]: Fix mountpoint return on ZFS. 2010-10-23 Vladimir Serbinenko * grub-core/kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Revert r2882. 2010-10-22 Vladimir Serbinenko * grub-core/lib/relocator.c (grub_relocator_subchunk): Remove now useless field head. All users updated. (free_subchunk): Correct handling of IN_REGION subchunk. 2010-10-22 Colin Watson * docs/grub.texi (Installing GRUB using grub-install): Proofread. (Supported kernels): Likewise. 2010-10-18 Grégoire Sutre Make mktemp invocations portable. * grub-core/genmod.sh.in: Use mktemp with an explicit template, and exit if mktemp fails. * tests/grub_script_blockarg.in: Likewise. * tests/partmap_test.in: Likewise. * tests/util/grub-shell-tester.in: Likewise. * tests/util/grub-shell.in: Likewise. * util/powerpc/ieee1275/grub-mkrescue.in: Likewise. * Makefile.am: Likewise, and chain shell commands with `&&' instead of ';'. * util/grub-mkrescue.in: Use the same explicit template as above, and exit if mktemp fails. 2010-10-18 BVK Chaitanya * util/grub.d/10_linux.in: Fix built-in initramfs image mode for Linux kernel, reported by Dennis Schridde. 2010-10-17 Szymon Janc * grub-core/normal/auth.c (grub_auth_check_authentication): Set-but-not-used variable removed. 2010-10-17 Vladimir Serbinenko * docs/grub.texi (GNU/Linux): Document APM unavailability with 32-bit linux protocol. 2010-10-17 Vladimir Serbinenko * grub-core/kern/i386/pc/startup.S (grub_console_setcursor): Check cursor shape for sanity. 2010-10-17 Vladimir Serbinenko * docs/grub.texi (Installation): Document buggy BIOS install. 2010-10-17 Vladimir Serbinenko * docs/grub.texi (Installation): Indent. 2010-10-17 Vladimir Serbinenko * util/grub-setup.c (setup): New parameter allow_floppy. (arguments): New member allow_floppy. (argp_parser): Handle --allow-floppy. (main): Pass allow_floppy. * util/grub-install.in: New option --allow-floppy passed though to grub-setup. 2010-10-17 Vladimir Serbinenko * util/grub-install.in: Handle partitionless disks. 2010-10-17 Vladimir Serbinenko * util/grub-setup.c (setup): Don't clean blocklists before readability verfification. 2010-10-16 Vladimir Serbinenko * docs/grub.texi (Installation): Document embedding zone. Remove obsolete grub-install example. 2010-10-16 Szymon Janc * grub-core/commands/legacycfg.c (grub_cmd_legacy_kernel): Set-but-not-used variable ifdef'ed. * grub-core/lib/legacy_parse.c (grub_legacy_parse): Likewise. * grub-core/bus/usb/ohci.c (grub_ohci_pci_iter): Set-but-not-used variable removed. * grub-core/disk/lvm.c (grub_lvm_scan_device): Likewise. * grub-core/fs/jfs.c (grub_jfs_find_file): Likewise. * grub-core/fs/minix.c (grub_minix_dir): Likewise. * grub-core/fs/sfs.c (grub_sfs_read_extent): Likewise. * grub-core/fs/ufs.c (grub_ufs_dir): Likewise. * grub-core/gfxmenu/gui_list.c (grub_gui_list_new): Likewise. * grub-core/gfxmenu/view.c (redraw_menu_visit): Likewise. * grub-core/gfxmenu/widget-box.c (draw): Likewise. * grub-core/lib/relocator.c (malloc_in_range): Likewise. * grub-core/loader/i386/bsdXX.c (grub_netbsd_load_elf_meta): Likewise. * grub-core/loader/i386/bsd_pagetable.c (fill_bsd64_pagetable): Likewise. 2010-10-16 Vladimir Serbinenko * grub-core/commands/acpihalt.c (skip_ext_op): Skip index field op. * include/grub/acpi.h (GRUB_ACPI_EXTOPCODE_INDEX_FIELD_OP): New enum value. 2010-10-16 Vladimir Serbinenko * grub-core/commands/acpihalt.c (get_sleep_type): Accept \_S5_ as synonym to _S5_. Needed for some DSDTs. 2010-10-16 Vladimir Serbinenko Userspace ACPI parser debugging. * grub-core/commands/acpihalt.c [GRUB_DSDT_TEST]: Include userspace headers and add relevant defines. Don't include standard headers. (main) [GRUB_DSDT_TEST]: New function. * include/grub/acpi.h [GRUB_DSDT_TEST]: Don't include standard headers. Don't declare functions. 2010-10-16 Vladimir Serbinenko Remove dead grub_efi_mm_fini. * grub-core/kern/efi/mm.c (allocated_page): Removed. (ALLOCATED_PAGES_SIZE): Likewise. (MAX_ALLOCATED_PAGES): Likewise. (allocated_pages): Likewise. (grub_efi_allocate_pages): Don't record allocated pages. (grub_efi_free_pages): Likewise. (grub_efi_mm_init): Likewise. (grub_efi_mm_fini): Removed. 2010-10-16 Vladimir Serbinenko * grub-core/kern/efi/mm.c (BYTES_TO_PAGES): Round up instead of down. (grub_efi_mm_init): Take into account the memory map size increase. 2010-10-16 Vladimir Serbinenko * grub-core/term/ns8250.c (do_real_config): Set port->broken to 0. (serial_hw_put): Wait based on real time rather than port reads. Don't roken ports. * include/grub/serial.h (grub_serial_port): New field broken. 2010-10-16 Robert Millan * grub-core/kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Fix premature return when processing non-root ZFS filesystems. Reported by Sergio Talens-Oliag. 2010-10-15 Robert Millan * util/grub.d/10_linux.in (list): Expand "vmlinu[zx]" instances to guarantee compressed ones are processed first. 2010-10-14 Vladimir Serbinenko * grub-core/efiemu/main.c (grub_efiemu_prepare): Handle errors from grub_efiemu_autocore. 2010-10-14 Vladimir Serbinenko * grub-core/kern/i386/pc/startup.S (bypass_table): Use 0x1b explicitly rather than 0x1b. (grub_console_getkey): Use correct jae opcode rather than ja. 2010-10-12 Robert Millan * util/grub-mkconfig.in: Merge `GRUB_DISABLE_LINUX_RECOVERY' and `GRUB_DISABLE_NETBSD_RECOVERY' into a single `GRUB_DISABLE_RECOVERY' variable. All references updated. * util/grub.d/10_kfreebsd.in: Support recovery boot entries. 2010-10-08 Vladimir Serbinenko Correctly distinguish mdraid flavours. * grub-core/disk/raid.c (grub_raid_getname) [GRUB_UTIL]: New function. (insert_array): New argument raid. * include/grub/disk.h (grub_disk_dev) [GRUB_UTIL]: New member raidname. * include/grub/raid.h (grub_raid_array) [GRUB_UTIL]: New member driver. * util/grub-probe.c (probe): PRint raidname instead of plainly "mdraid". 2010-10-09 Vladimir Serbinenko * grub-core/kern/i386/pc/startup.S (grub_console_getkey): Fix incorrect handling of special keys. 2010-10-02 Aleš Nesrsta * include/grub/scsi.h (grub_make_scsi_id): Fix incorrect usgae of GRUB_SCSI_ID_BUS_SHIFT instead of GRUB_SCSI_ID_LUN_SHIFT. 2010-10-02 Aleš Nesrsta * grub-core/bus/usb/ohci.c (GRUB_OHCI_TDS): Increase. * grub-core/bus/usb/uhci.c (N_TD): New definition. All previous implicit users updated. * grub-core/bus/usb/usbtrans.c (grub_usb_bulk_setup_readwrite): Use right endpoint when querying descriptor. 2010-10-01 Vladimir Serbinenko Clear out 0x80 color bit on EFI. Tested by: decoder Reported by: decoder and meta tech. * grub-core/term/efi/console.c (grub_console_standard_color): Removed. (grub_console_setcolorstate): Clear out 0x80 bit. Use GRUB_TERM_DEFAULT_STANDARD_COLOR. (grub_console_output): Use GRUB_TERM_DEFAULT_NORMAL_COLOR. Use GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR. 2010-10-01 Vladimir Serbinenko * grub-core/loader/i386/linux.c (DEFAULT_VIDEO_MODE) [GRUB_MACHINE_EFI]: Set to "auto". 2010-09-30 Vladimir Serbinenko * grub-core/gettext/gettext.c (grub_gettext_init_ext): Avoid using mo_file after freeing. 2010-09-30 Vladimir Serbinenko * grub-core/normal/term.c (read_terminal_list): Free in a right order. 2010-09-30 Vladimir Serbinenko * grub-core/script/execute.c (grub_script_execute_sourcecode): Set flags. 2010-09-30 Vladimir Serbinenko * util/grub-setup.c (main) [GRUB_MACHINE_IEEE1275]: Propagate argp usage. 2010-09-30 Vladimir Serbinenko Put terminfo into core on ieee1275 and yeeloong (needed for console). * gentpl.py: New groups terminfoinkernel and terminfomodule. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Include extcmd.h, arg.h and terminfo.h when needed. * grub-core/Makefile.core.def (kernel): Include term/terminfo.c, term/tparm.c, commands/extcmd.c, lib/arg.c on terminfokernel. (terminfo): Enable only on terminfokernel. (extcmd): Likewise. * include/grub/extcmd.h: Add missing EXPORT_FUNC. * include/grub/lib/arg.h: Likewise. * grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_dimensions): Fix incorrect usage of ->. 2010-09-29 Vladimir Serbinenko * grub-core/loader/multiboot_mbi2.c (grub_multiboot_make_mbi] [GRUB_MACHINE_EFI && __i386__]: Fix typo. 2010-09-29 Vladimir Serbinenko Fix coreboot compilation. * grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_get_mbi_size): Take VBE info into account even if only text is supported. (fill_vbe_info): Take into account the case when only VGA text is supported. * include/grub/multiboot.h (GRUB_MACHINE_HAS_VBE): Set to zero on coreboot, multiboot and qemu. 2010-09-29 Vladimir Serbinenko * grub-core/lib/relocator.c (malloc_in_range): Trim too verbose debug messages. (grub_relocator_prepare_relocs): Set movers_chunk.srcv. 2010-09-29 Vladimir Serbinenko * grub-core/loader/i386/bsd.c (grub_cmd_netbsd): Provide default serial parameters. 2010-09-29 Vladimir Serbinenko * grub-core/lib/arg.c (grub_arg_parse): Fix treating of all commands as if they were BSD-style. 2010-09-29 Vladimir Serbinenko * grub-core/boot/i386/pc/lnxboot.S: Replace GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE with GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART. 2010-09-29 Vladimir Serbinenko Write embedding zone using Reed-Solomon. * Makefile.util.def (grub-setup): Add grub-core/lib/reed_solomon.c. * grub-core/Makefile.am (rs_decoder.S): New target. (kern/i386/pc/startup.S): Depend on rs_decoder.S. * grub-core/kern/i386/pc/startup.S (reed_solomon_redundancy): New field. (multiboot): Move to RS part. (post_reed_solomon): New label. (grub_boot_drive): Move to non-RS part since it's modified in memory on boot. Include rs_decoder.S. * grub-core/lib/reed_solomon.c: New file. * include/grub/offsets.h (GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY): New definition. (GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE): Removed. (GRUB_KERNEL_I386_PC_RAW_SIZE): Updated. (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): New definition. * include/grub/partition.h (grub_partition_map): Change prototype of embed to allow returning additional sectors. * include/grub/reed_solomon.h: New file. * util/grub-setup.c (setup): Handle Reed-Solomon. 2010-09-28 Colin Watson * grub-core/loader/multiboot_mbi2.c (grub_multiboot_make_mbi): Fix i386 and x86-64 definedness tests. 2010-09-27 Yves Blusseau Fix generation of kernel_syms.lst * grub-core/Makefile.am (kernel_syms.lst): Fix value and position of ASM_PREFIX 2010-09-26 Robert Millan Support degraded ZFS arrays in "grub-probe -t device" resolution. * grub-core/kern/emu/getroot.c (find_root_device_from_libzfs): When the pool is an array of devices, iterate through it and return the first device that passes a stat() test (instead of blindly returning the first one). 2010-09-26 Robert Millan Build fixes for GNU/kFreeBSD. * Makefile.util.def: Add `$(LIBZFS) $(LIBNVPAIR)' library dependencies to programs that require ZFS conversion. * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy): Support kernels that don't have FLOPPY_MAJOR. 2010-09-25 BVK Chaitanya * grub-core/kern/emu/full.c (grub_emu_post_init): Fix typo. 2010-09-25 BVK Chaitanya Fix grub-emu build. * grub-core/kern/emu/main.c: Remove #include . * grub-core/kern/emu/full.c: Split grub_mdraid_{init,fini} into mdraid09 and mdraid1x. 2010-09-24 Colin Watson Re-enable grub-extras. * autogen.sh: Create symlinks to ${GRUB_CONTRIB} if necessary to avoid confusing Automake. Run autogen only twice, once for the top level and once for grub-core. Add Makefile.util.def and Makefile.core.def from extra modules to the appropriate autogen invocations. If Makefile.common exists in an extra module, include it in both Makefile.util.am and grub-core/Makefile.core.am; similarly, include any Makefile.util.common file in Makefile.util.am and any Makefile.core.common file in grub-core/Makefile.core.am. * conf/Makefile.common ($(top_srcdir)/grub-core/Makefile.core.am): Depend on $(top_srcdir)/grub-core/Makefile.gcry.def. ($(top_srcdir)/grub-core/Makefile.gcry.def): Remove. * grub-core/Makefile.am: Remove inclusion of Makefile.gcry.am. * gentpl.py (gvar_add): Turn GVARS into a set. (global_variable_initializers): Sort global variables on output. (vars_init): New function. (first_time): Likewise. (library): Ensure that non-global variable initialisations are emitted before the first time we emit code for a library block. Append to variables rather than setting them. Only emit noinst_LIBRARIES, BUILT_SOURCES, and CLEANFILES the first time for each conditional path. (program): installdir() emits an Autogen macro, so must be passed to var_add rather than gvar_add. (data): Likewise. (script): Likewise. (rules): New function, centralising handling for different target types. Set up Guile association lists for first_time and vars_init, and send most output to a diversion so that variable initialisations can be emitted first. (module_rules): Use new rules function. (kernel_rules): Likewise. (image_rules): Likewise. (library_rules): Likewise. (program_rules): Likewise. (script_rules): Likewise. (data_rules): Likewise. * configure.ac: Add AC_PROG_LN_S, for the benefit of ntldr-img. * .bzrignore: Add contrib and grub-core/contrib. Remove grub-core/Makefile.gcry.am. 2010-09-24 Yves Blusseau * grub-core/lib/LzFind.c: Add missing include. * grub-core/lib/LzmaEnc.c: Likewise. * grub-core/script/lexer.c: Likewise. * grub-core/script/yylex.l: Likewise. * util/grub-macho2img.c: Likewise. * util/grub-menulst2cfg.c: Likewise. * util/grub-mklayout.c: Likewise. * util/grub-mkpasswd-pbkdf2.c * util/grub-mkrelpath.c: Likewise. * util/resolve.c: Likewise. 2010-09-24 BVK Chaitanya * Makefile.util.def (example_unit_test): Add grub-core/gnulib/libgnu.a. 2010-09-23 Grégoire Sutre * grub-core/commands/acpihalt.c (get_sleep_type): Initialize prev. 2010-09-23 Vladimir Serbinenko Support xz compression on yeeloong. * Makefile.util.def (grub-mkimage): Add $(LIBLZMA). * configure.ac: Check for LZMA. * grub-core/Makefile.core.def (xz_decompress): New target. (none_decompress): Likewise. * grub-core/boot/decompressor/minilib.c: New file. * grub-core/boot/decompressor/none.c: Likewise. * grub-core/boot/decompressor/xz.c: Likewise. * grub-core/kern/mips/cache.S: Change to noreorder nomacro. * grub-core/kern/mips/cache_flush.S: Likewise. * grub-core/kern/i386/pc/lzma_decode.S: Remove dead code. * grub-core/kern/mips/startup.S: Move first stage to ... * grub-core/boot/mips/startup_raw.S: ...here. Change to noreorder nomacro. * grub-core/kern/mips/startup.S: Change to noreorder nomacro. * grub-core/lib/mips/relocator_asm.S: Change to noreorder nomacro. * grub-core/lib/xzembed/xz_dec_bcj.c [GRUB_EMBED_DECOMPRESSOR]: Allocate statically. * grub-core/lib/xzembed/xz_dec_lzma2.c [GRUB_EMBED_DECOMPRESSOR]: Allocate statically or use scratch. Don't check CRC32. * grub-core/lib/xzembed/xz_dec_stream.c [GRUB_EMBED_DECOMPRESSOR]: Allocate statically. Don't check CRC32. * include/grub/decompressor.h: New file. * include/grub/offsets.h (GRUB_KERNEL_MIPS_YEELOONG_RAW_SIZE): Removed. (GRUB_KERNEL_MIPS_YEELOONG_UNCOMPRESSED_SIZE): New field. (GRUB_KERNEL_MIPS_YEELOONG_TOTAL_MODULE_SIZE): Adjusted. (GRUB_KERNEL_MIPS_YEELOONG_PREFIX): Likewise. (GRUB_KERNEL_MIPS_YEELOONG_PREFIX_END): Likewise. (GRUB_KERNEL_MACHINE_UNCOMPRESSED_SIZE): New define. * util/grub-mkimage.c (grub_compression_t): New type. (PLATFORM_FLAGS_DECOMPRESSORS): New flag. (image_target_desc): New field default_compression. (image_targets): Adjust yeeloong targets. (compress_kernel_xz) [HAVE_LIBLZMA]: New function. (compress_kernel): New parameter comp. (generate_image): Likewise. Handle new compression case. (options): New option --compression (help): Likewise. (main): Handle new option. 2010-09-22 Grégoire Sutre * grub-core/kern/emu/hostdisk.c [__NetBSD__]: Define FLOPPY_MAJOR. 2010-09-22 Colin Watson * grub-core/loader/multiboot_mbi2.c (grub_multiboot_make_mbi): Fix typo in __i386__ conditional. 2010-09-22 Vladimir Serbinenko * grub-core/loader/multiboot_mbi2.c (GRUB_MACHINE_EFI): Add missing include. 2010-09-22 Vladimir Serbinenko Implement EFI and ACPI multiboot2 extensions. * grub-core/loader/multiboot_mbi2.c (grub_multiboot_load): Declare new tags as supported. (acpiv2_size): New function. (grub_multiboot_get_mbi_size): Take new tags into account. (grub_multiboot_make_mbi): Add new tags. * include/grub/multiboot.h (GRUB_MACHINE_HAS_ACPI): New definition. 2010-09-21 Aleš Nesrsta * grub-core/bus/usb/serial/common.c (grub_usbserial_attach): Added missing configuration of USB device. 2010-09-21 Colin Watson * grub-core/normal/menu_entry.c (run): Make sure we always return a value. 2010-09-21 Colin Watson * grub-core/commands/efi/lsefimmap.c (grub_cmd_lsefimmap): NumberOfPages is UINT64 according to the UEFI specification, not UINTN. Fix printf format. 2010-09-21 Colin Watson * grub-core/bus/usb/usbhub.c (poll_nonroot_hub): Change type of `err' to grub_usb_err_t. Reported and tested by: KESHAV P.R. 2010-09-21 Colin Watson * grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name): Make tpart non-const, so that we can assign to it. (Since this is a typedef, the constness refers to the pointer rather than what it points to.) 2010-09-21 Colin Watson * conf/Makefile.common (CPPFLAGS_GNULIB): Add $(top_srcdir)/grub-core/gnulib as well as $(top_builddir)/grub-core/gnulib. Reported by: KESHAV P.R. 2010-09-21 Colin Watson * util/grub-install.in: Fix the bootloader ID option to be consistently --bootloader-id, not --bootloader_id. Reported by: KESHAV P.R. 2010-09-21 Colin Watson * grub-core/commands/hashsum.c (GRUB_MOD_INIT): Make "Compute or check hash checksum." consistently translatable. 2010-09-21 Yves Blusseau * conf/Makefile.common (CPPFLAGS_GNULIB): Replace $(top_srcdir) with $(top_builddir). 2010-09-21 Colin Watson * grub-core/commands/hashsum.c (aliases): Add sha1sum alias. (GRUB_MOD_INIT): Register sha1sum command. (GRUB_MOD_FINI): Unregister sha1sum command. 2010-09-21 Yves Blusseau Keep boot and grub directory names in sync with utils scripts * configure.ac: Define GRUB_BOOT_DIR_NAME and GRUB_DIR_NAME macros. * config.h.in: Add previous macros. * include/grub/emu/misc.h (DEFAULT_DIRECTORY): Use previous macros. * util/grub-install.in: Use $bootdir and $grubdir variables. 2010-09-21 Colin Watson * grub-core/kern/emu/hostdisk.c (find_system_device): Only try to convert partition names to disk names if the new `convert' parameter is set. (grub_util_biosdisk_get_grub_dev): If opening the disk device returns GRUB_ERR_UNKNOWN_DEVICE, treat the partition device as a disk in its own right. This can happen with Xen disk images. 2010-09-21 Yves Blusseau * util/grub-editenv.c: Update strings to avoid warnings when generating grub.pot file. * util/grub-setup.c: Likewise. 2010-09-21 Vladimir Serbinenko * configure.ac: Change version to 1.99~beta0. 2010-09-21 Vladimir Serbinenko * grub-core/loader/i386/multiboot_mbi.c (grub_fill_multiboot_mmap): Add BADRAM. * grub-core/loader/multiboot_mbi2.c (grub_fill_multiboot_mmap): Likewise. * include/multiboot.h: Resynced with specification. * include/multiboot2.h: Likewise. 2010-09-21 Colin Watson Fix po directory handling. * configure.ac: Create po/Makefile.in rather than po/Makefile. * grub-core/gnulib/Makefile.am: Import gettext module. * m4/gnulib-cache.m4: Likewise. * m4/gnulib-comp.m4: Likewise. * m4/gettext.m4: New file, from gnulib. * m4/glibc2.m4: Likewise. * m4/iconv.m4: Likewise. * m4/intdiv0.m4: Likewise. * m4/intl.m4: Likewise. * m4/intldir.m4: Likewise. * m4/intlmacosx.m4: Likewise. * m4/intmax.m4: Likewise. * m4/inttypes-pri.m4: Likewise. * m4/lcmessage.m4: Likewise. * m4/lib-ld.m4: Likewise. * m4/lib-link.m4: Likewise. * m4/lib-prefix.m4: Likewise. * m4/lock.m4: Likewise. * m4/nls.m4: Likewise. * m4/po.m4: Likewise. * m4/printf-posix.m4: Likewise. * m4/progtest.m4: Likewise. * m4/threadlib.m4: Likewise. * m4/uintmax_t.m4: Likewise. * m4/visibility.m4: Likewise. * po/Makefile.am: Remove. * po/Makefile.in.in: New file, from gettext. ($(DOMAIN).pot-update): Support POTFILES-shell. * po/Makevars: New file. * po/POTFILES-shell: Rename to ... * po/POTFILES-shell.in: ... this. Update. * po/POTFILES: Rename to ... * po/POTFILES.in: ... this. Update. * po/Rules-quot: New file, from gettext. * po/boldquot.sed: Likewise. * po/en@boldquot.header: Likewise. * po/en@quot.header: Likewise. * po/insert-header.sin: Likewise. * po/quot.sed: Likewise. * po/remove-potcdate.sin: Likewise. 2010-09-20 Vladimir Serbinenko * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Use UUID when possible. 2010-09-20 Vladimir Serbinenko * util/grub.d/20_linux_xen.in: Use submenus. 2010-09-20 Vladimir Serbinenko Support submenus. * grub-core/commands/menuentry.c (grub_normal_add_menu_entry): New parameter submenu. All users updated. * grub-core/normal/main.c (free_menu): Rename to ... (grub_normal_free_menu): ... this. Made global. * grub-core/normal/menu.c (grub_menu_execute_entry): Open new context if requested. * grub-core/normal/menu_entry.c (screen): New field submenu. (make_screen): Set submenu. (run): Open new context if requested. * include/grub/menu.h (grub_menu_entry): New field submenu. * include/grub/normal.h (grub_normal_free_menu): New proto. 2010-09-20 Vladimir Serbinenko Menu entries extractor. * grub-core/commands/configfile.c (grub_cmd_source): Implement extractor variants. (GRUB_MOD_INIT): Register new variants. (GRUB_MOD_FINI): Unregister new variants. * grub-core/commands/legacycfg.c (grub_cmd_legacy_configfile): Merge into grub_cmd_legacy_source. (grub_cmd_legacy_source): Implement extractor variants. (GRUB_MOD_INIT): Register new variants. (GRUB_MOD_FINI): Unregister new variants. * grub-core/commands/menuentry.c (grub_menu_init): Declare menuentry as an extractor. * grub-core/commands/search_wrap.c (GRUB_MOD_INIT): Declare search as an extractor. * grub-core/commands/test.c (GRUB_MOD_INIT): Declare test as an extractor. * grub-core/kern/corecmd.c (grub_register_core_commands): Declare set as an extractor. * grub-core/normal/context.c (grub_env_context_open): Reorganised. (grub_env_new_context): New function. (grub_env_context_open): Likewise. (grub_env_extractor_open): Likewise. (grub_env_extractor_close): Likewise. * grub-core/script/execute.c (grub_script_execute_cmdline): Handle grub_extractor_level. * include/grub/command.h (GRUB_COMMAND_FLAG_EXTRACTOR): New flag. * include/grub/env.h (grub_env_extractor_open): New proto. (grub_env_extractor_close): Likewise. * include/grub/normal.h (grub_extractor_level): New external variable. 2010-09-20 Vladimir Serbinenko Make cutmem accept a region specification. Suggested by: Samuel Thibault * grub-core/mmap/mmap.c (parsemem): New function. (grub_cmd_cutmem): Handle new arguments. 2010-09-20 Vladimir Serbinenko New command cutmem. * grub-core/mmap/mmap.c (grub_cmd_cutmem): New function. (GRUB_MOD_INIT): Register new command. (GRUB_MOD_FINI): Unregister new command. 2010-09-20 Vladimir Serbinenko Support some annoying BSD and Minix subpartitions. * Makefile.util.def (libgrub.a): Add grub-core/partmap/bsdlabel.c. * grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name): Properly handle concatenation. * grub-core/kern/device.c (grub_device_iterate): Likewise. * grub-core/normal/completion.c (iterate_partition): Likewise. * grub-core/kern/disk.c (grub_disk_open): Make disk->name not contain partition. All users updated. * grub-core/partmap/bsdlabel.c (grub_netbsdlabel_partition_map): New struct. (grub_openbsdlabel_partition_map): Likewise. (bsdlabel_partition_map_iterate): Rename to .. (iterate_real): ... this. New arguments sector, freebsd and pmap. (bsdlabel_partition_map_iterate): New function. (netopenbsdlabel_partition_map_iterate): Likewise. (netbsdlabel_partition_map_iterate): Likewise. (openbsdlabel_partition_map_iterate): Likewise. (GRUB_MOD_INIT): Register new partmaps. (GRUB_MOD_FINI): Unregister new partmaps. * grub-core/partmap/msdos.c (pc_partition_map_iterate): Rename to ... (grub_partition_msdos_iterate): ... this. All users updated. Don't support embedding other than in a minix partition. * include/grub/msdos_partition.h (grub_partition_msdos_iterate): New proto. * include/grub/partition.h (grub_partition): New field msdostype. * util/grub-install.in: Handle openbsd and netbsd types being in part_bsd module. 2010-09-20 Vladimir Serbinenko Split mdraid.mod into mdraid09.mod and mdraid1x.mod. * Makefile.util.def (libgrub.a): Add grub-core/disk/mdraid1x_linux.c. * grub-core/Makefile.core.def (mdraid): Renamed to ... (mdraid09): ... this. (mdraid1x): New module. * grub-core/disk/mdraid_linux.c: Move 1.x parts ... * grub-core/disk/mdraid1x_linux.c: ...here. All users updated. 2010-09-20 Vladimir Serbinenko * grub-core/kern/emu/misc.c (asprintf): Use vsnprintf instead of vsprintf. 2010-09-20 Colin Watson * grub-core/commands/efi/lsefimmap.c: Correct header. * NEWS: Update. 2010-09-20 Colin Watson * util/grub-editenv.c (argp_parser): Don't pass translated strings as printf format strings; the translations might contain '%' which could cause a crash. (main): Likewise. * util/grub-fstest.c (argp_parser): Likewise. * util/grub-setup.c (argp_parser): Likewise. (main): Likewise. 2010-09-20 Vladimir Serbinenko Use argp in grub-fstest. * util/grub-fstest.c: Don't include getopt.h. Include argp.h. (root): New variable. (args_count): Likewise. (nparm): Likewise. (num_disks): Likewise. (images): Likewise. (cmd): Likewise. (debug_str): Likewise. (args): Likewise. (options): Transformed to argp. (usage): Removed. (main): Split argument parsing into ... (argp_parser): ... this. Changed to argp format. (argp): New variable. (main): Use argp_parse. 2010-09-20 Tristan Gingold 2010-09-20 Robert Millan 2010-09-20 Vladimir Serbinenko * grub-core/commands/efi/lsefimmap.c: New file. * grub-core/Makefile.core.def (lsefimmap): New module. * include/grub/efi/api.h (PRIxGRUB_EFI_UINTN_T): New definition. 2010-09-20 Vladimir Serbinenko Pause the execution (10s max) if any errors are displayed so the user has a chance to see them. * grub-core/kern/err.c (grub_err_printed_errors): New variable. (grub_print_error): Increment grub_err_printed_errors. * grub-core/normal/menu.c (grub_menu_execute_entry): Pause the execution if any errors were displayed. (show_menu): Remove old code for pause. * grub-core/normal/menu_entry.c (run): Likewise. * grub-core/normal/term.c (grub_normal_char_counter): Removed. All users updated. (grub_normal_get_char_counter): Likewise. * include/grub/err.h (grub_err_printed_errors): New external variable. * include/grub/normal.h (grub_normal_get_char_counter): Removed. 2010-09-20 Vladimir Serbinenko Support multiboot VBE info. * grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_get_mbi_size): Take VBE info into account. (fill_vbe_info) [GRUB_MACHINE_HAS_VBE]: New function. (retrieve_video_parameters) [GRUB_MACHINE_HAS_VBE]: Call fill_vbe_info when appropriate. (grub_multiboot_make_mbi): Account for the size occupied by VBE info. * grub-core/loader/multiboot_mbi2.c (grub_multiboot_load): Declare tags as supported. (grub_multiboot_get_mbi_size): Take new tags into account. (fill_vbe_tag) [GRUB_MACHINE_HAS_VBE]: New function. (retrieve_video_parameters) [GRUB_MACHINE_HAS_VBE]: Call fill_vbe_tag when appropriate. (grub_multiboot_make_mbi): Properly align tags. * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_pm_interface): New function. * include/grub/i386/pc/vbe.h (grub_vbe_bios_get_pm_interface): New proto. * include/grub/multiboot.h (GRUB_MACHINE_HAS_VBE): New definition. 2010-09-20 Vladimir Serbinenko Suport manual terminal geometry specification. * grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_dimensions): Save state in grub_ofconsole_terminfo_output. (grub_ofconsole_term): Use grub_terminfo_getwh. (grub_ofconsole_getwh): Removed. * grub-core/term/serial.c (grub_serial_getwh): Removed. (grub_serial_term): Use grub_terminfo_getwh. * grub-core/term/terminfo.c (grub_terminfo_getwh): New function. (options): New struct. (OPTION_*): New enum. (grub_cmd_terminfo): Transform into extcmd and handle new parameters. * include/grub/terminfo.h (grub_terminfo_output_state): New fields width and height. (grub_terminfo_getwh): New proto. * grub-core/lib/legacy_parse.c (grub_legacy_parse): Handle --lines. 2010-09-20 Vladimir Serbinenko Handle legacy "terminal" command. * grub-core/lib/legacy_parse.c (legacy_command): New flags FLAG_TITLE and FLAG_TERMINAL. (legacy_commands): Add terminal and title. (grub_legacy_parse): Handle terminal. Simplify title handling. 2010-09-20 Vladimir Serbinenko * grub-core/lib/arg.c (grub_arg_show_help): Correctly handle parameters overflow. 2010-09-20 Colin Watson * .bzrignore: Add grub-core/gnulib/sys, widthspec.bin, and widthspec.h. * docs/grub.texi (Shell-like scripting): Document `!'. (Network): Simplify using new i386-pc-pxe format. Mention grub-mknetdir. * NEWS: Update. 2010-09-20 Colin Watson * Makefile.am (SUBDIRS): Restore "."; it's important to force ordering, so that e.g. ascii.h is built before grub-core/font/font.c when needed. 2010-09-20 Colin Watson * grub-core/commands/efi/lsefisystab.c: Correct header. * grub-core/commands/efi/lssal.c: Likewise. * grub-core/commands/testload.c: Likewise. 2010-09-20 Colin Watson * util/grub-mkrescue.in: Add explicit root argument to --set to prevent the UUID being interpreted as an argument to --set (matches previous change to prepare_grub_to_access_device). 2010-09-20 Colin Watson * kern/emu/hostdisk.c: Include and on FreeBSD. Define HAVE_DIOCGDINFO on NetBSD and FreeBSD to reduce the verbosity of later #ifs. (find_partition_start): Define this function on FreeBSD too. (device_is_wholedisk) [__FreeBSD__ || __FreeBSD_kernel__]: New function. (grub_util_biosdisk_get_grub_dev): Use partition-start-sector logic on FreeBSD. 2010-09-20 Yves Blusseau * util/grub-editenv.c: Use argp instead of getopt. 2010-09-20 Yves Blusseau * util/grub-setup.c: Use argp instead of getopt. 2010-09-20 Yves Blusseau Use gnulib-tool to create gnulib source files. * Add gnulib files generated by gnulib-tool in build-aux, m4 and grub-core/gnulib directories * .bzignore: Add **/.deps and autogenerated gnulib files * configure.ac: Assign auxiliary directory to build-aux, add invocation of gnulib macros, add grub-core/gnulib/Makefile * Makefile.am: Add gnulib directory in SUBDIRS (removing unnecessary .), include m4 directory to aclocal. * Makefile.util.def: Remove direct compilation of gnulib source files and use the new grub-core/gnulib/libgnu.a. * build-aux/config.rpath: move config.rpath from top directory to build-aux * conf/Makefile.common: Remove the macro _GL_UNUSED already defined in gnulib headers * conf/Makefile.extra-dist: Add m4/gnulib-cache.m4 * grub-core/Makefile.core.def: Remove unnecessary extra_dist * grub-core/lib/posix_wrap/localcharset.h (locale_charset): Update header. * grub-core/lib/posix_wrap/langinfo.h (nl_langinfo): Return static string. 2010-09-20 Yves Blusseau * .bzrignore: Add grub-kbdcomp, grub-menulst2cfg, *.marker, grub-core/genmod.sh and grub-core/gensyminfo.sh 2010-09-20 BVK Chaitanya Add a test for echo command options. * tests/grub_cmd_echo.in: New test. * Makefile.util.def: Rules for new test. 2010-09-20 Szymon Janc Remove crc.mod and move crc command to hashsum.mod. Remove lib/crc.c - users updated to use gcrypt implementation. * grub-core/commands/crc.c: Removed. * grub-core/Makefile.core.def (crc): Module removed. * grub-core/commands/hashsum.c (aliases[]): Add crc alias. * grub-core/commands/hashsum.c (GRUB_MOD_INIT): Register crc command. * grub-core/commands/hashsum.c (GRUB_MOD_FINI): Unregister crc command. * grub-core/lib/crc.c: Removed. * include/grub/lib/crc.h: Removed. * Makefile.util.def (crc): Remove lib/crc.c * grub-core/Makefile.core.def (libgrub.a): Remove grub-core/lib/crc.c. * util/grub-fstest.c (cmd_crd): Use libgcrypt crc implementation. * Makefile.util.def (libgrub.a): Add grub-core/lib/libgcrypt-grub/cipher/crc.c. * Makefile.util.def (grub-fstest): Add CFLAGS_GCRY to cflags. * Makefile.util.def (grub-fstest): Add CPPFLAGS_GCRY to cppflags. * grub-core/efiemu/prepare.c (grub_efiemu_crc): Use libgcrypt crc implementation. 2010-09-20 Vladimir Serbinenko * grub-core/boot/i386/pc/boot.S: Ignore %dl if it's not in a sane range. 2010-09-19 Vladimir Serbinenko Split config.h for util and core. * acinclude.m4 (HAVE_ASM_USCORE): Transformed into a variable. (ADDR32): Likewise. (DATA32): Likewise. (BSS_START_SYMBOL): Likewise. (END_SYMBOL): Likewise. (NEED_ENABLE_EXECUTE_STACK): Likewise. All users updated. (grub_I386_ASM_ABSOLUTE_WITHOUT_ASTERISK): Removed. * config.h.in: New file. * configure.ac: Use config-util.h as config define file. Rename MACHINE into GRUB_MACHINE. All users updated. (NEED_REGISTER_FRAME_INFO): Transformed into a variable. All users updated. (NESTED_FUNC_ATTR): Likewise. Substitue new variables. (COND_HAVE_ASM_USCORE): New conditional. * grub-core/Makefile.am (ASM_PREFIX): New variable. (kernel_syms.lst): Use ASM_PREFIX. * grub-core/kern/emu/console.c: Include config-util.h. * grub-core/kern/emu/misc.c: Likewise. * grub-core/kern/emu/mm.c: Likewise. * include/grub/emu/misc.h: Likewise. * include/grub/libgcc.h: Likewise. 2010-09-19 Vladimir Serbinenko * grub-core/term/efi/console.c (efi_codes): Fix GRUB_TERM_KEY_* constants usage. * grub-core/kern/emu/console.c (grub_ncurses_getkey): Fix GRUB_TERM_KEY_* constants usage. * grub-core/kern/emu/misc.c (asprintf): Fix vasprintf usage. 2010-09-19 Vladimir Serbinenko * grub-core/bus/usb/ohci.c (grub_ohci_cancel_transfer): Use %p to print pointer. * grub-core/bus/usb/uhci.c: Remove empty define. (grub_uhci_check_transfer): Add missing cast. * grub-core/bus/usb/usbhub.c (poll_nonroot_hub): Use %p to print pointer. * grub-core/term/usb_keyboard.c (grub_usb_keyboard_getkey): Use PRIuGRUB_SIZE. * include/grub/types.h (PRIuGRUB_SIZE): New definition. 2010-09-19 Vladimir Serbinenko * grub-core/Makefile.core.def (legacycfg): Add lib/i386/pc/vesa_modes_table.c on emu. 2010-09-19 BVK Chaitanya Reduce number of temporary files generated by build system. * grub-core/gencmdlist.sh: Removed. * grub-core/genfslist.sh: Removed. * grub-core/genhandlerlist.sh: Removed. * grub-core/genmodsrc.sh: Removed. * grub-core/genpartmaplist.sh: Removed. * grub-core/genparttoollist.sh: Removed. * grub-core/gentermiinallist.sh: Removed. * grub-core/genvideolist.sh: Removed. * grub-core/genmod.sh.in: New file. * grub-core/gensyminfo.sh.in: New file. * conf/Makefile.common (CPPFLAGS_*_LIST): New marker flags. * conf/Makefile.extra-dist: Update with new files. * gentpl.py: Remove rules related to unnecessary temporary files. * grub-core/Makefile.am (syminfo.lst): New replacement for def-* and und-* files. * grub-core/Makefile.core.def: New rules for gensyminfo.sh and genmod.sh scripts. * grub-core/bus/usb/uhci.c: Remove empty #define. * grub-core/genmoddep.awk: Updated with new syminfo format. * util/bash-completion.d/Makefile.am: Add config.log to CLEANFILES. 2010-09-19 Yves Blusseau * Makefile.util.def: Add forgotten $(LIBINTL) library. 2010-09-19 BVK Chaitanya * util/grub-mkconfig.in: Check the config script for syntax errors before saving. 2010-09-19 Colin Watson 2010-09-19 Vladimir Serbinenko * Makefile.util.def (grub-install): Use util/grub-install.in on all platforms. * util/grub-install.in: Add EFI and IEEE1275 support. * util/i386/efi/grub-install.in: Removed. * util/ieee1275/grub-install.in: Likewise. 2010-09-19 Vladimir Serbinenko * grub-core/commands/i386/cmostest.c (+parse_args): New function. (grub_cmd_cmosclean): Likewise. (GRUB_MOD_INIT): Register command cmosclean. * util/grub-mkconfig.in: Export GRUB_BUTTON_CMOS_CLEAN. * util/grub.d/00_header.in: Handle GRUB_BUTTON_CMOS_CLEAN. 2010-09-18 Carles Pina i Estany 2010-09-18 Aleš Nesrsta 2010-09-18 Vladimir Serbinenko Add keyboard layouts support. * Makefile.util.def (grub-mklayout): New file. (grub-kbdcomp): New script. * grub-core/Makefile.am (KERNEL_HEADER_FILES) [COND_mips_yeeloong]: Add keyboard_layouts.h. * grub-core/Makefile.core.def (kernel): Add commands/keylayouts.c and commands/boot.c on yeeloong. (keylayouts): New module. * grub-core/bus/usb/ohci.c * grub-core/bus/usb/uhci.c * grub-core/bus/usb/usbhub.c (rescan): New variable. (grub_usb_add_hub): Poll interrupt pipe for device handling. (attach_root_port): Likewise. (poll_nonroot_hub): Likewise. (grub_usb_poll_devices): Likewise. (detach_device): Close transfer. * grub-core/bus/usb/usbtrans.c (grub_usb_execute_and_wait_transfer): New function. (grub_usb_bulk_setup_readwrite): Likewise. (grub_usb_bulk_finish_readwrite): Likewise. * grub-core/commands/keylayouts.c: New file. * grub-core/commands/keystatus.c (grub_getkeystatus): New function. * grub-core/commands/menuentry.c (hotkey_aliases): All several new aliases. * grub-core/term/at_keyboard.c: Restructured to use keylayouts and support scancode 2. * grub-core/term/usb_keyboard.c: Restructured to use keylayouts. * include/grub/keyboard_layouts.h: New file. * util/grub-mklayout.c: New file. * util/grub-kbdcomp.in: Likewise. 2010-09-18 Vladimir Serbinenko Unify memory types. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Include memory.h. * grub-core/commands/lsmmap.c (grub_cmd_lsmmap): Output user-readable types. * grub-core/kern/i386/multiboot_mmap.c (grub_lower_mem): Removed. (grub_upper_mem): Likewise. * grub-core/kern/ieee1275/init.c (grub_upper_mem): Likewise. * include/grub/memory.h (grub_memory_type_t): New enum. All users updated. 2010-09-18 Vladimir Serbinenko * grub-core/Makefile.core.def (lsapm): New module. * grub-core/commands/i386/pc/lsapm.c: New file. * grub-core/loader/i386/multiboot_mbi.c (make_mbi) [GRUB_MACHINE_PCBIOS]: Pass APM info. * grub-core/loader/multiboot_mbi2.c (make_mbi) [GRUB_MACHINE_PCBIOS]: Likewise. * include/grub/i386/pc/apm.h: New file. * include/multiboot.h (multiboot_apm_info): New struct. 2010-09-18 Vladimir Serbinenko GRUB-legacy configuration file support. * Makefile.util.def (grub-menulst2cfg): New util. * docs/man/grub-menulst2cfg.h2m: New file. * grub-core/Makefile.core.def (legacycfg): New module. * grub-core/commands/legacycfg.c: New file. * grub-core/commands/menuentry.c (append_menu_entry): Rename to ... (grub_normal_add_menu_entry): ... this. * grub-core/commands/password.c (grub_cmd_password): Split main part to ... (grub_normal_set_password): ...this. * grub-core/commands/videoinfo.c (grub_cmd_videoinfo): Support MODE. * grub-core/loader/i386/linux.c (linux_vesafb_res): Move to .., * grub-core/lib/i386/pc/vesa_modes_table.c: ... here. * grub-core/lib/legacy_parse.c: New file. * grub-core/normal/auth.c (grub_cmd_authenticate): New command. * include/grub/i386/pc/vesa_modes_table.h: New file. * include/grub/legacy_parse.h: Likewise. * include/grub/normal.h (grub_normal_add_menu_entry): New proto. * util/grub-menulst2cfg.c: New file. 2010-09-17 Colin Watson * grub-core/kern/emu/hostdisk.c (convert_system_partition_to_system_disk): Initialise node. 2010-09-17 Colin Watson * grub-core/kern/emu/hostdisk.c (convert_system_partition_to_system_disk): Fix devmapper memory pool leak. Reported and based on patch by: Modestas Vainius. 2010-09-17 Colin Watson Fix DM-RAID probing with recent versions of device-mapper udev rules. * grub-core/kern/emu/hostdisk.c (read_device_map): Don't canonicalise device paths under /dev/mapper/. (convert_system_partition_to_system_disk): Compare the uncanonicalised path to /dev/mapper/ rather than the canonicalised path, since device nodes under /dev/mapper/ are often symlinks. 2010-09-17 Yves Blusseau * .bzrignore: *.d removed (old rule), add *.image and symlist.h. 2010-09-16 Yves Blusseau * configure.ac: Avoid some annoying error messages if freetype-config program is not found. 2010-09-16 Colin Watson Support RAID on virtio devices, and others. * grub-core/kern/emu/getroot.c [__MINGW32__] (find_root_device): Rename to ... [__MINGW32__] (grub_find_device): ... this. [! __MINGW32__ && ! __CYGWIN__] (find_root_device): Rename to ... [! __MINGW32__ && ! __CYGWIN__] (grub_find_device): ... this. Use a reasonable default if dir is NULL. [! __MINGW32__ && __CYGWIN__] (find_cygwin_root_device): Rename to ... [! __MINGW32__ && __CYGWIN__] (grub_find_device): ... this. (grub_guess_root_device): Update callers. * include/grub/emu/getroot.h (grub_find_device): Add prototype. * util/raid.c (grub_util_getdiskname): Remove. (grub_util_raid_getmembers): Use grub_find_device rather than grub_util_getdiskname. 2010-09-16 Colin Watson * docs/grub.texi (serial): Remove obsolete comment about GRUB needing to be compiled with serial support. (ls): Indicate that multiple files are accepted. * grub-core/commands/ls.c (GRUB_MOD_INIT): Update help text to indicate that multiple files are accepted. 2010-09-16 Colin Watson * .bzrignore: Add *.1, *.8, grub-shell, grub-shell-tester, libgrub_a_init.c, and util/bash-completion.d/grub. 2010-09-15 Vladimir Serbinenko * util/grub-setup.c (setup): Fix incorrect container semantics. 2010-09-15 Vladimir Serbinenko * grub-core/commands/parttool.c (grub_cmd_parttool): Fix a variable misusage. Reported by: J. Nick Terry 2010-09-15 Vladimir Serbinenko Move embedding routines to partmap sources files. * grub-core/partmap/gpt.c (grub_gpt_partition_type_bios_boot) [GRUB_UTIL]: New variable. (gpt_partition_map_iterate): Set part.parent. (gpt_partition_map_embed) [GRUB_UTIL]: New function. (grub_gpt_partition_map) [GRUB_UTIL]: Set .embed. * grub-core/partmap/msdos.c (pc_partition_map_embed) [GRUB_UTIL]: New function. (grub_msdos_partition_map) [GRUB_UTIL]: Set .embed. * include/grub/partition.h (grub_embed_type_t) [GRUB_UTIL]: New type. (grub_partition_map) [GRUB_UTIL]: New field embed. * util/grub-setup.c (grub_gpt_partition_type_bios_boot): Removed. (setup): Use ->embed. 2010-09-15 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy): New function. * include/grub/emu/hostdisk.h (grub_util_biosdisk_is_floppy): New proto. * util/grub-setup.c (setup): Use grub_util_biosdisk_is_floppy. 2010-09-15 Yves Blusseau Add function to get completions from usage. * util/bash-completion.d/grub-completion.bash.in: Add function to get completions from usage. Use LC_ALL=C to get options properly. 2010-09-15 Vladimir Serbinenko * grub-core/gnulib/basename-lgpl.c: Imported. * grub-core/gnulib/basename.c: Likewise. * grub-core/gnulib/dirname-lgpl.c: Likewise. * grub-core/gnulib/dirname.c: Likewise. * grub-core/gnulib/dirname.h: Likewise. * grub-core/gnulib/stripslash.c: Likewise. 2010-09-15 Vladimir Serbinenko * grub-core/gnulib/error.c: Resynced. * grub-core/gnulib/getopt.c: Likewise. * grub-core/gnulib/getopt_int.h: Likewise. * grub-core/gnulib/regex.h: Likewise. * grub-core/gnulib/regex_internal.c: Likewise. * grub-core/gnulib/regex_internal.h: Likewise. 2010-09-15 Szymon Janc * grub-core/lib/xzembed/xz_dec_stream.c (dec_main): Fix index and block CRC calculations and validity checks. * grub-core/lib/xzembed/xz_dec_stream.c (dec_index): Fix index CRC calculations. 2010-09-15 Szymon Janc * grub-core/lib/xzembed/xz_dec_stream.c (xz_dec_end): Fix memory leak. 2010-09-14 Vladimir Serbinenko Fix incorrect echo options handling. Reported by: Yves Blusseau. * include/grub/command.h (grub_command_flags_t): New flags GRUB_COMMAND_ACCEPT_DASH and GRUB_COMMAND_OPTIONS_AT_START. * grub-core/lib/arg.c (grub_arg_parse): Handle new flags. * grub-core/commands/echo.c (GRUB_MOD_INIT): Use new flags. 2010-09-14 Vladimir Serbinenko * include/grub/command.h (GRUB_COMMAND_FLAG_CMDLINE): Removed. All users updated. (GRUB_COMMAND_FLAG_MENU): Likewise. (GRUB_COMMAND_FLAG_BOTH): Likewise. (GRUB_COMMAND_FLAG_TITLE): Removed. (GRUB_COMMAND_FLAG_NO_ECHO): Likewise. (GRUB_COMMAND_FLAG_EXTCMD): Moved into enum. (GRUB_COMMAND_FLAG_DYNCMD): Likewise. (GRUB_COMMAND_FLAG_BLOCKS): Likewise. (grub_command_flags_t): New enum. All users updated. 2010-09-14 Seth Goldberg Fix solaris compilation. * grub-core/Makefile.core.def (kernel): Include gnulib/error.c on emu. (grub-emu): Add LIBZFS and LIBNVPAIR to ldadd. (grub-emu-list): Likewise. 2010-09-14 Vladimir Serbinenko Remove deprecated root command. * grub-core/commands/minicmd.c (grub_mini_cmd_root): Removed. All users updated. 2010-09-14 Vladimir Serbinenko * util/i386/pc/grub-setup.c: Merge this ... * util/sparc64/ieee1275/grub-setup.c: ... and this ... * util/grub-setup.c: ... into this. * include/grub/sparc64/ieee1275/boot.h (grub_boot_blocklist) [ASM_FILE]: New struct. 2010-09-14 Vladimir Serbinenko * grub-core/fs/ext2.c (grub_ext2_open): Use return error value when possible. 2010-09-14 Vladimir Serbinenko * grub-core/partmap/sun.c (sun_partition_map_iterate): Don't needlesly allocate p. 2010-09-14 Vladimir Serbinenko * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Add explicit root argument to set to prevent UUID to be interpreted as argument to set. 2010-09-14 Vladimir Serbinenko * grub-core/kern/sparc64/ieee1275/crt0.S: Align stack. 2010-09-14 Vladimir Serbinenko Don't export grub_gate_a20. * grub-core/kern/i386/pc/init.c: Remove leftovers. * grub-core/kern/i386/pc/startup.S (FUNCTION(grub_gate_a20)): Rename to ... (grub_gate_a20): ... this. All users updated. * include/grub/i386/pc/init.h: Removed. All users updated. 2010-09-14 Vladimir Serbinenko Create euro.pf2 which supports most European languages. * Makefile.am (grubdata_DATA): Add euro.pf2. (euro.pf2): New target. (CLEANFILES): Add euro.pf2. 2010-09-14 Vladimir Serbinenko * configure.ac: Disable emu-usb by default to prevent inadvertent device takeover. 2010-09-13 Vladimir Serbinenko Disable usbserial on grub-emu since our libusb code isn't good enough yet. * grub-core/Makefile.core.def (usbserial_common): Disable on emu. (usbserial_pl2303): Likewise. (usbserial_ftdi): Likewise. 2010-09-13 Vladimir Serbinenko * include/grub/disk.h (grub_disk): Remove has_partitions. All users updated. * disk/loopback.c (grub_loopback): Remove has_partitions. All users updated. (options): Remove partitions. All users updated. * util/grub-fstest.c (fstest): Don't pass "-p" to loopback. * util/i386/pc/grub-setup.c (setup): copy partition table only when actual partition table is found. 2010-09-13 Vladimir Serbinenko Remove readability checks (too many false negatives). * util/grub-install.in: Remove readability checks. * util/grub-mkconfig.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-mkconfig_lib.in (is_path_readable_by_grub): Revert to old way. 2010-09-13 Vladimir Serbinenko Enable acpi shutdown on all ACPI platforms. * grub-core/Makefile.core.def (halt): Inlude commands/acpihalt.c on coreboo, multiboot and EFI. * grub-core/commands/acpihalt.c (get_sleep_type): Add missing casts. (grub_acpi_halt): Likewise. * grub-core/commands/i386/pc/halt.c (grub_halt): Call grub_acpi_halt. (grub_cmd_halt): Don't call grub_acpi_halt directly. * grub-core/lib/efi/halt.c (grub_halt): Call grub_acpi_halt. * grub-core/lib/i386/halt.c (grub_halt) [GRUB_MACHINE_COREBOOT || GRUB_MACHINE_MULTIBOOT]: Likewise. 2010-09-13 Vladimir Serbinenko * grub-core/commands/iorw.c (grub_cmd_read): Declare buf in smallest context. 2010-09-13 Vladimir Serbinenko * grub-core/video/efi_gop.c: Fix over-80-chars line. * grub-core/video/efi_uga.c: Likewise. 2010-09-13 Vladimir Serbinenko Filter devaliases and never open same device twice. * grub-core/disk/ieee1275/ofdisk.c (last_devpath): New variable. (last_ihandle): Likewise. (ofdisk_hash_ent): New member shortest. (ofdisk_hash_add): Add canonical path too. (scan): New function. (grub_ofdisk_iterate): Iterate over hashed entries. (compute_dev_path): Don't add :0. (grub_ofdisk_open): Don't really open the disk. (grub_ofdisk_close): Avoid closing unrelated disk. (grub_ofdisk_read): Implement reopen logic. * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_canonicalise_devname): New function. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_canonicalise_devname): New proto. 2010-09-13 Vladimir Serbinenko Fix sparc64. * configure.ac (GRUB_KERNEL_MACHINE_LINK_ADDR): Removed. * grub-core/Makefile.core.def (kernel): Make ldflags just use the right address. Add sparc64_ieee1275_ldflags. * grub-core/loader/sparc64/ieee1275/linux.c: Remove leftover include. * util/grub-mkimagexx.c (locate_sections): Correct grub_host_to_target32 to grub_host_to_target_addr (load_image): Likewise. 2010-09-13 Vladimir Serbinenko * grub-core/normal/completion.c (complete_file): Handle device containing slash. Fix based on patch by Doug Nazar. 2010-09-13 Vladimir Serbinenko grub-mknetdir script. * Makefile.util.def (grub-mknetdir): New module. * tests/util/grub-shell.in: Support boot=net * util/grub-mknetdir.in: New file. 2010-09-13 Vladimir Serbinenko videoinfo on non-vbe. * grub-core/Makefile.core.def (vbeinfo): Removed. (vbetest): Removed. (videoinfo): New module. * grub-core/commands/i386/pc/vbeinfo.c: Removed. * grub-core/commands/i386/pc/vbetest.c: Removed. * grub-core/commands/videoinfo.c: New file. * grub-core/commands/videotest.c (grub_cmd_videotest): Support mode specification. (grub_cmd_videotest) [GRUB_MACHINE_PCBIOS]: Load vbe.mod when invoked as vbetest. (GRUB_MOD_INIT) [GRUB_MACHINE_PCBIOS]: New command vbetest. (GRUB_MOD_FINI) [GRUB_MACHINE_PCBIOS]: Unregister vbetest. * grub-core/video/efi_gop.c (grub_video_gop_fill_mode_info): Fill mode_number. New parameter mode. All users updated. (grub_video_gop_iterate): New function. (grub_video_efi_gop): New member iterate. * grub-core/video/i386/pc/vbe.c (framebuffer): Removed leftover fields. (grub_vbe_set_video_mode): Remove setting useless fields. (vbe2videoinfo): New function. (grub_video_vbe_iterate): Likewise. (grub_video_vbe_setup): Use vbe2videoinfo. (grub_video_vbe_print_adapter_specific_info): New function. (grub_video_vbe_adapter): New fields iterate and print_adapter_specific_info. * include/grub/video.h (GRUB_VIDEO_MODE_*): Transform into enum. All users updated. (grub_video_mode_info): New field mode_number. (grub_video_adapter): New fields iterate and print_adapter_specific_info. 2010-09-13 Tristan Gingold 2010-09-13 Robert Millan 2010-09-13 Vladimir Serbinenko * grub-core/commands/efi/lsefisystab.c: New file. * grub-core/commands/efi/lssal.c: Likewise. * grub-core/Makefile.core.def (lsacpi): New module. (lsefisystab): Likewise. * include/grub/efi/api.h (GRUB_EFI_SAL_TABLE_GUID): New definition. (GRUB_EFI_HCDP_TABLE_GUID): Likewise. (grub_efi_sal_system_table): New struct. (grub_efi_sal_system_table_entrypoint_descriptor): Likewise. (grub_efi_sal_system_table_memory_descriptor): Likewise. (grub_efi_sal_system_table_platform_features): Likewise. (grub_efi_sal_system_table_translation_register_descriptor): Likewise. (grub_efi_sal_system_table_purge_translation_coherence): Likewise. (grub_efi_sal_system_table_ap_wakeup): Likewise. * include/grub/types.h (PRIuGRUB_UINT64_T): New definition. 2010-09-13 Vladimir Serbinenko Support explicit user claim that a device is BIOS-visible. * grub-core/kern/emu/getroot.c (grub_util_get_dev_abstraction): Return GRUB_DEV_ABSTRACTION_NONE if device is in device.map. * grub-core/kern/emu/hostdisk.c (convert_system_partition_to_system_disk): Support mdX. (find_system_device): New parameter add. All users updated. (grub_util_biosdisk_is_present): New function. * include/grub/emu/hostdisk.h (grub_util_biosdisk_is_present): New proto. 2010-09-13 Vladimir Serbinenko Search hints support. * commands/search.c (FUNC_NAME): New arguments hints and nhints. All users updated. 2010-09-13 Yves Blusseau Bash completion script for util commands * Makefile.am: Add util/bash-completion.d directory * configure.ac: Likewise. * util/bash-completion.d/Makefile.am: New file. * util/bash-completion.d/grub-completion.bash.in: Likewise. 2010-09-12 Vladimir Serbinenko * grub-core/normal/term.c (put_glyphs_terminal): Correct sign. (print_backlog): set backlog_ucs4 and backlog_glyphs. Reported by: Yves Blusseau. 2010-09-12 Vladimir Serbinenko * grub-core/normal/misc.c (grub_normal_print_device_info): Show partition size and offset. 2010-09-12 Vladimir Serbinenko * grub-core/commands/wildcard.c (make_regex): Escape brackets. 2010-09-12 Vladimir Serbinenko * grub-core/commands/ls.c (grub_cmd_ls): Accept multiple files. 2010-09-12 Vladimir Serbinenko * grub-core/kern/misc.c (grub_vprintf): Use va_copy when necessary. (grub_xvasprintf): Likewise. 2010-09-12 Vladimir Serbinenko * grub-core/kern/emu/main.c (main): Call hostfs_init only after init_all. 2010-09-12 Vladimir Serbinenko * grub-core/commands/menuentry.c (append_menu_entry): Don't rely on args ending with NULL. 2010-09-12 Vladimir Serbinenko * grub-core/lib/xzembed/xz_dec_stream.c (xz_dec_reset): Preserve context pointer. 2010-09-11 Szymon Janc * grub-core/commands/lsacpi.c (grub_cmd_lsacpi): Fix prototype. 2010-09-11 Vladimir Serbinenko Shutdown using ACPI. * grub-core/Makefile.core.def (halt): Add commands/acpihalt.c on i386-pc. * grub-core/commands/acpihalt.c: New file. * grub-core/commands/i386/pc/halt.c (grub_cmd_halt): Call grub_acpi_halt. * include/grub/acpi.h (grub_acpi_fadt): New member pm1a. (grub_acpi_halt): New proto. (GRUB_ACPI_SLP_EN): New const. (GRUB_ACPI_SLP_TYP_OFFSET): Likewise. (GRUB_ACPI_OPCODE_*): New enum. (GRUB_ACPI_EXTOPCODE_*): Likewise. 2010-09-11 Tristan Gingold 2010-09-11 Robert Millan 2010-09-11 Vladimir Serbinenko * commands/lsacpi.c: New file. * grub-core/Makefile.core.def (lsacpi): New module. * include/grub/acpi.h (GRUB_ACPI_FADT_SIGNATURE): New definition. (GRUB_ACPI_MADT_SIGNATURE): Likewise. (grub_acpi_madt_entry_header): New struct. (grub_acpi_madt): Likewise. (grub_acpi_madt_entry_interrupt_override): Likewise. (grub_acpi_madt_entry_sapic): Likewise. (grub_acpi_madt_entry_lsapic): Likewise. (grub_acpi_madt_entry_platform_int_source): Likewise. * include/grub/types.h (PRIxGRUB_UINT32_T): New definition. (PRIuGRUB_UINT32_T): Likewise. (PRIxGRUB_UINT64_T): Likewise. 2010-09-11 Vladimir Serbinenko Implement loading palette on ieee1275_fb. * grub-core/video/ieee1275.c (stdout_ihandle): New variable. (have_setcolors): Likewise. (grub_video_ieee1275_init): Fill stdout_ihandle and have_setcolors. (grub_video_ieee1275_setup): Use grub_video_ieee1275_set_palette. (grub_video_ieee1275_set_palette): Implement. 2010-09-11 Vladimir Serbinenko 2010-09-11 Colin Watson * util/grub-install.in (grub_partition): New variable. Set prefix_drive on EFI and PC to (,$grub_partition) as last resort. * util/i386/pc/grub-setup.c (setup): Don't touch prefix. Fixes a bug reported by Yves Blusseau. 2010-09-11 Vladimir Serbinenko Fix emu on mipsel. * conf/Makefile.common (CFLAGS_PLATFORM): Add -mflush-func =grub_cpu_flush_cache on all mips and not only yeeloong. * configure.ac (COND_mips): New conditional. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Add libgcc on all platforms. * grub-core/kern/emu/cache.S (__mips__): Use _flush_cache. * grub-core/kern/emu/full.c (grub_arch_dl_init_linker) [GRUB_LINKER_HAVE_INIT]: New function. (grub_emu_post_init): Likewise. * grub-core/kern/emu/lite.c (grub_emu_post_init): Likewise. * grub-core/kern/emu/main.c: Use grub_emu_post_init. * include/grub/cache.h (_mips): Include mips/cache.h. * include/grub/disk.h [GRUB_UTIL || GRUB_MACHINE_EMU]: Add missing LVM and RAID prototypes. * include/grub/emu/misc.h (grub_emu_post_init): New proto. * include/grub/mips/time.h (grub_cpu_idle) [GRUB_MACHINE_EMU]: New function. 2010-09-10 Colin Watson * util/grub-install.in: Don't try to verify core.img until after running grub-mkimage to create it. 2010-09-10 Robert Millan * util/grub.d/10_hurd.in: Add misc readability checks. * util/grub.d/10_kfreebsd.in: Likewise. * util/grub.d/10_linux.in: Likewise. 2010-09-10 Colin Watson * util/grub-install.in: ${imgext} won't be defined here until the install branch is merged. For the meantime, only verify core.img on i386-pc and sparc64-ieee1275 platforms. 2010-09-10 Robert Millan Solaris support in grub_find_zpool_from_dir(). Thanks Seth Goldberg for referring to getextmntent() facility. * configure.ac: Check for getextmntent(), `sys/mnttab.h' and `sys/mkdev.h'. * grub-core/kern/emu/misc.c [HAVE_SYS_MNTTAB_H]: Include `'. [HAVE_SYS_MKDEV_H]: Include `'. [HAVE_GETEXTMNTENT] (grub_find_zpool_from_dir): Add getextmntent() method for finding zpool name. 2010-09-10 Colin Watson grub-fstest needs the host and hostfs modules while other utilities actively require those modules to be absent, so grub-fstest needs its own initialisation and finalisation code. * Makefile.am (grub_fstest.pp): New target. (grub_fstest_init.lst): Likewise. (grub_fstest_init.c): Likewise. * Makefile.util.def (grub-fstest): Add grub_fstest_init.c. 2010-09-10 Robert Millan * configure.ac: Check for `struct statfs.f_fstypename' and `struct statfs.f_mntfromname'. * grub-core/kern/emu/misc.c (grub_find_zpool_from_dir): Conditionalize kFreeBSD-specific code. 2010-09-10 Robert Millan * util/grub.d/10_kfreebsd.in: Fix ${kfreebsd_device} initialization on ZFS. Now non-main filesystems are supported as / too. 2010-09-09 Colin Watson * Makefile.util.def (libgrub.a): Move grub-core/kern/emu/hostfs.c and grub-core/disk/host.c to ... (grub-fstest): ... here. Having the host disk implementation present confuses grub-probe and other utility programs. * util/grub-mkconfig.in: Only verify readability of grub.cfg.new when writing to a file, not when writing to stdout. 2010-09-09 BVK Chaitanya * tests/partmap_test.in: New test for partitions. * Makefile.util.def: Rules for new test. 2010-09-09 Robert Millan * util/grub-probe.c (probe): Fix a pair of unhandled error conditions. 2010-09-09 Robert Millan Basic Btrfs support (detection and UUID). * grub-core/fs/btrfs.c: New file. * Makefile.util.def (library): Register btrfs.c. * grub-core/Makefile.core.def: Likewise. 2010-09-08 Robert Millan * util/grub-mkconfig_lib.in (is_path_readable_by_grub): Improve with (optional) parameters to specify device and relative path. * util/grub-install.in: Use is_path_readable_by_grub() to verify readability of a few critical files. * util/grub-mkconfig.in: Use is_path_readable_by_grub() to verify readability of grub.cfg.new. 2010-09-08 Vladimir Serbinenko Split minix.mod into minix.mod and minix2.mod. * Makefile.util.def (libgrub.a): Add grub-core/fs/minix2.c. * grub-core/Makefile.core.def (minix2): New module. * grub-core/fs/minix.c: Use definitions instead of runtime version checking. * grub-core/fs/minix2.c: New file. 2010-09-08 Yves Blusseau Add new --boot-directory option to replace --root-directory * util/grub-install.in: Add new --boot-directory option * util/grub-reboot.in: Likewise. * util/grub-set-default.in: Likewise. 2010-09-08 Yves Blusseau * util/grub-mkconfig.in: Use new variable. 2010-09-08 Yves Blusseau * configure.ac: Define some useful variables. 2010-09-08 Vladimir Serbinenko * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set GRUB_IEEE1275_FLAG_HAS_CURSORONOFF when appropriate. * grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Use terminfo and don't use cursor-on/cursor-off unless it's known to work. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New element GRUB_IEEE1275_FLAG_HAS_CURSORONOFF. 2010-09-08 Colin Watson * grub-core/kern/efi/init.c (grub_efi_set_prefix): If the prefix starts with "(,", fill the drive containing the loaded image in between those two characters, but expect that a full partition specification including partition map names will follow. 2010-09-08 Robert Millan * configure.ac: Remove `--enable-grub-fstest' option. * Makefile.util.def (grub-fstest): Remove COND_GRUB_FSTEST condition. * util/grub-mkconfig_lib.in (is_path_readable_by_grub): Use `grub-fstest' instead of `grub-probe' for readability verification. * util/grub-probe.c (probe): Remove readability verification kludge. 2010-09-08 Robert Millan * util/grub-mkconfig.in: Pass `--device ${GRUB_DEVICE}' when initializing `GRUB_FS'. 2010-09-08 BVK Chaitanya Not command (!) support to GRUB script. * tests/grub_script_not.in: New test. * Makefile.util.def: Rules for new test. * grub-core/script/execute.c (grub_script_execute_cmdline): Handle ! command as a special case. * grub-core/script/yylex.l (GRUB_PARSER_TOKEN_NOT): Removed. 2010-09-07 BVK Chaitanya * grub-core/commands/wildcard.c (wildcard_expand): Fix wrong grub_free. 2010-09-07 BVK Chaitanya * docs/grub.texi (Shell-like scripting): Fix @dots to @dots{}. 2010-09-07 BVK Chaitanya * docs/grub.texi (Shell-like scripting): Documentation for break, continue, shift and return commands. 2010-09-06 Vladimir Serbinenko Rename CD-ROM to cd on BIOS. * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_drive): Recognise "cd". (grub_biosdisk_call_hook): Call with "cd" instead of arbitrary hdX. 2010-09-05 Vladimir Serbinenko * grub-core/kern/emu/main.c (main): Reinit LVM and RAID. * util/grub-probe.c (main): Likewise. * util/i386/pc/grub-setup.c (main): Likewise. * util/sparc64/ieee1275/grub-setup.c (main): Likewise. Reported and debugged by: alexxy 2010-09-05 Vladimir Serbinenko * grub-core/disk/lvm.c (grub_lvm_scan_device) [GRUB_UTIL]: Output more diagnostic info. 2010-09-05 Jo Shields * util/grub.d/30_os-prober.in: Add missing classes. 2010-09-05 Vladimir Serbinenko * docs/grub.texi (Theme file format): Document new position format. 2010-09-05 Vladimir Serbinenko * docs/grub.texi (Theme file format): Replace Box_slice_names.png with a table. Use @code instead of @verbatim. 2010-09-05 Colin D Bennett Gfxmenu documentation. * docs/grub.texi (Theme file format): New chapter. 2010-09-05 Szymon Janc * grub-core/Makefile.core.def (xzio): New module. * grub-core/io/xzio.c: New file. * grub-core/lib/xzembed/xz.h: New file (from xembed). * grub-core/lib/xzembed/xz_config.h: Likewise. * grub-core/lib/xzembed/xz_dec_bcj.c: Likewise. * grub-core/lib/xzembed/xz_dec_lzma2.c: Likewise. * grub-core/lib/xzembed/xz_dec_stream.c: Likewise. * grub-core/lib/xzembed/xz_lzma2.h: Likewise. * grub-core/lib/xzembed/xz_private.h: Likewise. * grub-core/lib/xzembed/xz_stream.h: Likewise. * include/grub/file.h (grub_file_filter_id): New compression filter GRUB_FILE_FILTER_XZIO. 2010-09-05 Vladimir Serbinenko * include/grub/file.h (GRUB_FILE_SIZE_UNKNOWN): New definition. * grub-core/disk/loopback.c (grub_loopback_open): Handle unknown file size. 2010-09-05 Vladimir Serbinenko * include/grub/err.h (grub_err_t): Replace GRUB_ERR_BAD_GZIP_DATA with GRUB_ERR_BAD_COMPRESSED_DATA. All users updated. 2010-09-05 Vladimir Serbinenko Uncompressed checksum support. * grub-core/commands/hashsum.c (options): Add option --uncompress. (check_list): New parameter uncompress. (grub_cmd_hashsum): Handle --uncompress. 2010-09-05 Vladimir Serbinenko Reintroduce testload. * grub-core/commands/minicmd.c (grub_rescue_cmd_testload) [0]: Moved from here ... * grub-core/commands/testload.c (grub_cmd_testload): ... here. (GRUB_MOD_INIT): New function. (GRUB_MOD_FINI): Likewise. * grub-core/Makefile.core.def (testload): New module. 2010-09-05 Szymon Janc * grub-core/lib/posix_wrap/sys/types.h (bool): Transform into an enum. (uint8_t): New type. (uint16_t): Likewise. (uint32_t): Likewise. (uint64_t): Likewise. 2010-09-05 Szymon Janc * include/grub/crypto.h (GRUB_MD_CRC32): New definition. 2010-09-05 Vladimir Serbinenko * grub-core/io/gzio.c (grub_gzio_open): Removed "transparent" parameter. Made static. (grub_gzfile_open): Removed. All users updated. (GRUB_MOD_INIT): New function. (GRUB_MOD_FINI): Likewise. * grub-core/kern/file.c (grub_file_filters_all): New variable. (grub_file_filters_enabled): Likewise. (grub_file_open): Handle filters. * grub-core/loader/i386/bsd.c (GRUB_MOD_INIT): Load gzio. * grub-core/normal/main.c (GRUB_MOD_INIT): Likewise. * include/grub/file.h (grub_file_filter_id_t): New type. (grub_file_filter_t): Likewise. (grub_file_filters_all): New extern variable. (grub_file_filters_enabled): Likewise. (grub_file_filter_register): New inline function. (grub_file_filter_unregister): Likewise. (grub_file_filter_disable): Likewise. (grub_file_filter_disable_compression): Likewise. * include/grub/gzio.h: Removed. 2010-09-04 BVK Chaitanya Filename expansion support for wildcards in GRUB script. * tests/grub_script_expansion.in: New test. * Makefile.util.def: Rule for new test. * grub-core/commands/wildcard.c: New file, implements filename expansion support for GRUB script. * grub-core/Makefile.core.def: Rule update for regexp.mod. * grub-core/script/argv.c: Cosmetic changes. * grub-core/script/execute.c (grub_script_arglist_to_argv): Refactored to perform wildcard expansion on arguments. * include/grub/script_sh.h (grub_script_wildcard_translator): New struct. * tests/util/grub-shell.in: Fix quoting for read input. 2010-09-04 BVK Chaitanya Support for updating environment variables with matched substrings of regexp. * tests/grub_cmd_regexp.in: New test. * Makefile.util.def: Rule for new test. * grub-core/commands/regexp.c: New option -s to update environment variables with regexp matches. 2010-09-04 Szymon Janc * include/grub/file.h (grub_file): New member not_easly_seekable. (grub_file_seekable): New inline function. * grub-core/io/gzio.c (test_header): Don't test end magic if file isn't easily seekable. (grub_gzio_open): Set not_easly_seekable. * grub-core/fs/i386/pc/pxe.c (grub_pxefs_open): Set not_easily_seekable. * grub-core/io/bufio.c (grub_bufio_open): Propagate not_easily_seekable. 2010-09-04 BVK Chaitanya Support for options to appear multiple times on cmdline. * include/grub/lib/arg.h (grub_arg_list_alloc): New prototype. * grub-core/commands/extcmd.c: Support for repeatable option. * grub-core/lib/arg.c (grub_arg_list_alloc): New function for repeatable option support. Refactor menuentry into a regular command. * grub-core/commands/menuentry.c: New file, menuentry command implementation. * grub-core/Makefile.core.def: Rule update for normal.mod. * grub-core/normal/main.c: Moved menuentry creation to grub-core/commands/menuentry.c. * grub-core/normal/menu.c (grub_menu_execute_entry): Removed. (grub_menu_execute_entry_real): Removed. * grub-core/script/execute.c (grub_script_execute_sourcecode): New function. (grub_script_execute_menuentry): Removed. * grub-core/script/parser.y (menuentry): Removed. * grub-core/script/script.c (grub_script_create_cmdmenu): Removed. * grub-core/script/yylex.l (menuentry): Removed. * include/grub/menu.h (grub_menu_init): New prototype. (grub_menu_fini): New prototype. * include/grub/normal.h (grub_normal_add_menu_entry): Removed. * include/grub/script_sh.h (grub_script_cmd_menuentry): Removed. (grub_script_execute_sourcecode): New prototype. 2010-09-04 BVK Chaitanya "return" command for GRUB script functions. * tests/grub_script_return.in: New test. * Makefile.util.def: Rules for new test. * grub-core/script/execute.c (grub_script_return): New function. * grub-core/script/main.c: Register/unregister return commaond. * include/grub/script_sh.h (grub_script_return): New prototype. 2010-09-04 BVK Chaitanya "setparams" command to update positional parameters. * tests/grub_script_setparams.in: New test. * Makefile.util.def: Rules for new test. * grub-core/script/argv.c (grub_script_argv_make): New function. * grub-core/script/execute.c (replace_scope): New function. (grub_script_setparams): New function. * grub-core/script/lexer.c: Remove unused variables. * grub-core/script/main.c: Register/unregister setparams command. * include/grub/script_sh.h (grub_script_argv_make): New prototype. (grub_script_setparams): New prototype. 2010-09-04 BVK Chaitanya * grub-core/normal/completion.c (grub_normal_do_completion): Fix grub_free order. 2010-09-04 BVK Chaitanya Support for passing block of commands as an argument to extcmds. * Makefile.util.def: Rules for new test. * tests/grub_script_blockarg.in: New test. * grub-core/tests/test_blockarg.c: New file, block argument command used in the test. * include/grub/extcmd.h (grub_extcmd_context): New struct. (grub_register_extcmd_prio): New function prototype. (grub_extcmd_dispatcher): New function prototype. * include/grub/command.h (GRUB_COMMAND_FLAG_BLOCKS): New command type. * include/grub/script_sh.h (struct grub_script): New members `children', `next_siblings' and `refcnt' for block arguments and reference counting. (GRUB_SCRIPT_ARG_TYPE_BLOCK): New argument type. (grub_script_arg): New member `script' for block argument. (grub_script_argv): New member `script' for block argument. (grub_parser_param): New member `scripts' for block argument. (grub_script_mem_free): New extern function prototype. (grub_script_ref): New function prototype. (grub_script_unref): New function prototype. * grub-core/normal/dyncmd.c (grub_dyncmd_dispatcher): Moved to extcmd form to support block arguments. * grub-core/script/argv.c: Block arguments support. * grub-core/script/execute.c: Likewise. * grub-core/script/lexer.c: Likewise. * grub-core/script/main.c: Likewise. * grub-core/script/script.c: Likewise. * grub-core/script/parser.y: Likewise. New `block' and `block0' non-terminals. * grub-core/commands/acpi.c: Update extcmd implementations with grub_extcmd_context_t. * grub-core/commands/cat.c: Likewise. * grub-core/commands/echo.c: Likewise. * grub-core/commands/extcmd.c: Likewise. * grub-core/commands/hashsum.c: Likewise. * grub-core/commands/hdparm.c: Likewise. * grub-core/commands/help.c: Likewise. * grub-core/commands/hexdump.c: Likewise. * grub-core/commands/i386/cpuid.c: Likewise. * grub-core/commands/i386/pc/drivemap.c: Likewise. * grub-core/commands/i386/pc/halt.c: Likewise. * grub-core/commands/i386/pc/sendkey.c: Likewise. * grub-core/commands/iorw.c: Likewise. * grub-core/commands/keystatus.c: Likewise. * grub-core/commands/loadenv.c: Likewise. * grub-core/commands/ls.c: Likewise. * grub-core/commands/lspci.c: Likewise. * grub-core/commands/memrw.c: Likewise. * grub-core/commands/probe.c: Likewise. * grub-core/commands/search_wrap.c: Likewise. * grub-core/commands/setpci.c: Likewise. * grub-core/commands/sleep.c: Likewise. * grub-core/disk/loopback.c: Likewise. * grub-core/hello/hello.c: Likewise. * grub-core/loader/i386/bsd.c: Likewise. * grub-core/loader/xnu.c: Likewise. * grub-core/term/gfxterm.c: Likewise. * grub-core/term/serial.c: Likewise. * grub-core/tests/lib/functional_test.c: Likewise. 2010-09-04 BVK Chaitanya Multi-line quoted strings support. * grub-core/script/lexer.c (append_newline): Removed. (grub_script_lexer_yywrap): Refactored. (grub_script_lexer_init): Refactored. * grub-core/script/yylex.l (yywrap): New function. (grub_lexer_resplit): New function. (grub_lexer_unput): New function. * include/grub/script_sh.h (grub_lexer_param): New members, unput and resplit. * tests/grub_script_echo1.in: Added few more testcases. 2010-09-04 Vladimir Serbinenko * grub-core/kern/misc.c: Don't add abort alias in utils. Reported by: echoline. 2010-09-03 BVK Chaitanya Add missing files into "make dist" tarball for other platforms. * gentpl.py (script): Use dist_noinst_DATA instead of EXTRA_DIST. * conf/Makefile.common (dist_noinst_DATA): New variable. * conf/Makefile.extra-dist: Added missing make dist files. * grub-core/Makefile.core.def: Likewise. 2010-09-03 Vladimir Serbinenko Compress grub_prefix. * grub-core/boot/i386/pc/lnxboot.S: Use GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE. * grub-core/kern/i386/pc/startup.S: Move grub_prefix to compressed part. * include/grub/offsets.h: Rename GRUB_MACHINE_DATA_END to GRUB_MACHINE_PREFIX_END. All users updated. (GRUB_KERNEL_I386_PC_PREFIX): Set to GRUB_KERNEL_I386_PC_RAW_SIZE. (GRUB_KERNEL_I386_PC_PREFIX_END): Set to GRUB_KERNEL_I386_PC_PREFIX + 0x40. (GRUB_KERNEL_I386_PC_RAW_SIZE): Decrease. * util/grub-mkimage.c (image_target_desc): Change data_end to prefix_end. All users updated. 2010-09-03 Vladimir Serbinenko * grub-core/loader/i386/bsd.c (grub_freebsd_boot): Set %ebp to sane value. (grub_openbsd_boot): Likewise. (grub_netbsd_boot): Likewise. * grub-core/loader/i386/xnu.c (grub_xnu_boot_resume): Likewise. (grub_xnu_boot): Likewise. 2010-09-02 Vladimir Serbinenko * configure.ac: Clean LIBS variable after tests. 2010-09-02 Colin Watson * INSTALL: Document that libdevmapper needs to be 1.02.34 or later. 2010-09-02 Vladimir Serbinenko * configure.ac: Check for dm_log_with_errno_init in libdevmapper and echo if libdevmapper will be used. 2010-09-02 Ian Turner * grub-core/fs/i386/pc/pxe.c (grub_pxefs_read): Keep the blocksize constant for the same file. 2010-09-02 Vladimir Serbinenko * grub-core/kern/i386/multiboot_mmap.c: Remove leftover include. 2010-09-02 Colin Watson * .bzrignore: Add *.pp, **/.dirstamp, grub-core/*.module, and grub-core/*.pp. 2010-09-02 Colin Watson Zero %ebp and %edi when entering Linux's 32-bit entry point, as required by the boot protocol. * include/grub/i386/relocator.h (struct grub_relocator32_state): Add ebp and edi members. * grub-core/lib/i386/relocator.c (grub_relocator_boot): Handle state.ebp and state.edi. * grub-core/lib/i386/relocator32.S (grub_relocator32_start): Set %ebp and %edi according to grub_relocator32_ebp and grub_relocator32_edi respectively. * grub-core/loader/i386/linux.c (grub_linux_boot): Zero state.ebp and state.edi. 2010-09-02 Vladimir Serbinenko Add i386-pc-pxe image target. * util/grub-mkimage.c (image_target_desc): New enum value IMAGE_I386_PC_PXE. (image_targets): New target i386-pc-pxe. (generate_image): Handle i386-pc-pxe image. 2010-09-02 Vladimir Serbinenko Fix grub_pxe_scan. * grub-core/fs/i386/pc/pxe.c (grub_pxe_pxenv): Put correct type bangpxe. (grub_pxe_scan): Fix types and pxe_rm_entry computation. All users updated. * include/grub/i386/pc/pxe.h (grub_pxe_bangpxe): New struct. (grub_pxe_pxenv): Correct type. 2010-09-01 Colin Watson * NEWS: Document most of the important changes since 1.98. 2010-09-01 Colin Watson * util/grub-mkrescue.in (usage): Tidy up usage output (and hence generated manual page) a little. 2010-09-01 Colin Watson * docs/grub.texi: Add myself as an author. 2010-09-01 Vladimir Serbinenko * Makefile.util.def (libgrub.a): Add missing sunpc. Reported by: Seth Goldberg. 2010-08-30 Vladimir Serbinenko Interrupt wrapping and code simplifications. * Makefile.util.def (grub-mkrescue): Use x86 tg instead of x86_noieee1275 which are functionaly equivalent in this case. (grub-install): Make source on each platform explicit. Enable on all noemu. * gentpl.py (x86_efi_pc): Removed group. (x86_noefi): Likewise. (i386_noefi): Likewise. (x86_noieee1275): Likewise. (i386_noieee1275): Likewise. (i386_noefi_noieee1275): Likewise. (i386_pc_qemu_coreboot): Likewise. (i386_coreboot_multiboot): Likewise. (i386_pc_coreboot_multiboot_qemu): Likewise. (x86_noefi_mips): Likewise. (noieee1275): Likewise. (ieee1275_mips): Likewise. (noemu_noieee1275): Likewise. (cmos): New group. (usb): Likewise. (videoinkernel): Likewise. (videomodules): Likewise. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Remove include/grub/elf.h, include/grub/elfload.h, include/grub/net.h, include/grub/reader.h, include/grub/symbol.h, include/grub/types.h, include/grub/loader.h, include/grub/msdos_partition.h, include/grub/machine/biosdisk.h, include/grub/machine/boot.h, include/grub/machine/console.h, include/grub/machine/vga.h, include/grub/machine/vbe.h, include/grub/machine/init.h, include/grub/machine/kernel.h, include/grub/cpu/time.h, include/grub/cpu/types.h, include/grub/gzio.h and include/grub/menu.h (KERNEL_HEADER_FILES) [i386-pc]: Add include/grub/machine/int.h. (KERNEL_HEADER_FILES) [i386-ieee1275]: Add include/grub/i386/pit.h * grub-core/Makefile.core.def (kernel): Explicit the source for startup. Explicit the platforms using kern/generic/rtc_get_time_ms.c. Split ieee1275_mips. Remove kern/i386/halt.c. Remove kern/i386/misc.S. Enable kern/i386/pit.c on all x86. Remove kern/i386/ieee1275/init.c. Use videoinkernel tag. (usb): Enable on all usb. (usbserial_common): Likewise. (usbserial_pl2303): Likewise. (usbserial_ftdi): Likewise. (uhci): Enable on all x86. (ohci): Enable on all pci. (cmostest): Enable on all CMOS. (acpi): Include commands/acpi.c on all platforms. (halt): Add relevant lib/*/halt.c. (hdparm): Enable on all pci. (lspci): Likewise. (usbtest): Enable on all usb. (ata): Enable on all pci. (ata_pthru): Likewise. (usbms): Enable on all usb. (usb_keyboard): Likewise. (font): Use tag videomodules. (bufio): Likewise. (datetime): Use tag cmos. Enable on all noemu. (mmap): Use tags common and x86. (gfxterm): Use tag videomodules. (bitmap): Likewise. (bitmap_scale): Likewise. (video_fb): Likewise. (video): Likewise. * grub-core/bus/usb/ohci.c (grub_ohci_td): Make link_td a pointer and adjust padding accordingly. All users updated. (grub_ohci_transaction): Fix bad format specification. (GRUB_MOD_INIT): Add asserts for struct size. * grub-core/bus/usb/uhci.c (grub_uhci_pci_iter): Add explicit casts. (grub_alloc_td): Likewise. (grub_free_queue): Likewise. (grub_uhci_transfer): Likewise. (grub_uhci_transaction): Fix bad format specification. * grub-core/bus/usb/usbtrans.c (grub_usb_control_msg): Likewise. (grub_usb_bulk_readwrite): Likewise. * grub-core/kern/i386/misc.S (grub_stop): Moved from here ... * grub-core/commands/i386/pc/halt.c (stop): ...here. Transformed into C. Made static. * grub-core/lib/i386/halt.c (stop): ... and here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_halt): Moved from here ... * grub-core/commands/i386/pc/halt.c (grub_halt): ...here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_biosdisk_rw_int13_extensions): Moved from here ... * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw_int13_extensions): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_biosdisk_rw_standard): Moved from here ... * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw_standard): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_biosdisk_check_int13_extensions): Moved from here ... * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_check_int13_extensions): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions): Moved from here ... * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_cdinfo_int13_extensions): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions): Moved from here ... * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_diskinfo_int13_extensions): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_standard): Moved from here ... * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_diskinfo_standard): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_biosdisk_get_num_floppies): Moved from here ... * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_num_floppies): ... here. Transformed into C. Made static. * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_diskinfo_real): New function. * grub-core/kern/i386/pc/startup.S (grub_pxe_scan): Moved from here ... * grub-core/fs/i386/pc/pxe.c (grub_pxe_scan): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_rm_entry): Moved from here ... * grub-core/fs/i386/pc/pxe.c (grub_rm_entry): ... here. Transformed into C. Made static. * grub-core/kern/i386/ieee1275/init.c: Removed. * grub-core/kern/i386/misc.S: Likewise. * grub-core/kern/i386/pc/startup.S (grub_get_memsize): Splitted from here ... * grub-core/kern/i386/pc/init.c (grub_get_conv_memsize): ... here. Transformed into C. Made static. All users updated. * grub-core/kern/i386/pc/mmap.c (grub_get_ext_memsize): ... and here. Transformed into C. Made static. All users updated. * grub-core/kern/i386/pc/startup.S (grub_get_eisa_mmap): Moved from here... * grub-core/kern/i386/pc/mmap.c (grub_get_eisa_mmap): ... here. Transformed into C. Made static. All users updated. * grub-core/kern/i386/pc/startup.S (grub_get_mmap_entry): Moved from here... * grub-core/kern/i386/pc/mmap.c (grub_get_mmap_entry): ... here. Transformed into C. Made static. All users updated. * grub-core/kern/i386/pc/startup.S (grub_stop_floppy): Removed (replaced by C version). * grub-core/kern/i386/pc/startup.S (grub_vga_set_mode): Moved from here... * grub-core/video/i386/pc/vga.c (grub_vga_set_mode): ...here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_controller_info): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_controller_info): ... here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_mode_info): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_mode_info): ... here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_mode): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_mode): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_mode): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_mode): ... here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette_width):Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_getset_dac_palette_width):... here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_memory_window): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_memory_window): ... here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_memory_window): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_memory_window): ... here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_scanline_length): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_scanline_length): ... here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_scanline_length): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_scanline_length): ... here. Transformed into C. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_display_start): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_display_start): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_display_start): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_display_start): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_palette_data): Moved from here... * grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_palette_data): ... here. Transformed into C. Made static. * grub-core/kern/i386/pc/startup.S (grub_pxe_call): Receive pxe_rm_entry as third argument. (grub_bios_interrupt): New function. * grub-core/kern/i386/qemu/mmap.c: Remove useless include. * grub-core/kern/i386/qemu/startup.S (codestart): Do cli;hlt instead of calling grub_stop. * grub-core/kern/efi/efi.c (grub_halt): Moved from here ... * grub-core/lib/efi/halt.c (grub_halt): ...here. * grub-core/kern/emu/main.c (grub_halt): Moved from here ... * grub-core/lib/emu/halt.c (grub_halt): ... here. * grub-core/lib/i386/halt.c: Moved from here ... * grub-core/lib/i386/halt.c: ... here. * grub-core/kern/ieee1275/openfw.c (grub_halt): Moved from here ... * grub-core/lib/ieee1275/halt.c (grub_halt): ... here. * grub-core/loader/i386/pc/linux.c (grub_linux16_boot): Call grub_stop_floppy. * grub-core/loader/i386/xnu.c (guessfsb) [IEEE1275]: Enable. * include/grub/i386/coreboot/init.h: Removed. * include/grub/i386/multiboot/init.h: Likewise. * include/grub/i386/pc/biosdisk.h: Removed all function prototypes. * include/grub/i386/pc/init.h: Likewise except grub_gate_a20. * include/grub/i386/pc/int.h: New file. * include/grub/i386/pc/pxe.h (GRUB_PXE_SIGNATURE): New definition. (grub_pxe_scan): Removed. (grub_pxe_call): Update prototype. * include/grub/i386/pc/vbe.h: Removed EXPORT_FUNC and useless prototypes. * include/grub/i386/pc/vga.h (grub_vga_set_mode): Removed. * include/grub/i386/qemu/init.h: Removed. * include/grub/mips/yeeloong/kernel.h (grub_reboot): Add missing noreturn. (grub_halt): Likewise. * include/grub/misc.h (grub_halt): Removed EXPORT_FUNC. (grub_reboot): Likewise. * grub-core/kern/i386/coreboot/init.c (grub_stop_floppy): Moved from here... * include/grub/i386/floppy.h (grub_stop_floppy): ...here. Inlined. * grub-core/kern/i386/pc/startup.S (grub_hard_stop): Removed. 2010-08-30 Robert Millan * NEWS: Document addition of ZFS support in `grub-install' and `grub-mkconfig'. 2010-08-30 BVK Chaitanya * conf/Makefile.common (CPPFLAGS_DEFAULT): Remove leading / from dprintf output. 2010-08-30 Vladimir Serbinenko Remove leftover embedding of font objects. * include/grub/kernel.h (OBJ_TYPE_FONT): Removed. * util/grub-install.in (font): Removed. * util/grub-mkimage.c (generate_image): Remove font support. All users updated. 2010-08-30 Vladimir Serbinenko Remove leftover embedding of font objects. * include/grub/kernel.h (OBJ_TYPE_FONT): Removed. * util/grub-install.in (font): Removed. * util/grub-mkimage.c (generate_image): Remove font support. All users updated. 2010-08-30 Vladimir Serbinenko * docs/grub.texi (Network): Fix reference to pxe_blksize. Reported by: Ian Turner 2010-08-30 Vladimir Serbinenko * grub-core/normal/menu.c (grub_wait_after_message): Add a 10 second timeout to avoid indefinite boot stalling. 2010-08-30 Vladimir Serbinenko * grub-core/normal/color.c (grub_env_write_color_normal): Fix a warning. (grub_env_write_color_highlight): Likewise. 2010-08-30 Vladimir Serbinenko * grub-core/normal/term.c (print_more): Return to normal and not to standard state after printing "---MORE---". 2010-08-30 Vladimir Serbinenko * grub-core/term/i386/vga_common.c (grub_console_setcolorstate): Mask out the bit 0x80 since it has other meaning that specifiing color. 2010-08-29 Vladimir Serbinenko New relocator. Allows for more kernel support and more straightforward loader writing. * Makefile.am (BOOTTARGET): New variable. (QEMU32): Likewise. (linux.init.x86_64): New target. (linux.init.i386): Likewise. (multiboot.elf): Likewise. (kfreebsd.elf): Likewise. (kfreebsd.aout): Likewise. (pc-chainloader.elf): Likewise. (pc-chainloader.bin): Likewise. (ntldr.elf): Likewise. (ntldr.bin): Likewise. (multiboot2.elf): Likewise. (kfreebsd.init.x86_64): Likewise. (kfreebsd.init.i386): Likewise. (knetbsd.init.i386): Likewise. (kopenbsd.init.i386): Likewise. (knetbsd.init.x86_64): Likewise. (kopenbsd.init.x86_64): Likewise. (linux-initramfs.i386): Likewise. (linux-initramfs.x86_64): Likewise. (kfreebsd-mfsroot.i386.img): Likewise. (knetbsd.image.i386): Likewise. (kopenbsd.image.i386): Likewise. (kopenbsd.image.x86_64): Likewise. (knetbsd.miniroot-image.i386.img): Likewise. (kfreebsd-mfsroot.x86_64.img): Likewise. (knetbsd.image.x86_64): Likewise. (knetbsd.miniroot-image.x86_64.img): Likewise. (kfreebsd-mfsroot.i386.gz): Likewise. (bootcheck-kfreebsd-i386): Likewise. (kfreebsd-mfsroot.x86_64.gz): Likewise. (bootcheck-kfreebsd-x86_64): Likewise. (knetbsd.miniroot-image.i386.gz): Likewise. (bootcheck-knetbsd-i386): Likewise. (bootcheck-kopenbsd-i386): Likewise. (bootcheck-kopenbsd-x86_64): Likewise. (knetbsd.miniroot-image.x86_64.gz): Likewise. (bootcheck-knetbsd-x86_64): Likewise. (bootcheck-linux-i386): Likewise. (bootcheck-linux-x86_64): Likewise. (bootcheck-linux16-i386): Likewise. (bootcheck-linux16-x86_64): Likewise. (bootcheck-multiboot): Likewise. (bootcheck-multiboot2): Likewise. (bootcheck-kfreebsd-aout): Likewise. (bootcheck-pc-chainloader): Likewise. (bootcheck-ntldr): Likewise. (CLEANFILES): Add new targets. (BOOTCHECKS): New variable. (.PHONY): Add bootchecks. (SUCCESSFUL_BOOT_STRING): New variable. (BOOTCHECK_TIMEOUT): Likewise. (bootcheck): New target * Makefile.util.def (grub-mkrescue): Enable on i386-multiboot. * configure.ac: Correct efiemu excuse. * docs/grub.texi (Supported kernels): New chapter. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Add include/grub/mm_private.h. Simplify inclusion of include/grub/boot.h, include/grub/loader.h and include/grub/msdos_partition.h (KERNEL_HEADER_FILES) [i386_coreboot]: Remove include/grub/machine/loader.h. Add include/grub/i386/pit.h. (KERNEL_HEADER_FILES) [i386_multiboot]: Likewise. (KERNEL_HEADER_FILES) [i386_qemu]: Likewise. (KERNEL_HEADER_FILES) [i386_ieee1275]: Remove include/grub/machine/loader.h. (KERNEL_HEADER_FILES) [x86_64-efi]: Likewise. * grub-core/Makefile.core.def (kernel): Remove kern/i386/loader.S from extra_dist. (pci.mod): Enable on i386-multiboot. (acpi.mod): Enable on i386-multiboot and i386-coreboot. (efiemu.mod): Enable on i386-coreboot, i386-ieee1275, i386-multiboot and i386-qemu. (relocator.mod): Rewritten. (aout.mod): Enable on all x86. (bsd.mod): Likewise. (ntldr.mod): New module. (linux.mod): Use loader/i386/linux.c on all x86. (xnu.mod): Enable on all x86. (vga_text.mod): disable on EFI and QEMU. * grub-core/efiemu/i386/coredetect.c: Remove useless include. * grub-core/efiemu/i386/pc/cfgtables.c: Likewise. * grub-core/efiemu/loadcore.c: Likewise. * grub-core/efiemu/main.c: Likewise. (grub_efiemu_exit_boot_services): Removed. (grub_efiemu_finish_boot_services): Likewise. * grub-core/efiemu/mm.c (grub_efiemu_finish_boot_services): New function. * grub-core/efiemu/i386/nocfgtables.c: New file. * grub-core/kern/dl.c (grub_dl_unload_all): Removed. * grub-core/kern/efi/efi.c (grub_efi_exit_boot_services): Removed. (grub_efi_finish_boot_services): Moved from here ... * grub-core/kern/efi/mm.c (grub_efi_finish_boot_services): ...here. Fille finish memory map and related data. (finish_mmap_buf): New variable. (grub_efi_uintn_t finish_mmap_size): Likewise. (grub_efi_uintn_t finish_key): Likewise. (grub_efi_uintn_t finish_desc_size): Likewise. (grub_efi_uint32_t finish_desc_version): Likewise. (grub_efi_is_finished): Likewise. (grub_efi_get_memory_map): Use saved memory map if EFI is already finished. * grub-core/kern/elf.c (grub_elf32_phdr_iterate): Make global. (grub_elf64_phdr_iterate): Likewise. * grub-core/kern/i386/coreboot/init.c (grub_os_area_addr): Removed. (grub_os_area_size): Likewise. (grub_machine_init): Don't reserve os area. * grub-core/kern/i386/coreboot/startup.S: Don't include loader.S. * grub-core/kern/i386/ieee1275/startup.S: Likewise. * grub-core/kern/i386/loader.S: Removed. * grub-core/kern/i386/pc/init.c (grub_os_area_addr): Removed. (grub_os_area_size): Likewise. (grub_machine_init): Don't reserve os area. * grub-core/kern/i386/pc/startup.S (grub_chainloader_real_boot): Don't call grub_dl_unload_all. Don't include loader.S. * grub-core/kern/i386/qemu/mmap.c (grub_machine_mmap_iterate): Declare the memory after _end as available. * grub-core/kern/mm.c (GRUB_MM_FREE_MAGIC): Moved from here... * include/grub/mm_private.h (GRUB_MM_FREE_MAGIC): ... here. (GRUB_MM_ALLOC_MAGIC): Moved from here... * include/grub/mm_private.h (GRUB_MM_ALLOC_MAGIC): ... here. * grub-core/kern/mm.c (grub_mm_header): Moved from here... * include/grub/mm_private.h (grub_mm_header): ... here. * grub-core/kern/mm.c (GRUB_MM_ALIGN): Moved from here... * include/grub/mm_private.h (GRUB_MM_ALIGN): ... here. * grub-core/kern/mm.c (grub_mm_region): Moved from here ... (grub_mm_region): ..here. Removed addr. Added pre_size. All users updated. * grub-core/kern/mm.c (base): Renamed to ... (grub_mm_base): ... this. Made global. (grub_real_malloc): Alloc from end of region. (grub_memalign): Don't attempt to malloc if grub_mm_base is NULL. * grub-core/kern/powerpc/cache.S (grub_arch_sync_caches): Move to ... * grub-core/kern/powerpc/cache_flush.S: ... here. * grub-core/lib/efi/relocator.c: New file. * grub-core/lib/i386/relocator.c: Rewritten. * grub-core/lib/i386/relocator16.S: New file. * grub-core/lib/i386/relocator32.S: Likewise. * grub-core/lib/i386/relocator64.S: Likewise. * grub-core/lib/i386/relocator_asm.S: Rewritten. * grub-core/lib/i386/relocator_common.S: New file. * grub-core/lib/ieee1275/relocator.c: Likewise. * grub-core/lib/mips/relocator.c: Rewritten. * grub-core/lib/mips/relocator_asm.S: Renamed variables and minor stylistic adjustments. * grub-core/lib/powerpc/relocator.c: New file. * grub-core/lib/powerpc/relocator_asm.S: Likewise. * grub-core/lib/relocator.c: Rewritten. * grub-core/lib/x86_64/relocator_asm.S: New file. * grub-core/loader/aout.c (grub_aout_load): Make load_addr a void *. * grub-core/loader/i386/bsd.c (NETBSD_DEFAULT_VIDEO_MODE): New const. (bsd_tag): New struct. (tags): New variable. (tags_last): Likewise. (netbsd_module): New struct. (netbsd_mods): New variable. (netbsd_mods_last): Likewise. (openbsd_opts): New parameter "serial". (OPENBSD_SERIAL_ARG): New definition. (netbsd_opts): New parameter "serial". (NETBSD_SERIAL_ARG): New definition. (grub_freebsd_add_meta): Reorganised into ... (grub_bsd_add_meta): ...this. All users updated. (grub_freebsd_add_mmap): Reorganised into ... (generate_e820_mmap): ...this... (grub_bsd_add_mmap): ...and this. All users updated. (grub_freebsd_list_modules): Use tags. (grub_netbsd_add_meta_module): New function. (grub_netbsd_list_modules): Likewise. (grub_freebsd_boot): Use relocator and finish EFI. (grub_openbsd_boot): Likewise. (grub_netbsd_setup_video): New function. (grub_netbsd_add_modules): Likewise. (grub_netbsd_boot): Use grub_netbsd_add_modules, relocator, netbsd_tags and finish EFI. (grub_bsd_unload): Unload tags. (grub_bsd_load_aout): Use relocator. (grub_bsd_elf32_size_hook): New function. (grub_bsd_elf32_hook): Use relocator. (grub_bsd_elf64_size_hook): New function. (grub_bsd_elf64_hook): Use relocator. (grub_bsd_load_elf): Use relocator and call grub_openbsd_find_ramdisk. (grub_bsd_load): Zero-out openbsd_ramdisk. (grub_bsd_load): Use relocator. (grub_cmd_openbsd): Support serial. (grub_cmd_netbsd): Support modules. (grub_cmd_freebsd_module): Use relocator. (grub_netbsd_module_load): New function. (grub_cmd_netbsd_module): Likewise. (grub_cmd_openbsd_ramdisk): Likewise. (GRUB_MOD_INIT): Register knetbsd_module, knetbsd_module_elf and kopenbsd_ramdisk. (GRUB_MOD_FINI): Unregister new commands. * grub-core/loader/i386/bsdXX.c (load): Remove useless checks. (grub_freebsd_load_elfmodule_obj): Use relocator. (grub_freebsd_load_elfmodule): Likewise. (grub_freebsd_load_elf_meta): Likewise. (grub_netbsd_load_elf_meta): New function. (grub_openbsd_find_ramdisk): Likewise. * grub-core/loader/i386/bsd_helper.S: Removed. * grub-core/loader/i386/bsd_pagetable.c: Support relocator. * grub-core/loader/i386/bsd_trampoline.S: Removed. * grub-core/loader/i386/efi/linux.c: Likewise. * grub-core/loader/i386/ieee1275/linux.c: Likewise. * grub-core/loader/i386/linux.c (HAS_VGA_TEXT): New const. (DEFAULT_VIDEO_MODE): Likewise. (real_mode_target): New variable. (prot_mode_target): Likewise. (initrd_mem_target): Likewise. (relocator): Likewise. (efi_mmap_buf): Likewise. (efi_mmap_size): Likewise. (find_efi_mmap_size): Moved from grub-core/loader/i386/efi/linux.c. (free_pages): Use relocator. (allocate_pages): Account for efi_mmap and use relocator. Return error. (grub_linux_setup_video): Return error. (grub_linux_trampoline_start): Removed. (grub_linux_trampoline_end): Likewise. (grub_linux_boot): Use relocator and DEFAULT_VIDEO_MODE. Pass console andd video parameters depending on firmware. [GRUB_MACHINE_IEEE1275]: Pass OFW parameters. [GRUB_MACHINE_EFI]: Pass EFI parameters. (grub_cmd_linux) [GRUB_MACHINE_EFI]: Likewise. (grub_cmd_initrd): Use relocator. * grub-core/loader/i386/linux_trampoline.S: Removed. * grub-core/loader/i386/multiboot_mbi.c (elf_sec_num): New variable. (elf_sec_entsize): Likewise. (elf_sec_shstrndx): Likewise. (elf_sections): Likewise. (grub_multiboot_load): Use relocator. (grub_multiboot_get_mbi_size): Account for sections. (grub_multiboot_make_mbi): Use relocator and support sections. (grub_multiboot_add_elfsyms): New function. (grub_multiboot_free_mbi): Free sections. * grub-core/loader/i386/pc/linux.c (relocator): New variable. (grub_linux_real_target): Likewise. (grub_linux_real_chunk): Likewise. (grub_linux16_prot_size): Likewise. (grub_linux16_boot): Use relocator. (grub_linux_unload): Unload relocator. (grub_cmd_linux): Use relocator. (grub_cmd_initrd): Likewise. * grub-core/loader/i386/pc/ntldr.c: New file. * grub-core/loader/i386/xnu.c (guessfsb) [GRUB_MACHINE_IEEE1275]: Don't try to guess CPU frequency. (grub_xnu_set_video): Stretch bitmap. (grub_xnu_boot): Use relocator. * grub-core/loader/mips/linux.c (grub_linux_boot): Use relocator. (grub_linux_unload): Free relocator. (grub_linux_load32): Use relocator. (grub_linux_load64): Likewise. (grub_cmd_initrd): Likewise. * grub-core/loader/multiboot.c (grub_multiboot_boot): Use relocator. (grub_multiboot_unload): Unload relocator. (grub_cmd_multiboot): Use relocator. (grub_cmd_module): Likewise. * grub-core/loader/multiboot_elfxx.c (grub_multiboot_load_elfXX): Use relocator and support sections. * grub-core/loader/multiboot_mbi2.c(elf_sec_num): New variable. (elf_sec_entsize): Likewise. (elf_sec_shstrndx): Likewise. (elf_sections): Likewise. (grub_multiboot_load): Use relocator. (grub_multiboot_get_mbi_size): Account for sections. (grub_multiboot_make_mbi): Use relocator and support sections. (grub_multiboot_add_elfsyms): New function. * grub-core/loader/powerpc/ieee1275/linux.c: Remove useless include. * grub-core/loader/sparc64/ieee1275/linux.c: Likewise. * grub-core/loader/xnu.c (grub_xnu_heap_malloc): Use relocator. Prototype changed. All users updated. (grub_xnu_align_heap): Simplified. (grub_xnu_writetree_toheap): Likewise. (grub_xnu_unload): Unload relocator. (grub_cmd_xnu_kernel): Use relocator. (grub_cmd_xnu_kernel64): Likewise. (grub_xnu_register_memory): Simplified. * grub-core/loader/xnu_resume.c (grub_xnu_resume): Use relocator. * grub-core/term/efi/console.c (grub_console_putchar): Abort if EFI is finished. (grub_console_checkkey): Likewise. (grub_console_getkey): Likewise. (grub_console_getwh): Likewise. (grub_console_getxy): Likewise. (grub_console_gotoxy): Likewise. (grub_console_cls): Likewise. (grub_console_setcolorstate): Likewise. (grub_console_setcursor): Likewise. * grub-core/term/ns8250.c (grub_ns8250_hw_get_port): New function. * grub-core/tests/boot/kbsd.init-i386.S: New file. * grub-core/tests/boot/kbsd.init-x86_64.S: Likewise. * grub-core/tests/boot/kbsd.spec.txt: Likewise. * grub-core/tests/boot/kernel-8086.S: Likewise. * grub-core/tests/boot/kernel-i386.S: Likewise. * grub-core/tests/boot/kfreebsd-aout.cfg: Likewise. * grub-core/tests/boot/kfreebsd.cfg: Likewise. * grub-core/tests/boot/kfreebsd.init-i386.S: Likewise. * grub-core/tests/boot/kfreebsd.init-x86_64.S: Likewise. * grub-core/tests/boot/knetbsd.cfg: Likewise. * grub-core/tests/boot/kopenbsd.cfg: Likewise. * grub-core/tests/boot/kopenbsdlabel.txt: Likewise. * grub-core/tests/boot/linux.cfg: Likewise. * grub-core/tests/boot/linux.init-i386.S: Likewise. * grub-core/tests/boot/linux.init-x86_64.S: Likewise. * grub-core/tests/boot/linux16.cfg: Likewise. * grub-core/tests/boot/multiboot.cfg: Likewise. * grub-core/tests/boot/multiboot2.cfg: Likewise. * grub-core/tests/boot/ntldr.cfg: Likewise. * grub-core/tests/boot/pc-chainloader.cfg: Likewise. * include/grub/aout.h (grub_aout_load): Make load_addr a void *. * include/grub/autoefi.h (grub_autoefi_finish_boot_services): New definition. * include/grub/dl.h (grub_dl_unload_all): Removed. * include/grub/efi/efi.h (grub_efi_exit_boot_services): Likewise. (grub_efi_finish_boot_services): Change prototype. (grub_efi_is_finished): New variable. * include/grub/efiemu/efiemu.h (grub_efiemu_finish_boot_services): Changed prototype. (grub_efiemu_finish_boot_services): Removed. (grub_machine_efiemu_init_tables): New prototype. * include/grub/elfload.h (grub_elf32_phdr_iterate): Likewise. (grub_elf64_phdr_iterate): Likewise. * include/grub/i386/bsd.h: Include relocator.h. (freebsd_tag_header): New struct. (grub_openbsd_bios_mmap): Removed. (grub_unix_real_boot): Removed. (grub_freebsd_load_elfmodule32): Changed prototype. (grub_freebsd_load_elfmodule_obj64): Likewise. (grub_freebsd_load_elf_meta32): Likewise. (grub_freebsd_load_elf_meta64): Likewise. (grub_freebsd_add_meta): Removed. (grub_netbsd_load_elf_meta32): New prototype. (grub_netbsd_load_elf_meta64): Likewise. (grub_bsd_add_meta): Likewise. (grub_openbsd_ramdisk_descriptor): New struct. (grub_openbsd_find_ramdisk32): New prototype. (grub_openbsd_find_ramdisk64): Likewise. * include/grub/i386/coreboot/loader.h: Removed. * include/grub/i386/efi/loader.h: Likewise. * include/grub/i386/ieee1275/loader.h: Likewise. * include/grub/i386/linux.h (linux_kernel_header): Change void * to grub_uint32_t. * include/grub/i386/loader.h: Removed. * include/grub/i386/memory.h (GRUB_MEMORY_CPU_CR4_PAE_ON): Correct the value. (GRUB_MEMORY_CPU_CR4_PSE_ON): New definition. (grub_phys_addr_t): New type. (grub_vtop): New inline function. (grub_map_memory): Likewise. (grub_unmap_memory): Likewise. * include/grub/i386/multiboot/loader.h: Removed. * include/grub/i386/netbsd_bootinfo.h (NETBSD_BTINFO_BOOTDISK): Removed. (NETBSD_BTINFO_CONSOLE): New definition. (NETBSD_BTINFO_SYMTAB): Likewise. (NETBSD_BTINFO_MODULES): Likewise. (NETBSD_BTINFO_FRAMEBUF): Likewise. (grub_netbsd_bootinfo): New struct. (grub_netbsd_btinfo_common): Use explicit bitsize. (grub_netbsd_btinfo_mmap_entry): Removed. (GRUB_NETBSD_MAX_BOOTPATH_LEN): New definition. (grub_netbsd_btinfo_bootdisk): New struct. (grub_netbsd_btinfo_symtab): Likewise. (grub_netbsd_btinfo_serial): Likewise. (grub_netbsd_btinfo_modules): Likewise. (grub_netbsd_btinfo_framebuf): Likewise. (GRUB_NETBSD_MAX_ROOTDEVICE_LEN): New definition. * include/grub/i386/openbsd_bootarg.h (OPENBSD_BOOTARG_CONSOLE): Likewise. (grub_openbsd_bootargs): Use explicit bitsize. (grub_openbsd_bootarg_console): New struct. (GRUB_OPENBSD_COM_MAJOR): New definition. (GRUB_OPENBSD_VGA_MAJOR): Likewise. * include/grub/i386/pc/efiemu.h: Removed. * include/grub/i386/pc/loader.h: Don't include cpu/loader.h. * include/grub/i386/qemu/loader.h: Removed. * include/grub/i386/relocator.h: Rewritten. * include/grub/i386/xnu.h (grub_xnu_heap_will_be_at): Removed. * include/grub/mips/memory.h: New file. * include/grub/mips/multiboot.h: Rewritten. * include/grub/mips/relocator.h: Rewritten. * include/grub/mips/yeeloong/memory.h (grub_phys_addr_t): New type. (grub_vtop): New function. (grub_map_memory): Likewise. (grub_unmap_memory): Likewise. * include/grub/misc.h (ALIGN_DOWN): New definition. * include/grub/mm.h (grub_mm_check_real): New proto. (GRUB_MM_CHECK): New definition. * include/grub/mm_private.h: New file. * include/grub/multiboot.h (grub_multiboot_relocator): New variable. (grub_multiboot_get_mbi_size): Removed. (grub_multiboot_make_mbi): Change prottype. (grub_multiboot_set_accepts_video): New proto. (grub_multiboot_add_elfsyms): Likewise. (grub_multiboot_payload_eip): New variable. * include/grub/ns8250.h (grub_ns8250_hw_get_port) [!ASM_FILE]: New prototype. * include/grub/offsets.h (GRUB_KERNEL_I386_MULTIBOOT_PREFIX): New definition. (GRUB_KERNEL_I386_MULTIBOOT_DATA_END): Likewise. (GRUB_KERNEL_I386_MULTIBOOT_MOD_ALIGN): Likewise. * include/grub/powerpc/ieee1275/loader.h: Removed. * include/grub/powerpc/memory.h: New file. * include/grub/powerpc/relocator.h: Likewise. * include/grub/relocator.h: Likewise. * include/grub/relocator_private.h: Likewise. * include/grub/sparc64/ieee1275/loader.h: Removed. * include/grub/x86_64/memory.h: New file. * include/grub/xnu.h (grub_xnu_writetree_toheap): Changed prototype. (grub_xnu_heap_malloc): Likewise. (grub_xnu_heap_real_start): Removed. (grub_xnu_heap_start): Likewise. (grub_xnu_relocator): New variable. (grub_xnu_heap_target_start): Likewise. * tests/util/grub-shell.in: Support non-pc. * util/grub-mkimage.c (image_targets): Fix multiboot target. 2010-08-29 Vladimir Serbinenko * grub-core/normal/charset.c (grub_utf8_to_ucs4_alloc): Avoid deadloop on malloc error. (grub_bidi_logical_to_visual): Check that malloc succeded. * grub-core/normal/term.c (grub_puts_terminal): Fix fallback to dumb puts. (grub_xputs_normal): Likewise. 2010-08-29 Vladimir Serbinenko * grub-core/Makefile.core.def (kernel): Add kern/mips/cache_flush.S to extra_dist. 2010-08-29 Vladimir Serbinenko * grub-core/efiemu/runtime/efiemu.sh: Removed. 2010-08-29 Vladimir Serbinenko * Makefile.util.def (grub-ofpathname): Add missing ldadd. 2010-08-29 Vladimir Serbinenko * grub-core/kern/misc.c (grub_real_dprintf): Always refresh after dprintf. 2010-08-29 BVK Chaitanya * Makefile.util.def: Use ldadd instead of ldflags for libraries. 2010-08-28 Vladimir Serbinenko * grub-core/normal/term.c (print_more): Fix a memory leak. (grub_puts_terminal): Revert to dumb puts if memory allocation fails. (grub_xputs_normal): Likewise. 2010-08-28 Vladimir Serbinenko * grub-core/script/lexer.c (grub_script_lexer_init): Don't look before the begining of the string 2010-08-28 Vladimir Serbinenko * grub-core/script/script.c (grub_script_parse): Free parsed on failure. 2010-08-28 Vladimir Serbinenko * grub-core/normal/completion.c (grub_normal_do_completion): Free argv on failure. 2010-08-28 Vladimir Serbinenko * grub-core/normal/cmdline.c (grub_cmdline_get): Free cl_terms on return. 2010-08-28 Vladimir Serbinenko * grub-core/term/gfxterm.c (grub_gfxterm_term_fini): Free the text buffer. (scroll_up): Fix a memory leak. 2010-08-28 Vladimir Serbinenko * grub-core/fs/nilfs2.c (grub_nilfs2_load_sb): Handle grub_disk_read errors. 2010-08-27 Vladimir Serbinenko Handle USB pendrives exposed as floppies. * grub-core/boot/i386/pc/boot.S: Check LBA even on what appears to be floppy. * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise. Check for partitions on all devices. 2010-08-25 Vladimir Serbinenko * grub-core/term/ieee1275/ofconsole.c (put): Correct prototype. (readkey): Likewise. 2010-08-25 BVK Chaitanya Multiple variable names support to "export" command. * normal/context.c (grub_cmd_export): "export" command supports multiple variable names. 2010-08-23 Samuel Thibault * util/grub.d/30_os-prober.in: Fix conversion from grub-probe --target=drive output to Mach device name. 2010-08-23 BVK Chaitanya New Automake based build system for GRUB. * ABOUT-NLS: New file. * Makefile.am: New file. GRUB host utils' rules that doesn't fit in Makefile.util.def file. * Makefile.util.def: New file. Autogen build definitions file for GRUB host utils. * conf/Makefile.common: New file. Common variables for GRUB host utils and target modules. * conf/Makefile.extra-dist: New file. Extra files for make dist. * docs/Makefile.am: New file. Automake file for docs. * gentpl.py: New file. Python script to generate Autogen template. * grub-core/Makefile.am: New file. GRUB target modules' rules that doesn't fit in Makefile.core.def file. * grub-core/Makefile.core.def: New file. Autogen build definitions file for GRUB target modules. * grub-core/lib/setjmp.S: New file. Wrapper for target_cpu specific setjmp.S file. * po/Makefile.am: New file. * .bzrignore: New ignores. * INSTALL: New requirements, without Ruby. * acinclude.m4: Use TARGET_IMG_BASE_LDOPT variable instead. * autogen.sh: Updated to invoke autogen as necessary. * configure.ac: Separate *FLAGS with HOST_ and TARGET_ prefixes, and defines for Automake conditionals. * geninit.sh: Refactoring. * include/grub/dl.h: Allow build rules to define GRUB_MOD_* if necessary. * include/grub/emu/getroot.h (grub_make_system_path_relative_to_its_root): New prototype. * include/grub/test.h: Fix functional test modules' naming. * grub-core/tests/example_functional_test.c: Fix test module name. * util/misc.c: Hosted versions' of grub functions for libgrub.a * tests/lib/unit_test.c: Remove hosted versions of grub functions. * util/grub-editenv.c: Likewise. * util/grub-fstest.c: Likewise. * util/grub-mkdevicemap.c: Likewise. * util/grub-mkfont.c: Likewise. * util/grub-mkimage.c: Likewise. * util/grub-mkpasswd-pbkdf2.c: Likewise. * util/grub-probe.c: Likewise. * util/grub-script-check.c: Likewise. * util/i386/pc/grub-setup.c: Likewise. * util/sparc64/ieee1275/grub-setup.c: Likewise. * tests/util/grub-shell.in: Fix override directory path. * util/grub-mkrescue.in: Replace @pkglib_DATA@ with files. * util/import_gcry.py: Create Makefile.gcry.def file instead. * util/lvm.c: Update #includes. * util/raid.c: Likewise. * util/resolve.c: Likewise. * grub-core/bus/emu/pci.c: Likewise. * grub-core/lib/posix_wrap/stdlib.h: Likewise. * grub-core/lib/posix_wrap/string.h: Likewise. * grub-core/kern/emu/main.c: Likewise. * grub-core/gensymlist.sh: New file. Script for generating kernel symbols file. * grub-core/genmoddep.awk: Support new kernel_syms.lst format. * grub-core/gentrigtables.c: Fix unused variable warnings. * Makefile.in: Removed. * conf/any-emu.rmk: Removed. * conf/common.rmk: Removed. * conf/i386-coreboot.rmk: Removed. * conf/i386-efi.rmk: Removed. * conf/i386-ieee1275.rmk: Removed. * conf/i386-multiboot.rmk: Removed. * conf/i386-pc.rmk: Removed. * conf/i386-qemu.rmk: Removed. * conf/i386.rmk: Removed. * conf/mips-yeeloong.rmk: Removed. * conf/mips.rmk: Removed. * conf/powerpc-ieee1275.rmk: Removed. * conf/sparc64-ieee1275.rmk: Removed. * conf/tests.rmk: Removed. * conf/x86-efi.rmk: Removed. * conf/x86_64-efi.rmk: Removed. * gendistlist.sh: Removed. * geninitheader.sh: Removed. * genkernsyms.sh.in: Removed. * genmk.rb: Removed. * gensymlist.sh.in: Removed. * mkinstalldirs: Removed. * boot: Moved ... * grub-core/boot: ... to here. * bus: Moved ... * grub-core/bus: ... to here. * commands: Moved ... * grub-core/commands: ... to here. * disk: Moved ... * grub-core/disk: ... to here. * efiemu: Moved ... * grub-core/efiemu: ... to here. * font: Moved ... * grub-core/font: ... to here. * fs: Moved ... * grub-core/fs: ... to here. * gencmdlist.sh: Moved ... * grub-core/gencmdlist.sh: ... to here. * genemuinit.sh: Moved ... * grub-core/genemuinit.sh: ... to here. * genemuinitheader.sh: Moved ... * grub-core/genemuinitheader.sh: ... to here. * genfslist.sh: Moved ... * grub-core/genfslist.sh: ... to here. * genhandlerlist.sh: Moved ... * grub-core/genhandlerlist.sh: ... to here. * genmoddep.awk: Moved ... * grub-core/genmoddep.awk: ... to here. * genmodsrc.sh: Moved ... * grub-core/genmodsrc.sh: ... to here. * genpartmaplist.sh: Moved ... * grub-core/genpartmaplist.sh: ... to here. * genparttoollist.sh: Moved ... * grub-core/genparttoollist.sh: ... to here. * genterminallist.sh: Moved ... * grub-core/genterminallist.sh: ... to here. * gentrigtables.c: Moved ... * grub-core/gentrigtables.c: ... to here. * genvideolist.sh: Moved ... * grub-core/genvideolist.sh: ... to here. * gettext: Moved ... * grub-core/gettext: ... to here. * gfxmenu: Moved ... * grub-core/gfxmenu: ... to here. * gnulib: Moved ... * grub-core/gnulib: ... to here. * hello: Moved ... * grub-core/hello: ... to here. * hook: Moved ... * grub-core/hook: ... to here. * io: Moved ... * grub-core/io: ... to here. * kern: Moved ... * grub-core/kern: ... to here. * lib: Moved ... * grub-core/lib: ... to here. * loader: Moved ... * grub-core/loader: ... to here. * mmap: Moved ... * grub-core/mmap: ... to here. * normal: Moved ... * grub-core/normal: ... to here. * partmap: Moved ... * grub-core/partmap: ... to here. * parttool: Moved ... * grub-core/parttool: ... to here. * script: Moved ... * grub-core/script: ... to here. * term: Moved ... * grub-core/term: ... to here * tests/example_functional_test.c: Moved ... * grub-core/tests/example_functional_test.c: ... to here. * tests/lib/functional_test.c: Moved ... * grub-core/tests/lib/functional_test.c: ... to here. * tests/lib/test.c: Moved ... * grub-core/tests/lib/test.c: ... to here. * video: Moved ... * grub-core/video: ... to here. 2010-08-23 BVK Chaitanya Replace --enable-grub-emu-modules with grub-emu-lite. * kern/emu/cache.S: New file. Wrapper for $target_cpu specific cache.S. * include/grub/emu/misc.h (grub_emu_init): New prototype. * kern/emu/full.c: New file. For grub-emu specific initialization. * kern/emu/lite.c: New file. For grub-emu-lite initialization. * kern/emu/main.c: Call initialization function grub_emu_init. * Makefile.in: Include grub-emu-lite in install. * commands/parttool.c: Use grub_no_autoload to differentiate between grub-emu and grub-emu-lite. * include/grub/misc.h: New variable grub_no_autoload. * conf/any-emu.rmk: New rules for grub-emu-lite. * configure.ac: Remove --enable-grub-emu-modules. * genmk.rb: Cleanup unnecessary rules. * include/grub/dl.h: Remove GRUB_NO_MODULES macro. * normal/main.c: Don't load list files on grub-emu-lite. * util/misc.c (grub_arch_sync_caches): Removed. 2010-08-23 Colin Watson * kern/mips/startup.S (grub_prefix): Update comment to refer to grub-mkimage rather than grub-mkelfimage. * kern/powerpc/ieee1275/startup.S (grub_prefix): Likewise. 2010-08-22 Vladimir Serbinenko * term/at_keyboard.c (grub_at_keyboard_getkey_noblock): Don't discard a key after CapsLock or NumLock. It's just a qemu bug. 2010-08-21 Vladimir Serbinenko * include/grub/usb.h (grub_usb_device): Add 'data' field back. It's needed by libusb wrapper. 2010-08-21 Samuel Thibault * docs/grub.texi (GNU/Hurd): Document booting GNU/Hurd. 2010-08-21 Vladimir Serbinenko * loader/multiboot.c (grub_cmd_module): Don't unzip module if --nounzip is passed. 2010-08-20 Vladimir Serbinenko USB hotunplugging and USB serial support. * bus/usb/ohci.c (grub_ohci_transfer): Fill *actual and respect timeout. * bus/usb/uhci.c (grub_free_queue): Compute *actual. (grub_uhci_transfer): Respect timeout and set *actual. * bus/usb/usb.c (grub_usb_device_initialize): Correctly skip fields of non-standard length. (grub_usb_device_attach): Autoload modules. (GRUB_MOD_INIT): Set grub_term_poll_usb. (GRUB_MOD_FINI): Unset grub_term_poll_usb. * bus/usb/usbhub.c (grub_usb_hub): Replace speed with devices. All users updated. (grub_usb_add_hub): Fill nports and children. (attach_root_port): Receive hub instead of controller. All users updated. Fill hub->devices. (grub_usb_root_hub): Allocate hub->devices. (detach_device): New function. (poll_nonroot_hub): Fill children and detach devices. * bus/usb/usbtrans.c (grub_usb_bulk_readwrite): Accept timeout and actual arguments. All users updated. (grub_usb_bulk_read_extended): New function. * bus/usb/serial/common.c: New file. * bus/usb/serial/ftdi.c: Likewise. * bus/usb/serial/pl2303.c: Likewise. * commands/terminal.c (handle_command): Support wildcard. * commands/usbtest.c: Output "Unknown" instead of empty string. * conf/any-emu.rmk (pkglib_MODULES): Add usbserial_common.mod. (usbserial_common_mod_SOURCES): New variable. (usbserial_common_mod_CFLAGS): Likewise. (usbserial_common_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add usbserial_pl2303.mod. (usbserial_pl2303_mod_SOURCES): New variable. (usbserial_pl2303_mod_CFLAGS): Likewise. (usbserial_pl2303_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add usbserial_ftdi.mod. (usbserial_ftdi_mod_SOURCES): New variable. (usbserial_ftdi_mod_CFLAGS): Likewise. (usbserial_ftdi_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add serial.mod. (serial_mod_SOURCES): New variable. (serial_mod_CFLAGS): Likewise. (serial_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk: Likewise. * conf/mips-yeeloong.rmk: Likewise. * conf/i386.rmk (serial_mod_SOURCES): Add term/ns8250.c. * conf/mips-yeeloong.rmk (kernel_img_SOURCES): Likewise. * disk/usbms.c (first_available_slot): New variable. (grub_usbms_attach): Don't reuse free slots due to potential cache problems. * include/grub/serial.h: Moved to .. * include/grub/ns8250.h: ...this. * include/grub/serial.h: New file. * include/grub/term.h (grub_term_poll_usb): New variable. * include/grub/terminfo.h (grub_terminfo_input_state): Pass term to readkey. All users updated. (grub_terminfo_output_state): Pass term to put. * include/grub/usb.h (GRUB_USB_REQTYPE): New enum. (grub_usb_controller_dev): Add timeout and actual arguments to transfer. All users updated. (grub_usb_interface): New field detach_data. (grub_usb_device): New fields children and nports. (grub_usb_ep_type_t): New type. (grub_usb_get_ep_type): New function. (grub_usb_bulk_read_extended): Likewise. * include/grub/usbdesc.h (grub_usb_desc): New type. * include/grub/usbserial.h: New file. * include/grub/usbtrans.h (grub_usb_transaction): New field preceding. * kern/term.c (grub_term_poll_usb): New variable. (grub_getkey): Call grub_term_poll_usb if set. (grub_checkkey): Likewise. (grub_getkeystatus): Likewise. * term/serial.c: Moved controller-specific parts to ... * term/ns8250.c: ... here. * term/serial.c: Mostly rewritten. * term/usb_keyboard.c: Reorganised to use GET_REPORT only on attaching according to spec. 2010-08-20 Robert Millan Make kFreeBSD code more generic to support ext2fs as root, ufs as a separate module and maybe other interesting combinations. * util/grub.d/10_kfreebsd.in (load_kfreebsd_module): New function. (kfreebsd_entry): Use load_kfreebsd_module() to load modules. (kfreebsd_entry): Add generic filesystem module load routine. Map GRUB `ext2' to kFreeBSD `ext2fs'. 2010-08-20 Colin Watson * commands/i386/pc/sendkey.c (keysym_table): Rename "numlock" to "numcenter" (I misunderstood the purpose of this entry). * docs/grub.texi (sendkey): Likewise. 2010-08-20 Colin Watson * commands/i386/pc/sendkey.c (options): Remove "keep" from all status flag options; simply omitting the option is equivalent and simpler. Rename "wait" to "pause". Rename "sysreq" to "sysrq". (keysym_table): Rename "num5numlock" to "numlock". (grub_cmd_sendkey): Reinitialise `andmask' and `ormask', so that we can uniformly say that only the last of multiple `sendkey' invocations has any effect. * docs/grub.texi (sendkey): New section. 2010-08-19 Colin Watson * commands/i386/pc/sendkey.c (options): Fix three typos. 2010-08-19 Vladimir Serbinenko Implement sendkey support. * commands/i386/pc/sendkey.c: New file. * conf/i386-pc.rmk (pkglib_MODULES): Add sendkey.mod. (sendkey_mod_SOURCES): New variable. (sendkey_mod_CFLAGS): Likewise. (sendkey_mod_LDFLAGS): Likewise. 2010-08-18 Colin Watson * configure.ac: Move AM_INIT_AUTOMAKE after AC_CANONICAL_TARGET to fix warnings from Autoconf. 2010-08-18 Colin Watson * acinclude.m4 (grub_ASM_USCORE): Use a more accurate grep pattern, to avoid false positives with some assemblers that output things like "someprefix_func" as part of their output. 2010-08-15 Robert Millan * kern/emu/misc.c (grub_get_libzfs_handle): Handle libzfs_init() errors. * kern/emu/getroot.c (find_root_device_from_libzfs): Handle grub_get_libzfs_handle() errors. 2010-08-14 Robert Millan * kern/emu/misc.c (grub_find_zpool_from_dir): Abort function if filesystem is not ZFS. 2010-08-12 BVK Chaitanya Fix for misspelled color names defaulting to black/black (bug reported by Doug Nazar) * include/grub/normal.h (grub_parse_color_name_pair): Add return status to prototype. * normal/color.c (grub_parse_color_name_pair): Return failure status. (grub_env_write_color_normal): Ignore bad color names. (grub_env_write_color_highlight): Likewise. * normal/main.c (GRUB_MOD_INIT): Set default color names. 2010-08-12 BVK Chaitanya "shift" command support to GRUB script. * include/grub/script_sh.h (grub_script_shift): New prototype. * script/execute.c (grub_script_shift): New function. * script/main.c (grub_script_init): Register shift command. (grub_script_fini): Unregister shift command. * util/grub-script-check.c (grub_script_cmd_shift): New function. * tests/grub_script_shift.in: New testcase. * conf/tests.rmk: Rules for new testcase. 2010-08-12 BVK Chaitanya "continue" command support to GRUB script. * script/execute.c (grub_script_execute_cmdwhile): Continue support. (grub_script_break): Continue support. * script/main.c (grub_script_init): Register continue command. (grub_script_fini): Unregister continue command. * tests/grub_script_continue.in: New testcase. * conf/tests.rmk: Rules for new testcase. 2010-08-12 BVK Chaitanya "break" command support to GRUB script. * conf/common.rmk: Rule updates to grub-script-check. * include/grub/misc.h (grub_min): New function. * include/grub/script_sh.h (grub_script_init): New prototype. (grub_script_fini): New prototype. (grub_script_break): New prototype. * script/main.c (grub_script_init): New function. (grub_script_fini): New function. * script/execute.c (grub_script_break): New function. * normal/main.c: Calls to grub_script_{init,fini}. * util/grub-script-check.c (grub_script_break): New function. * tests/grub_script_break.in: New testcase. * conf/tests.rmk: Rules for new test case. 2010-08-12 BVK Chaitanya Function parameters support to GRUB script. * script/yylex.l (VARIABLE): Regular expression update. * script/function.c (grub_script_function_call): Moved ... * script/execute.c (grub_script_function_call): ... to here. (grub_script_execute_arglist_to_argv): Removed. (grub_script_arglist_to_argv): New function. * script/argv.c: New file. (grub_script_argv_free): New function. (grub_script_argv_next): Likewise. (grub_script_argv_append): Likewise. (grub_script_argv_split_append): Likewise. * include/grub/script_sh.h (grub_script_argv): New struct. (grub_script_argv_free): New function. (grub_script_argv_next): Likewise. (grub_script_argv_append): Likewise. (grub_script_argv_split_append): Likewise. * conf/common.rmk (normal.mod): New source script/argv.c. * tests/grub_script_echo1.in: More tests. * tests/grub_script_vars1.in: Likewise. * tests/grub_script_functions.in: New test case. * conf/tests.rmk: Rules for new testcase. 2010-08-12 BVK Chaitanya Remove grub_script_cmdblock struct. * include/grub/script_sh.h: Remove grub_script_cmdblock. * script/parser.y: Likewise. * script/execute.c: Rename cmdblock suffix to cmdlist. * script/script.c: Likewise. * util/grub-script-check.c: Likewise. 2010-08-11 Yves Blusseau * .bzrignore: add grub-macho2img 2010-08-11 Vladimir Serbinenko * kern/i386/qemu/init.c (grub_qemu_init_cirrus): Fix compilation error. 2010-08-11 Vladimir Serbinenko Remove the dump of sm712 initialisation sequence. * include/grub/pci.h (GRUB_PCI_CLASS_SUBCLASS_VGA): New const. * include/grub/vga.h (GRUB_VGA_IO_ARX_READ): New register. (GRUB_VGA_IO_MISC_WRITE): Likewise. (GRUB_VGA_CR_*): Added many registers. (GRUB_VGA_SR_*): Likewise. (GRUB_VGA_GR_*): Likewise. (grub_vga_write_arx): New function. (grub_video_hw_config): New struct. (grub_vga_set_geometry): New function. * kern/i386/qemu/init.c (load_palette): Use grub_vga_write_arx and GRUB_PCI_CLASS_SUBCLASS_VGA. * video/cirrus.c (grub_video_cirrus_setup): Use grub_vga_set_geometry. * video/sm712.c (grub_sm712_write_reg): New function (grub_sm712_read_reg): Likewise. (grub_sm712_sr_write): Likewise. (grub_sm712_gr_write): Likewise. (grub_sm712_cr_write): Likewise. (grub_sm712_write_arx): Likewise. (grub_sm712_cr_shadow_write): Likewise. (grub_sm712_write_dda_lookup): Likewise. (grub_video_sm712_setup): Initialise the video rather then blindly replay the dump. (main) [TEST]: Add a routine to be able to compile as standalone for tests. * video/sm712_init.c (sm712_init): Removed. (sm712_sr_seq1): New array. (sm712_sr_seq2): Likewise. 2010-08-10 Vladimir Serbinenko * include/grub/vga.h: Add missing grub/pci.h include. 2010-08-10 Yves Blusseau * util/grub-macho2img.c (main): fix typo 2010-08-10 Vladimir Serbinenko * include/grub/vga.h (grub_vga_gr_write): Add GRUB_MACHINE_PCI_IO_BASE. (grub_vga_gr_read): Likewise. (grub_vga_cr_write): Likewise. (grub_vga_cr_read): Likewise. (grub_vga_sr_write): Likewise. (grub_vga_sr_read): Likewise. (grub_vga_palette_read): Likewise. (grub_vga_palette_write): Likewise. * video/sm712.c (GRUB_SM712_REG_BASE): New definition. (grub_sm712_sr_read): New function. (grub_video_sm712_setup): Use grub_vga_sr_write and grub_sm712_sr_read. * video/sm712_init.c (sm712_init): Substract GRUB_MACHINE_PCI_IO_BASE. 2010-08-09 Robert Millan * kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Filter out unused variables on non-ZFS build. 2010-08-08 Robert Millan Fix path generation for sub-filesystems in ZFS. * kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Add missing slash. 2010-08-08 Robert Millan * util/grub-fstest.c (read_file, cmd_cmp): Improve error message. 2010-08-08 Robert Millan * util/grub.d/10_kfreebsd.in: When files required for ZFS do not exist, issue a proper error message (rely on `ls' for translated strings). 2010-08-08 Robert Millan Fix grub-probe invocation. * util/grub.d/10_kfreebsd.in: s/label/fs_label/g. 2010-08-04 Robert Millan * configure.ac: Remove checks for getfsstat() and getmntany(). Add checks for `' and `'. * kern/emu/misc.c [HAVE_GETMNTANY]: Remove `'. [HAVE_SYS_PARAM_H]: Include `'. [HAVE_SYS_MOUNT_H]: Include `'. [HAVE_LIBZFS && HAVE_LIBNVPAIR] (find_mount_point_from_dir): Remove function. (grub_find_zpool_from_dir): Use statfs() instead of indirect matching via find_mount_point_from_dir() and getfsstat() / getmntany(). 2010-08-04 Robert Millan * include/grub/emu/misc.h (grub_find_mount_point_from_dir) (grub_find_zpool_from_mount_point): Merge into ... (grub_find_zpool_from_dir): ... this. * kern/emu/misc.c: Likewise. * kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Replace grub_find_mount_point_from_dir() / grub_find_zpool_from_mount_point() with grub_find_zpool_from_dir(). * kern/emu/getroot.c (find_root_device_from_libzfs): Likewise. 2010-08-04 Robert Millan Support OpenSolaris in ZFS device resolution. * configure.ac: Check for getmntany(). * kern/emu/misc.c [HAVE_GETMNTANY]: Include `'. [HAVE_GETMNTANY] (grub_find_zpool_from_mount_point): Add OpenSolaris support. 2010-08-03 Robert Millan Fix grub-emu build. * include/grub/util/misc.h: Move `' to ... * include/grub/emu/misc.h: ... here. * include/grub/util/misc.h (grub_get_libzfs_handle): Move function ... * include/grub/emu/misc.h (grub_get_libzfs_handle): ... here. * util/misc.c: Remove `'. [HAVE_LIBZFS] (libzfs_handle, fini_libzfs) (grub_get_libzfs_handle): Move to ... * kern/emu/misc.c [HAVE_LIBZFS] (__libzfs_handle, fini_libzfs) (grub_get_libzfs_handle): ... here. 2010-08-03 BVK Chaitanya * script/execute.c (grub_script_execute_cmdline): Check for NULL as command name case. 2010-08-02 Colin Watson * disk/raid.c (insert_array): Select unique numbers for named arrays as well, for use as keys in the disk cache. 2010-08-01 Robert Millan * util/grub.d/10_kfreebsd.in: Initialize ${kfreebsd_device} as the kFreeBSD device name, except on ZFS where the filesystem label is used. (kfreebsd_entry): On ZFS root, load `opensolaris.ko', `zfs.ko' and `/boot/zfs/zpool.cache'. Set mountfrom kernel variable using ${kfreebsd_device}. 2010-08-01 Robert Millan Make it even harder to use uninitialized `libzfs_handle' (and make the interface a bit simpler). * include/grub/util/misc.h (grub_util_init_libzfs) (libzfs_handle): Remove. (grub_get_libzfs_handle): New prototype. * util/misc.c [HAVE_LIBZFS] (libzfs_handle): Add `static' attribute. (grub_util_init_libzfs): Remove. (grub_get_libzfs_handle): New function. * kern/emu/getroot.c (find_root_device_from_libzfs): Use grub_get_libzfs_handle() to obtain a libzfs handle instead of accessing `libzfs_handle' directly. 2010-08-01 Robert Millan * include/grub/emu/misc.h (grub_find_mount_point_from_dir) (grub_find_zpool_from_mount_point): New function prototypes. * kern/emu/getroot.c [HAVE_GETFSSTAT]: Move `' to ... * kern/emu/misc.c [HAVE_GETFSSTAT]: ... here. * kern/emu/getroot.c (find_mount_point_from_dir): Move to ... * kern/emu/misc.c (grub_find_mount_point_from_dir): ... this. Remove `static' attribute. * kern/emu/getroot.c (find_root_device_from_libzfs): Split code for finding zpool from mount point into ... * kern/emu/misc.c (grub_find_zpool_from_mount_point): ... this. * kern/emu/misc.c (grub_make_system_path_relative_to_its_root): When requested path is part of a ZFS pool, use grub_find_zpool_from_mount_point() to detect its filesystem name, and generate a path with `/fsname@path' syntax. 2010-08-01 Colin Watson * include/grub/util/libzfs.h (libzfs_init): Set argument list to (void) rather than () so that this is a proper prototype. 2010-08-01 Vladimir Serbinenko * lib/arg.c (grub_arg_show_help): Add the necessary spacing. 2010-08-01 Vladimir Serbinenko * kern/emu/getroot.c (find_mount_point_from_dir): Compile only if [HAVE_LIBZFS && HAVE_LIBNVPAIR] 2010-08-01 Colin Watson * util/grub-mkrescue.in: Remove ${efi_dir} after building efi.img. 2010-08-01 Colin Watson * script/yylex.l (NAME): Remove [:digit:], redundant with [:alnum:]. 2010-08-01 Colin Watson * docs/grub.texi (Simple configuration): Document GRUB_CMDLINE_XEN and GRUB_CMDLINE_XEN_DEFAULT. Recommend setting GRUB_GFXPAYLOAD_LINUX=text rather than unsetting it in order to disable gfxpayload. (Shell-like scripting): Add real content. (Serial terminal): Suggest `terminal_input serial; terminal_output serial' rather than putting the two commands on separate lines, since console input will be inoperative after the first command. (menuentry): Document --class, --users, and --hotkey options. (terminfo): Describe what `visually-ordered UTF-8' means (thanks, Vladimir Serbinenko). 2010-08-01 Vladimir Serbinenko 2010-08-01 Colin Watson * kern/misc.c (grub_memset): Optimise to reduce cache stalls. 2010-08-01 Robert Millan * include/grub/emu/misc.h (grub_find_mount_point_from_dir) (grub_find_zpool_from_mount_point): New function prototypes. * kern/emu/getroot.c [HAVE_GETFSSTAT]: Move `' to ... * kern/emu/misc.c [HAVE_GETFSSTAT]: ... here. * kern/emu/getroot.c (find_mount_point_from_dir): Move to ... * kern/emu/misc.c (grub_find_mount_point_from_dir): ... this. Remove `static' attribute. * kern/emu/getroot.c (find_root_device_from_libzfs): Split code for finding zpool from mount point into ... * kern/emu/misc.c (grub_find_zpool_from_mount_point): ... this. * kern/emu/misc.c (grub_make_system_path_relative_to_its_root): When requested path is part of a ZFS pool, use grub_find_zpool_from_mount_point() to detect its filesystem name, and generate a path with `/fsname@path' syntax. 2010-08-01 Robert Millan Prevent accidental use of uninitialized libzfs_handle. * util/grub-probe.c (main): Move grub_util_init_libzfs() call to ... * kern/emu/getroot.c (find_root_device_from_libzfs): ... here. * util/misc.c (grub_util_init_libzfs): Make this function idempotent. 2010-08-01 Colin Watson * util/grub.d/20_linux_xen.in: Don't use UUID for LVM root (matching util/grub.d/10_linux.in). Fixes Debian bug #591093. 2010-08-01 Robert Millan * kern/emu/getroot.c: Include `'. 2010-07-31 Robert Millan * util/grub.d/10_kfreebsd.in: Make module handling more generic. 2010-07-31 Robert Millan * kern/emu/misc.c: Add missing license header. 2010-07-31 Robert Millan * configure.ac: Check for `libzfs.h' and `libnvpair.h'. * include/grub/util/libnvpair.h: Include `'. [HAVE_LIBNVPAIR_H]: Include `' instead of declaring libnvpair prototypes ourselves. * include/grub/util/libzfs.h: Include `'. [HAVE_LIBZFS_H]: Include `' instead of declaring libzfs prototypes ourselves. (libzfs_handle): Moved to ... * include/grub/util/misc.h (libzfs_handle): ... here. Include `'. 2010-07-30 Robert Millan * include/grub/emu/misc.h: Add missing license header. 2010-07-30 Robert Millan Enable `grub-probe -t device' resolution on ZFS. * configure.ac: Check for getfsstat(), libzfs and libnvpair. * include/grub/util/libnvpair.h: New file. * include/grub/util/libzfs.h: New file. * kern/emu/getroot.c: Include `' and `'. [HAVE_LIBZFS && HAVE_LIBNVPAIR]: Include `' and `'. [HAVE_GETFSSTAT]: Include `'. (find_mount_point_from_dir): New static function. [HAVE_LIBZFS && HAVE_LIBNVPAIR] (find_root_device_from_libzfs): New function. [HAVE_LIBZFS && HAVE_LIBNVPAIR] (grub_guess_root_device): Use find_root_device_from_libzfs() before ressorting to find_root_device(). * include/grub/util/misc.h (grub_util_init_libzfs): New function prototype. * util/misc.c: Include `'. (grub_util_init_libzfs): New function. [HAVE_LIBZFS] (libzfs_handle): New global variable. [HAVE_LIBZFS] (fini_libzfs): New static function. (grub_util_init_libzfs): New function. * util/grub-probe.c (main): Call grub_util_init_libzfs(). 2010-07-30 Robert Millan * include/grub/emu/misc.h (grub_make_system_path_relative_to_its_root) (xmalloc, xrealloc, xstrdup, xasprintf): Add `warn_unused_result' attribute. * include/grub/misc.h (grub_strdup, grub_strndup, grub_strlen) (grub_xasprintf, grub_xvasprintf): Likewise. * include/grub/emu/misc.h (xasprintf): Remove duplicate prototype. 2010-07-29 Robert Millan * util/grub-probe.c (PRINT_FS_LABEL): New enum value. (probe): Handle `PRINT_FS_LABEL'. (main): Handle `-t fs_label'. 2010-07-29 Robert Millan * configure.ac: Remove grub-mkisofs checks. 2010-07-28 Vladimir Serbinenko * util/ieee1275/grub-install.in: Don't use empty grub_device. Reported by: Lennart Sorensen. 2010-07-20 Vladimir Serbinenko * util/grub.d/00_header.in: Remove compatibility with terminal.mod prior to terminal_input/terminal_output separation. It's been over 1.5 years and those versions weren't widely deployed. 2010-07-22 Colin Watson * disk/raid.c (insert_array): Don't count named arrays when looking for unused array numbers. Reported and tested by: Michael Guntsche. 2010-07-20 Colin Watson * bus/usb/emu/usb.c (grub_usb_poll_devices): Add a dummy implementation of this so that grub-emu links again, with a note that this should support hotplugging in the future. 2010-07-20 Colin Watson * kern/emu/getroot.c (grub_util_get_grub_dev): Use xasprintf. 2010-07-20 Colin Watson * disk/loopback.c (grub_cmd_loopback): Don't leak a grub_file_t handle on failure. (grub_loopback_close): Remove empty function. (grub_loopback_dev): Remove close method. 2010-07-20 Colin Watson Disable EFI cursor when the EFI console becomes inactive. * term/efi/console.c (grub_efi_console_init): New function. (grub_efi_console_fini): New function. (grub_console_term_output): Register init and fini methods. 2010-07-20 Vladimir Serbinenko * tests/util/grub-shell-tester.in: Remove bashism and declare as sh script. 2010-07-20 Vladimir Serbinenko * disk/loopback.c (grub_loopback): Replace filename with file. (delete_loopback): Handle new semantics. (grub_cmd_loopback): Likewise. (grub_loopback_iterate): Likewise. (grub_loopback_close): Likewise. 2010-07-20 Vladimir Serbinenko * util/i386/efi/grub-install.in: Revert to platform-specific behaviour with -p "". Reported by: Tito Keitel. 2010-07-20 Vladimir Serbinenko * docs/grub.texi (Naming convention): Document new naming convention. 2010-07-20 Vadim Solomin 2010-07-20 Colin Watson Generate device.map in something closer to the old ordering. * util/deviceiter.c (struct device): New declaration. (compare_file_names): Rename to ... (compare_devices): ... this. Sort by kernel name in preference to the stable by-id name, but keep the latter as a fallback comparison. Update header comment. (grub_util_iterate_devices) [__linux__]: Construct and sort an array of `struct device' rather than of plain file names. 2010-07-20 Thomas Frauendorfer * lib/i386/relocator_asm.S [! __x86_64__]: Don't try to disable amd64 on i386. 2010-07-20 Vladimir Serbinenko * commands/acpi.c (setup_common_tables): Use sizeof instead of hardcoding size. (setv1table): Likewise. 2010-07-20 Colin Watson * disk/raid.c (insert_array): Use md/%s to name mdadm 1.x devices, removing the homehost if present. * kern/emu/getroot.c (get_mdadm_name) [__linux__]: New function. (grub_util_get_grub_dev): Use md/%s to name mdadm 1.x devices, removing the homehost if present. (grub_util_get_grub_dev) [__linux__]: Get the array name from mdadm if possible. * util/i386/pc/grub-setup.c (main): Handle md/* devices. * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Add start_sector parameter. Set its pointer target to 0. * disk/mdraid_linux.c (grub_mdraid_detect): Add start_sector parameter. Set its pointer target to 0 for 0.9 metadata, or to the `data_offset' value from the superblock for 1.x metadata. * disk/raid.c (grub_raid_read): Offset reads by the start sector of data on the device. (insert_array): Record the start sector of data on the device. (grub_raid_register): Pass start_sector parameters to grub_raid_list->detect and insert_array. * include/grub/raid.h (struct grub_raid_array): Add start_sector member. (struct grub_raid): Add start_sector parameter to `detect'. * disk/mdraid_linux.c (struct grub_raid_super_1x): Remove __attribute__ ((packed)), leaving a comment. (grub_mdraid_detect): Split out 0.9 and 1.x detection to ... (grub_mdraid_detect_09): ... here and ... (grub_mdraid_detect_1x): ... here. 2010-07-20 Peter Henn * disk/mdraid_linux.c (grub_mdraid_detect): Fix calculation of 1.x chunk size and disk size, which are already given as sector counts as distinct from the 0.90 units. Fetch the correct device number from the role table instead of using the table index. 2010-07-20 Felix Zielcke * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Set array->name to NULL. * disk/mdraid_linux.c (grub_raid_super_1x): New structure. (WriteMostly1): New macro. Set array->name to NULL for metadata format 0.90. Add support for metadata 1.x. Fix some comments. * disk/raid.c (): Add support for name based RAID arrays. Fix a few comments. * util/getroot.c (grub_util_get_grub_dev): Add support for /dev/md/name style devices. 2010-07-20 Colin Watson * .bzrignore: Ignore 20_linux_xen. 2010-07-17 Colin Watson * util/import_unicode.py: Remove unnecessary imports. 2010-07-17 Aleš Nesrsta Hotplugging and USB hub support. * bus/usb/ohci.c (grub_ohci_td): Add convenience fields. (grub_ohci): Likewise. (GRUB_OHCI_REG_CONTROL_BULK_ENABLE): New definition. (GRUB_OHCI_REG_CONTROL_CONTROL_ENABLE): Likewise. (GRUB_OHCI_RESET_CONNECT_CHANGE): Likewise. (GRUB_OHCI_CTRL_EDS): Likewise. (GRUB_OHCI_BULK_EDS): Likewise. (GRUB_OHCI_TDS): Likewise. (GRUB_OHCI_ED_ADDR_MASK): Likewise. (grub_ohci_ed_phys2virt): New function. (grub_ohci_virt_to_phys): Likewise. (grub_ohci_td_phys2virt): Likewise. (grub_ohci_td_virt2phys): Likewise. (grub_ohci_pci_iter): Allocate memory and don't wait for stable attachment. (grub_ohci_find_ed): New function. (grub_ohci_alloc_td): Likewise. (grub_ohci_free_td): Likewise. (grub_ohci_free_tds): Likewise. (grub_ohci_transfer): Use previously allocated memory. (grub_ohci_portstatus): Reset status changed bit. (grub_ohci_detect_dev): Supply status changed. (grub_ohci_fini_hw): Free memory. (grub_ohci_restore_hw): Reallocate memory. * bus/usb/uhci.c (grub_uhci_portstatus): Don't reset on disable. Reset status change. (grub_uhci_detect_dev): Supply status_change. * bus/usb/usb.c (attach_hooks): New var. (grub_usb_device_attach): New function. (grub_usb_register_attach_hook_class): Likewise. (grub_usb_unregister_attach_hook_class): Likewise. * bus/usb/usbhub.c (grub_usb_hub_add_dev): Handle errors correctly. (grub_usb_add_hub): Reset connection changed bit. (attach_root_port): New function. (grub_usb_root_hub): Likewise. (poll_nonroot_hub): Likewise. (grub_usb_poll_devices): Likewise. * commands/usbtest.c (grub_cmd_usbtest): Poll devices before listing. * disk/usbms.c (grub_usbms_open): Use device hooks. (grub_usbms_iterate) :Poll devices. (grub_usbms_finddevs): Split into ... (grub_usbms_attach): ... this ... (grub_usbms_attach): ... and this. * include/grub/usb.h (grub_usb_controller_dev): Supply status_changed in detect_dev. (grub_usb_interface): New fields attached and detach_hook. (grub_usb_attach_hook_class): New type. (grub_usb_attach_desc): New struct. (grub_usb_register_attach_hook_class): New function. (grub_usb_unregister_attach_hook_class): Likewise. (grub_usb_poll_devices): Likewise. (grub_usb_device_attach): Likewise. * include/grub/usbtrans.h (GRUB_USB_HUB_FEATURE_C_CONNECTED): New const. (GRUB_USB_HUB_STATUS_C_CONNECTED): Likewise. 2010-07-17 Vladimir Serbinenko * include/grub/bsdlabel.h (GRUB_PC_PARTITION_BSD_LABEL_WHOLE_DISK_PARTITION): New definition. * partmap/bsdlabel.c (bsdlabel_partition_map_iterate): Use FreeBSD delta determination style. Works with most NetBSD partitions too. 2010-07-17 Vladimir Serbinenko * kern/partition.c [GRUB_UTIL]: Add missing util/misc.h inclusion. * partmap/bsdlabel.c [GRUB_UTIL]: Likewise. 2010-07-17 Vladimir Serbinenko * disk/scsi.c (grub_scsi_open): Fix incorrect pointer dereference. 2010-07-14 Anton Blanchard * loader/powerpc/ieee1275/linux.c (grub_cmd_linux): Do not reject ET_DYN files. 2010-07-14 Grégoire Sutre * Makefile.in: Use the substituted @USE_NLS@ instead of ENABLE_NLS. 2010-07-14 Grégoire Sutre * kern/partition.c (grub_partition_check_containment): New function to check that a partition is physically contained in a parent. Since offsets are relative (and non-negative), this reduces to checking that the partition ends before its parent. (grub_partition_map_probe): Discard out-of-range sub-partitions. (grub_partition_iterate): Likewise. * include/grub/partition.h (grub_partition_map): Slightly more detailed comments. * partmap/bsdlabel.c (bsdlabel_partition_map_iterate): Discard partitions that start before their parent, and add debug printfs. 2010-07-13 Colin Watson * Makefile.in (.SUFFIX): Spell correctly, as ... (.SUFFIXES): ... this. Fixes bug where `make foo' (where foo is a bare module name without `.mod', e.g. `test') tried to invoke a Modula-2 compiler. 2010-07-13 Colin Watson * README: Point to the Info manual. 2010-07-13 Jiro SEKIBA * fs/nilfs2.c: fix macro NILFS_2ND_SUPER_BLOCK to calculate 2nd superblock position from partition size. 2010-07-10 Colin Watson * Makefile.in (MAINTAINER_CLEANFILES): Remove unicode/UnicodeData.txt, unicode/BidiMirroring.txt, and unicode/ArabicShaping.txt again; these are inputs to autogen.sh, not outputs. 2010-07-10 Vladimir Serbinenko Restructure SCSI .id handling. Reported and tested by: Aleš Nesrsta. * disk/ata.c (grub_atapi_close): Removed. All users updated. (grub_atapi_dev): Changed .name to "ata". New field .id. * disk/usbms.c (grub_usbms_close): Removed. All users updated. (grub_usbms_dev): New field .id. * disk/scsi.c (grub_scsi_iterate): Generate name. (grub_scsi_open): Parse name. * include/grub/scsi.h (grub_make_scsi_id): New function. (grub_scsi_dev): Change iterate and open to number instead of naming busses. All users updated. (grub_scsi): Remove name. Add .bus. 2010-07-10 Vladimir Serbinenko * commands/help.c (grub_cmd_help): Fix a typo. 2010-07-10 Vladimir Serbinenko * normal/term.c (put_glyphs_terminal): Fix state->num_lines counting. Reported and tested by: Colin Watson. 2010-07-10 Vladimir Serbinenko * util/grub-mkrescue.in: Don't use tar GNU-ism since it's not necessary in this context. 2010-07-07 Vladimir Serbinenko * tests/util/grub-shell.in: Remove bashisms and declare as sh script. 2010-07-07 Colin Watson * term/gfxterm.c (grub_gfxterm_background_image_cmd): Fix indentation. 2010-07-06 Colin Watson * conf/common.rmk (grub_probe_SOURCES): Add disk/raid5_recover.c and disk/raid6_recover.c. * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Likewise. 2010-07-06 Colin Watson * term/gfxterm.c (repaint_schedulded): Rename to ... (repaint_scheduled): ... this. Update all callers. (repaint_was_schedulded): Rename to ... (repaint_was_scheduled): ... this. Update all callers. 2010-07-06 Colin Watson * util/deviceiter.c (grub_util_iterate_devices): Skip MD devices, which we expect to be handled by upper layers. 2010-07-06 BVK Chaitanya * bus/usb/usbhub.c: #include time.h header. 2010-07-06 Colin Watson * fs/reiserfs.c (grub_reiserfs_iterate_dir): Zero out first byte of entry_name also for entries without stat blocks (e.g. ".."); fixes corruption of the first entry in a directory. 2010-07-06 Colin Watson * util/grub.d/00_header.in: Process GRUB_THEME and GRUB_BACKGROUND after setting gfxterm as the active terminal. GRUB_BACKGROUND doesn't work otherwise. 2010-07-05 Colin Watson * docs/grub.texi (Features): Update list of supported file systems. (GNU/Linux): Update for GRUB 2. (Serial terminal): Remove mention of --disable-serial, which was a GRUB Legacy configure option. Update instructions to use `terminal_input' and `terminal_output' rather than `terminal'. (Vendor power-on keys): Copy-edit. Add cross-references to `Simple configuration' and `Installing GRUB using grub-install'. (Menu entry editor): Update for GRUB 2. (terminfo): Add vt100-color, ieee1275, and dumb terminal types. Document new -a, -u, and -v options. (initrd): New section. (initrd16): New section. (linux): New section. (linux16): New section. (search): The `var' argument to `--set' is optional. (GRUB only offers a rescue shell): Go into a little more detail on drive ordering. 2010-07-05 Colin Watson * Makefile.in: Set LINGUAS to empty if ENABLE_NLS is undefined. 2010-07-05 Colin Watson * Makefile.in (MAINTAINER_CLEANFILES): Add unicode/UnicodeData.txt, unicode/BidiMirroring.txt, unicode/ArabicShaping.txt, and unidata.c. 2010-07-05 Colin Watson * util/i386/pc/grub-setup.c (setup): Rename prefix to install_prefix, in line with install_dos_part and install_bsd_part. Add new prefix variable, which is copied to install_prefix after comparing core.img in memory with the one read from disk in the no-embedding case, and use that rather than overwriting install_prefix immediately when installing to a partition. Fixes Debian bug #586621; based on patches by Matt Kraai and M. Vefa Bicakci. 2010-07-04 Grégoire Sutre * configure.ac: Avoid == in test command, it's not portable. * util/grub.d/30_os-prober.in: Likewise. 2010-07-04 Colin Watson * kern/emu/getroot.c [__GNU__]: Include for munmap. 2010-07-04 Grégoire Sutre * util/i386/pc/grub-setup.c (setup): Do not embed when there are multiple (top-level) partmaps. 2010-07-02 Vladimir Serbinenko * util/i386/efi/grub-install.in: Don't use empty grub_device. Reported by: Tino Keitel. 2010-07-02 Vladimir Serbinenko Bidi and diacritics support. * Makefile.in (widthspec.bin): New target. (widthspec.h): Likewise. (TARGET_CFLAGS): Add -DHAVE_UNIFONT_WIDTHSPEC=1 if font was available. * autogen.sh: Generate unidata.c. * commands/cat.c (grub_cmd_cat): Don't use grub_putchar. * commands/ls.c (grub_ls_list_devices): Likewise. (grub_ls_list_files): Likewise. * commands/minicmd.c (grub_mini_cmd_cat): Likewise. (grub_mini_cmd_lsmod): Likewise. * commands/read.c: Likewise. * kern/corecmd.c (grub_core_cmd_ls): Likewise. * kern/rescue_reader.c (grub_rescue_read_line): Likewise. * lib/arg.c (grub_arg_show_help): Likewise. * lib/crypto.c (grub_password_get): Likewise. * normal/auth.c (grub_username_get): Likewise. * normal/misc.c (grub_normal_print_device_info): Likewise. * commands/help.c (grub_cmd_help): Use grub_unicode_aglomerate_comb. * conf/common.rmk (grub_mkfont_SOURCES): Add unidata.c. (gfxmenu_mod_SOURCES): Add gfxmenu/font.c. (normal/charset.c_DEPENDENCIES): New variable. (normal_mod_SOURCES): Add normal/charset.c and unidata.c. (pkglib_MODULES): Remove charset.mod. (charset_mod_SOURCES): Removed. (charset_mod_CFLAGS): Likewise. (charset_mod_LDFLAGS): Likewise. (pkglib_MODULES) [ieee1275]: Remove terminfo.mod. * conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Add term/terminfo.c and term/tparm.c. * conf/sparc64-ieee1275.rmk (kernel_img_SOURCES): Likewise. * conf/i386-ieee1275.rmk (kernel_img_SOURCES): Likewise. (kernel_img_HEADERS): Add terminfo.h. * font/font.c (ascii_glyph_lookup): Return NULL on failure. Fill ->font. Reverse ascii bitmaps. (grub_font_get_xheight): New function. * font/font.c (grub_font_get_string_width): Moved from here ... * gfxmenu/font.c (grub_font_get_string_width): ... here. * font/font.c (grub_font_draw_string): Moved from here ... * gfxmenu/font.c (grub_font_draw_string): ... here. * font/font.c (grub_font_dup_glyph): New function. (grub_font_blit_glyph): Likewise. (grub_font_blit_glyph_mirror): Likewise. (blit_comb): Likewise. (grub_font_construct_dry_run): Likewise. (grub_font_get_constructed_device_width): Likewise. (grub_font_construct_glyph): Likewise. * include/grub/charset.h (grub_ucs4_to_utf8): New proto. * include/grub/misc.h (grub_utf8_to_ucs4): Moved from here ... * include/grub/charset.h (grub_utf8_to_ucs4): ... here. * include/grub/font.h (GRUB_FONT_CODE_CHAR_MASK): New constant. (GRUB_FONT_CODE_RIGHT_JOINED): Likewise. (GRUB_FONT_CODE_LEFT_JOINED): Likewise. (grub_font_get_xheight): New proto. (grub_font_get_constructed_device_width): Likewise. (grub_font_construct_glyph): Likewise. * include/grub/font.h (grub_font_get_string_width): Moved from here ... * include/grub/gfxmenu_view.h (grub_font_get_string_width): ... here. * include/grub/font.h (grub_font_draw_string): Moved from here ... * include/grub/gfxmenu_view.h (grub_font_draw_string): ... here. * include/grub/i386/vga_common.h (grub_console_putchar): Moved from here.. * include/grub/i386/pc/console.h (grub_console_putchar): ... here. * include/grub/i386/vga_common.h (grub_console_real_putchar): Removed. (grub_console_getcharwidth): Likewise. * include/grub/misc.h (grub_xputs): New proto. (grub_puts): Inlined. * include/grub/normal.h (grub_print_ucs4): Add margin specification. (grub_normal_get_line_counter): Removed. (grub_install_newline_hook): Likewise. (grub_normal_get_char_counter): New proto. (grub_normal_reset_more): Likewise. (grub_xputs_normal): Likewise. * include/grub/powerpc/ieee1275/console.h: Removed. * include/grub/sparc64/ieee1275/console.h: Likewise. * include/grub/term.h (GRUB_TERM_CODE_TYPE_MASK): New definition. (GRUB_TERM_CODE_TYPE_ASCII): Likewise. (GRUB_TERM_CODE_TYPE_CP437): Likewise. (GRUB_TERM_CODE_TYPE_UTF8_LOGICAL): Likewise. (GRUB_TERM_CODE_TYPE_UTF8_VISUAL): Likewise. (GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS): Likewise. (grub_term_input): Pass reference to self. All users updated. (grub_term_output): Pass grub_unicode_glyph to putchar and getcharwidth. Pass reference to self. New fields normal_color, highlight_color and data. All users updated. (grub_putchar): Removed. (grub_putcode): Remove EXPORT_FUNC since it's not in kernel anymore. (grub_unicode_estimate_width): New function. (grub_term_getcharwidth): Add defaults. (GRUB_TERM_DEFAULT_NORMAL_COLOR): New definition. (GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR): Likewise. (GRUB_TERM_DEFAULT_STANDARD_COLOR): Likewise. (grub_cls): Remove EXPORT_FUNC. (grub_setcolorstate): Inline. (grub_newline_hook): Removed. * include/grub/terminfo.h: Rewritten. All users updated. * include/grub/unicode.h: New file. * include/grub/video.h (grub_video_signed_rect): New type. * kern/emu/console.c (grub_console_highlight_color): Removed. (grub_console_normal_color): Likewise. (grub_console_standard_color): Made static. (grub_ncurses_putchar): Remove mapping. (grub_ncurses_getcharwidth): Removed. (grub_ncurses_term_output): Declare as GRUB_TERM_CODE_TYPE_ASCII. (grub_ncurses_setcolor): Removed. (grub_ncurses_getcolor): Likewise. * kern/i386/pc/startup.S (grub_console_real_putchar): Renamed to ... (grub_console_putchar): ... this. (grub_console_putchar): Handle argument difference. * kern/ieee1275/init.c (grub_machine_init): Split console_init into console_init_early and console_init_lately. * kern/sparc64/ieee1275/init.c (grub_machine_init): Likewise. * kern/misc.c (grub_puts): Removed. (grub_vprintf): Store UTF-8 string instead of outputting it directly. (grub_vsnprintf_real): Remove str = NULL support. * kern/misc.c (grub_utf8_to_ucs4): Move from here ... * normal/charset.c (grub_utf8_to_ucs4): ... here. * kern/term.c (grub_putcode): Renamed to ... (grub_putcode_dumb): ... this. Pass grub_unicode_glyph instead of code. (grub_putchar): Removed. (grub_xputs_dumb): New function. (grub_xputs): New variable. * lib/charset.c: Move from here ... * normal/charset.c: ... to here. (grub_ucs4_to_utf8): New function. (grub_ucs4_to_utf8_alloc): Use grub_ucs4_to_utf8. (join_types): New variable. (unpack_join): New function. (bidi_types): New variable. (unpack_bidi): New function. (get_bidi_type): Likewise. (get_join_type): Likewise. (is_mirrored): Likewise. (grub_unicode_get_comb_type): Likewise. (grub_unicode_estimate_width) [HAVE_UNIFONT_WIDTHSPEC]: Likewise. (is_type_after): Likewise. (grub_unicode_aglomerate_comb): Likewise. (bidi_line_wrap): Likewise. (grub_bidi_line_logical_to_visual): Likewise. (grub_bidi_logical_to_visual): Likewise. (grub_unicode_mirror_code): Likewise. (grub_unicode_shape_code): Likewise. * normal/cmdline.c (grub_cmdline_get): Reset more counter. Don't use grub_putchar. * normal/main.c (grub_normal_init_page): Use grub_putcode. (grub_normal_reader_init): Likewise. (grub_xputs_saved): New variable. (GRUB_MOD_INIT): Set grub_xputs. (GRUB_MOD_FINI): Restore grub_xputs. * normal/menu.c (grub_wait_after_message): Don't use grub_putchar. (menu_init): Avoid printing gfxmenu error. (show_menu): Use grub_normal_get_char_counter. * normal/menu_entry.c (update_screen): Fix out-of-array. (complete): Avoid NULL dereferencing. * grub_menu_entry_run (grub_menu_entry_run): Don't use putchar. * normal/menu_text.c (print_spaces): Removed. (grub_print_ucs4): Likewise. (grub_print_message_indented): Use grub_print_ucs4. (print_message): Use grub_putcode. (print_entry): Hanlde diacritics. * normal/term.c (term_state): New type. (grub_more_lines): Removed. (term_states): New variable. (grub_normal_line_counter): Renamed to .. (grub_normal_char_counter): ...this. All users updated. (grub_normal_get_line_counter): Renamed to ... (grub_normal_get_char_counter): ... this. (grub_normal_reset_more): New function. (process_newline): Removed. (print_more): New function. (grub_install_newline_hook): Removed. (map_code): New function. (grub_puts_terminal): Use grub_print_ucs4. (putglyph): New function. (putcode_real): Likewise. (grub_putcode): Use putcode_real. (get_maxwidth): New function. (get_startwidth): Likewise. (print_ucs4_terminal): Likewise. (find_term_state): Likewise. (put_glyphs_terminal): Likewise. (print_backlog): Likewise. (print_ucs4_real): Likewise. (grub_print_ucs4): Likewise. (grub_xputs_normal): Likewise. * term/efi/console.c (grub_console_putchar): Output diacritics. (grub_console_getcharwidth): Removed. (grub_console_term_output): Declare as GRUB_TERM_CODE_TYPE_UCS4_VISUAL. * term/gfxterm.c (clear_char): Free chars. (scroll_up): Avoid leaking memory. (grub_gfxterm_putchar): Support diacritics. (grub_video_term): Declare as GRUB_TERM_CODE_TYPE_UCS4_VISUAL. * term/i386/pc/console.c (grub_console_term_output): Declare as GRUB_TERM_CODE_TYPE_VGA. * term/i386/pc/vga.c (grub_vga_term): Declare as GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS. * term/i386/pc/vga_text.c (grub_vga_text_term): Declare as GRUB_TERM_CODE_TYPE_VGA. * term/i386/vga_common.c (map_char): Removed. (grub_console_putchar): Likewise. (grub_console_getcharwidth): Likewise. * term/ieee1275/ofconsole.c: Simplify using terminfo. (colors): Reordered to match terminfo. (grub_ofconsole_normal_color): Removed. (grub_ofconsole_writeesc): Likewise. (grub_ofconsole_highlight_color): Likewise. (grub_ofconsole_getcharwidth): Likewise. (grub_ofconsole_setcolorstate): Likewise. (grub_ofconsole_setcolor): Likewise. (grub_ofconsole_getcolor): Likewise. (grub_ofconsole_readkey): Renamed to ... (readkey): ... this. Remove escape sequence handling. Return -1 on no key. (grub_ofconsole_checkkey): Removed. (grub_ofconsole_getkey): Likewise. (grub_ofconsole_getxy): Likewise. (grub_ofconsole_gotoxy): Likewise. (grub_ofconsole_cls): Likewise. (grub_ofconsole_refresh): Likewise. (grub_ofconsole_terminfo_input): New struct. (grub_ofconsole_terminfo_output): Likewise. (grub_ofconsole_term_input): Use terminfo. (grub_ofconsole_term_output): Likewise. (grub_console_init): Split into ... (grub_console_init_early): ...this and ... (grub_console_init_lately): ...this. Use terminfo. (grub_ofconsole_putchar): Renamed to ... (put): ... this. Remove mapping. (grub_ofconsole_term_output): Declare as GRUB_TERM_CODE_TYPE_ASCII. * term/serial.c: Simplify using terminfo. (xpos): Removed. (ypos): Likewise. (keep_track): Likewise. (registered): Likewise. (input_buf): Likewise. (npending): Likewise. (serial_translate_key_sequence): Likewise. (fill_input_buf): Likewise. (grub_serial_checkkey): Likewise. (grub_serial_getkey): Likewise. (grub_serial_getxy): Likewise. (grub_serial_gotoxy): Likewise. (grub_serial_putchar): Likewise. (grub_serial_cls): Likewise. (grub_serial_setcolorstate): Likewise. (grub_serial_setcursor): Likewise. (serial_hw_init): Use serial_hw_fetch. (grub_serial_terminfo_input): New variable. (grub_serial_terminfo_output): Likewise. (grub_serial_term_input): Use terminfo. (grub_serial_term_output): Likewise. * term/terminfo.c (putstr): Use put. (grub_terminfo_all_free): New function (grub_terminfo_set_current): New types vt100-color, ieee1275 and dumb. (grub_terminfo_output_register): New function. (grub_terminfo_output_unregister): Likewise. (grub_terminfo_getxy): Likewise. (grub_terminfo_readkey): Likewise. (grub_terminfo_checkkey): Likewise. (grub_terminfo_getkey): Likewise. (grub_terminfo_input_init): Likewise. (print_terminfo): Likewise. (grub_cmd_terminfo): Handle encoding. (grub_terminfo_gotoxy): Track position. (grub_terminfo_cls): Likewise. (grub_terminfo_putchar): Likewise. (grub_terminfo_setcolorstate): Handle colors (grub_terminfo_cursor_on): This ... (grub_terminfo_cursor_off): ... and this merged into ... (grub_terminfo_setcursor): ... this. * term/tparm.c (grub_terminfo_tparm): Avoid NULL dereferencing. * unicode/ArabicShaping.txt: New file (imported from Unicode). * unicode/BidiMirroring.txt: Likewise. * unicode/UnicodeData.txt: Likewise. * unicode/COPYING: Likewise. * util/grub-editenv.c (grub_putchar): Removed. (grub_xputs_real): New function. (grub_xputs): New variable. * util/grub-fstest.c (grub_putchar): Removed. (grub_xputs_real): New function. (grub_xputs): New variable. * util/grub-mkdevicemap.c (grub_putchar): Removed. (grub_xputs_real): New function. (grub_xputs): New variable. * util/grub-probe.c (grub_putchar): Removed. (grub_xputs_real): New function. (grub_xputs): New variable. * util/grub-script-check.c (grub_putchar): Removed. (grub_xputs_real): New function. (grub_xputs): New variable. * util/i386/pc/grub-setup.c (grub_putchar): Removed. (grub_xputs_real): New function. (grub_xputs): New variable. * util/import_unicode.py: New file. * util/grub-mkfont.c (ft_errmsgs): New array. (grub_glyph_info): Make bitmap a pointer. (file_formats): New type WIDTH_SPEC. (grub_font_info): New members glyphs_unsorted, glyphs_sorted, num_glyphs. (options): Add width-spec. (help): Likewise. (add_char): Renamed to ... (add_glyph): ... this. (add_glyph): Use index. Show freetype errors. Cut blank space at borders. (glyph_replace): New type. (subst_rightjoin), (subst_leftjoin), (subst_medijoin): New variables. (add_char): New function. (add_subst): Likewise. (process_cursive): Likewise. (add_font): Handle GSUB. (write_font_width_spec): New function. (main): Sort glyphs. * commands/minicmd.c (grub_mini_cmd_clear): Moved from here ... * normal/main.c (grub_mini_cmd_clear): ..here. All users updated. * kern/term.c (grub_cls): Moved from here... * normal/term.c (grub_cls): ... here. 2010-07-02 Colin Watson * include/grub/types.h: Define the C99-style PRIxGRUB_SIZE macro, suitable for using within the format argument of printf when converting grub_size_t. * disk/usbms.c (grub_usbms_transfer): Use PRIxGRUB_SIZE rather than "x" to convert grub_size_t arguments. 2010-07-02 Vladimir Serbinenko * gfxmenu/gui_list.c (draw_menu): Use viewport to simplify code and fix too long captions. (list_get_minimal_size): Take selection box into account. 2010-07-02 Vladimir Serbinenko * font/font.c (grub_font_get_glyph_with_fallback): Avoid dereferencing NULL font. 2010-07-02 Colin Watson * util/deviceiter.c (grub_util_iterate_devices): Skip device-mapper devices when iterating over /dev/disk/by-id; they will be handled later if appropriate, which they aren't always (e.g. LVM). 2010-07-02 Colin Watson * include/grub/misc.h (grub_reboot): Declare as noreturn. * kern/efi/efi.c (grub_reboot): Don't return, even if reset_system fails. (grub_halt): Likewise. * kern/ieee1275/openfw.c (grub_reboot): Don't return, even if reset-all fails. (grub_halt): Don't return, even if all of shut-down, power-off, and poweroff fail. 2010-07-02 Colin Watson * kern/efi/init.c (grub_efi_init): set_watchdog_timer takes four arguments, not three. 2010-07-02 Colin Watson * util/grub-mkconfig_lib.in (uses_abstraction): New function. * util/grub.d/10_linux.in: Use it to check for LVM, so that LVM-on-RAID is handled correctly. 2010-07-02 Colin Watson * docs/grub.texi (Changes from GRUB Legacy): New section. (Future): Fix typo. 2010-07-02 Colin Watson * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Sometimes grub.d/README accidentally ends up executable for one reason or another. Ignore it. 2010-07-02 Vladimir Serbinenko * partmap/gpt.c (MAX_SECTOR_LOG): New definition. (gpt_partition_map_iterate): Support non-512B sectors. 2010-07-02 Vladimir Serbinenko * kern/efi/init.c (grub_efi_init): Disable watchdog. Tested by: Seth Goldberg. 2010-07-02 Vladimir Serbinenko * loader/multiboot.c (grub_multiboot_boot) [GRUB_USE_MULTIBOOT2]: Properly align mbi. Reported by: Seth Goldberg. 2010-07-01 Vladimir Serbinenko * util/grub-mkrescue.in: Avoid module duplication. 2010-07-01 Sean Finney * util/grub.d/10_linux.in: Don't use UUID for LVM root. 2010-07-01 Sean Finney * disk/lvm.c (grub_lvm_scan_device): Skip snapshots. 2010-07-01 Vladimir Serbinenko * disk/lvm.c (grub_lvm_checkvalue): New function. (grub_lvm_check_flag): Likewise. 2010-07-01 Robert Millan * kern/emu/hostdisk.c (convert_system_partition_to_system_disk): Support 'p' as partition separator on kernel of FreeBSD (used with GPT labels). (grub_util_biosdisk_get_grub_dev): Likewise. 2010-07-01 Vladimir Serbinenko Yeeloong firmware port. * boot/mips/yeeloong/fwstart.S: New file. * bus/cs5536.c (gpiodump): New const. (set_io_space): New function. (set_iod): Likewise. (set_p2d): Likewise. (grub_cs5536_init_geode): Likewise. * commands/mips/yeeloong/lsspd.c: New file. * conf/mips-qemu-mips.rmk (pkglib_MODULES): Add serial.mod. (serial_mod_SOURCES): New variable. (serial_mod_CFLAGS): Likewise. (serial_mod_LDFLAGS): Likewise. * conf/mips-yeeloong.rmk (kernel_img_SOURCES): Add term/serial.c, term/terminfo.c and term/tparm.c. (pkglib_IMAGES): Add fwstart.img. (fwstart_img_SOURCES): New variable. (fwstart_img_CFLAGS): Likewise. (fwstart_img_ASFLAGS): Likewise. (fwstart_img_LDFLAGS): Likewise. (fwstart_img_FORMAT): Likewise. (pkglib_MODULES): Add lsspd.mod. (lsspd_mod_SOURCES): New variable. (lsspd_mod_CFLAGS): Likewise. (lsspd_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add halt.mod. (halt_mod_SOURCES): New variable. (halt_mod_CFLAGS): Likewise. (halt_mod_LDFLAGS): Likewise. * conf/mips.rmk (pkglib_MODULES): Remove serial.mod. (serial_mod_SOURCES): Removed. (serial_mod_CFLAGS): Likewise. (serial_mod_LDFLAGS): Likewise. * disk/ata.c (check_device): New function. (grub_ata_device_initialize): Use check_device. (grub_ata_iterate): Recheck devices. (grub_ata_open): Likewise. (grub_atapi_iterate): Likewise. (grub_atapi_open): Likewise. * include/grub/ata.h (GRUB_ATA_CH0_PORT1): New macro. (GRUB_ATA_CH1_PORT1): Likewise. (GRUB_ATA_CH0_PORT2): Likewise. (GRUB_ATA_CH1_PORT2): Likewise. * include/grub/mips/loongson.h: New file. * include/grub/mips/yeeloong/ec.h: Likewise. * include/grub/mips/yeeloong/serial.h (GRUB_MACHINE_SERIAL_PORT): New definition. (GRUB_MACHINE_SERIAL_DIVISOR_115200): Likewise. (GRUB_MACHINE_SERIAL_PORTS) [ASM_FILE]: Remove. * include/grub/misc.h (grub_halt): Declare as noreturn. * include/grub/serial.h (UART_ENABLE_FIFO): Renamed to ... (UART_ENABLE_FIFO_TRIGGER14): ... this. All users updated. (UART_ENABLE_FIFO_TRIGGER1): New definition. (UART_ENABLE_DTRRTS): Likewise. (UART_ENABLE_MODEM): Removed. (UART_ENABLE_OUT2): New const. * include/grub/term.h (grub_term_register_input_active): New function. (grub_term_register_output_active): Likewise. * kern/mips/startup.S [GRUB_MACHINE_MIPS_YEELOONG]: Handle 0xffffffff argument. * kern/mips/yeeloong/init.c (grub_get_rtc): Macroify. (init_pci): New function. (grub_machine_init): Execute platform init when firmware. Init serial. (grub_halt): Implement. (grub_exit): Likewise. (grub_reboot): Likewise. * term/serial.c (serial_hw_init): Update macros. [GRUB_MACHINE_MIPS_YEELOONG]: Init on startup. * util/grub-mkimage.c (image_target_desc): New id IMAGE_YEELOONG_FLASH. (image_targets): New target mipsel-yeeloong-flash. (generate_image): Support IMAGE_YEELOONG_FLASH. * video/sm712.c (GRUB_SM712_TOTAL_MEMORY_SPACE): New definition. (grub_video_sm712_setup): Init card. (grub_video_sm712_set_palette): Removed. * video/sm712_init.c: New file. 2010-06-30 Colin Watson * Makefile.in (install-local): Temporarily prepend $(builddir) to PATH when running help2man and then run it on the unadorned executable names, rather than passing $(builddir)/* paths to help2man. This avoids the build directory ending up in generated manual pages. 2010-06-29 Colin Watson * util/grub-mkconfig.in: Use 'set -e' rather than '#! /bin/sh -e', to avoid accidents when debugging with 'sh -x'. * util/grub-mkrescue.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. * util/powerpc/ieee1275/grub-mkrescue.in: Likewise. 2010-06-29 Colin Watson * commands/cat.c (grub_cmd_cat): Fix buffer overrun if '\r' is the last character in the buffer. Reported by: Vladimir Serbinenko. 2010-06-29 Robert Millan * docs/grub.texi (Simple configuration): Document ${GRUB_BADRAM}. (Command-line and menu entry commands): Document `badram' command. 2010-06-28 Robert Millan * util/grub-mkconfig.in: Export `GRUB_BADRAM' variable. * util/grub.d/00_header.in: When `GRUB_BADRAM' is set, issue badram command using ${GRUB_BADRAM} as parameter. 2010-06-28 Colin Watson * docs/grub.texi (Device map): New section. (Themes): New section (stub). * Makefile.in (docs/grub.info): The info documentation now builds without errors. Make sure it stays that way. 2010-06-28 Vladimir Serbinenko Use normal parser for menu entries. Reported by: Thomas Frauendorfer * include/grub/parser.h (grub_parser_execute): Don't export. * normal/menu.c (grub_menu_execute_entry_real): New function. (grub_menu_execute_entry): Use grub_menu_execute_entry_real. 2010-06-28 Colin Watson * docs/grub.texi (Embedded configuration): New section (replacing old "Preset Menu" stub). (Images): New section. (configfile): Note that any menu entries defined in `file' are shown immediately. 2010-06-28 Josh Triplett * mmap/i386/pc/mmap_helper.S: Set CF on return. 2010-06-28 Colin Watson * util/grub-install.in: Add --debug-image= option. 2010-06-28 Colin Watson Change grub-mkdevicemap to emit /dev/disk/by-id/ names where possible on Linux. * util/deviceiter.c (check_device): Rename to ... (check_device_readable_unique): ... this. Update all callers. Maintain and check a list of which devices (by canonicalized name) have already been seen. (clear_seen_devices): New function. (compare_file_names) [__linux__]: New function. (grub_util_iterate_devices): Clear the list of seen devices on exit and (just in case) on entry. (grub_util_iterate_devices) [__linux__]: Iterate over non-partition devices in /dev/disk/by-id/, in sorted order. Remove DM-RAID seen-devices list, superseded by general code in check_device. 2010-06-28 Colin Watson * commands/cat.c (options): New variable. (grub_cmd_cat): Parse options. If the --dos option is given, print DOS-style "\r\n" line endings as simple newlines (Debian bug #586358). (GRUB_MOD_INIT): Use extcmd. (GRUB_MOD_FINI): Likewise. * docs/grub.texi (cat): Document --dos. 2010-06-28 Vladimir Serbinenko XEN with Linux grub-mkconfig support. * conf/common.rmk (grub-mkconfig_SCRIPTS) [linux]: Add 20_linux_xen. * util/grub-mkconfig.in: Export GRUB_CMDLINE_XEN and GRUB_CMDLINE_XEN_DEFAULT. * util/grub.d/20_linux_xen.in: New file. 2010-06-28 Vladimir Serbinenko Initialise VGA video on qemu ourselves. * boot/i386/qemu/boot.S: Don't call 0xc000. * conf/i386-qemu.rmk (kern/i386/qemu/init.c_DEPENDENCIES): New variable. (kernel_img_SOURCES): Add kern/i386/qemu/init.c and bus/pci.c. (kernel_img_HEADERS): Add pci.h. * conf/i386.rmk (pkglib_MODULES) [qemu]: Remove pci.mod. * configure.ac: Force unifont on qemu and yeeloong. * include/grub/i386/qemu/kernel.h (grub_qemu_init_cirrus): New proto. (grub_vga_palette_write): Use correct register. * kern/i386/coreboot/init.c (grub_machine_init) [GRUB_MACHINE_QEMU]: Call grub_qemu_init_cirrus. * kern/i386/qemu/init.c: New file. * term/i386/pc/vga_text.c (inc_y): Never read outside the screen. * commands/videotest.c (grub_cmd_videotest): Handle double buffering. 2010-06-26 Pavel Roskin * util/grub.d/10_linux.in: Add support for initrd images on Fedora 13. 2010-06-26 Colin Watson * docs/grub.texi (Simple configuration): Explain that GRUB_DISABLE_LINUX_RECOVERY and GRUB_DISABLE_NETBSD_RECOVERY must be set to `true' to disable their respective recovery entries, not merely set. 2010-06-26 Colin Watson Make the `source' command slightly faster. * normal/main.c (grub_normal_execute): Don't re-read list files when nested. 2010-06-23 Colin Watson * loader/i386/multiboot_mbi.c (retrieve_video_parameters): Set red field position and mask size to red fields from mode_info, not green. * loader/multiboot_mbi2.c (retrieve_video_parameters): Likewise. Remove redundant tag->common.framebuffer_type assignment. Reported by: Seth Goldberg. 2010-06-23 Colin Watson Sync up other versions of the Linux loader with Robert Millan's change of 2010-01-09, "Make loader output a bit more user-friendly". * loader/i386/efi/linux.c (grub_linux_boot): Move debug info to grub_dprintf(). (grub_cmd_linux): Likewise. (grub_cmd_initrd): Likewise. * loader/i386/ieee1275/linux.c (grub_cmd_linux): Likewise. * loader/i386/pc/linux.c (grub_cmd_linux): Likewise. 2010-06-21 Colin Watson * kern/efi/mm.c (grub_efi_mm_init): Handle systems with memory maps larger than MEMORY_MAP_SIZE. 2010-06-21 BVK Chaitanya Fix parallel build. * conf/common.rmk: Add grub_script.tab.h as a grub-script-check dependency. * script/parser.y: #include grub_script.tab.h header. 2010-06-20 Vladimir Serbinenko Support >3GiB and <16MiB RAM in i386-qemu. * kern/i386/qemu/mmap.c (QEMU_CMOS_MEMSIZE2_HIGH): New const. (QEMU_CMOS_MEMSIZE2_LOW): Likewise. (grub_lower_mem): Removed. (grub_upper_mem): Likewise. (mem_size): Made static. (above_4g): New variable. (grub_machine_mmap_init): Detect small mem_size and above_4g. (grub_machine_mmap_iterate): Order in ascending order and add above_4g support. 2010-06-20 Vladimir Serbinenko Cirrus 5446 and Bochs video cards support. * conf/i386.rmk (pkglib_MODULES): Add video_cirrus.mod and video_bochs.mod (video_cirrus_mod_SOURCES): New variable. (video_cirrus_mod_CFLAGS): Likewise. (video_cirrus_mod_LDFLAGS): Likewise. (video_bochs_mod_SOURCES): Likewise. (video_bochs_mod_CFLAGS): Likewise. (video_bochs_mod_LDFLAGS): Likewise. * include/grub/vga.h: New file. * include/grub/video_fb.h (grub_video_fb_doublebuf_blit_init): Removed. (grub_video_fb_set_page_t): New type. (grub_video_fb_setup): New prototype. (grub_video_fb_swap_buffers): Likewise. (grub_video_fb_get_info_and_fini): Likewise. * term/i386/pc/vga_text.c (CRTC_ADDR_PORT): Moved to include/grub/vga.h. (CRTC_DATA_PORT): Likewise. (CRTC_CURSOR): Likewise. (CRTC_CURSOR_ADDR_HIGH): Likewise. (CRTC_CURSOR_ADDR_LOW): Likewise. (CRTC_CURSOR_DISABLE): Likewise. (update_cursor): Use grub_vga_cr_write. (grub_vga_text_setcursor): Likewise. * video/bochs.c: New file. * video/fb/video_fb.c (render_target): Moved into framebuffer variable. (palette): Likewise. (palette_size): Likewise. (framebuffer): New variable. (grub_video_fb_init): Use 'framebuffer'. (grub_video_fb_fini): Likewise. (grub_video_fb_get_info): Likewise. (grub_video_fb_get_palette): Likewise. (grub_video_fb_set_palette): Likewise. (grub_video_fb_set_viewport): Likewise. (grub_video_fb_get_viewport): Likewise. (grub_video_fb_map_color): Likewise. (grub_video_fb_map_rgb): Likewise. (grub_video_fb_map_rgba): Likewise. (grub_video_fb_unmap_color): Likewise. (grub_video_fb_unmap_color_int): Likewise. (grub_video_fb_fill_rect): Likewise. (grub_video_fb_blit_bitmap): Likewise. (grub_video_fb_blit_render_target): Likewise. (grub_video_fb_scroll): Likewise. (grub_video_fb_create_render_target): Likewise. (grub_video_fb_doublebuf_blit_init): Likewise. (grub_video_fb_set_active_render_target): Handle doublebuffering. (doublebuf_pageflipping_update_screen): New function. (doublebuf_pageflipping_init): Likewise. (grub_video_fb_setup): Likewise. (grub_video_fb_swap_buffers): Likewise. (grub_video_fb_get_info_and_fini): Likewise. * video/i386/pc/vbe.c (framebuffer): Remove all doublebuffering fields. All users updated. (doublebuf_pageflipping_commit): Restructured into ... (doublebuf_pageflipping_set_page): ... this. (doublebuf_pageflipping_update_screen): Removed. (doublebuf_pageflipping_init): Likewise. (double_buffering_init): Likewise. (grub_video_vbe_setup): Use grub_video_fb_setup. (grub_video_vbe_swap_buffers): Removed. (grub_video_vbe_set_active_render_target): Likewise. (grub_video_vbe_get_active_render_target): Likewise. (grub_video_vbe_get_info_and_fini): Use grub_video_fb_get_info_and_fini. (grub_video_vbe_adapter): Use grub_video_fb_swap_buffers, grub_video_fb_set_active_render_target and grub_video_fb_get_active_render_target. * video/i386/pc/vga.c (SEQUENCER_ADDR_PORT): Move to include/grub/vga.h. (SEQUENCER_DATA_PORT): Likewise. (MAP_MASK_REGISTER): Likewise. (CRTC_ADDR_PORT): Likewise. (CRTC_DATA_PORT): Likewise. (START_ADDR_HIGH_REGISTER): Likewise. (START_ADDR_LOW_REGISTER): Likewise. (GRAPHICS_ADDR_PORT): Likewise. (GRAPHICS_DATA_PORT): Likewise. (READ_MAP_REGISTER): Likewise. (INPUT_STATUS1_REGISTER): Likewise. (INPUT_STATUS1_VERTR_BIT): Likewise. (get_map_mask): Use grub_vga_sr_read. (set_map_mask): Use grub_vga_sr_write. (set_read_map): Use grub_vga_gr_write. (set_start_address): Use grub_vga_cr_write. * video/sm712.c (framebuffer): Remove leftover fields. 2010-06-20 Colin Watson * util/grub-mkconfig.in: Capitalise and export GRUB_PREFIX. Stop setting GRUB_VIDEO_BACKEND. Make it available as a user override instead. Replace the gfxterm backend check with a check that ${GRUB_PREFIX}/video.lst is non-empty. * util/grub.d/00_header.in: Use GRUB_PREFIX rather than computing it again. (load_video): New generated function. Call it before loading gfxterm rather than loading ${GRUB_VIDEO_BACKEND}. * util/grub.d/10_linux.in (linux_entry): Call load_video. * util/grub.d/30_os-prober.in (osx_entry): Likewise. * docs/grub.texi (Simple configuration): Document GRUB_VIDEO_BACKEND. 2010-06-20 Vladimir Serbinenko Use video functions in linux and xnu loaders. * conf/i386-pc.rmk (xnu_mod_SOURCES): Remove loader/i386/pc/xnu.c. * conf/x86-efi.rmk (xnu_mod_SOURCES): Remove loader/i386/efi/xnu.c. * include/grub/i386/xnu.h (grub_xnu_set_video): Removed. * loader/i386/efi/linux.c (grub_linux_setup_video): Copied from loader/i386/pc/linux.c. (grub_linux_boot): Resynced with loader/i386/pc/linux.c. (find_line_len): Removed. (find_framebuf): Likewise. (grub_cmd_linux): Declare grub_linux_boot as possibly returning. * loader/i386/efi/xnu.c: Removed. * loader/i386/pc/xnu.c: Moved from here... * loader/i386/xnu.c: ...here. Enable priorities in video drivers. * include/grub/video.h (grub_video_adapter_prio_t): New type. (grub_video_adapter): New field prio. (grub_video_register): Respect prio when inserting. * video/efi_gop.c (grub_video_gop_adapter): Add prio. * video/efi_uga.c (grub_video_uga_adapter): Likewise. * video/emu/sdl.c (grub_video_sdl_adapter): Likewise. * video/i386/pc/vbe.c (grub_video_vbe_adapter): Likewise. * video/i386/pc/vga.c (grub_video_vga_adapter): Likewise. * video/ieee1275.c (grub_video_ieee1275_adapter): Likewise. * video/sm712.c (grub_video_sm712_adapter): Likewise. Fix SDL driver ID. * include/grub/video.h (grub_video_driver_id_t): New value GRUB_VIDEO_DRIVER_SDL. * video/emu/sdl.c (grub_video_sdl_adapter): Add id. 2010-06-17 Colin Watson * util/i386/pc/grub-setup.c (usage): Pass an extra `program_name' argument to printf. * util/sparc64/ieee1275/grub-setup.c (usage): Likewise. 2010-06-17 Colin Watson * util/i386/pc/grub-setup.c (usage): Fix syntax error. * util/sparc64/ieee1275/grub-setup.c (usage): Likewise. 2010-06-17 Colin Watson * util/i386/pc/grub-setup.c (usage): Warn against running grub-setup directly, and recommend grub-install instead. * util/sparc64/ieee1275/grub-setup.c (usage): Likewise. 2010-06-17 Colin Watson Fix i386-pc prefix handling with nested partitions (Debian bug #585068). Note that the case where the core image is booted using multiboot and relocated from its original location still requires more work. * kern/i386/pc/init.c (make_install_device): If the prefix starts with "(,", fill the boot drive in between those two characters, but expect that a full partition specification including partition map names will follow. * util/i386/pc/grub-setup.c (setup): Unless an explicit prefix was specified, write a prefix without the drive name but including a full partition specification. 2010-06-16 Colin Watson * util/grub-mkconfig.in: Ignore non-option arguments, for compatibility with older versions (before 2010-06-12) which did the same. In particular, this makes it easier to ship an update-grub wrapper which is compatible with that used with GRUB Legacy (Debian bug #586056). 2010-06-14 Grégoire Sutre * Makefile.in (install-local): Use $$file.h2m instead of $$dest.h2m for manual page generation. 2010-06-14 Grégoire Sutre * po/POTFILES: Remove leftover commands/handler.c. 2010-06-14 Colin Watson * util/grub-mkconfig.in: Remove vestige of old argument parsing that left this script non-functional. 2010-06-14 Colin Watson * docs/man/grub-emu.h2m: New file. 2010-06-13 Colin Watson * docs/grub.texi (Commands): Document reduced command set in rescue mode. (cpuid): New section. 2010-06-13 Grégoire Sutre * kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev): Use the new partition naming style. * util/grub-install.in: Adapt sed subtitutions in grub-probe calls. 2010-06-12 BVK Chaitanya Add "-o grub.iso" like cmdline options support. * util/grub-install.in: Improve cmdline option parsing. * util/grub-mkconfig.in: Likewise. * util/grub-mkrescue.in: Likewise. * util/grub-reboot.in: Likewise. * util/grub-set-default.in: Likewise. * util/i386/efi/grub-install.in: Likewise. * util/ieee1275/grub-install.in: Likewise. * util/powerpc/ieee1275/grub-mkrescue.in: Likewise. 2010-06-12 Colin Watson * .bzrignore: Ignore 41_custom. 2010-06-12 Thomas Schmitt * util/grub-mkrescue.in: Pass unrecognized options to xorriso. 2010-06-12 Colin Watson Avoid false positives in fs.lst, partmap.lst, and video.lst due to prototype declarations. * genmk.rb (PModule::rule): Define GRUB_LST_GENERATOR when generating fs, partmap, and video lists. * include/grub/fs.h (grub_fs_register): Omit prototype if GRUB_LST_GENERATOR is defined. * include/grub/partition.h (grub_partition_map_register): Likewise. * include/grub/video.h (grub_video_register): Likewise. 2010-06-12 Javier Martín * include/grub/types.h: Check for GRUB_CPU_SIZEOF_LONG when appropriate. 2010-06-12 Thomas Schmitt * util/grub-mkrescue.in: Support --xorriso argument. 2010-06-12 Vladimir Serbinenko * util/grub-mkrescue.in: Use -graft-points instead of -pathspecs. Suggested by: Thomas Schmitt. 2010-06-12 Vladimir Serbinenko * util/grub-mkrescue.in: Add --sort-weight arguments to xorriso. Suggested by: Thomas Schmitt. 2010-06-12 Vladimir Serbinenko custom.cfg support. * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 41_custom. * util/grub.d/41_custom.in: New file. 2010-06-12 Colin Watson * util/grub-mkrescue.in (make_image): Remove sh module, which has been merged back into normal. 2010-06-11 Colin Watson * include/grub/efi/uga_draw.h (GRUB_EFI_UGA_GLT_MAX): Rename to ... (GRUB_EFI_UGA_BLT_MAX): ... this (typo fix). 2010-06-11 Colin Watson * Makefile.in (install-local): Include $(srcdir)/docs/man/$$dest.h2m when generating manual pages. * docs/man/grub-bin2h.h2m: New file. * docs/man/grub-editenv.h2m: New file. * docs/man/grub-fstest.h2m: New file. * docs/man/grub-install.h2m: New file. * docs/man/grub-macho2img.h2m: New file. * docs/man/grub-mkconfig.h2m: New file. * docs/man/grub-mkdevicemap.h2m: New file. * docs/man/grub-mkfont.h2m: New file. * docs/man/grub-mkimage.h2m: New file. * docs/man/grub-mkpasswd-pbkdf2.h2m: New file. * docs/man/grub-mkrelpath.h2m: New file. * docs/man/grub-mkrescue.h2m: New file. * docs/man/grub-ofpathname.h2m: New file. * docs/man/grub-pe2elf.h2m: New file. * docs/man/grub-probe.h2m: New file. * docs/man/grub-reboot.h2m: New file. * docs/man/grub-script-check.h2m: New file. * docs/man/grub-set-default.h2m: New file. * docs/man/grub-setup.h2m: New file. 2010-06-10 Vladimir Serbinenko Use FOR_* macros instead of *_iterate whenever possible. * commands/handler.c: Removed. * commands/help.c (grub_cmd_help): Use FOR_COMMANDS. * commands/minicmd.c (grub_mini_cmd_lsmod): Use FOR_DL_MODULES. * conf/any-emu.rmk (kernel_img_SOURCES): Remove kern/handler.c. * conf/common.rmk (script/lexer.c_DEPENDENCIES): Add grub_script.yy.h. (grub_probe_SOURCES): Remove kern/parser.c. (util/grub-script-check.c_DEPENDENCIES): Removed. (grub_script_check_SOURCES): Remove kern/handler.c, kern/parser.c and grub_script_check_init.c. (grub_script_check_init.lst): Removed. (grub_script_check_init.h): Likewise. (grub_script_check_init.c): Likewise. (pkglib_MODULES): Remove handler.mod and sh.mod. (handler_mod_SOURCES): Removed. (handler_mod_CFLAGS): Likewise. (handler_mod_LDFLAGS): Likewise. (normal_mod_SOURCES): Remove normal/handler.c. Add script/main.c, script/script.c, script/execute.c, script/function.c, script/lexer.c, grub_script.tab.c and grub_script.yy.c. * conf/i386-coreboot.rmk (kernel_img_SOURCES): Remove kern/handler.c. * conf/i386-ieee1275.rmk (kernel_img_SOURCES): Likewise. * conf/i386-pc.rmk (kernel_img_SOURCES): Likewise. (grub_setup_SOURCES): Remove kern/parser.c. * conf/i386-qemu.rmk (kernel_img_SOURCES): Remove kern/handler.c. * conf/mips-qemu-mips.rmk (kernel_img_SOURCES): Likewise. * conf/mips-yeeloong.rmk (kernel_img_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (kernel_img_SOURCES): Likewise. (grub_setup_SOURCES): Remove kern/parser.c. * conf/x86-efi.rmk (kernel_img_SOURCES): Remove kern/handler.c. * gettext/gettext.c (grub_gettext_delete_list): Don't use grub_list_pop. * include/grub/command.h (grub_command_iterate): Removed. (FOR_COMMANDS): New macro. * include/grub/dl.h (grub_dl): New member next. (grub_dl_iterate): Removed. (grub_dl_head): New variable declaration. (FOR_DL_MODULES): New macro. * include/grub/fs.h: Include list.h. (grub_fs): Make next first element. (grub_fs_list): New variable declaration. (grub_fs_register): Make inline. (grub_fs_unregister): Likewise. (grub_fs_iterate): Removed. (FOR_FILESYSTEMS): New macro. * include/grub/handler.h: Removed. * include/grub/list.h (grub_list_hook_t): Removed. (grub_list_test_t): Likewise. (grub_list_pop): Likewise. (grub_list_iterate): Likewise. (grub_list_insert): Likewise. (FOR_LIST_ELEMENTS): New macro. * include/grub/parser.h (grub_parser_class): Removed. (grub_parser_register): Likewise. (grub_parser_unregister): Likewise. (grub_parser_get_current): Likewise. (grub_parser_set_current): Likewise. (grub_register_rescue_parser): Likewise. (grub_rescue_parse_line): New function. * include/grub/partition.h (FOR_PARTITION_MAPS): Use FOR_LIST_ELEMENTS. * include/grub/script_sh.h (grub_script_function_list): New variable declaration. (FOR_SCRIPT_FUNCTIONS): New macro. (grub_script_function_iterate): Removed. (grub_normal_parse_line): New prototype. * include/grub/term.h (FOR_ACTIVE_TERM_INPUTS): Use FOR_LIST_ELEMENTS. (FOR_DISABLED_TERM_INPUTS): Likewise. (FOR_ACTIVE_TERM_OUTPUTS): Likewise. (FOR_DISABLED_TERM_OUTPUTS): Likewise. * include/grub/video.h (grub_video_adapter): Move 'next' to first element. (grub_video_register): Inline. (grub_video_unregister): Likewise. (grub_video_adapter_list): New variable declaration. (grub_video_iterate): Removed. (FOR_VIDEO_ADAPTERS): New macro. * kern/dl.c (grub_dl_list): Removed. All users updated. (grub_dl_iterate): Removed. * kern/fs.c (grub_fs_list): Make global. (grub_fs_register): Removed. (grub_fs_unregister): Likewise. (grub_fs_iterate): Likewise. * kern/handler.c: Removed. * kern/list.c (grub_list_pop): Removed. (grub_list_iterate): Likewise. (grub_list_insert): Likewise. (grub_named_list_find): Use FOR_LIST_ELEMENTS. (grub_prio_list_insert): Don't use grub_list_insert. * kern/main.c (grub_register_rescue_parser): Don't call grub_register_rescue_parser. * kern/parser.c (grub_parser_class): Removed. (grub_parser_execute): Use grub_rescue_parse_line. * kern/rescue_parser.c (grub_rescue_parse_line): Make global. (grub_rescue_parser): Removed. (grub_register_rescue_parser): Likewise. * kern/rescue_reader.c (grub_rescue_run): Use grub_rescue_parse_line. * normal/auth.c (is_authenticated): Use FOR_LIST_ELEMENTS. (grub_auth_check_authentication): Likewise. * normal/completion.c (iterate_command): Removed. (grub_normal_do_completion): Use FOR_COMMANDS. * normal/handler.c: Removed. * normal/main.c (read_config_file): Remove parser changing. (grub_normal_execute): Don't call read_handler_list. (grub_normal_read_line_real): Statically allocate prompt. (grub_cmdline_run): Use grub_normal_parse_line. (GRUB_MOD_FINI): Don't call free_handler_list. * normal/menu_entry.c (run): Likewise. * script/function.c (grub_script_function_list): Make global. (grub_script_function_iterate): Removed. * script/main.c (grub_normal_parse_line): Make global. (grub_sh_parser): Removed. (GRUB_MOD_INIT): Likewise. (GRUB_MOD_FINI): Likewise. * tests/lib/functional_test.c (grub_functional_test): Use FOR_LIST_ELEMENTS. * tests/lib/test.c (free_failures): Don't use grub_list_pop. (grub_test_run): Use FOR_LIST_ELEMENTS. * tests/lib/unit_test.c (main): Likewise. * util/deviceiter.c (grub_util_iterate_devices): Don't use grub_list_pop. * util/grub-fstest.c (grub_term_input_class): Removed. (grub_term_output_class): Likewise. * util/grub-probe.c: Likewise. * util/i386/pc/grub-setup.c: Likewise. * util/sparc64/ieee1275/grub-setup.c: Likewise. * util/grub-script-check.c (main): Don't call grub_init_all and grub_fini_all. * video/video.c (grub_video_adapter_list): Make global. (grub_video_register): Removed. (grub_video_unregister): Likewise. (grub_video_iterate): Likewise. 2010-06-09 Vladimir Serbinenko * docs/grub.texi (Vendor power-on button): Add Asus EeePC 1005PE as reported by Henrique Ferreiro. 2010-06-09 Robert Millan * util/grub.d/10_linux.in: Prefer compressed images over non-compressed ones, when both are available. 2010-06-08 Grégoire Sutre Make --version uniform and avoid hard-coded program name. * util/grub-mkimage.c (main): Use `program_name' instead of hard-coded string. * util/i386/pc/grub-setup.c (main): Likewise. * util/sparc64/ieee1275/grub-setup.c (parse_options): Likewise. * util/grub-install.in: Save the basename of $0 in $self, and use the latter in informational messages. Use the same format for --version as the binary programs. * util/grub-mkconfig.in: Likewise. * util/grub-mkrescue.in: Likewise. * util/grub-reboot.in: Likewise. * util/grub-set-default.in: Likewise. * util/i386/efi/grub-install.in: Likewise. * util/ieee1275/grub-install.in: Likewise. * util/powerpc/ieee1275/grub-mkrescue.in: Likewise. 2010-06-08 Grégoire Sutre * util/i386/pc/grub-setup.c (setup): Use absolute offsets for start of embedding area. Use <= instead of == when checking for non-emptiness. 2010-06-08 Grégoire Sutre * configure.ac: Add `.' to the directories searched for unifont. 2010-06-08 Colin Watson * .bzrignore: Add ascii.bitmaps, ascii.h, grub_script.yy.c, and grub_script.yy.h. 2010-06-08 Colin Watson * docs/grub.texi (History): Expand to cover GRUB 2. (Serial terminal): Refer to `terminal_input' and `terminal_output' commands, not `terminal'. (serial): Likewise. (terminal_input): New section. (terminal_output): New section. (uppermem): New section (stub). (Obtaining and Building GRUB): Refer to Bazaar, not Subversion. 2010-06-08 Colin Watson * docs/grub.texi (Security): Menu entries are unrestricted by default, not restricted to superusers as I had previously thought. Reword to account for this. 2010-06-07 Colin Watson * kern/emu/misc.c (device_mapper_null_log): New function. (grub_device_mapper_supported): New function. * include/grub/emu/misc.h (grub_device_mapper_supported): Add prototype. * kern/emu/hostdisk.c (find_partition_start): Check whether device-mapper is supported before trying to use it. * util/deviceiter.c (grub_util_iterate_devices): Likewise. 2010-06-07 Colin Watson * docs/grub.texi (Naming convention): Use GRUB 2 syntax. (File name syntax): Likewise. (help): --all is no longer supported in GRUB 2. Be more precise about pattern matching. 2010-06-07 Colin Watson * normal/completion.c (grub_normal_do_completion): When completing arguments to "set" and the current word contains an equals sign, skip to after the equals sign before starting completion. 2010-06-07 Colin Watson * fs/i386/pc/pxe.c (grub_pxe_open): Fix parsing of gateway_ip. 2010-06-07 Colin Watson * docs/grub.texi (Network): New section. (Device syntax): The network device is called `(pxe)' in GRUB 2, not `(nd)' as in GRUB Legacy. (pxe_unload): New section. 2010-06-07 Colin Watson * docs/grub.texi (Troubleshooting): `echo' is not usually available in the rescue shell, so recommend using `set' instead. Thanks, Jordan Uggla. 2010-06-07 Colin Watson * docs/grub.texi (Filesystem): Refer to `search' instead of `find'. (password): New section. (password_pbkdf2): New section. (search): New section. (Security): New section. (Troubleshooting): New section, currently very incomplete. (Invoking grub-mkpasswd-pbkdf2): New section. (Internals): New section, currently very incomplete. 2010-06-07 Colin Watson * util/grub.d/00_header.in: Add some more quoting (of "${prev_saved_entry}" and "${boot_once}") needed to make savedefault work again. Reported by: Mario 'BitKoenig' Holbe (Debian bug #584812). 2010-06-07 Colin Watson * util/grub-mkpasswd-pbkdf2.c (main): Rename top-level `c' variable to `count', fixing variable shadowing that broke the -c option. 2010-06-05 Colin Watson * util/grub.d/00_header.in: Quote values assigned to `saved_entry', in case they contain spaces. 2010-06-04 Colin Watson * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Prepend "part_" to partmap module names, in line with grub-install. Reported by: Jindřich Makovička (Debian bug #584426). 2010-06-04 Colin Watson * util/grub-mkimage.c: Make target-related error messages slightly more helpful; -O talks about "format". Explicitly point to the use of -O if no target is specified. Reported by: Didier Raboud (Debian bug #584415). 2010-06-03 Colin Watson * INSTALL: Document several build requirements for optional features (libdevmapper, ncurses, libusb, SDL, FreeType, GNU Unifont). 2010-06-02 Grégoire Sutre * kern/emu/hostdisk.c (convert_system_partition_to_system_disk) [__NetBSD__]: Handle all device names matching /dev/r[a-z]+[0-9][a-z]. (find_partition_start) [__NetBSD__]: Correct error messages for NetBSD. 2010-06-02 Colin Watson * docs/grub.texi (Simple configuration): Fix copy-and-paste typo. Thanks to Jordan Uggla for spotting this. 2010-06-02 Aleš Nesrsta Finally make USB usable. * bus/usb/ohci.c (grub_ohci_reg_t): Add missing values. (GRUB_OHCI_RHUB_PORT_POWER_MASK): New macro. (GRUB_OHCI_RHUB_PORT_ALL_POWERED): Likewise. (GRUB_OHCI_REG_FRAME_INTERVAL_FSMPS_MASK): Likewise. (GRUB_OHCI_REG_FRAME_INTERVAL_FSMPS_SHIFT): Likewise. (GRUB_OHCI_REG_FRAME_INTERVAL_FI_SHIFT): Likewise. (GRUB_OHCI_FSMPS): Likewise. (GRUB_OHCI_PERIODIC_START): Likewise. (GRUB_OHCI_FRAME_INTERVAL): Likewise. (GRUB_OHCI_SET_PORT_ENABLE): Likewise. (GRUB_OHCI_CLEAR_PORT_ENABLE): Likewise. (GRUB_OHCI_SET_PORT_RESET): Likewise. (GRUB_OHCI_SET_PORT_RESET_STATUS_CHANGE): Likewise. * bus/usb/ohci.c (grub_ohci_pci_iter): Various important fixups. (grub_ohci_transaction): Likewise. (grub_ohci_transfer): Improve condition detection algorithms. Handle toggle property. Program the transactions correctly. Improve error handling. Various important fixups. (grub_ohci_portstatus): Put register writes in right order. * bus/usb/uhci.c (grub_free_queue): Compute last_trans. (grub_uhci_transfer): Don't show "failed" message on success. * bus/usb/usb.c (grub_usb_set_configuration): Zero-fill whole "toggle" array. (grub_usb_device_initialize): Read first 8 bytes of descriptor to determine its size. * bus/usb/usbtrans.c (grub_usb_control_msg): Use descdev.maxsize0 even before initialization is completed. Use IN direction for empty transfers. Use last_trans and compute toggle. * include/grub/usbtrans.h (grub_usb_transfer): New field last_trans. (GRUB_USB_FEATURE_ENDP_HALT): Correct the value. (GRUB_USB_FEATURE_DEV_REMOTE_WU): Likewise. (GRUB_USB_FEATURE_TEST_MODE): Likewise. * include/grub/usb.h (grub_usb_err_t): New value GRUB_USB_ERR_UNRECOVERABLE. (grub_usb_device): Increase toggle to 256. (grub_usbms_subclass_t): New values GRUB_USBMS_SUBCLASS_RBC, GRUB_USBMS_SUBCLASS_MMC2, GRUB_USBMS_SUBCLASS_UFI and GRUB_USBMS_SUBCLASS_SFF8070. * include/grub/scsicmd.h (grub_scsi_test_unit_ready): New structure. (grub_scsi_inquiry): New member page and alloc_length. (grub_scsi_request_sense): New structure. (grub_scsi_request_sense_data): Likewise. (grub_scsi_read_capacity): New fields logical_block_addr, PMI and control. * disk/scsi.c (grub_scsi_request_sense): New function. (grub_scsi_test_unit_ready): Likewise. (grub_scsi_inquiry): Fill new fields. (grub_scsi_read_capacity): Likewise. (grub_scsi_read10): Add request sense at the end. (grub_scsi_read12): Likewise. (grub_scsi_write10): Likewise. (grub_scsi_write12): Likewise. (grub_scsi_open): Add Test Unit Ready. * disk/usbms.c (grub_usbms_finddevs): Check configcnt. Support additional subclasses. Con't clear halt yet. Activate the proper config. Calculate LUNs correctly. (grub_usbms_transfer): Various important fixups. 2010-06-02 Vladimir Serbinenko * bus/pci.c (grub_pci_iterate) [GRUB_MACHINE_MIPS_YEELOONG]: Skip ghosts. * bus/usb/ohci.c (grub_ohci_portstatus): Handle R/WC correctly. (grub_ohci_fini_hw): New function. (grub_ohci_restore_hw): Likewise. (GRUB_MOD_INIT(ohci)): Register preboot hook. (GRUB_MOD_FINI(ohci)): Shutdown OHCI. * term/usb_keyboard.c: Remove include of grub/machine/console.h. 2010-06-02 Vladimir Serbinenko Dedicated DMA allocations. * bus/pci.c (grub_memalign_dma32): New function (grub_dma_free): Likewise. (grub_dma_get_virt): Likewise. (grub_dma_get_phys): Likewise. * bus/usb/ohci.c (grub_ohci): New members hcca_addr and hcca_chunk. (grub_ohci_pci_iter): Use dma32_alloc. (grub_ohci_transfer): Likewise. * bus/usb/usbtrans.c (grub_usb_control_msg): Likewise. (grub_usb_bulk_readwrite): Likewise. * include/grub/pci.h: Add declarations. 2010-06-02 Vladimir Serbinenko CS5536 support. * bus/cs5536.c: New file. * bus/usb/ohci.c (grub_ohci_pci_iter): Check for CS5536. * conf/i386.rmk (pkglib_MODULES): Add cs5536.mod. (cs5536_mod_SOURCES): New variable. (cs5536_mod_CFLAGS): Likewise. (cs5536_mod_LDFLAGS): Likewise. * conf/mips-yeeloong.rmk (kernel_img_HEADERS): Add cs5536.h and machine/pci.h. (kernel_img_SOURCES): Add bus/cs5536.c. (pkglib_MODULES): Add usb.mod, usbtest.mod, ohci.mod, usbms.mod and usb_keyboard.mod. (usb_mod_SOURCES): New variable. (usb_mod_CFLAGS): New variable. (usb_mod_LDFLAGS): New variable. (usbtest_mod_SOURCES): New variable. (usbtest_mod_CFLAGS): New variable. (usbtest_mod_LDFLAGS): New variable. (ohci_mod_SOURCES): New variable. (ohci_mod_CFLAGS): New variable. (ohci_mod_LDFLAGS): New variable. (usbms_mod_SOURCES): New variable. (usbms_mod_CFLAGS): New variable. (usbms_mod_LDFLAGS): New variable. (usb_keyboard_mod_SOURCES): New variable. (usb_keyboard_mod_CFLAGS): New variable. (usb_keyboard_mod_LDFLAGS): New variable. * include/grub/smbus.h: New file. * include/grub/cs5536.h: New file. 2010-06-02 Colin Watson * util/grub.d/00_header.in: Add safety check to make sure that ${locale_dir} exists before trying to probe it. 2010-06-02 Colin Watson * docs/grub.texi (SCO UnixWare): Remove, at Vladimir's request and per the GNU Coding Standards; this is now too obscure to be worth documenting. (QNX): Likewise. (chainloader): Remove cross-reference to `SCO UnixWare'. 2010-06-02 Colin Watson * docs/grub.texi (Chain-loading): New section. (DOS/Windows): New section, borrowed from GRUB Legacy with details adjusted for GRUB 2. (SCO UnixWare): Likewise. (QNX): Likewise. (chainloader): Add reference to `Block list syntax'. (drivemap): New section. (parttool): New section. 2010-06-02 Colin Watson * docs/grub.texi (GNU GRUB manual): Remove reference to `Invoking the grub shell'. (Installation): Add reference to `Making a GRUB bootable CD-ROM'. (Installing GRUB using grub-install): Remove reference to the grub shell; mention `grub-mkimage' and `grub-setup' instead. (Invoking grub-install): Likewise. (Interface): Add reference to `Menu entry editor'. (serial): Remove `--device' option. 2010-06-02 Colin Watson * docs/grub.texi (Configuration): New section, documenting configuration file generation using grub-mkconfig. I've left a slot for documenting the full shell scripting format but have not yet started on writing that up. (Invoking grub-mkconfig): New section. 2010-06-02 Colin Watson * docs/grub.texi (direntry): Remove grub-terminfo reference. (GNU GRUB manual): Likewise. (General commands): Update description of `terminfo' for GRUB 2. 2010-06-02 Colin Watson * commands/gptsync.c (grub_cmd_gptsync): Fix typos. (GRUB_MOD_INIT): Fix capitalisation. * docs/grub.texi (Command-line and menu entry commands): Document gettext and gptsync commands. 2010-06-02 Colin Watson * conf/any-emu.rmk (kernel_img_SOURCES) [!x86]: Include kern/$(target_cpu)/cache.S even if TARGET_NO_MODULES = yes. 2010-06-01 Colin Watson Add btrfs probing support, currently only in the single-device case. * kern/emu/getroot.c (find_root_device_from_mountinfo): New function. (grub_guess_root_device): Call find_root_device_from_mountinfo before looking in /dev. 2010-05-31 Vladimir Serbinenko * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Use GRUB_DISK_SIZE_UNKNOWN. * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Likewise. 2010-05-31 Jiro SEKIBA * include/grub/disk.h (GRUB_DISK_SIZE_UNKNOWN): New macro. * fs/nilfs.c: Support 2nd super block in case 1st one is accidently corrupted or not synced properly. 2010-05-31 Vladimir Serbinenko * normal/main.c (grub_normal_add_menu_entry): Avoid going out of args. Reported by: Seth Goldberg. 2010-05-31 Vladimir Serbinenko * loader/multiboot_mbi2.c (grub_multiboot_make_mbi): Fix incorrect addition of dest. Reported by: Seth Goldberg. 2010-05-31 Vladimir Serbinenko * commands/setpci.c (grub_setpci_iter): Fix an incorrect function check. Reported by: Seth Goldberg. 2010-05-31 Vladimir Serbinenko * loader/multiboot_elfxx.c (grub_multiboot_load_elfXX) [__mips]: Check 64-bit address as signed on MIPS. 2010-05-28 Colin Watson * configure.ac: AC_PROG_LEX sets LEX to ":" if lex is missing, not to the empty string. 2010-05-28 BVK Chaitanya Fix grub-emu issues on NetBSD, with gcc 4.1.3. * conf/any-emu.rmk: Remove unnecessary COMMON_CFLAGS. * include/grub/emu/misc.h (canonicalize_file_name): New Prototype. * kern/misc.c (__enable_execute_stack): Disable on GRUB_MACHINE_EMU. 2010-05-28 Colin Watson Make grub-probe work with symbolic links under /dev/mapper as well as with real block devices. The Linux world seems to be (at best) in transition here, and GRUB shouldn't get caught in the middle. * kern/emu/getroot.c (find_root_device): Follow symbolic links under /dev/mapper. 2010-05-27 Colin Watson * util/grub-script-check.c (main): Ensure defined behaviour on empty input files (in which case exit zero). 2010-05-27 Colin Watson * kern/emu/misc.c (canonicalize_file_name): realpath can still return NULL for various reasons even if it has a maximum-length buffer: for example, there might be a symlink loop, or the path might exceed PATH_MAX. If this happens, return NULL. 2010-05-27 Robert Millan * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Insert partmap module to handle cross-partmap setups. Reported by Orestes Mas. Gràcies! 2010-05-27 Colin Watson * util/grub-mkrescue.in: Initialise override_dir rather than assuming that it's unset or empty in the environment. 2010-05-26 Grégoire Sutre * kern/emu/hostdisk.c (find_partition_start) [__NetBSD__]: Renamed variable index into p_index to suppress a warning with -Wshadow. 2010-05-25 BVK Chaitanya * INSTALL: Added flex >= 2.5.35 requirement. 2010-05-23 Vladimir Serbinenko * commands/usbtest.c (grub_usb_get_string): Properly support UTF-16. 2010-05-23 Vladimir Serbinenko cmostest support. * commands/i386/cmostest.c: New file. * conf/i386-coreboot.rmk (pkglib_MODULES): Add cmostest.mod. (cmostest_mod_SOURCES): New variable. (cmostest_mod_CFLAGS): Likewise. (cmostest_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk: Likewise. * docs/grub.texi (Vendor power-on keys): New section. * util/grub-mkconfig.in: export GRUB_DEFAULT_BUTTON, GRUB_HIDDEN_TIMEOUT_BUTTON, GRUB_TIMEOUT_BUTTON and GRUB_BUTTON_CMOS_ADDRESS. * util/grub.d/00_header.in: Handle powering-on by separate button. 2010-05-23 Vladimir Serbinenko * gfxmenu/gui_list.c (draw_menu): Don't add scrollbar width to padding. Removed drawing_scrollbar argument. All users updated Fixes #29792. Reported by Jo Shields 2010-05-23 Vladimir Serbinenko * gfxmenu/view.c (grub_gfxmenu_draw_terminal_box): Apply only to current buffer since gfxterm handles double repaint. 2010-05-23 Vladimir Serbinenko * gfxmenu/gfxmenu.c (grub_gfxmenu_try): Change viewport on both buffers. * term/gfxterm.c (real_scroll): Likewise. 2010-05-21 Vladimir Serbinenko * kern/i386/pc/mmap.c (grub_machine_mmap_iterate): Zero-fill entry before calling BIOS. 2010-05-21 Vladimir Serbinenko * include/grub/i18n.h: Always enable grub_gettext. 2010-05-21 Vladimir Serbinenko * kern/i386/pc/init.c (make_install_device): Fix a leftover usage of old partition naming style. 2010-05-21 Colin Watson * util/grub-mkconfig.in: Fix handling of -o so that it works when not the first option. 2010-05-20 Colin Watson * util/grub-mkrelpath.c (usage): Remove excess apostrophe. 2010-05-20 Colin Watson * util/misc.c: Move inclusion of to ... * kern/emu/misc.c: ... here. Needed for canonicalize_file_name. 2010-05-20 Grégoire Sutre * kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev) [__NetBSD__]: Fix merge error in NetBSD code. (find_partition_start) [__NetBSD__]: Likewise. 2010-05-19 BVK Chaitanya Fix grub-mkrescue usage unit testing. * tests/util/grub-shell.in: Use --grub-mkimage with grub-mkrescue. 2010-05-18 Christian Franke * util/grub.d/10_windows.in: Use path names instead of drive letters to prevent warning from Cygwin 1.7. Add drivemap command to menuentry if needed. 2010-05-18 Justus Winter <4winter@informatik.uni-hamburg.de> * util/grub.d/10_hurd.in: Include all gnumach* kernels, not only gnumach and gnumach.gz. 2010-05-18 Vladimir Serbinenko * include/grub/i18n.h (gettext): Inline instead of using #define. (grub_gettext): Likewise. (_): Likewise. 2010-05-18 Vladimir Serbinenko * Makefile.in (CPPFLAGS): Replace -DGRUB_LIBDIR with -DGRUB_PKGLIBROOTDIR= and prepend @PACKAGE_TARNAME@. All users updated. * util/grub-mkimage.c (image_targets): Add i386-multiboot. (main): Add a slash after pkglibdirroot. 2010-05-18 Vladimir Serbinenko * util/grub-install.in: Add missing "in" keyword. 2010-05-18 Vladimir Serbinenko * util/grub-mkrescue.in: Remove -O i386-pc duplication. Reported by: Seth Goldberg. 2010-05-18 Vladimir Serbinenko * po/POTFILES: Rename util/grub-mkrawimage.c to util/grub-mkimage.c. 2010-05-18 Colin Watson * configure.ac: Check for Linux device-mapper support. * util/hostdisk.c (device_is_mapped): New function. (find_partition_start): New function, partly broken out from linux_find_partition and grub_util_biosdisk_get_grub_dev but with device-mapper support added. (linux_find_partition): Use find_partition_start. (convert_system_partition_to_system_disk): Add `st' argument. Support Linux /dev/mapper/* devices if device-mapper support is available; only DM-RAID devices are understood at present. (find_system_device): Add `st' argument. Pass it to convert_system_partition_to_system_disk. (grub_util_biosdisk_get_grub_dev): Pass stat result to find_system_device and convert_system_partition_to_system_disk. Use find_partition_start. * conf/common.rmk (grub_mkdevicemap_SOURCES): Add kern/env.c, kern/err.c, kern/list.c, kern/misc.c, and kern/emu/mm.c. * util/deviceiter.c [__linux__]: Define MINOR. (grub_util_iterate_devices): Add support for DM-RAID disk devices. * util/mkdevicemap.c (grub_putchar): New function. (grub_getkey): New function. (grub_refresh): New function. (main): Set debug=all if -v -v is used. 2010-05-18 Colin Watson Fix build with non-GNU libcs. * util/misc.c (canonicalize_file_name): Move to ... * kern/emu/misc.c (canonicalize_file_name): ... here. Needed by grub_make_system_path_relative_to_its_root. 2010-05-18 Colin Watson * util/grub-mkrescue.in: Sync up with grub-install in terms of how we handle finding grub-mkimage. Default to finding grub-mkimage in ${bindir} with program_transform_name applied, and provide a --grub-mkimage option to override this. 2010-05-17 Vladimir Serbinenko Remove grub-mkisofs. * conf/common.rmk (bin_UTILITIES): Remove grub-mkisofs. (grub_mkisofs_SOURCES): Removed. (grub_mkisofs_CFLAGS): Removed. * util/mkisofs/defaults.h: Removed. * util/mkisofs/eltorito.c: Likewise. * util/mkisofs/exclude.h: Likewise. * util/mkisofs/hash.c: Likewise. * util/mkisofs/include/: Likewise. * util/mkisofs/include/fctldefs.h: Likewise. * util/mkisofs/include/mconfig.h: Likewise. * util/mkisofs/include/prototyp.h: Likewise. * util/mkisofs/include/statdefs.h: Likewise. * util/mkisofs/iso9660.h: Likewise. * util/mkisofs/joliet.c: Likewise. * util/mkisofs/match.c: Likewise. * util/mkisofs/match.h: Likewise. * util/mkisofs/mkisofs.c: Likewise. * util/mkisofs/mkisofs.h: Likewise. * util/mkisofs/msdos_partition.h: Likewise. * util/mkisofs/multi.c: Likewise. * util/mkisofs/name.c: Likewise. * util/mkisofs/rock.c: Likewise. * util/mkisofs/tree.c: Likewise. * util/mkisofs/write.c: Likewise. 2010-05-17 Vladimir Serbinenko Unify grub-mkimage accross platforms. * Makefile.in (CPPFLAGS): Set GRUB_LIBDIR to $(libdir). * conf/common.rmk (bin_UTILITIES): Removed grub-mkelfimage. (grub_mkelfimage_SOURCES): Removed. (util/elf/grub-mkimage.c_DEPENDENCIES): Renamed to .. (util/grub-mkimage.c_DEPENDENCIES): .. this. (bin_UTILITIES): Add grub-mkimage. (grub_mkimage_SOURCES): New variable. (kernel_img_HEADERS): Remove machine/kernel.h. * conf/i386-pc.rmk (pkglib_IMAGES): Remove kernel.img. (pkglib_PROGRAMS): Add kernel.img. (kernel_img_HEADERS): Add machine/kernel.h. (kernel_img_FORMAT): Removed. (bin_UTILITIES): Remove grub-mkimage. (grub_mkimage_SOURCES): Removed. (grub_mkimage_CFLAGS): Likewise. (util/grub-mkrawimage.c_DEPENDENCIES): Likewise. * conf/i386-qemu.rmk (pkglib_IMAGES): Remove kernel.img. (pkglib_PROGRAMS): Add kernel.img. (bin_UTILITIES): Remove grub-mkimage. (grub_mkimage_SOURCES): Removed. (grub_mkimage_CFLAGS): Likewise. (util/grub-mkrawimage.c_DEPENDENCIES): Likewise. * conf/mips-qemu-mips.rmk (pkglib_IMAGES): Remove kernel.img. (pkglib_PROGRAMS): Add kernel.img. * conf/mips-yeeloong.rmk (pkglib_IMAGES): Remove kernel.img. (pkglib_PROGRAMS): Add kernel.img. * conf/mips.rmk (bin_UTILITIES): Remove grub-mkimage. (grub_mkimage_SOURCES): Removed. (grub_mkimage_CFLAGS): Likewise. (util/grub-mkrawimage.c_DEPENDENCIES): Likewise. * conf/sparc64-ieee1275.rmk (pkglib_IMAGES): Remove kernel.img. (pkglib_PROGRAMS): Add kernel.img. (bin_UTILITIES): Remove grub-mkimage. (grub_mkimage_SOURCES): Removed. (grub_mkimage_CFLAGS): Likewise. (util/grub-mkrawimage.c_DEPENDENCIES): Likewise. * conf/x86-efi.rmk (bin_UTILITIES): Remove grub-mkimage. (grub_mkimage_SOURCES): Removed. (grub_mkimage_CFLAGS): Likewise. (util/grub-mkrawimage.c_DEPENDENCIES): Likewise. * configure.ac (machine_CFLAGS): Add "-DMACHINE". * include/grub/efi/pe32.h (grub_pe32_optional_header): Split into ... (grub_pe32_optional_header): ... this. (grub_pe64_optional_header): ... and this. All users updated. (GRUB_PE32_PE32_MAGIC): Split into .. (GRUB_PE32_PE32_MAGIC): .. this. (GRUB_PE32_PE64_MAGIC): .. and this. (GRUB_PE32_SIGNATURE_SIZE): New definition. * include/grub/elf.h (PT_GNU_STACK): New definition. * include/grub/i386/coreboot/kernel.h: Merged into include/grub/offsets.h. All users updated. * include/grub/i386/efi/kernel.h: Likewise. * include/grub/i386/kernel.h: Likewise. * include/grub/i386/pc/kernel.h: Likewise. * include/grub/i386/qemu/boot.h: Likewise. * include/grub/mips/kernel.h: Likewise. * include/grub/mips/qemu-mips/kernel.h: Likewise. * include/grub/powerpc/ieee1275/kernel.h: Likewise. * include/grub/powerpc/kernel.h: Likewise. * include/grub/sparc64/ieee1275/boot.h: Likewise. * include/grub/sparc64/ieee1275/kernel.h: Likewise. * include/grub/sparc64/kernel.h: Likewise. * include/grub/x86_64/efi/kernel.h: Likewise. * include/grub/x86_64/kernel.h: Likewise. * include/grub/offsets.h: New file. * include/grub/kernel.h (grub_module_info): Split into ... (grub_module_info32): ... this. (grub_module_info64): ... and this. * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_KERNEL_SEG): Moved from here ... * include/grub/offsets.h (GRUB_BOOT_I386_PC_KERNEL_SEG): ... here. (grub_boot_blocklist): Moved from here ... * include/grub/offsets.h (grub_pc_bios_boot_blocklist): ... here. * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): Moved from here. * include/grub/offsets.h (GRUB_MEMORY_I386_PC_UPPER): .. here. * include/grub/types.h (grub_target_to_host16): Removed. (grub_target_to_host32): Likewise. (grub_target_to_host64): Likewise. (grub_host_to_target16): Likewise. (grub_host_to_target32): Likewise. (grub_host_to_target64): Likewise. (grub_host_to_target_addr): Likewise. Support grub-mkrescue for efi, coreboot and qemu. * conf/x86-efi.rmk (bin_SCRIPTS): Add grub-mkrescue. * kern/efi/init.c (grub_efi_set_prefix): Handle baked in prefix. * util/elf/grub-mkimage.c: Merged into util/grub-mkimage.c. * util/grub-mkrawimage.c: Moved from here ... * util/grub-mkimage.c: ... here. All users updated. (ALIGN_ADDR): Use image_target. (TARGET_NO_FIELD): New const. (image_target_desc): New type. (image_targets): New array. (grub_target_to_host64): Use image_target. (grub_target_to_host32): Likewise. (grub_target_to_host16): Likewise. (grub_host_to_target64): Likewise. (grub_host_to_target32): Likewise. (grub_host_to_target16): Likewise. (grub_host_to_target_addr): Likewise. (generate_image): Handle multiimage. (main): Require -O parameter. All users updated. * util/grub-mkimagexx.c: New file. Based on util/grub-mkrawimage.c and util/efi/grub-mkimage.c * util/grub-mkrescue.in: Handle coreboot, efi and qemu. New option --rom-directory. Use xorriso. * util/i386/efi/grub-mkimage.c: Removed. * util/i386/pc/grub-setup.c (grub_target_to_host16): New definition. (grub_target_to_host32): Likewise. (grub_target_to_host64): Likewise. (grub_host_to_target16): Likewise. (grub_host_to_target32): Likewise. (grub_host_to_target64): Likewise. * util/sparc64/ieee1275/grub-setup.c (grub_target_to_host16): New definition. (grub_target_to_host32): Likewise. (grub_target_to_host64): Likewise. (grub_host_to_target16): Likewise. (grub_host_to_target32): Likewise. (grub_host_to_target64): Likewise. 2010-05-17 BVK Chaitanya Source tree is reorganized for emu build. * include/grub/util/console.h: Move from here... * include/grub/emu/console.h: ...to here. * include/grub/util/getroot.h: Move from here... * include/grub/emu/getroot.h: ...to here. * include/grub/util/hostdisk.h: Move from here... * include/grub/emu/hostdisk.h: ...to here. * util/console.c: Move from here... * kern/emu/console.c: ...to here. * util/getroot.c: Move from here... * kern/emu/getroot.c: ...to here. * util/grub-emu.c: Move from here... * kern/emu/main.c: ...to here. * util/hostdisk.c: Move from here... * kern/emu/hostdisk.c: ...to here. * util/hostfs.c: Move from here... * kern/emu/hostfs.c: ...to here. * util/mm.c: Move from here... * kern/emu/mm.c: ...to here. * util/pci.c: Move from here... * bus/emu/pci.c: ...to here. * util/sdl.c: Move from here... * video/emu/sdl.c: ...to here. * util/time.c: Move from here... * kern/emu/time.c: ...to here. * util/usb.c: Move from here... * bus/usb/emu/usb.c: ...to here. * include/grub/emu/misc.h: New header for grub-emu functions. * kern/emu/misc.c: grub-emu functions separated from util/misc.c * conf/any-emu.rmk: Rule updates for above renames. * conf/common.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/i386-qemu.rmk: Likewise. * conf/mips.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86-efi.rmk: Likewise. * disk/lvm.h: #include updates for above renames. * util/grub-mkrelpath.c: Likewise. * util/grub-probe.c: Likewise. * util/i386/pc/grub-setup.c: Likewise. * util/sparc64/ieee1275/grub-setup.c: Likewise. * kern/emu/console.c: Likewise. * kern/emu/getroot.c: Likewise. * kern/emu/hostdisk.c: Likewise. * kern/emu/main.c: Likewise. (was grub-emu.c earlier) * include/grub/dl.h: Remove grub_dl_{ref,unref}. * include/grub/util/misc.h: Move grub-emu functions to emu/misc.h. * kern/dl.c: Handle null mod in grub_dl_{ref,unref}. * util/misc.c: Remove grub-emu functions. 2010-05-13 Vladimir Serbinenko Fix gfxmenu crash. Reported by: Thorsten Grützmacher. * gfxmenu/gui_circular_progress.c (circprog_destroy): Unregister timeout hook. (circprog_set_property): Register and unregister timeout hook. * gfxmenu/gui_label.c (grub_gui_label): New fields template and value. (label_destroy): Free template. and unregister hook. (label_set_state): New function. (label_set_property): Handle templates and hooks. * gfxmenu/gui_progress_bar.c (progress_bar_destroy): Unregister timeout hook. (progress_bar_set_property): Register and unregister timeout hook. * gfxmenu/view.c (TIMEOUT_COMPONENT_ID): Move from here ... * include/grub/gui.h (GRUB_GFXMENU_TIMEOUT_COMPONENT_ID): ...to here * gfxmenu/view.c (grub_gfxmenu_timeout_notifications): New variable. (update_timeout_visit): Removed. (update_timeouts): New function. (redraw_timeouts): Likewise. (grub_gfxmenu_print_timeout): Use update_timeouts and redraw_timeouts. (grub_gfxmenu_clear_timeout): Likewise. * include/grub/gui.h (grub_gfxmenu_set_state_t): New type. (grub_gfxmenu_timeout_notify): Likewise. (grub_gfxmenu_timeout_notifications): New external variable. (grub_gfxmenu_timeout_register): New function. (grub_gfxmenu_timeout_unregister): Likewise. 2010-05-09 Vladimir Serbinenko Transform (broken) vga terminal into (working) vga video driver. * conf/i386-pc.rmk (vga_mod_SOURCES): Change term/i386/pc/vga.c to video/i386/pc/vga.c. * include/grub/video.h (grub_video_driver_id): Add GRUB_VIDEO_DRIVER_VGA. * term/i386/pc/vga.c: Renamed to ... * video/i386/pc/vga.c: ...this (DEBUG_VGA): Removed. (CHAR_WIDTH): Likewise. (CHAR_HEIGHT): Likewise. (TEXT_WIDTH): Likewise. (TEXT_HEIGHT): Likewise. (DEFAULT_FG_COLOR): Likewise. (DEFAULT_BG_COLOR): Likewise. (colored_char): Likewise. (xpos): Likewise. (ypos): Likewise. (cursor_state): Likewise. (fg_color): Likewise. (bg_color): Likewise. (text_buf): Likewise. (page): Likewise. (font): Likewise. (framebuffer): New variable. (set_read_map): Disabled. (setup): New variable. (is_target): Likewise. (grub_vga_mod_init): Likewise. (grub_vga_mod_fini): Likewise. (check_vga_mem): Likewise. (write_char): Likewise. (write_cursor): Likewise. (scroll_up): Likewise. (grub_vga_putchar): Likewise. (grub_vga_getcharwidth): Likewise. (grub_vga_getwh): Likewise. (grub_vga_getxy): Likewise. (grub_vga_gotoxy): Likewise. (grub_vga_cls): Likewise. (grub_vga_setcolorstate): Likewise. (grub_vga_setcursor): Likewise. (grub_video_vga_init): New function. (grub_video_vga_setup): Likewise. (grub_video_vga_fini): Likewise. (update_target): Likewise. (grub_video_vga_blit_bitmap): Likewise. (grub_video_vga_blit_render_target): Likewise. (grub_video_vga_set_active_render_target): Likewise. (grub_video_vga_get_active_render_target): Likewise. (grub_video_vga_swap_buffers): Likewise. (grub_video_vga_set_palette): Likewise. (grub_video_vga_get_info_and_fini): Likewise. (grub_vga_term): Removed. (grub_video_vga_adapter): New variable. (GRUB_MOD_INIT): Register a video driver instead of terminal. (GRUB_MOD_FINI): Unrefister a video driver instead of terminal. 2010-05-05 Vladimir Serbinenko * video/readers/jpeg.c: Indented. 2010-05-05 Vladimir Serbinenko Various jpeg cleanups. * video/readers/jpeg.c (grub_jpeg_get_huff_code): Use ARRAY_SIZE. (grub_jpeg_decode_quan_table): Use sizeof. (grub_jpeg_decode_du): Use ARRAY_SIZE. 2010-05-05 Peter Hurley (tiny change) * video/readers/jpeg.c (grub_jpeg_decode_huff_table): Loop over all tables. Ignore non-last ac bit. (grub_jpeg_decode_quan_table): Likewise. 2010-05-05 Vladimir Serbinenko * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New value GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM. * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM on qemu. * kern/ieee1275/init.c (grub_claim_heap): Don0t allocate below 1.5MiB if GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM is set. 2010-05-05 Vladimir Serbinenko * term/ieee1275/ofconsole.c (grub_ofconsole_getkey): Fix off-by-one error. 2010-05-05 Vladimir Serbinenko * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Support C0 code. 2010-05-03 Vladimir Serbinenko * commands/parttool.c (grub_cmd_parttool): Fix #if !GRUB_NO_MODULES condition. 2010-05-03 Vladimir Serbinenko * kern/mm.c (grub_real_malloc): Put magic and size assignment in common part. 2010-05-03 Vladimir Serbinenko * kern/mm.c (grub_mm_init_region): Check for region size after aligning pointers. 2010-05-03 Vladimir Serbinenko * kern/mm.c (grub_real_malloc): Fix size calculation when extra == 0. 2010-05-01 Christian Franke * util/grub-mkconfig_lib.in (make_system_path_relative_to_its_root): Remove broken Cygwin path conversion. * util/misc.c: [__CYGWIN__] Add include and define. [__CYGWIN__] (get_win32_path): Copy function from getroot.c, modify for Cygwin 1.7. (make_system_path_relative_to_its_root): Simplify loop, replace early return by break. [__CYGWIN__] Add conversion to win32 path. Include "/" case in trailing slash removal. 2010-05-01 Vladimir Serbinenko * kern/main.c (grub_load_config): Fix copy-pasted comment. Reported by: Seth Goldberg 2010-05-01 Vladimir Serbinenko * commands/help.c (grub_cmd_help): Fix a typo. Reported by: Seth Goldberg 2010-05-01 Vladimir Serbinenko * commands/hashsum.c (GRUB_MOD_INIT): Remove duplication of command name and add N_. * commands/i386/pc/drivemap.c (GRUB_MOD_INIT): Likewise. * commands/iorw.c (GRUB_MOD_INIT): Likewise. * commands/password_pbkdf2.c (GRUB_MOD_INIT): Likewise. * commands/regexp.c (GRUB_MOD_INIT): Likewise. * commands/setpci.c (GRUB_MOD_INIT): Likewise. * commands/terminal.c (GRUB_MOD_INIT): Likewise. * efiemu/main.c (GRUB_MOD_INIT): Likewise. * font/font_cmd.c (GRUB_MOD_INIT): Likewise. * kern/corecmd.c (GRUB_MOD_INIT): Likewise. * mmap/mmap.c (GRUB_MOD_INIT): Likewise. * normal/context.c (GRUB_MOD_INIT): Likewise. * normal/main.c (GRUB_MOD_INIT): Likewise. * term/gfxterm.c (GRUB_MOD_INIT): Likewise. * term/serial.c (GRUB_MOD_INIT): Likewise. * term/terminfo.c (GRUB_MOD_INIT): Likewise. 2010-05-01 Vladimir Serbinenko * kern/mm.c (grub_real_malloc): Satisfy alignment requirement when extra == 0. 2010-05-01 Vladimir Serbinenko * commands/iorw.c: New file. * conf/i386.rmk (pkglib_MODULES): Add iorw.mod. (iorw_mod_SOURCES): New variable. (iorw_mod_CFLAGS): Likewise. (iorw_mod_LDFLAGS): Likewise. 2010-05-01 Vladimir Serbinenko Hotkey support * include/grub/menu.h (grub_menu_entry): New field 'hotkey'. * normal/main.c (hotkey_aliases): New variable. (grub_normal_add_menu_entry): Parse "--hotkey". * normal/menu_text.c (run_menu): Handle hotkeys. 2010-05-01 Vladimir Serbinenko * kern/i386/coreboot/init.c (grub_machine_init): Call grub_machine_mmap_init on qemu. 2010-05-01 Vladimir Serbinenko * boot/i386/qemu/boot.S: Add a missing .code16. 2010-05-01 Vladimir Serbinenko Use LBIO on coreboot. * conf/i386-coreboot.rmk (kernel_img_SOURCES): Change kern/i386/multiboot_mmap.c to kern/i386/coreboot/mmap.c. * include/grub/i386/coreboot/memory.h (GRUB_LINUXBIOS_MEMBER_LINK): New declaration. * kern/i386/coreboot/init.c (grub_machine_init): Don't call grub_machine_mmap_init on coreboot. * kern/i386/coreboot/mmap.c (grub_linuxbios_table_iterate): Handle GRUB_LINUXBIOS_MEMBER_LINK. (grub_machine_mmap_iterate): Fix declaration. * kern/i386/coreboot/startup.S: Don't save mbi location on coreboot. 2010-05-01 Vladimir Serbinenko Split coreboot and multiboot ports. * conf/i386-multiboot.rmk: New file. * configure.ac: Add multiboot port. * include/grub/i386/multiboot/boot.h: New file. * include/grub/i386/multiboot/console.h: Likewise. * include/grub/i386/multiboot/init.h: Likewise. * include/grub/i386/multiboot/kernel.h: Likewise. * include/grub/i386/multiboot/loader.h: Likewise. * include/grub/i386/multiboot/memory.h: Likewise. * include/grub/i386/multiboot/serial.h: Likewise. * include/grub/i386/multiboot/time.h: Likewise. * include/grub/multiboot.h: Add GRUB_MACHINE_MULTIBOOT to ifdef. * loader/multiboot.c: Likewise. * loader/multiboot_mbi2.c: Likewise. * util/grub-mkrescue.in: Generate multiboot rescue. 2010-05-01 Vladimir Serbinenko * kern/parser.c (grub_parser_execute): Cope with read-only config. 2010-05-01 Vladimir Serbinenko Merge handling of input and output terminals. Fix a hang. * commands/terminal.c (abstract_terminal): New struct. (handle_command): New function. Based on grub_cmd_terminal_input. (grub_cmd_terminal_input): Use handle_command. (grub_cmd_terminal_output): Use handle_command. 2010-05-01 BVK Chaitanya Fix comment handling. * tests/grub_script_comments.in: New testcase. * conf/tests.rmk: Rules for new testcase. * script/yylex.l: Updated flex rules. 2010-04-28 Samuel Thibault * docs/grub.texi (play): Document that zero pitches produce rests. * commands/i386/pc/play.c (grub_cmd_play): Call 'grub_file_open' only if argc is 1. 2010-04-27 Vladimir Serbinenko * conf/x86-efi.rmk (linux_mod_SOURCES): Write explicitly to avoid autogen issues. 2010-04-26 Christian Franke * include/grub/util/getroot.h (grub_get_prefix): Remove prototype. * util/getroot.c [__CYGWIN__] (get_win32_path): Remove function. (grub_get_prefix): Remove function. * util/grub-emu.c (main): Replace grub_get_prefix () call by make_system_path_relative_to_its_root (). * util/sparc64/ieee1275/grub-setup.c (main): Likewise. 2010-04-24 Christian Franke * Makefile.in (TARGET_LDFLAGS): Add -static-libgcc. (kernel_img_LDFLAGS): Remove -static-libgcc. 2010-04-24 Christian Franke * configure.ac: Do not CHECK_BSS_START_SYMBOL and CHECK_END_SYMBOL if grub-emu is built. Unset TARGET_OBJ2ELF if grub-emu is built without module support. 2010-04-24 Jiro SEKIBA Nilfs2 support. * conf/common.rmk (grub_probe_SOURCES): Add fs/nilfs2.c. (grub_fstest_SOURCES): Likewise. (pkglib_MODULES): Add nilfs2.mod. (nilfs2_mod_SOURCES): New variable. (nilfs2_mod_CFLAGS): Likewise. (nilfs2_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/nilfs2.c. * conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Add fs/nilfs2.c. * fs/nilfs2.c: New file. 2010-04-21 Vladimir Serbinenko * configure.ac: Refuse to compile for x86_64-efi is mcmodel=large is not supported. 2010-04-19 Grégoire Sutre Add grub-mkconfig support for NetBSD. * util/grub.d/10_netbsd.in: grub-mkconfig helper script for NetBSD. * util/grub-mkconfig.in: export new NetBSD specific variables. * po/POTFILES-shell: added 10_netbsd.in. * util/grub-mkconfig_lib.in: check for gettext binary, default to echo. 2010-04-19 BVK Chaitanya Fix emu build with grub-emu-pci and grub-emu-modules. * include/grub/util/misc.h: Export grub_util_{info,error,warn} functions. * include/grub/libpciaccess.h: New file. * conf/any-emu.rmk: Update kernel headers for emu build. 2010-04-19 Vladimir Serbinenko * fs/udf.c (grub_udf_iterate_dir): Silence a spurious warning. 2010-04-19 Vladimir Serbinenko * fs/udf.c (grub_udf_iterate_dir): Decode the Unicode filenames. 2010-04-18 Vladimir Serbinenko * boot/sparc64/ieee1275/boot.S: Various size-reducing changes. Retrieve chosen/bootpath if bootpath isn't hardcoded. * conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Add util/ieee1275/ofpath.c. * util/sparc64/ieee1275/grub-ofpathname.c: Renamed to ... * util/ieee1275/grub-ofpathname.c: ... this. All users updated * include/grub/sparc64/ieee1275/boot.h (GRUB_BOOT_MACHINE_KERNEL_SECTOR): Renamed to ... (GRUB_BOOT_MACHINE_KERNEL_BYTE): ...this. Moved 8 bytes lower. * util/hostdisk.c (grub_util_biosdisk_get_osdev): New function. * util/ieee1275/ofpath.c (grub_util_devname_to_ofpath): Make argument const char *. * util/sparc64/ieee1275/grub-setup.c (compute_dest_ofpath): Removed. (setup): Use KERNEL_BYTE instead of KERNEL_SECTOR. Use grub_util_devname_to_ofpath. Zero-fill boot_devpath on same disk install. 2010-04-18 Grégoire Sutre * util/grub-mkconfig.in: Corrected two == equality tests. Set grub_prefix as in grub-install for NetBSD and OpenBSD. * configure.ac: All definitions and uses of TARGET_IMG_LDFLAGS_AC now expect a number appended to it. * acinclude.m4 (grub_PROG_OBJCOPY_ABSOLUTE): ${TARGET_IMG_LDFLAGS_AC} expects a number appended to it. 2010-04-18 Vladimir Serbinenko * po/POTFILES: Renamed multiboot_loader.c to multiboot.c 2010-04-18 Vladimir Serbinenko * util/hostdisk.c (make_device_name): Change to new partition naming. 2010-04-17 Vladimir Serbinenko * disk/lvm.c (grub_lvm_memberlist): Issue an error if pv->disk = 0. 2010-04-17 Christian Franke * Makefile.in: Add missing localedir setting. 2010-04-14 Colin Watson Restore TEXTDOMAINDIR correction from r1889, lost apparently by mistake in r2156. Noticed by Anthony Fok. * util/grub.d/10_kfreebsd.in (TEXTDOMAINDIR): Set to lowercased @localedir@. * util/grub.d/10_linux.in (TEXTDOMAINDIR): Likewise. 2010-04-14 BVK Chaitanya Fix a spurious, uninitialized variable warning. * loader/i386/bsdXX.c (grub_freebsd_load_elfmodule_obj): Initialize variable, shdr. (grub_freebsd_load_elfmodule): Likewise. (grub_freebsd_load_elf_meta): Likewise. 2010-04-13 BVK Chaitanya Fix for escaped dollar in double quoted strings. * script/yylex.l: Updated flex rules. * conf/tests.rmk: Rule for new testcase. * tests/grub_script_dollar.in: New testcase. 2010-04-13 Carles Pina i Estany 2010-04-13 Colin Watson Enclose all translated strings in grub.cfg in single quotes, and escape them appropriately (Ubuntu bug #552921). * util/grub-mkconfig_lib.in (gettext_quoted): New function. * util/grub.d/10_hurd.in: Use it. * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise. * util/grub.d/10_linux.in (linux_entry): Likewise. 2010-04-11 Vladimir Serbinenko Fix cygwin compilation. * configure.ac: Define NEED_REGISTER_FRAME_INFO. * include/grub/misc.h (__register_frame_info) [NEED_REGISTER_FRAME_INFO && !UTIL]: New export. (__deregister_frame_info) [NEED_REGISTER_FRAME_INFO && !UTIL]: Likewise. * kern/misc.c (__register_frame_info) [NEED_REGISTER_FRAME_INFO && !UTIL]: New empty function. (__deregister_frame_info) [NEED_REGISTER_FRAME_INFO && !UTIL]: Likewise. 2010-04-11 Vladimir Serbinenko * configure.ac: Respect grub_cv_asm_uscore when defining dummy symbols. 2010-04-11 Vladimir Serbinenko Unify libgcc processing. * Makefile.in (kernel_img_LDFLAGS): New variable. * conf/common.rmk (kernel_img_HEADERS): Add libgcc.h. * conf/i386-coreboot.rmk (kernel_img_LDFLAGS): Append instead of overwriting. * conf/i386-ieee1275.rmk (kernel_img_LDFLAGS): Likewise. * conf/i386-pc.rmk (kernel_img_LDFLAGS): Likewise. * conf/i386-qemu.rmk (kernel_img_LDFLAGS): Likewise. * conf/x86-efi.rmk (kernel_img_LDFLAGS): Likewise. * conf/mips-qemu-mips.rmk (kernel_img_LDFLAGS): Append instead of overwriting. Remove -lgcc and -static-libgcc * conf/mips-yeeloong.rmk (kernel_img_LDFLAGS): Likewise. * conf/mips.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h * conf/powerpc-ieee1275.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h (kernel_img_LDFLAGS): Append instead of overwriting. Remove -lgcc and -static-libgcc * conf/sparc64-ieee1275.rmk: Likewise. * include/grub/powerpc/libgcc.h: Move to ... * include/grub/libgcc.h: .. this. * include/grub/libgcc.h: Don't export most of the function on x86. (__bswapsi2): New export. (__bswapdi2): Likewise. * include/grub/mips/libgcc.h: Removed. * include/grub/sparc64/libgcc.h: Likewise. 2010-04-10 Vladimir Serbinenko * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Remove disk_info_msg (conflicts with gettexting into languages with cases). 2010-04-10 Grégoire Sutre Add grub-probe support for NetBSD. * util/getroot.c (find_root_device): Convert block device to character device on NetBSD. * util/probe.c (probe): Require character device on NetBSD. * util/hostdisk.c: NetBSD specific headers. (configure_device_driver): new function to tune device driver parameters (currently only for NetBSD floppy driver). (grub_util_biosdisk_open): NetBSD specific code (get disk size via disklabel ioctl). (open_device): call configure_device_driver on NetBSD. (convert_system_partition_to_system_disk): NetBSD specific code. (device_is_wholedisk): Likewise. (grub_util_biosdisk_get_grub_dev): Likewise. (make_device_name): Fixed a typo in bsd_part_str. * configure.ac: check for opendisk() and getrawpartition() on NetBSD and set LIBUTIL. * Makefile.in: add LIBUTIL to LIBS. 2010-04-10 BVK Chaitanya Documentation fix. * util/grub-script-check.c: Better help message. 2010-04-10 BVK Chaitanya Fix FreeBSD build. * configure.ac: Flex version check. * conf/common.rmk: Add -Wno-error to sh.mod. * script/yylex.l: Remove all #pragma. 2010-04-10 Vladimir Serbinenko * include/grub/util/misc.h (canonicalise_file_name): Add missing prototype. Reported by: Seth Goldberg. 2010-04-10 Vladimir Serbinenko * loader/multiboot.c (GRUB_MOD_INIT) [GRUB_USE_MULTIBOOT2]: Rename "module" to "module2". Reported by: Seth Goldberg. 2010-04-10 Vladimir Serbinenko * include/grub/efi/memory.h (grub_machine_mmap_iterate): Remove EXPORT_FUNC. Reported by: Seth Goldberg. 2010-04-10 Vladimir Serbinenko * lib/posix_wrap/locale.h: Add missing file. Reported by: Seth Goldberg. 2010-04-10 Vladimir Serbinenko grub-emu module load support. * Makefile.in (TARGET_NO_MODULES): New variable. All users of NO_DYNAMIC_MODULES switched to this. (TARGET_CFLAGS): Add -DGRUB_TARGET_NO_MODULES=1 if applicable. (CFLAGS): Likewise. * conf/any-emu.rmk: Generate symlist. (kernel_img_HEADERS): Add util/datetime.h. (kernel_img_HEADERS) [sdl]: Add sdl.h. (kernel_img_HEADERS) [libusb]: Add libusb.h. (kernel_img_SOURCES) [TARGET_NO_MODULES = no && !x86]: Add kern/$(target_cpu)/cache.S. * configure.ac (grub-emu-modules): New option. * genmk.rb: Handle multiple source lists. * include/grub/sdl.h: New file. * include/grub/libusb.h: Likewise. * util/grub-emu.c (main): Hanle (host) root. * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Error with GRUB_ERR_UNKNOWN_DEVICE. * util/misc.c: Move mm functions to ... * util/mm.c: ... here. All users updated. 2010-04-09 Vladimir Serbinenko * Makefile.in (RMKFILES): Search in srcdir and not current directory. (MAINTAINER_CLEANFILES): Don't add $(srcdir) to MKFILES. Add few missing files. (maintainer-clean): Remove libgcrypt-grub. 2010-04-09 Vladimir Serbinenko * term/efi/console.c (grub_console_checkkey): Macroify key contants. 2010-04-09 EFI Coder * normal/menu_text.c (print_message): Clean up the message and show the Fn information when on EFI * term/efi/console.c (grub_console_checkkey): Add F4 support. 2010-04-09 Vladimir Serbinenko * normal/autofs.c (read_fs_list): New parameter 'prefix'. All users updated. * normal/crypto.c (read_crypto_list): Likewise. * normal/dyncmd.c (read_command_list): Likewise. * normal/term.c (read_terminal_list): Likewise. * normal/main.c (read_lists): Use explicit prefix. (read_lists_hook): Use read_lists. (grub_normal_execute): Likewise. 2010-04-09 Vladimir Serbinenko * util/grub-mkrescue.in: Fix incorrect path in coreboot part. Reported by: Thomas Schmitt. Add -no-emul-boot to grub-mkisofs parameters. 2010-04-09 Vladimir Serbinenko * font/font.c: Indented. 2010-04-09 BVK Chaitanya Elif support to GRUB script (by Deepak Vankadaru). * tests/grub_script_if.in: New testcase. * conf/tests.rmk: Rule for new testcase. * script/parser.y: Grammar rules for elif. 2010-04-09 BVK Chaitanya While and until loops support to GRUB script. * include/grub/script_sh.h (grub_script_cmdwhile): New struct. (grub_script_create_cmdwhile): New function prototype. (grub_script_execute_cmdwhile): New function prototype. * script/execute.c (grub_script_execute_cmdwhile): New function. * script/parser.y (command): New commands. (whilecmd): New grammar rule. (untilcmd): New grammar rule. * script/script.c (grub_script_create_cmdwhile): New function. * util/grub-script-check.c (grub_script_execute_cmdwhile): New function. * tests/grub_script_while1.in: New testcase. * conf/tests.rmk: Rule for new testcase. 2010-04-09 Vladimir Serbinenko * util/grub.d/00_header.in: Add few missing quotes. Recognise *.jpeg as *.jpg. 2010-04-09 Mario Vazquez GRUB_BACKGROUND support. * util/grub-mkconfig.in: Export GRUB_BACKGROUND. * util/grub.d/00_header.in: Parse GRUB_BACKGROUND. 2010-04-09 Vladimir Serbinenko Load fonts and modules for gfxmenu in grub-mkconfig. Idea by: Mario Vazquez * util/grub.d/00_header.in: Load pf2 and image modules. 2010-04-09 Vladimir Serbinenko grub-mkconfig multiple terminal support. * util/grub-mkconfig.in: Handle multiple terminals correctly. * util/grub.d/00_header.in: Likewise. 2010-04-09 Vladimir Serbinenko * Makefile.in: Specify files explicitly instead of using $< and $@ since we use cd $(srcdir). 2010-04-08 Colin Watson * util/grub.d/10_linux.in: Only use the first word of GRUB_DISTRIBUTOR for --class, to avoid problems if somebody puts spaces in GRUB_DISTRIBUTOR. * util/grub.d/10_kfreebsd.in: Likewise. * util/grub.d/10_hurd.in: Likewise. 2010-04-06 BVK Chaitanya Fix unit testing framework for Qemu 0.12. * tests/util/grub-shell.in: Remove -serial stdio option. 2010-04-06 Vladimir Serbinenko POSIX header file wrappers. * lib/posix_wrap/assert.h: New file. Wrapper for its POSIX equivalents. * lib/posix_wrap/ctype.h: Likewise. * lib/posix_wrap/errno.h: Likewise. * lib/posix_wrap/langinfo.h: Likewise. * lib/posix_wrap/limits.h: Likewise. * lib/posix_wrap/localcharset.h: Likewise. * lib/posix_wrap/stdint.h: Likewise. * lib/posix_wrap/stdio.h: Likewise. * lib/posix_wrap/stdlib.h: Likewise. * lib/posix_wrap/string.h: Likewise. * lib/posix_wrap/sys/types.h: Likewise. * lib/posix_wrap/unistd.h: Likewise. * lib/posix_wrap/wchar.h: Likewise. * lib/posix_wrap/wctype.h: Likewise. * conf/common.rmk (grub_script.yy.c): Remove #include elimination. (grub_script.yy.h): Likewise. * script/yylex.l: Remove POSIX emulation #defines. * Makefile.in (POSIX_CFLAGS): New variable. (GNULIB_UTIL_CFLAGS): Likewise. Regexp support. * conf/common.rmk (pkglib_MODULES): Add regexp.mod. (regexp_mod_SOURCES): New variable. (regexp_mod_CFLAGS): Likewise. (regexp_mod_LDFLAGS): Likewise. * commands/regexp.c: New file. * gnulib/regcomp.c: New file. Imported from gnulib. * gnulib/regex.c: Likewise. * gnulib/regex_internal.c: Likewise. * gnulib/regex_internal.h: Likewise. * gnulib/regexec.c: Likewise. * gnulib/regex.h: Likewise. 2010-04-05 Vladimir Serbinenko * loader/i386/multiboot_mbi.c (grub_multiboot_load): Correctly report unsupported video mode types. 2010-04-05 Vladimir Serbinenko * kern/i386/pc/startup.S (grub_getrtsecs): Removed (dead code). 2010-04-05 Vladimir Serbinenko * include/grub/i386/pc/init.h (grub_get_mmap_entry): Don't export. * conf/i386-pc.rmk (kernel_img_HEADERS): Remove machine/init.h. 2010-04-04 Vladimir Serbinenko Remove unused grub_vga_get_font. * kern/i386/pc/startup.S (grub_vga_get_font): Removed. * include/grub/i386/pc/vga.h (grub_vga_get_font): Likewise. 2010-04-03 Grégoire Sutre * kern/misc.c: Disable the __enable_execute_stack hack for utilities. * include/grub/misc.h: Likewise. 2010-04-03 Grégoire Sutre * util/grub-install.in: Add `|| exit 1' to all grub-probe calls for which failure is fatal. 2010-04-03 Grégoire Sutre * util/grub-install.in: Use mkdir -p to create grub directory. * util/i386/efi/grub-install.in: Likewise. * util/ieee1275/grub-install.in: Likewise. 2010-04-03 Grégoire Sutre * Makefile.in (LEX): new variable. 2010-04-03 Grégoire Sutre * util/i386/efi/grub-dumpdevtree: replaced the non-portable `==' by `=' and added double quotes on operands of this equality test. 2010-04-03 Vladimir Serbinenko * Makefile.in (uninstall): Remove a leftover debug echo. Reported by: Grégoire Sutre 2010-04-03 Vladimir Serbinenko MIPS multiboot2 support. * conf/mips.rmk (pkglib_MODULES): Add multiboot2.mod. (multiboot2_mod_SOURCES): New variable. (multiboot2_mod_CFLAGS): Likewise. (multiboot2_mod_LDFLAGS): Likewise. (multiboot2_mod_ASFLAGS): Likewise. * include/grub/i386/multiboot.h (MULTIBOOT_INITIAL_STATE): New definition. (MULTIBOOT_ENTRY_REGISTER): Likewise. (MULTIBOOT_MBI_REGISTER): Likewise. (MULTIBOOT_ARCHITECTURE_CURRENT): Likewise. (MULTIBOOT_ELF32_MACHINE): Likewise. (MULTIBOOT_ELF64_MACHINE): Likewise. * include/grub/mips/multiboot.h: New file. * include/grub/video.h (grub_video_driver_id): New type GRUB_VIDEO_DRIVER_SM712. (grub_video_get_info_and_fini): Export. (grub_video_get_palette): Likewise. (grub_video_get_driver_id): Likewise. * include/multiboot2.h: Resynced with spec. * loader/i386/multiboot.c: Moved from here ... * loader/multiboot.c: ... here. All users updated. (grub_multiboot_boot): Use platform-specific macros. * loader/i386/multiboot_elfxx.c: Moved from here ... * loader/multiboot_elfxx.c: ... here. All users updated. (E_MACHINE): Use MULTIBOOT_ELF32_MACHINE and MULTIBOOT_ELF64_MACHINE. * loader/i386/multiboot_mbi2.c (grub_multiboot_load): Check arcitecture. * video/sm712.c (grub_video_sm712_adapter): Add missing id field. 2010-04-02 Vladimir Serbinenko Import gnulib argp module. * gnulib/argp-ba.c: New file. * gnulib/argp-eexst.c: Likewise. * gnulib/argp-fmtstream.c: Likewise. * gnulib/argp-fmtstream.h: Likewise. * gnulib/argp-fs-xinl.c: Likewise. * gnulib/argp-help.c: Likewise. * gnulib/argp-namefrob.h: Likewise. * gnulib/argp-parse.c: Likewise. * gnulib/argp-pin.c: Likewise. * gnulib/argp-pv.c: Likewise. * gnulib/argp-pvh.c: Likewise. * gnulib/argp-version-etc.c: Likewise. * gnulib/argp-version-etc.h: Likewise. * gnulib/argp-xinl.c: Likewise. * gnulib/argp.h: Likewise. 2010-03-31 Vladimir Serbinenko * kern/device.c (grub_device_iterate): Clear errors after failed opening device. 2010-03-31 Vladimir Serbinenko * kern/ieee1275/openfw.c (grub_children_iterate): Skip device itself if returned by firmware. 2010-03-30 Vladimir Serbinenko * loader/i386/multiboot_mbi2.c (retrieve_video_parameters): Fix compilation on coreboot and qemu 2010-03-28 Vladimir Serbinenko * include/multiboot2.h: Resync with spec. 2010-03-28 Vladimir Serbinenko Multiboot2 tag support * conf/i386.rmk (multiboot2_mod_SOURCES): Replace loader/i386/multiboot_mbi.c with loader/i386/multiboot_mbi2.c. Remove loader/multiboot_loader.c. * include/grub/i386/multiboot.h (grub_multiboot_real_boot): Removed. (grub_multiboot2_real_boot): Likewise. * include/grub/multiboot.h (grub_multiboot_set_accepts_video): Removed. (grub_get_multiboot_mmap_count): New proto. (grub_fill_multiboot_mmap): Likewise. (grub_multiboot_set_video_mode): Likewise. (grub_multiboot_set_console): Likewise. (grub_multiboot_load): Likewise. (grub_multiboot_load_elf): Likewise. (GRUB_MULTIBOOT_CONSOLE_EGA_TEXT): New definition. (GRUB_MULTIBOOT_CONSOLE_FRAMEBUFFER): Likewise. * include/multiboot.h: Resynced with specification. * include/multiboot2.h: Resynced with specification. * loader/i386/multiboot_mbi.c (DEFAULT_VIDEO_MODE): Moved from here... * loader/i386/multiboot.c (DEFAULT_VIDEO_MODE): ... here. * loader/i386/multiboot_mbi.c (HAS_VGA_TEXT): Moved from here .. * include/grub/multiboot.h (GRUB_MACHINE_HAS_VGA_TEXT): ... here. All users updated. * loader/i386/multiboot_mbi.c (accepts_video): Moved from here... * loader/i386/multiboot.c (accepts_video): ... here. All users updated. * loader/i386/multiboot_mbi.c (grub_multiboot_set_accepts_video): Removed. * loader/i386/multiboot_mbi.c (grub_get_multiboot_mmap_len): Moved from here... * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): ... here. * loader/i386/multiboot_mbi.c (grub_fill_multiboot_mmap): Moved from here... * loader/i386/multiboot.c (grub_fill_multiboot_mmap): ... here. * loader/i386/multiboot_mbi.c (set_video_mode): Moved from here... * loader/i386/multiboot.c (grub_multiboot_set_video_mode): ... here. All users updated. * loader/i386/multiboot_mbi2.c: New file. 2010-03-27 Vladimir Serbinenko Resync with gnulib. * Makefile.in (GNULIB_CFLAGS): New variable. * conf/common.rmk (grub_mkisofs_CFLAGS): Add GNULIB_CFLAGS. (grub_script_check_CFLAGS): New variable. * gnulib/alloca.h: Resync with gnulib. * gnulib/error.c: Likewise. * gnulib/error.h: Likewise. * gnulib/fnmatch.c: Likewise. * gnulib/fnmatch_loop.c: Likewise. * gnulib/getdelim.c: Likewise. * gnulib/getline.c: Likewise. * gnulib/getopt.c: Likewise. * gnulib/getopt1.c: Likewise. * gnulib/getopt_int.h: Likewise. * gnulib/gettext.h: Likewise. * gnulib/progname.c: Likewise. * gnulib/progname.h: Likewise. 2010-03-27 Grégoire Sutre Fix a build failure (-Wundef -Werror) when ENABLE_NLS is not defined, which is the case with --disabled-nls. * include/grub/i18n.h: Use (defined(ENABLE_NLS) && ENABLE_NLS) instead of ENABLE_NLS in all #if preprocessor macros. * util/misc.c: Likewise. * util/mkisofs/mkisofs.c: Likewise. * util/mkisofs/mkisofs.h: Likewise. 2010-03-27 Vladimir Serbinenko Simplify Apple CC support. * commands/i386/pc/drivemap_int13h.S: Use LOCAL when possible. Add 0 byte at the end not to have a symbol with empty target. * mmap/i386/pc/mmap_helper.S: Likewise. * genmk.rb: Ignore errors 2030 and 2050. * kern/i386/pc/startup.S: Use LOCAL when possible. 2010-03-26 BVK Chaitanya Testcase and the fix for final semicolon on cmdline. * tests/grub_script_final_semicolon.in: New testcase. * conf/tests.rmk: Rules for the new testcase. * script/parser.y: Grammar fix. 2010-03-26 BVK Chaitanya Blank lines testcase for GRUB script. * tests/grub_script_blanklines.in: New testcase. * conf/tests.rmk: Rules for the new testcase. 2010-03-26 Vladimir Serbinenko Don't use __FILE__. * genmk.rb: Add -DGRUB_FILE to all C targets. * fs/reiserfs.c: Replace __FILE__ with GRUB_FILE. * include/grub/list.h: Likewise. * include/grub/misc.h: Likewise. * include/grub/mm.h: Likewise. * include/grub/test.h: Likewise. * kern/mm.c: Likewise. * lib/libgcrypt_wrap/cipher_wrap.h: Likewise. 2010-03-26 Vladimir Serbinenko Sunpc partitions support. * conf/common.rmk (grub_probe_SOURCES): Add partmap/sunpc.c. (grub_fstest_SOURCES): Likewise. (pkglib_MODULES): Add part_sunpc.mod. (part_sunpc_mod_SOURCES): New variable. (part_sunpc_mod_CFLAGS): Likewise. (part_sunpc_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/sunpc.c. * partmap/sunpc.c: New file. 2010-03-26 BVK Chaitanya For loop support to GRUB script. * include/grub/script_sh.h (grub_script_cmdfor): New struct. (grub_script_create_cmdfor): New function prototype. (grub_script_execute_cmdfor): New function prototype. * script/execute.c (grub_script_execute_cmdfor): New function. * script/parser.y (command): New for command. (forcmd): New grammar rule. * script/script.c (grub_script_create_cmdfor): New function. * util/grub-script-check.c (grub_script_execute_cmdfor): New function. * tests/grub_script_for1.in: New testcase. * conf/tests.rmk: Rules for new testcase. 2010-03-26 Vladimir Serbinenko Nested partitions * commands/blocklist.c (grub_cmd_blocklist): Don't check whether 'partition' is NULL, grub_partition_get_start already does that. * commands/loadenv.c (check_blocklists): Likewise. (write_blocklists): Likewise. * conf/common.rmk (grub_probe_SOURCES): Add partmap/bsdlabel.c. (grub_fstest_SOURCES): Likewise. (pkglib_MODULES): Add part_bsd.mod. (part_bsd_mod_SOURCES): New variable. (part_bsd_mod_CFLAGS): Likewise. (part_bsd_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/bsdlabel.c. (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. * include/grub/bsdlabel.h: New file. * include/grub/partition.h (grub_partition_map): Remove 'probe' and 'get_name'. (grub_partition): Add 'parent' and 'number'. Remove 'data'. (grub_partition_map_list): New variable. (grub_partition_map_register): Inline. (grub_partition_map_unregister): Likewise. (FOR_PARTITION_MAPS): New macro. (grub_partition_map_iterate): Removed. (grub_partition_get_start): Handle nested partitions. * include/grub/msdos_partition.h: Remove bsd-related entries. (grub_pc_partition): Remove. * kern/disk.c (grub_disk_close): Free partition data. (grub_disk_adjust_range): Handle nested partitions. * kern/partition.c (grub_partition_map_probe): New function. (grub_partition_probe): Parse name to number, handle subpartitions. (get_partmap): New function. (grub_partition_iterate): Handle subpartitions. (grub_partition_get_name): Likewise. * loader/i386/pc/bsd.c (grub_bsd_get_device): Likewise. * loader/i386/multiboot.c (grub_multiboot_get_bootdev): Likewise. * loader/i386/pc/chainloader.c (grub_chainloader_cmd): Likewise. * partmap/acorn.c (acorn_partition_map_iterate): Don't force raw access. Set 'number'. (acorn_partition_map_probe): Remove. (acorn_partition_map_get_name): Likewise. * partmap/amiga.c (amiga_partition_map_iterate): Don't force raw access. Set 'number'. Set 'index' to 0 since there can be only one partition entry per sector. (amiga_partition_map_probe): Remove. (amiga_partition_map_get_name): Likewise. * partmap/apple.c (apple_partition_map_iterate): Don't force raw access. Set 'number'. Set 'offset' and 'index' to real positions of partitions. (apple_partition_map_probe): Remove. (apple_partition_map_get_name): Likewise. * partmap/bsdlabel.c: New file. * partmap/gpt.c (gpt_partition_map_iterate): Don't force raw access. Set 'number'. Allocate 'data' so it can be correctly freed. Set 'index' to offset inside sector. (gpt_partition_map_probe): Remove. (gpt_partition_map_get_name): Likewise. * partmap/msdos.c (grub_partition_parse): Remove. (pc_partition_map_iterate): Don't force raw access. Set 'number'. Make 'ext_offset' a local variable. (pc_partition_map_probe): Remove. (pc_partition_map_get_name): Remove. * partmap/sun.c (sun_partition_map_iterate): Don't force raw access. Set 'number'. (sun_partition_map_probe): Remove. (sun_partition_map_get_name): Likewise. * parttool/msdospart.c (grub_pcpart_boot): Handle nested partitions. (grub_pcpart_type): Likewise. * util/hostdisk.c (open_device): Handle new numbering scheme. (grub_util_biosdisk_get_grub_dev): Handle nested partitions. * util/i386/pc/grub-setup.c (setup): Handle new numbering scheme. * util/grub-probe.c (probe_partmap): Handle nested paritions. * util/grub-install.in: Insert all subpartition modules. * util/ieee1275/grub-install.in: Likewise. 2010-03-24 Adrian Glaubitz * kern/dl.c (grub_dl_resolve_symbols): Improve error message grammar. 2010-03-24 Colin Watson * .bzrignore: Add grub-bin2h, grub-reboot, and grub-set-default. 2010-03-21 Colin Watson * util/grub-install.in: Copy .mo files from @datadir@/locale, to match where 'make install' puts them. * util/i386/efi/grub-install.in: Likewise. 2010-03-19 Colin Watson * .bzrignore: Add gentrigtables, grub-script-check, grub_script_check_init.c, grub_script_check_init.h, and trigtables.c. 2010-03-18 Vladimir Serbinenko * kern/parser.c: Indented. 2010-03-17 Vladimir Serbinenko * term/i386/pc/vesafb.c: Removed (orphaned, deprecated and broken). 2010-03-17 Vladimir Serbinenko * video/fb/fbblit.c (grub_video_fbblit_blend_XXXA8888_1bit): Handle alpha_mask_size == 0 case. 2010-03-14 BVK Chaitanya GRUB shell lexer and parser improvements. * conf/any-emu.rmk: Build rule updates. * conf/common.rmk: Likewise. * conf/i386-coreboot.rmk: Likewise. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * configure.ac: Configure check for flex. * include/grub/script_sh.h (grub_script_arg_type_t): More argument types. (grub_lexer_param): Struct member updates. (grub_parser_param): Likewise. (GRUB_LEXER_TOKEN_MAX): Maximum token size. (GRUB_LEXER_RECORD_INCREMENT): Memory increments' size. (grub_script_lexer_init): Prototype update. (grub_script_lexer_record_start): Likewise. (grub_script_lexer_record_stop): Likewise. (grub_script_lexer_yywrap): New function prototype. (grub_script_lexer_fini): Likewise. (grub_script_execute_argument_to_string): Removed by... (grub_script_execute_argument_to_argv): ...better version. * script/execute.c (ROUND_UPTO): New macro. (grub_script_execute_cmdline): Out of memory fixes. (grub_script_execute_menuentry): Likewise. (grub_script_execute_argument_to_string): Removed. Update all users by... (grub_script_execute_argument_to_argv): ...better version. * script/function.c (grub_script_function_create): Use grub_script_execute_argument_to_argv instead of grub_script_execute_argument_to_string. * script/lexer.c (check_varstate): Removed. (check_textstate): Removed. (grub_script_lexer_record_start): Likewise. (grub_script_lexer_record_stop): Likewise. (recordchar): Replaced with... (grub_script_lexer_record): ...new function. (nextchar): Removed. (grub_script_lexer_init): Rewritten. (grub_script_yylex): Rewritten. (append_newline): New function. (grub_script_lexer_yywrap): New function. (grub_script_lexer_fini): New function. (grub_script_yyerror): Sets error flag. * script/yylex.l: New file. (grub_lexer_yyfree): Wrapper for flex yyffre. (grub_lexer_yyalloc): Likewise. (grub_lexer_yyrealloc): Likewise. * script/parser.y: Refactored. * script/script.c (grub_script_arg_add): Out of memory fixes. (grub_script_add_arglist): Likewise. (grub_script_create_cmdline): Likewise. (grub_script_create_cmdmenu): Likewise. (grub_script_add_cmd): Likewise. (grub_script_parse): Use grub_script_lexer_fini to deallocated. * util/grub-script-check.c (grub_script_execute_menuentry): Remove unnecessary code. * tests/grub_script_echo1.in: New testcase. * tests/grub_script_vars1.in: New testcase. * tests/grub_script_echo_keywords.in: New testcase. 2010-03-14 Vladimir Serbinenko Remove some redundancy in build system. * Makefile.in (TARGET_CFLAGS): Add -ffreestanding. (TARGET_ASFLAGS): Add -nostdinc -fno-builtin. (TARGET_LDFLAGS): Add -nostdlib. (TARGET_IMG_LDFLAGS): Likewise. * commands/lsmmap.c (grub_cmd_lsmmap) [GRUB_MACHINE_EMU]: Don't do anything since mmap isn't available. * conf/any-emu.rmk (kernel_img_SOURCES): Remove commands/boot.c. Add util/time.c. (pkglib_MODULES): Remove reboot.mod. (reboot_mod_SOURCES): Removed. (reboot_mod_CFLAGS): Likewise. (reboot_mod_LDFLAGS): Likewise. * conf/common.rmk (script/lexer.c_DEPENDENCIES): New variable. (MOSTLYCLEANFILES): Add symlist.c kernel_syms.lst. (DEFSYMFILES): Add kernel_syms.lst. (kernel_img_HEADERS): Add common headers. (symlist.c): New target. (kernel_syms.lst): Likewise. (pkglib_MODULES): Add memdisk.mod. (memdisk_mod_SOURCES): New variable. (memdisk_mod_CFLAGS): Likewise. (memdisk_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add reboot.mod. (reboot_mod_SOURCES): New variable. (reboot_mod_CFLAGS): Likewise. (reboot_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add date.mod. (date_mod_SOURCES): New variable. (date_mod_CFLAGS): Likewise. (date_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add datehook.mod. (datehook_mod_SOURCES): New variable. (datehook_mod_CFLAGS): Likewise. (datehook_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add lsmmap.mod. (lsmmap_mod_SOURCES): New variable. (lsmmap_mod_CFLAGS): Likewise. (lsmmap_mod_LDFLAGS): Likewise. (pkglib_MODULES): Add boot.mod. (boot_mod_SOURCES): New variable. (boot_mod_CFLAGS): Likewise. (boot_mod_LDFLAGS): Likewise. * conf/i386-coreboot.rmk: Removed redundant parts. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/mips-yeeloong.rmk: Likewise. * conf/mips.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * conf/i386-coreboot.rmk: Moved qemu parts .. * conf/i386-qemu.rmk: ... here * conf/i386-efi.rmk: Moved common parts to... * conf/x86-efi.rmk: ... here. * conf/i386.rmk: Added modules common to all x86 variants. * configure.ac: Add -m32/-m64 to TARGET_ASFLAGS. * disk/memdisk.c: Remove grub/machine/kernel.h. * gensymlist.sh.in: Include symbol.h. * hook/datehook.c: Correct module name. * include/grub/datetime.h (grub_get_datetime) [GRUB_MACHINE_EMU]: Export. (grub_set_datetime) [GRUB_MACHINE_EMU]: Likewise. * include/grub/i386/efi/serial.h: New file. * include/grub/x86_64/efi/serial.h: Likewise. * util/time.c: Likewise. * video/ieee1275.c (grub_video_ieee1275_setup): Handle 64-bit void *. 2010-03-14 Colin King 2010-03-14 Colin Watson Shrink the pre-partition-table part of boot.img by eight bytes. * boot/i386/pc/boot.S (ERR): New macro. (chs_mode): Use ERR. (geometry_error): Likewise. (hd_probe_error): Remove. This is only used once, so we wrwite it inline instead. (read_error): Instead of printing read_error_string, just set up %si and fall through to ... (error_message): ... this new function, also used by ERR. 2010-03-14 Colin Watson Speed up consecutive hostdisk operations on the same device. * util/hostdisk.c (struct grub_util_biosdisk_data): New structure. (grub_util_biosdisk_open): Initialise disk->data. (struct linux_partition_cache): New structure. (linux_find_partition): Cache partition start positions; these are expensive to compute on every read and write. (open_device): Cache open file descriptor in disk->data, so that we don't have to reopen it and flush the buffer cache for consecutive operations on the same device. (grub_util_biosdisk_close): New function. (grub_util_biosdisk_dev): Set `close' member. * conf/common.rmk (grub_probe_SOURCES): Add kern/list.c. * conf/i386-efi.rmk (grub_setup_SOURCES): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_setup_SOURCES): Likewise. 2010-03-14 Vladimir Serbinenko Compile parts of grub-emu as modules. * Makefile.in (TARGET_CPPFLAGS) [emu]: Remove -nostdinc -isystem. (pkglib_DATA) [emu]: Remove moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst. (all-local): Add $(GRUB_EMU). (install-local): Install $(GRUB_EMU). (uninstall): Uninstall $(GRUB_EMU). * commands/parttool.c: Replace GRUB_UTIL with GRUB_NO_MODULES. * kern/dl.c: Likewise. * commands/sleep.c: Not include machine/time.h. * conf/any-emu.rmk (COMMON_LDFLAGS): New variable. (COMMON_CFLAGS): Likewise. (sbin_UTILITIES): Remove grub-emu. (grub_emu_SOURCES): Removed. (kernel_img_RELOCATABLE): New variable. (pkglib_PROGRAMS): Add kernel.img. (kernel_img_SOURCES): New variable (kernel_img_CFLAGS): Likewise. (kernel_img_LDFLAGS): Likewise. (TARGET_NO_STRIP): Likewise. (TARGET_NO_DYNAMIC_MODULES): Likewise. (pkglib_MODULES): Add progname.mod, hostfs.mod, host.mod, reboot.mod, halt.mod, cpuid.mod, usb.mod, sdl.mod and pci.mod. (grub-emu): New target. (GRUB_EMU): New variable. * configure.ac: Whitelist -emu as possible x86_64 architecture. * efiemu/main.c: Replace GRUB_UTIL with GRUB_MACHINE_EMU. * loader/xnu.c: Likewise. * include/grub/pci.h: Likewise. * genemuinit.sh: New file. * genemuinitheader.sh: Likewise. * genmk.rb: Don't strip if TARGET_NO_STRIP is yes. Support TARGET_NO_DYNAMIC_MODULES. * include/grub/dl.h (GRUB_NO_MODULES): New variable. * commands/search.c: Fix GRUB_MOD_INIT and GRUB_MOD_FINI arguments. * disk/loopback.c: Likewise. * font/font_cmd.c: Likewise. * partmap/acorn.c: Likewise. * partmap/amiga.c: Likewise. * partmap/apple.c: Likewise. * partmap/gpt.c: Likewise. * partmap/msdos.c: Likewise. * partmap/sun.c: Likewise. * parttool/msdospart.c: Likewise. * term/gfxterm.c: Likewise. * video/bitmap.c: Likewise. * video/readers/jpeg.c: Likewise. * video/readers/png.c: Likewise. * video/readers/tga.c: Likewise. * video/video.c: Likewise. * util/grub-emu.c (read_command_list): Removed. (main): Don't call util_init_nls. * util/misc.c (grub_err_printf) [!GRUB_UTIL]: Removed. (grub_util_init_nls) [!GRUB_UTIL]: Likewise. 2010-03-14 Vladimir Serbinenko * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod, datehook.mod. (datetime_mod_SOURCES): New variable. (datetime_mod_CFLAGS): Likewise. (datetime_mod_LDFLAGS): Likewise. (date_mod_SOURCES): Likewise. (date_mod_CFLAGS): Likewise. (date_mod_LDFLAGS): Likewise. (datehook_mod_SOURCES): Likewise. (datehook_mod_CFLAGS): Likewise. (datehook_mod_LDFLAGS): Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * lib/ieee1275/datetime.c: New file. 2010-03-14 Vladimir Serbinenko * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add ieee1275_fb.mod. (ieee1275_fb_mod_SOURCES): New variable. (ieee1275_fb_mod_CFLAGS): Likewise. (ieee1275_fb_mod_LDFLAGS): Likewise. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_devices_iterate): New proto. * kern/ieee1275/init.c (HEAP_MAX_SIZE): Increased. (HEAP_MAX_ADDR): Likewise. * kern/ieee1275/openfw.c (grub_children_iterate): Don't skip empty type. Correct stop condition. (grub_ieee1275_devices_iterate): New function. * video/ieee1275.c: New file. 2010-03-14 Vladimir Serbinenko Merge sparc grub-mkimage into generic grub-mkimage and a.out support. * boot/sparc64/ieee1275/boot.S (boot_continue): Use SCRATCH_PAD_BOOT as scratch. * boot/sparc64/ieee1275/diskboot.S (after_info_block): Use SCRATCH_PAD_DISKBOOT as scratch. (bootit): Pass Openfirmware pointer in %o4. * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link at 0x4400 instead of 0x200000. (grub_mkimage_SOURCES): Replace util/sparc64/ieee1275/grub-mkimage.c with util/grub-mkrawimage.c. * configure.ac: Handle GRUB_MACHINE_SPARC64 and GRUB_MACHINE_MIPS. * include/grub/aout.h (AOUT_MID_SUN): New definition. (grub_aout_get_type) [GRUB_UTIL]: Removed. (grub_aout_load) [GRUB_UTIL]: Likewise. * include/grub/kernel.h (grub_modules_get_end): New proto. * include/grub/sparc64/ieee1275/boot.h (SCRATCH_PAD): Removed. (SCRATCH_PAD_BOOT): New definition. (SCRATCH_PAD_DISKBOOT): Likewise. (GRUB_BOOT_MACHINE_IMAGE_ADDRESS): Set to 0x4400. * include/grub/sparc64/ieee1275/ieee1275.h (grub_ieee1275_original_stack): New variable * include/grub/sparc64/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): New definition (GRUB_KERNEL_MACHINE_STACK_SIZE): Likewise. (GRUB_PLATFORM_IMAGE_FORMATS): Likewise. (GRUB_PLATFORM_IMAGE_DEFAULT_FORMAT): Likewise. (GRUB_PLATFORM_IMAGE_DEFAULT): Likewise. (GRUB_PLATFORM_IMAGE_RAW): Likewise. (GRUB_PLATFORM_IMAGE_AOUT): Likewise. (grub_platform_image_format_t): New type. * kern/mips/yeeloong/init.c (grub_modules_get_end): Move from here ... * kern/main.c (grub_modules_get_end) [GRUB_MACHINE_MIPS_YEELOONG || GRUB_MACHINE_SPARC64]: ... here. * kern/sparc64/ieee1275/crt0.S: Store firmware entry point in %o0. (codestart): Switch stacks. * kern/sparc64/ieee1275/init.c (grub_ieee1275_original_stack): New variable. (grub_heap_init): Use grub_modules_get_end. * loader/sparc64/ieee1275/linux.c (grub_linux_boot): Restore original stack. * util/grub-mkrawimage.c (generate_image): Support sparc64. (main): Likewise. * util/sparc64/ieee1275/grub-mkimage.c: Removed. 2010-03-14 Thorsten Glaser * util/grub-mkrescue.in: Base ISO UUID on UTC. 2010-03-08 Matt Kraai * util/i386/pc/grub-setup.c (setup): Fix a grammatical error (Debian bug #559005). 2010-03-07 Vladimir Serbinenko * genmoddep.awk: Output all missing symbols and not only first. 2010-03-06 Vladimir Serbinenko * NEWS: Put the date of 1.98 release. 2010-03-06 Vladimir Serbinenko * configure.ac: Update CPPFLAGS and not CFLAGS when checking for ft2build.h. 2010-03-06 Vladimir Serbinenko * normal/cmdline.c (grub_cmdline_get): Fix gabled line after completition in the middle of string. 2010-03-06 Vladimir Serbinenko * util/grub-mkrescue.in: Use mktemp with explicit template. 2010-03-06 Vladimir Serbinenko * loader/i386/bsd.c (grub_bsd_get_device): Fix a memory leak. 2010-03-06 Vladimir Serbinenko * loader/i386/multiboot_mbi.c (grub_multiboot_set_bootdev): Free the right pointer. 2010-03-05 Vladimir Serbinenko Fix FreeBSD compilation. * Makefile.in (TARGET_CPPFLAGS): Remove -nostdinc -isystem. * configure.ac: Add -nostdinc -isystem to TARGET_CPPFLAGS if it works. 2010-03-05 Vladimir Serbinenko * util/import_gcry.py: Add autogenerated files to MAINTAINER_CLEANFILES. 2010-03-04 Vladimir Serbinenko * gettext/gettext.c (grub_gettext_init_ext): Fix a memory leak. 2010-03-04 Vladimir Serbinenko * disk/scsi.c (grub_scsi_iterate): Fix a memory leak. 2010-03-04 Robert Millan Support relative image path in theme file. * gfxmenu/gui_image.c (grub_gui_image): New member theme_dir. (image_set_property): Handle theme_dir and relative path. 2010-03-04 Vladimir Serbinenko * configure.ac: Alias amd64 to x86_64. 2010-03-04 Vladimir Serbinenko * NEWS: mention multiboot on EFI. 2010-03-04 Vladimir Serbinenko * kern/main.c (grub_load_modules): Handle errors from init functions of embeded modules. 2010-03-04 Vladimir Serbinenko * normal/autofs.c (autoload_fs_module): Handle errors. 2010-03-04 Vladimir Serbinenko Disable linux.mod on qemu-mips since it's not functional and leads to compilation failure. * conf/mips.rmk (pkglib_MODULES): Remove linux.mod. * conf/mips-yeeloong.rmk (pkglib_MODULES): Add linux.mod. * conf/mips.rmk (linux_mod_SOURCES): Move from here ... * conf/mips-yeeloong.rmk (linux_mod_SOURCES): ... here * conf/mips.rmk (linux_mod_CFLAGS): Move from here ... * conf/mips-yeeloong.rmk (linux_mod_CFLAGS): ... here * conf/mips.rmk (linux_mod_ASFLAGS): Move from here ... * conf/mips-yeeloong.rmk (linux_mod_ASFLAGS): ... here * conf/mips.rmk (linux_mod_LDFLAGS): Move from here ... * conf/mips-yeeloong.rmk (linux_mod_LDFLAGS): ... here Reported by: BVK Chaitanya 2010-03-04 Jordan Uggla * INSTALL: Add gettext as a dependency and add qemu to a new section "Prerequisites for make-check". 2010-03-04 Christian Franke * util/grub-pe2elf.c: Add missing include "progname.h". 2010-03-04 Vladimir Serbinenko * normal/crypto.c (read_crypto_list): Fix a typo. Reported by: Seth Goldberg. 2010-03-04 Vladimir Serbinenko * Makefile.in (DISTCLEANFILES): Add stamp-h1. Reported by: Seth Goldberg. 2010-03-04 Vladimir Serbinenko * Makefile.in (CLEANFILES) [FONT_SOURCE && grub_mkfont]: Add ascii.bitmaps. 2010-03-04 Vladimir Serbinenko * genmk.rb: Remove terminal*.lst in make clean. Reported by: Seth Goldberg. 2010-03-04 Vladimir Serbinenko * util/i386/efi/grub-install.in: Copy gettext files. 2010-03-01 Vladimir Serbinenko * fs/ext2.c (grub_ext2_read_block): Fix an integer overflow. 2010-03-01 Vladimir Serbinenko Wait for user entry basing on presence of output rather than on errors. * include/grub/normal.h (grub_normal_get_line_counter): New proto. (grub_install_newline_hook): Likewise. * normal/main.c (GRUB_MOD_INIT): Call grub_install_newline_hook. * normal/menu.c (show_menu): Check line_counter to determine presence of output. * normal/term.c (grub_normal_line_counter): New variable. (grub_normal_get_line_counter): New function. (grub_install_newline_hook): Likewise. 2010-03-01 Vladimir Serbinenko * commands/cat.c (grub_cmd_cat): Propagate grub_gzfile_open error. 2010-03-01 Vladimir Serbinenko * configure.ac: Update version to 1.98. 2010-02-26 Vladimir Serbinenko * util/grub.d/10_linux.in (linux_entry): Don't default to gfxpayload=keep if Linux doesn't support video handover. 2010-02-25 Vladimir Serbinenko Don't compile video modules on yeeloong since video subsystem is part of kernel. * conf/common.rmk (pkglib_MODULES) [yeeloong]: Remove video.mod, video_fb.mod, bitmap.mod, font.mod, gfxterm.mod and bufio.mod * conf/mips-yeeloong.rmk (kernel_img_HEADERS): Add bitmap.h, video.h, gfxterm.h, font.h, bitmap_scale.h and bufio.h. * conf/mips.rmk (kernel_img_HEADERS): Add values instead of overwriting. * include/grub/bitmap.h: Add EXPORT_FUNC and EXPORT_VAR. * include/grub/bitmap_scale.h: Likewise. * include/grub/bufio.h: Likewise. * include/grub/font.h: Likewise. * include/grub/gfxterm.h: Likewise. * include/grub/video.h: Likewise. * include/grub/vbe.h: Don't include video_fb.h. * video/i386/pc/vbe.c: Include video_fb.h. * commands/i386/pc/vbetest.c: Include video.h. 2010-02-25 Jordan Uggla * util/grub-mkconfig.in (GRUB_SAVEDEFAULT): Export new variable. * util/grub-mkconfig_lib.in (save_default_entry): Only save a new default entry if GRUB_SAVEDEFAULT=true. This allows using GRUB_DEFAULT=saved on its own to let grub-reboot work, without saving a new default on every boot. 2010-02-24 Vladimir Serbinenko * normal/crypto.c (read_crypto_list): Fix a memory leak. * normal/term.c (read_terminal_list): Likewise. * normal/main.c (grub_normal_init_page): Likewise. (grub_normal_read_line_real): Likewise. 2010-02-24 Vladimir Serbinenko * loader/i386/multiboot_mbi.c (grub_multiboot_set_bootdev): Fix a memory leak. Reported by: Seth Goldberg. 2010-02-24 Joey Korkames * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Remove duplicate declaration of `start'. 2010-02-20 Vladimir Serbinenko * fs/iso9660.c (grub_iso9660_iterate_dir): Strip version from joliet filename. Reported by: Georgy Buranov 2010-02-20 Carles Pina i Estany * util/grub-mkrawimage.c (usage): Change string formatting to improve gettext. 2010-02-20 Manoel Rebelo Abranches * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Add delete and backspace keys. 2010-02-20 Vladimir Serbinenko * video/fb/video_fb.c (grub_video_fb_scroll): Fix a pixel size bug. Reported by: Michael Suchanek. 2010-02-18 Samuel Thibault * util/grub-mkconfig.in: Export GRUB_INIT_TUNE. * util/grub.d/00_header.in: Handle GRUB_INIT_TUNE. 2010-02-16 Vladimir Serbinenko Remove any reference to non-free fonts. * commands/videotest.c (grub_cmd_videotest): Use unifont by default. * docs/gfxmenu-theme-example.txt: Removed. It's both outdated and uses non-free components. * font/font.c (grub_font_get_name): Remove example name. * gfxmenu/gui_label.c (grub_gui_label_new): Use unifont by default. * gfxmenu/gui_list.c (grub_gui_list_new): Likewise. * gfxmenu/gui_progress_bar.c (grub_gui_progress_bar_new): Likewise. * gfxmenu/view.c (grub_gfxmenu_view_new): Likewise. 2010-02-16 Georgy Buranov * disk/efi/efidisk.c (grub_efidisk_get_device_name): Fix a typo. 2010-02-15 Vladimir Serbinenko * term/serial.c (serial_get_divisor) [GRUB_MACHINE_MIPS_YEELOONG]: Double divisor. (serial_hw_init) [GRUB_MACHINE_MIPS_YEELOONG]: Don't enable advanced features. (GRUB_MOD_INIT) [GRUB_MACHINE_MIPS_YEELOONG]: Default to 115200. 2010-02-15 Vladimir Serbinenko * gensymlist.sh.in: Use TARGET_CC instead of CC. 2010-02-14 Samuel Thibault * commands/i386/pc/play.c (GRUB_MOD_INIT(play)): Fix help. * docs/grub.texi (Command-line and menu entry commands): Document play command. 2010-02-14 Samuel Thibault * commands/i386/pc/play.c (grub_cmd_play): If grub_file_open fails, parse arguments as inline tempo and notes. Move code for playing notes to... (play): ... new function. 2010-02-14 Samuel Thibault * commands/i386/pc/play.c (T_REST, T_FINE, struct note, beep_on): Use grub_uint16_t instead of short. (grub_cmd_play): Use grub_uint32_t instead of int, convert data from disk from little endian to cpu endianness. 2010-02-07 Samuel Thibault * commands/i386/pc/play.c (BASE_TEMPO): Set to 60 * GRUB_TICKS_PER_SECOND instead of 120. 2010-02-14 Vladimir Serbinenko * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Wait for possible escape sequence after \e. 2010-02-14 Vladimir Serbinenko * term/ieee1275/ofconsole.c (grub_ofconsole_putchar): Don't output non-ASCII characters. 2010-02-14 Vladimir Serbinenko * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Enclose set root in single quotes to prevent \, from being unescaped. 2010-02-14 Vladimir Serbinenko Prevent unknown commands from stopping menuentry execution. * script/execute.c (grub_script_execute_cmdline): Print error after unknown command. 2010-02-14 Vladimir Serbinenko * fs/i386/pc/pxe.c (GRUB_MOD_INIT): Fix typo. Reported by: Pavel Pisa. 2010-02-13 Vladimir Serbinenko * io/gzio.c (grub_gzio_open): Use grub_zalloc. 2010-02-13 Vladimir Serbinenko Merge grub_ieee1275_map_physical into grub_map and rename to grub_ieee1275_map * include/grub/ieee1275/ieee1275.h (grub_ieee1275_map): New proto. * include/grub/sparc64/ieee1275/ieee1275.h (grub_ieee1275_map_physical): Remove. * kern/ieee1275/openfw.c (grub_map): Rename to ... (grub_ieee1275_map): ... this. All users updated. Add phys_lo when necessary. * kern/sparc64/ieee1275/ieee1275.c (grub_ieee1275_map_physical): Remove. 2010-02-13 Vladimir Serbinenko * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Check device type before opening and not after. 2010-02-13 Vladimir Serbinenko * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Macroify constants. 2010-02-13 Vladimir Serbinenko * loader/sparc64/ieee1275/linux.c (align_addr): Remove. (alloc_phys): Use ALIGN_UP instead of align_addr. 2010-02-13 Vladimir Serbinenko * loader/sparc64/ieee1275/linux.c (alloc_phys): Correct bounds checking. 2010-02-13 Vladimir Serbinenko * kern/sparc64/ieee1275/crt0.S (codestart): Move modules backwards. 2010-02-13 Vladimir Serbinenko * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Remove excessively verbose dprintf. 2010-02-13 Vladimir Serbinenko Fix over-4GiB seek on sparc64. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_seek): Replace pos_i and pos_lo with pos. All users updated. * include/grub/powerpc/ieee1275/ieee1275.h (GRUB_IEEE1275_CELL_SIZEOF): New constant. * include/grub/sparc64/ieee1275/ieee1275.h (GRUB_IEEE1275_CELL_SIZEOF): Likewise. * kern/ieee1275/ieee1275.c (grub_ieee1275_seek): Split pos into pos_hi and pos_lo. 2010-02-13 Vladimir Serbinenko * util/grub-mkrawimage.c (main): Call set_program_name. 2010-02-13 Vladimir Serbinenko Properly align 64-bit targets. * util/grub-mkrawimage.c (ALIGN_ADDR): New macro. (generate_image): Use ALIGN_ADDR. 2010-02-13 Vladimir Serbinenko Properly create cross-endian images. * include/grub/types.h (grub_host_to_target_addr): New macro * util/grub-mkrawimage.c (generate_image): Add missing host_to_target. 2010-02-13 Vladimir Serbinenko * util/grub-mkrawimage.c (generate_image): Add forgotten ALIGN_UP. 2010-02-10 Vladimir Serbinenko Pass SIMPLE framebuffer size in bytes and not 64K blocks. * loader/i386/efi/linux.c (grub_linux_setup_video): Don't divide by 64K. * loader/i386/linux.c (grub_linux_setup_video): Likewise. (grub_linux_boot): Divide by 64K when on VESA. 2010-02-10 Vladimir Serbinenko Support GRUB_GFXPAYLOAD_LINUX. * util/grub-mkconfig.in: Export GRUB_GFXPAYLOAD_LINUX. * util/grub.d/10_linux.in (linux_entry): Handle GRUB_GFXPAYLOAD_LINUX. 2010-02-10 Vladimir Serbinenko * script/execute.c (grub_script_execute_cmdline): Use grub_print_error to show messages instead of discarding them. Process errors after executing command and not before. Keep old method too as precaution. 2010-02-09 Vladimir Serbinenko * configure.ac: Check for ft2build.h. 2010-02-07 Vladimir Serbinenko * kern/ieee1275/openfw.c (grub_halt): Try executing "poweroff". 2010-02-07 Vladimir Serbinenko * genkernsyms.sh.in: Use TARGET_CC. 2010-02-07 Colin Watson * NEWS: Update. 2010-02-07 Vladimir Serbinenko * include/grub/multiboot2.h: Remove leftover file. * include/grub/normal.h [GRUB_UTIL]: Remove leftover declarations. * include/grub/partition.h [GRUB_UTIL]: Likewise. 2010-02-07 Yves Blusseau * gnulib/getdelim.c: add missing header (type ssize_t must be defined). 2010-02-07 Vladimir Serbinenko Fix warnings in grub-emu when compiling with maximum warning options. * util/grub-emu.c (ENABLE_RELOCATABLE): New definition. (grub_arch_modules_addr): Return 0 and not NULL. * util/misc.c (ENABLE_RELOCATABLE): New definition. (xstrdup): Use newstr instead of dup. * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Rename one instance of disk to dsk to avoid shadowing. (find_free_slot): Fix prototype. * util/getroot.c (grub_util_is_dmraid): Make static. * include/grub/time.h (grub_get_rtc) [GRUB_MACHINE_EMU || GRUB_UTIL]: Add missing prototype. * util/sdl.c (grub_video_sdl_set_viewport): Remove. 2010-02-07 Vladimir Serbinenko * loader/i386/linux.c (grub_linux_setup_video): Handle error appropriately. 2010-02-07 Vladimir Serbinenko * fs/reiserfs.c (grub_reiserfs_read): Use #if 0 instead of commenting code out. 2010-02-07 Vladimir Serbinenko * include/grub/cache.h (grub_arch_sync_caches) [i386 || x86_64]: Inline. * kern/i386/coreboot/init.c (grub_arch_sync_caches): Remove. * kern/i386/efi/init.c (grub_arch_sync_caches): Likewise. * kern/i386/ieee1275/init.c (grub_arch_sync_caches): Likewise. * kern/i386/pc/init.c (grub_arch_sync_caches): Likewise. * util/misc.c (grub_arch_sync_caches) [i386 || x86_64]: Likewise. 2010-02-07 Vladimir Serbinenko * include/grub/err.h (grub_err_printf): Don't export. 2010-02-07 Vladimir Serbinenko * include/grub/dl.h (grub_dl_register_symbol): Don't export. 2010-02-07 Vladimir Serbinenko * include/grub/i18n.h (grub_gettext_dummy): Removed. * kern/misc.c (grub_gettext_dummy): Make static. 2010-02-06 Vladimir Serbinenko * kern/misc.c (grub_utf8_to_ucs4): Don't eat valid characters preceeded by non-valid ones. * kern/term.c (grub_putchar): Likewise. 2010-02-06 Vladimir Serbinenko * partmap/sun.c (sun_partition_map_iterate): Restructure flow to fix buggy hook call and memory leak. 2010-02-06 Vladimir Serbinenko * commands/ls.c (grub_ls_list_files): Free pathname on exit. 2010-02-06 Vladimir Serbinenko * fs/fat.c (grub_fat_iterate_dir): Free unibuf at exit. 2010-02-06 Vladimir Serbinenko * loader/i386/pc/xnu.c (grub_xnu_set_video): Add const qualifier to modevar. Return grub_errno on allocation error. 2010-02-06 Vladimir Serbinenko * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Correct error handling. 2010-02-06 Yves Blusseau * conf/common.rmk (grub_script_check_SOURCES): add missing dependencies. (grub_mkpasswd_pbkdf2_SOURCES): Likewise. 2010-02-06 Vladimir Serbinenko * fs/i386/pc/pxe.c (grub_pxefs_dir): Return with failure on non-pxe disk. (grub_pxefs_open): Likewise. 2010-02-06 Robert Millan * util/grub.d/10_hurd.in: Add --class information to menuentries. * util/grub.d/10_kfreebsd.in: Likewise. * util/grub.d/10_linux.in: Likewise. 2010-02-06 Colin D Bennett * conf/common.rmk (pkglib_MODULES): Add gfxmenu.mod. (gfxmenu_mod_SOURCES): New variable. (gfxmenu_mod_CFLAGS): Likewise. (gfxmenu_mod_LDFLAGS): Likewise. * include/grub/term.h (grub_term_set_current_output): Declare argument as const. * docs/gfxmenu-theme-example.txt: New file. * gfxmenu/gfxmenu.c: Likewise. * gfxmenu/gui_box.c: Likewise. * gfxmenu/gui_canvas.c: Likewise. * gfxmenu/gui_circular_progress.c: Likewise. * gfxmenu/gui_image.c: Likewise. * gfxmenu/gui_label.c: Likewise. * gfxmenu/gui_list.c: Likewise. * gfxmenu/gui_progress_bar.c: Likewise. * gfxmenu/gui_string_util.c: Likewise. * gfxmenu/gui_util.c: Likewise. * gfxmenu/icon_manager.c: Likewise. * gfxmenu/model.c: Likewise. * gfxmenu/named_colors.c: Likewise. * gfxmenu/theme_loader.c: Likewise. * gfxmenu/view.c: Likewise. * gfxmenu/widget-box.c: Likewise. * include/grub/gfxmenu_model.h: Likewise. * include/grub/gfxmenu_view.h: Likewise. * include/grub/gfxwidgets.h: Likewise. * include/grub/gui.h: Likewise. * include/grub/gui_string_util.h: Likewise. * include/grub/icon_manager.h: Likewise. 2010-02-06 Vladimir Serbinenko Agglomerate scrolling in gfxterm. * term/gfxterm.c (grub_virtual_screen): New member 'total_screen'. (grub_virtual_screen_setup): Initialise 'total_screen'. (write_char): Split to ... (paint_char): ... this ... (write_char): ... and this. (paint_char): Handle delayed scrolling. (draw_cursor): Likewise. (scroll_up): Split to ... (real_scroll): ... this ... (scroll_up): ... and this. (real_scroll): Handle multi-line scroll and draw below-the-bottom characters. (grub_gfxterm_refresh): Call real_scroll. 2010-02-06 Colin D Bennett * include/grub/misc.h (grub_iscntrl): New inline function. (grub_isalnum): Likewise. (grub_strtol): Likewise. 2010-02-06 Colin D Bennett * normal/menu_text.c (get_entry_number): Move from here ... * normal/menu.c (get_entry_number): ... moved here. * include/grub/menu.h (grub_menu_get_default_entry_index): New prototype. * normal/menu.c (grub_menu_get_default_entry_index): New function. * normal/menu_text.c (run_menu): Use grub_menu_get_default_entry_index. * include/grub/menu_viewer.h (grub_menu_viewer_init): New prototype. (grub_menu_viewer_should_return): Likewise. * normal/main.c (GRUB_MOD_INIT (normal)): Call grub_menu_viewer_init. * normal/menu_text.c (run_menu): Enable menu switching. * normal/menu_viewer.c (should_return): New variable. (menu_viewer_changed): Likewise. (grub_menu_viewer_show_menu): Handle menu viewer changes. (grub_menu_viewer_should_return): New function. (menuviewer_write_hook): Likewise. (grub_menu_viewer_init): Likewise. 2010-02-06 Colin D Bennet 2010-02-06 Vladimir Serbinenko Support for gfxterm in a window. * include/grub/gfxterm.h: New file. * include/grub/video.h (struct grub_video_rect): New declaration. (grub_video_rect_t): Likewise. * term/gfxterm.c (struct grub_gfxterm_window): New type. (refcount): New variable. (render_target): Likewise. (window): Likewise. (repaint_callback): Likewise. (grub_virtual_screen_setup): Use 'render_target'. (init_window): New function. (grub_gfxterm_init_window): Likewise. (grub_gfxterm_init): Check reference counter. Use init_window. (destroy_window): New function. (grub_gfxterm_destroy_window): Likewise. (grub_gfxterm_fini): Check reference counter. Use destroy_window. (redraw_screen_rect): Restore viewport. Use 'render_target' and 'window'. Call 'repaint_callback'. (write_char): Use 'render_target'. (draw_cursor): Likewise. (scroll_up): Restore viewport. Use 'render_target' and 'window'. Call 'repaint_callback'. (grub_gfxterm_cls): Likewise. (grub_gfxterm_refresh): Use 'window'. (grub_gfxterm_set_repaint_callback): New function. (grub_gfxterm_background_image_cmd): Use 'window'. (grub_gfxterm_get_term): New function. (GRUB_MOD_INIT(term_gfxterm)): Set 'refcount' to 0. 2010-02-06 Colin D Bennett Bitmap scaling support. * conf/common.rmk (pkglib_MODULES): Add bitmap_scale.mod. (bitmap_scale_mod_SOURCES): New variable. (bitmap_scale_mod_CFLAGS): Likewise. (bitmap_scale_mod_LDFLAGS): Likewise. * include/grub/bitmap_scale.h: New file. * term/gfxterm.c (BACKGROUND_CMD_ARGINDEX_MODE): New definiton. (background_image_cmd_options): New variable. (grub_gfxterm_background_image_cmd): Support bitmap stretching. (cmd): Rename and change type to ... (background_image_cmd_handle): ... this. All users updated. (GRUB_MOD_INIT(term_gfxterm)): Make background_image extended command. * video/bitmap_scale.c: New file. 2010-02-06 Vladimir Serbinenko SDL support. * Makefile.in (LIBSDL): New variable. (enable_grub_emu_sdl): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Add video files. (grub_emu_SOURCES) [enable_grub_emu_sdl]: Add util/sdl.c. (grub_emu_LDFLAGS) [enable_grub_emu_sdl]: Add $(LIBSDL). * configure.ac: Detect SDL availability and add --enable-grub-emu-sdl * util/sdl.c: New file. 2010-02-06 Colin D Bennett 2010-02-06 Vladimir Serbinenko Double buffering support. * commands/i386/pc/videotest.c (grub_cmd_videotest): Swap doublebuffers. * include/grub/video.h: Update comment. * include/grub/video_fb.h (grub_video_fb_doublebuf_update_screen_t): New type. (grub_video_fb_doublebuf_blit_init): New prototype. * term/gfxterm.c (scroll_up): Support double buffering. (grub_gfxterm_refresh): Likewise. * video/fb/video_fb.c (doublebuf_blit_update_screen): New function. (grub_video_fb_doublebuf_blit_init): Likewise. * video/i386/pc/vbe.c (framebuffer): Remove 'render_target'. Add 'front_target', 'back_target', 'offscreen_buffer', 'page_size', 'displayed_page', 'render_page' and 'update_screen'. (grub_video_vbe_fini): Free offscreen buffer. (doublebuf_pageflipping_commit): New function. (doublebuf_pageflipping_update_screen): Likewise. (doublebuf_pageflipping_init): Likewise. (double_buffering_init): Likewise. (grub_video_vbe_setup): Enable doublebuffering. (grub_video_vbe_swap_buffers): Implement. (grub_video_vbe_set_active_render_target): Handle double buffering. (grub_video_vbe_get_active_render_target): Likewise. (grub_video_vbe_get_info_and_fini): Likewise. Free offscreen_buffer. (grub_video_vbe_adapter): Use grub_video_vbe_get_active_render_target. (grub_video_vbe_enable_double_buffering): Likewise. (grub_video_vbe_swap_buffers): Use update_screen. (grub_video_set_mode): Use double buffering. 2010-02-06 Robert Millan * maintainance/gentrigtables.py: Remove. * lib/trig.c: Likewise. * gentrigtables.c: New file. C rewrite of gentrigtables.py. * conf/common.rmk (trig_mod_SOURCES): Replace `lib/trig.c' with `trigtables.c'. (trigtables.c): New rule. (gentrigtables): Likewise. (DISTCLEANFILES): Add `trigtables.c' and `gentrigtables'. 2010-02-06 Robert Millan * maintainance/gentrigtables.py: Avoid duplicate hardcoding of integer constants. 2010-02-06 Colin D Bennet Trigonometry support. * include/grub/trig.h: New file. * lib/trig.c: Likewise. * maintainance/gentrigtables.py: Likewise. * conf/common.rmk (pkglib_MODULES): Add trig.mod. (trig_mod_SOURCES): New variable. (trig_mod_CFLAGS): Likewise. (trig_mod_LDFLAGS): Likewise. 2010-02-06 Vladimir Serbinenko * kern/ieee1275/openfw.c (grub_ieee1275_encode_devname): Support whole disk devices. 2010-02-06 Vladimir Serbinenko * kern/ieee1275/openfw.c (grub_devalias_iterate): Stop iterating on error. 2010-02-03 Vladimir Serbinenko * util/hostdisk.c (open_device): Don't use partition device when reading before the partition. (grub_util_biosdisk_read): Don't read from partition and before the partition in single operation. (grub_util_biosdisk_write): Don't write to partition and before the partition in single operation. 2010-02-03 Torsten Landschoff * kern/disk.c (grub_disk_read): Fix offset computation when reading last sectors. 2010-02-03 Vladimir Serbinenko * disk/i386/pc/biosdisk.c (grub_biosdisk_read): Handle non-2048 aligned CDROM reads. (grub_biosdisk_write): Refuse to write to CDROM. 2010-01-31 Vladimir Serbinenko * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Fix off-by-one error. 2010-01-31 Vladimir Serbinenko * font/font.c (find_glyph): Check that bmp_idx is available before using it. (grub_font_get_string_width): Never call grub_font_get_glyph_internal with (font == NULL). 2010-01-28 Christian Schmitt * util/ieee1275/grub-install.in: Fix nvsetenv arguments. 2010-01-28 BVK Chaitanya * include/grub/script_sh.h (sourcecode): Add const qualifier. * util/grub-script-check.c (getline): Fix empty lines case. 2010-01-28 Robert Millan * Makefile.in (check): Exit with fail status when one of the tests fails. * tests/example_functional_test.c (example_test): Fix reversed assert. * tests/example_unit_test.c (example_test): Likewise. 2010-01-28 Colin Watson * util/grub.d/10_linux.in: This script does not use any of the contents of gettext.sh, only the external command `gettext', so stop sourcing it. (Moreover, gettext.sh isn't necessarily installed in the same prefix as GRUB.) * util/grub.d/10_kfreebsd.in: Likewise. 2010-01-27 Vladimir Serbinenko * normal/cmdline.c (grub_cmdline_get): Fix completion in the middle of the line. 2010-01-27 Vladimir Serbinenko * kern/disk.c (grub_disk_read): Fix offset computation when reading last sectors. 2010-01-27 Vladimir Serbinenko * commands/hashsum.c (hash_file): Avoid possible stack overflow by having a 4KiB and not 32KiB buffer size. 2010-01-27 Robert Millan * util/hostfs.c: Include `'. (grub_hostfs_read): Handle errors from fseeko() and fread(). 2010-01-27 Robert Millan * kern/disk.c (grub_disk_read): Fix bug that would cause infinite loop when using read hooks on files whose size isn't sector-aligned. 2010-01-27 Robert Millan Remove unused parameter. * fs/iso9660.c (struct grub_iso9660_data): Remove `length' parameter. (grub_iso9660_open): Remove initialization of `data->length'. 2010-01-27 Robert Millan * util/grub-fstest.c (fstest): Rewrite allocation, fixing a few memleak conditions. 2010-01-27 Carles Pina i Estany * util/lvm.c: New macro LVM_DEV_MAPPER_STRING. (grub_util_lvm_isvolume): Use LVM_DEV_MAPPER_STRING. 2010-01-26 Carles Pina i Estany * util/bin2h.c (usage): Fix warning (space after backslash). 2010-01-26 Carles Pina i Estany * font/font.c: Include `grub/fontformat.h. Remove font file format constants. (grub_font_load): Use the new macros. * include/grub/fontformat.h: New file. * util/grub-mkfont.c: Include `grub/fontformat.c'. (write_font_pf2): Use the new macros. 2010-01-26 Robert Millan * util/bin2h.c (usage): Make --help actually explain what `grub-bin2h' does. 2010-01-26 Robert Millan * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_PXE_DL): New macro. * boot/i386/pc/pxeboot.S: Include `'. (_start): Macroify `0x7F'. * kern/i386/pc/init.c: Include `'. (make_install_device): Use "(pxe)" as fallback prefix when booting via PXE. 2010-01-26 Vladimir Serbinenko * configure.ac: Reset LIBS after check for libgcc symbols. 2010-01-25 Colin Watson * util/hostdisk.c (open_device): Add trailing newline to debug message. 2010-01-25 Grégoire Sutre * configure.ac: Check for `limits.h'. * util/misc.c: Include `' (for PATH_MAX). 2010-01-24 Robert Millan * loader/mips/linux.c (grub_cmd_linux, grub_cmd_initrd): Don't capitalize error strings. 2010-01-24 Samuel Thibault * util/grub.d/10_hurd.in: Add a recovery mode. 2010-01-23 Vladimir Serbinenko * configure.ac: Check for libgcc symbols with -nostdlib. 2010-01-23 BVK Chaitanya * acinclude.m4: Quote underquoted AC_DEFUN parameters. 2010-01-22 Vladimir Serbinenko * term/ieee1275/ofconsole.c (grub_ofconsole_setcolorstate): Allocate on stack since heap may be unavailable at that point. (grub_ofconsole_gotoxy): Likewise. 2010-01-22 Vladimir Serbinenko * configure.ac: Check for _restgpr_14_x. * include/grub/powerpc/libgcc.h [HAVE__RESTGPR_14_X]: Add _restgpr_*_x and _savegpr_* prototypes. 2010-01-22 Robert Millan Use generic grub_reboot() for i386-efi. * kern/efi/efi.c [__i386__] (grub_reboot): Remove. * kern/i386/efi/startup.S: Include `"../realmode.S"'. * kern/i386/realmode.S: Include `'. 2010-01-22 Vladimir Serbinenko * kern/ieee1275/init.c (grub_machine_set_prefix): Don't check for presence of "prefix" variable as it breaks when normal.mod is embedded. 2010-01-21 Vladimir Serbinenko * term/ieee1275/ofconsole.c (grub_ofconsole_dimensions): Allocate on stack since heap is unavailable at that point. 2010-01-21 Vladimir Serbinenko * include/grub/i386/bsd.h (FREEBSD_N_BIOS_GEOM): Removed. (grub_freebsd_bootinfo): Rewritten. * loader/i386/bsd.c (grub_freebsd_boot): Use new grub_freebsd_bootinfo. 2010-01-21 Vladimir Serbinenko * util/misc.c (make_system_path_relative_to_its_root): Fix typo. 2010-01-21 Robert Millan * po/POTFILES: Remove mkisofs-related files. They have their own TLP domain now. 2010-01-20 Felix Zielcke * util/misc.c (make_system_path_relative_to_its_root): Change the work around for handling "/" to the correct fix. Fix a memory leak. Use xstrdup instead of strdup. 2010-01-20 Vladimir Serbinenko * conf/mips.rmk (kernel_img_HEADERS): Add env_private.h 2010-01-20 Vladimir Serbinenko Optimise glyph lookup by Basic Multilingual Plane lookup array. * font/font.c (struct grub_font): New member 'bmp_idx'. (font_init): Initialise 'bmp_idx'. (load_font_index): Fill 'bmp_idx'. (find_glyph): Make inline. Use bmp_idx for BMP characters. 2010-01-20 Vladimir Serbinenko * video/fb/video_fb.c (grub_video_fb_scroll): Optimise by avoiding unnecessary calls. 2010-01-20 Vladimir Serbinenko Move context handling out of the kernel. * conf/any-emu.rmk (grub_emu_SOURCES): Add normal/context.c. * conf/common.rmk (normal_mod_SOURCES): Add normal/context.c. * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add env_private.h. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * include/grub/env.h: Include grub/menu.h. (grub_env_var_type): Removed. (grub_env_var): Replaced field 'type' with 'global'. (grub_env_find): New prototype. (grub_env_context_open): Remove EXPORT_FUNC. (grub_env_context_close): Likewise. (grub_env_export): Likewise. (grub_env_set_data_slot): Removed. (grub_env_get_data_slot): Likewise. (grub_env_unset_data_slot): Likewise. (grub_env_unset_menu): New prototype. (grub_env_set_menu): Likewise. (grub_env_get_menu): Likewise. * include/grub/env_private.h: New file. * include/grub/normal.h (grub_context_init): New prototype. (grub_context_fini): Likewise. * kern/corecmd.c (grub_core_cmd_export): Moved from here ... * normal/context.c (grub_cmd_export): ... to here. * kern/env.c: Include env_private.h. (HASHSZ): Moved to include/grub/env_private.h. (grub_env_context): Likewise. (grub_env_sorted_var): Likewise. (current_context): Renamed from this ... (grub_current_context): ...to this. 'static' removed. All users updated. (grub_env_find): Removed 'static'. (grub_env_context_open): Moved to normal/context.c. (grub_env_context_close): Likewise. (grub_env_export): Likewise. (mangle_data_slot_name): Removed. (grub_env_set_data_slot): Likewise. (grub_env_get_data_slot): Likewise. (grub_env_unset_data_slot): Likewise. * kern/main.c (grub_set_root_dev): Don't export root. It will be done later. (grub_main): Don't export prefix. It will be done later. * normal/context.c: New file. * normal/main.c (free_menu): Use grub_env_unset_menu. (grub_normal_add_menu_entry): Use grub_env_get_menu. (read_config_file): Use grub_env_get_menu and grub_env_set_menu. (GRUB_MOD_INIT(normal)): Call grub_context_init. (GRUB_MOD_FINI(normal)): Call grub_context_fini. 2010-01-20 Vladimir Serbinenko setpci support. * commands/setpci.c: New file. * conf/i386.rmk (pkglib_MODULES): Add setpci.mod. (setpci_mod_SOURCES): New variable. (setpci_mod_CFLAGS): Likewise. (setpci_mod_LDFLAGS): Likewise. 2010-01-20 Vladimir Serbinenko Byte-addressable PCI configuration space. * bus/pci.c (grub_pci_make_address): Use byte address instead of dword address. (grub_pci_iterate): Use macroses GRUB_PCI_REG_PCI_ID and GRUB_PCI_REG_CACHELINE. * bus/usb/ohci.c (grub_ohci_pci_iter): Use macroses GRUB_PCI_REG_CLASS and GRUB_PCI_REG_ADDRESS_REG0. * bus/usb/uhci.c (grub_ohci_pci_iter): Use macroses GRUB_PCI_REG_CLASS and GRUB_PCI_REG_ADDRESS_REG4. * commands/efi/fixvideo.c (scan_card): Use macros GRUB_PCI_REG_CLASS. * commands/efi/loadbios.c (enable_rom_area): Pass byte-address to grub_pci_make_address. (lock_rom_area): Likewise. * commands/lspci.c (grub_lspci_iter): Use macroses GRUB_PCI_REG_CLASS and GRUB_PCI_REG_ADDRESSES. Handle byte-addressing of grub_pci_make_address. * disk/ata.c (grub_ata_pciinit): Likewise. * include/grub/pci.h (GRUB_PCI_REG_PCI_ID): New macro. (GRUB_PCI_REG_VENDOR): Likewise. (GRUB_PCI_REG_DEVICE): Likewise. (GRUB_PCI_REG_COMMAND): Likewise. (GRUB_PCI_REG_STATUS): Likewise. (GRUB_PCI_REG_REVISION): Likewise. (GRUB_PCI_REG_CLASS): Likewise. (GRUB_PCI_REG_CACHELINE): Likewise. (GRUB_PCI_REG_LAT_TIMER): Likewise. (GRUB_PCI_REG_HEADER_TYPE): Likewise. (GRUB_PCI_REG_BIST): Likewise. (GRUB_PCI_REG_ADDRESSES): Likewise. (GRUB_PCI_REG_ADDRESS_REG): Likewise. (GRUB_PCI_REG_ADDRESS_REG): Likewise. (GRUB_PCI_REG_ADDRESS_REG): Likewise. (GRUB_PCI_REG_ADDRESS_REG): Likewise. (GRUB_PCI_REG_ADDRESS_REG): Likewise. (GRUB_PCI_REG_ADDRESS_REG): Likewise. (GRUB_PCI_REG_CIS_POINTER): Likewise. (GRUB_PCI_REG_SUBVENDOR): Likewise. (GRUB_PCI_REG_SUBSYSTEM): Likewise. (GRUB_PCI_REG_ROM_ADDRESS): Likewise. (GRUB_PCI_REG_CAP_POINTER): Likewise. (GRUB_PCI_REG_IRQ_LINE): Likewise. (GRUB_PCI_REG_IRQ_PIN): Likewise. (GRUB_PCI_REG_MIN_GNT): Likewise. (GRUB_PCI_REG_MAX_LAT): Likewise. * loader/i386/efi/linux.c (find_framebuf): Use GRUB_PCI_REG_CLASS. * loader/i386/efi/xnu.c (find_framebuf): Likewise. * video/efi_uga.c (find_framebuf): Likewise. * video/sm712.c (grub_video_sm712_setup): Likewise. * util/pci.c (grub_pci_make_address): Use byte-addressed configuration space. 2010-01-20 Robert Millan * util/grub.d/10_linux.in (linux_entry): Set gfxpayload=keep when it can be reliably determined to be supported. 2010-01-20 Robert Millan * loader/i386/linux.c (grub_cmd_linux): If `vga=' was used, write down that VESA is supported. (grub_linux_boot): Use generic framebuffer unless VESA is known to be supported. 2010-01-20 Vladimir Serbinenko * conf/common.rmk (font/font.c_DEPENDENCIES): Condition on FONT_SOURCE. 2010-01-20 Robert Millan * util/misc.c (make_system_path_relative_to_its_root): Work around special-casing of "/", as previous incarnation of this routine did. 2010-01-20 Vladimir Serbinenko Fix any-emu compilation. * conf/any-emu.rmk (bin_UTILITIES): Add grub-bin2h. * grub_bin2h_SOURCES: New variable. 2010-01-20 Robert Millan * util/grub.d/00_header.in: Fix stupid mistake from last commit. 2010-01-20 Robert Millan * util/grub.d/00_header.in: Fix handling of locale_dir. 2010-01-20 Vladimir Serbinenko * configure.ac: Add /usr/share/fonts/unifont/unifont.pcf.gz as possible unifont location (Gentoo). Reported by: Alexander Brüning 2010-01-20 Vladimir Serbinenko Don't try to generate lists for kernel.img. * conf/i386-efi.rmk (pkglib_PROGRAMS): New variable. (pkglib_MODULES): Remove kernel.img. (kernel_img_EXPORTS): Removed. (kernel_img_RELOCATABLE): New variable. * conf/x86_64-efi.rmk: Likewise. * genmk.rb: Remove *_EXPORTS support and add *_RELOCATABLE support. 2010-01-20 Vladimir Serbinenko * include/grub/misc.h (grub_sprintf): Removed. All users switched to grub_xasprintf or grub_snprintf. (grub_vsprintf): Likewise. (grub_snprintf): New proto. (grub_vsnprintf): Likewise. (grub_xasprintf): Likewise. (grub_xvasprintf): Likewise. * kern/misc.c (grub_vprintf): Use grub_vsnprintf_real. (grub_sprintf): Removed. (grub_vsnprintf): New function. (grub_snprintf): Likewise. (grub_xvasprintf): Likewise. (grub_xasprintf): Likewise. (grub_vsprintf): Renamed to ... (grub_vsnprintf_real): ...this. New argument max_len. 2010-01-20 BVK Chaitanya * include/grub/script_sh.h (sourcecode): Remove const qualifier to fix grub-script-check warning. 2010-01-20 Vladimir Serbinenko * include/grub/font.h (grub_font_load): Fix prototype. 2010-01-20 Vladimir Serbinenko * conf/mips.rmk (kernel_img_HEADERS) [yeeloong]: Add pci.h. 2010-01-20 Vladimir Serbinenko * include/grub/x86_64/at_keyboard.h: New file. 2010-01-20 Vladimir Serbinenko * loader/mips/linux.c: Include missing grub/i18n.h. 2009-12-20 Robert Millan * normal/menu.c (notify_execution_failure): Clarify error message. 2009-12-20 Robert Millan * commands/loadenv.c (check_blocklists): Use `grub_err_t' as return value (and revert all return statements). Update users. 2010-01-20 Dan Merillat * kern/device.c (grub_device_iterate): Allocate new part_ent structure based on sizeof (*p) rather than sizeof (p->next), to account for structure padding. * util/grub-probe.c (probe_raid_level): Return -1 immediately if disk is NULL, which might happen for LVM physical volumes with no LVM signature. 2009-12-20 Robert Millan * loader/mips/linux.c (grub_cmd_initrd) (GRUB_MOD_INIT(linux)): Adjust and gettextize a few strings. 2009-12-20 Robert Millan * kern/mips/yeeloong/init.c (grub_video_sm712_init) (grub_video_video_init, grub_video_bitmap_init) (grub_font_manager_init, grub_term_gfxterm_init) (grub_at_keyboard_init): New extern declarations. (grub_machine_init): Initialize gfxterm and at_keyboard. * kern/main.c (grub_main): Revert grub_printf delay kludge. * util/grub-install.in: Revert embed of `at_keyboard.mod' and `gfxterm.mod' into core image. * conf/mips.rmk (pkglib_IMAGES, kernel_img_SOURCES) (kernel_img_CFLAGS, kernel_img_ASFLAGS, kernel_img_LDFLAGS) (kernel_img_FORMAT): Copy to ... * conf/mips-qemu-mips.rmk (pkglib_IMAGES, kernel_img_SOURCES) (kernel_img_CFLAGS, kernel_img_ASFLAGS, kernel_img_LDFLAGS) (kernel_img_FORMAT): ... here, and ... * conf/mips-yeeloong.rmk (pkglib_IMAGES, kernel_img_SOURCES) (kernel_img_CFLAGS, kernel_img_ASFLAGS, kernel_img_LDFLAGS) (kernel_img_FORMAT): ... here. (kernel_img_SOURCES): Add files necessary for output (gfxterm) and input (at_keyboard) terminals in kernel. (kernel_img_CFLAGS): Add `-DUSE_ASCII_FAILBACK'. (pkglib_MODULES): Remove `pci.mod'. (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS) (sm712_mod_SOURCES, sm712_mod_CFLAGS, sm712_mod_LDFLAGS) (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS) (at_keyboard_mod_LDFLAGS): Remove variables. 2010-01-11 Felix Zielcke * po/POTFILES: Replace `term/i386/pc/serial.c' with `term/serial.c'. 2009-12-10 Robert Millan * include/grub/mips/libgcc.h: Only export symbols for functions that libgcc provides. 2009-12-02 Vladimir Serbinenko MIPS support. * bus/bonito.c: New file. * bus/pci.c (grub_pci_iterate): Use GRUB_PCI_NUM_BUS and GRUB_PCI_NUM_DEVICES. * term/i386/pc/serial.c: Move to ... * term/serial.c: ... here. All users updated. * util/i386/pc/grub-mkimage.c: Move to ... * util/grub-mkrawimage.c: ... here. All users updated. * term/i386/pc/at_keyboard.c: Move to ... * term/at_keyboard.c: ... here. All users updated. * conf/mips-qemu-mips.rmk: New file. * conf/mips-yeeloong.rmk: Likewise. * conf/mips.rmk: Likewise. * configure.ac: New platforms mipsel-yeeloong, mips-qemu-mips and mipsel-qemu-mips. * disk/ata.c (grub_ata_device_initialize): Add GRUB_MACHINE_PCI_IO_BASE to port addresses. (grub_ata_pciinit): Support CS5536. * font/font.c (grub_font_load): Use grub_file_t instead of filename. * font/font_cmd.c (loadfont_command): Open file before passing it to grub_font_load. (pseudo_file_read): New function. (pseudo_file_close): Likewise. (pseudo_fs): New structure. (load_font_module): New function. (GRUB_MOD_INIT(font_manager)): Load embedded font. * fs/cpio.c (grub_cpio_open): Handle partial matches correctly. * genmk.rb: Strip .rel.dyn, .reginfo, .note and .comment. * genmoddep.awk: Ignore __gnu_local_gp. It's defined by linker. * include/grub/i386/at_keyboard.h: Split into ... * include/grub/at_keyboard.h: ... this ... * include/grub/i386/at_keyboard.h: ... and this. * include/grub/dl.h (grub_arch_dl_init_linker) [_mips && !GRUB_UTIL]: New prototype. * include/grub/elfload.h (grub_elf32_size): New parameter. All users updated. (grub_elf64_size): Likewise. * include/grub/font.h (grub_font_load): Use grub_file_t instead of filename. * include/grub/i386/io.h (grub_port_t): New type. All users updated. * include/grub/i386/coreboot/serial.h: Rewritten. * include/grub/i386/ieee1275/serial.h: Include grub/i386/coreboot/serial.h instead of grub/i386/pc/serial.h. * include/grub/i386/pc/serial.h: Moved from here ... * include/grub/serial.h: ... to here. All users updated. * include/grub/i386/pci.h (GRUB_MACHINE_PCI_IO_BASE): New definition. (GRUB_PCI_NUM_BUS): Likewise. (GRUB_PCI_NUM_DEVICES): Likewise. (grub_pci_device_map_range): Add missing volatile keyword. * include/grub/kernel.h (OBJ_TYPE_FONT): New enum value. * include/grub/mips/at_keyboard.h: New file. * include/grub/mips/cache.h: Likewise. * include/grub/mips/io.h: Likewise. * include/grub/mips/kernel.h: Likewise. * include/grub/mips/libgcc.h: Likewise. * include/grub/mips/pci.h: Likewise. * include/grub/mips/qemu-mips/boot.h: Likewise. * include/grub/mips/qemu-mips/kernel.h: Likewise. * include/grub/mips/qemu-mips/loader.h: Likewise. * include/grub/mips/qemu-mips/memory.h: Likewise. * include/grub/mips/qemu-mips/serial.h: Likewise. * include/grub/mips/qemu-mips/time.h: Likewise. * include/grub/mips/relocator.h: Likewise. * include/grub/mips/time.h: Likewise. * include/grub/mips/types.h: Likewise. * include/grub/mips/yeeloong/at_keyboard.h: Likewise. * include/grub/mips/yeeloong/boot.h: Likewise. * include/grub/mips/yeeloong/kernel.h: Likewise. * include/grub/mips/yeeloong/loader.h: Likewise. * include/grub/mips/yeeloong/memory.h: Likewise. * include/grub/mips/yeeloong/pci.h: Likewise. * include/grub/mips/yeeloong/serial.h: Likewise. * include/grub/mips/yeeloong/time.h: Likewise. * kern/dl.c (grub_dl_resolve_symbols): Handle STT_OBJECT correctly. * kern/elf.c (grub_elf32_size): New parameter. All users updated. (grub_elf64_size): Likewise. * kern/main.c (grub_main): Call grub_arch_dl_init_linker if necessary. Load modules before saying "Welcome to GRUB!". Call grub_refresh after saying "Welcome to GRUB!". * kern/mips/cache.S: New file. * kern/mips/cache_flush.S: Likewise. * kern/mips/dl.c: Likewise. * kern/mips/init.c: Likewise. * kern/mips/qemu-mips/init.c: Likewise. * kern/mips/startup.S: Likewise. * kern/mips/yeeloong/init.c: Likewise. * kern/term.c (grub_putcode): Handle NULL terminal. (grub_getcharwidth): Likewise. (grub_getkey): Likewise. (grub_checkkey): Likewise. (grub_getkeystatus): Likewise. (grub_getxy): Likewise. (grub_getwh): Likewise. (grub_gotoxy): Likewise. (grub_cls): Likewise. (grub_setcolorstate): Likewise. (grub_setcolor): Likewise. (grub_getcolor): Likewise. (grub_refresh): Likewise. * lib/mips/relocator.c (JUMP_SIZEOF): Fix incorrect value. (write_jump): Add hatch nop. * lib/mips/relocator_asm.S: Use kern/mips/cache_flush.S. * lib/mips/setjmp.S: New file. * loader/mips/linux.c: Likewise. * term/i386/pc/at_keyboard.c: Move from here ... * term/at_keyboard.c: ... to here. * term/i386/pc/serial.c: Moved from here ... * term/serial.c: ... to here. All users updated. (TEXT_HEIGHT): Set to 24 to fit linux terminal. (serial_hw_io_addr): Use GRUB_MACHINE_SERIAL_PORTS. (serial_translate_key_sequence): Avoid deadlock. (grub_serial_getkey): Handle backspace. (grub_serial_putchar): Fix newline handling. * util/i386/pc/grub-mkimage.c: Move from here ... * util/grub-mkrawimage.c: ... to here. All users updated. (generate_image): New parameters 'font_path' and 'format'. Support embedding font. Use grub_host_to_target* instead of grub_cpu_to_le*. (generate_image) [GRUB_MACHINE_MIPS]: Support ELF encapsulation. (options) [GRUB_PLATFORM_IMAGE_DEFAULT]: New option "--format". (options): New option "--font". (usage): Likewise. (main) [GRUB_PLATFORM_IMAGE_DEFAULT]: Handle "--format". (main): Handle "--font". * term/gfxterm.c (grub_virtual_screen): New member bg_color_display. (grub_virtual_screen_setup): Set bg_color_display. (redraw_screen_rect): Use bg_color_display instead of incorrect bg_color. (grub_gfxterm_cls): Likewise. * util/elf/grub-mkimage.c (load_modules): New parameter 'config_path'. Support embedding config file. (add_segments): Likewise. (options): New option "--config". (main): Handle "--config". * video/sm712.c: New file. 2010-01-18 Robert Millan Fix parallel builds. * conf/common.rmk (font/font.c_DEPENDENCIES): New variable (makes font.c depend on ascii.h). 2010-01-12 Carles Pina i Estany * Makefile.in (DUSE_ASCII_FAILBACK): New macro. 2010-01-11 Carles Pina i Estany * font/font.c (GENERATE_ASCII): Change the name to USE_ASCII_FAILBACK. By default: disabled. * Makefile.in (ascii.h): Remove the non-needed grub/bin2h size parameter. 2010-01-10 Carles Pina i Estany * font/font.c: Update copyright years. * util/grub-mkfont.c (write_font_ascii_bitmap): Change comment format. 2010-01-10 Carles Pina i Estany * font/font.c: Include `ascii.h'. (ASCII_BITMAP_SIZE): New macro. (ascii_font_glyph): Define. (ascii_glyph_lookup): New function. (grub_font_get_string_width): Change comment. If glyph not found, use ascii_glyph_lookup. (grub_font_get_glyph_with_fallback): If glyph not available returns ascii_glyph_lookup. * util/grub-mkfont.c (file_formats): New enum. (options): Add `ascii-bitmaps' new option. (usage): Add `asii-bitmaps' new option. (write_font_ascii_bitmap): New function. (write_font): Rename to ... (write_font_p2): ... this. Remove print_glyphs call. (main): Use file_format. Implement code for ranges if ascii-bitmaps is used. Call print_glyphs. * Makefile.in (pkgdata_DATA): Add `ascii.h'. 2010-01-14 Robert Millan * conf/common.rmk (bin_UTILITIES): Add `grub-bin2h'. (grub_bin2h_SOURCES): New variable. * util/bin2h.c: New file. 2010-01-20 Vladimir Serbinenko * include/multiboot.h: Resynced with spec. * include/multiboot2.h: Likewise. * loader/i386/multiboot_mbi.c (grub_fill_multiboot_mmap): Handle GRUB_MACHINE_MEMORY_ACPI_RECLAIMABLE and GRUB_MACHINE_MEMORY_NVS. 2010-01-18 Robert Millan * include/grub/term.h (grub_term_register_input, grub_term_register_output): Check return of terminal init() routines, and abort if errors are raised. * commands/terminal.c: Update copyright year. 2010-01-18 Robert Millan * commands/terminal.c (grub_cmd_terminal_input) (grub_cmd_terminal_output): Check return of terminal init() routines, and abort if errors are raised. 2010-01-18 Vladimir Serbinenko * include/grub/i386/bsd.h: Fix include pathes. 2010-01-18 Vladimir Serbinenko Add missing *BSD copyright headers. * include/grub/aout.h: Add BSD licence. * include/grub/i386/bsd.h: Parts under different licences moved to ... * include/grub/i386/freebsd_linker.h: ... here, * include/grub/i386/freebsd_reboot.h: ... here, * include/grub/i386/netbsd_bootinfo.h: ... here, * include/grub/i386/netbsd_reboot.h: ... here, * include/grub/i386/openbsd_bootarg.h: ... here, * include/grub/i386/openbsd_reboot.h: ... and here. Added appropriate licence to each file. 2010-01-18 Robert Millan * acinclude.m4: Remove `nop' assembly instruction; it's not implemented by all architectures. 2010-01-18 Robert Millan * loader/i386/efi/linux.c (grub_cmd_linux): Stop pretending we're ELILO. This is no longer necessary. 2010-01-18 BVK Chaitanya Added new tool, grub-scrit-check to verify grub.cfg syntax. * util/grub-script-check.c: grub-script-check tool. * conf/common.rmk: Make rules for grub-script-check. 2010-01-18 Robert Millan Fix annoying UI bug in rescue mode. Thanks to Tristan Gingold for spotting it back in 2008. Shame on me for forgetting he did. * kern/rescue_reader.c (grub_rescue_run): Skip zero-length lines. 2010-01-18 Robert Millan * include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): Rename to ... (GRUB_VIDEO_LINUX_TYPE_TEXT): ... this. Update all users. (GRUB_VIDEO_TYPE_VLFB): Rename to ... (GRUB_VIDEO_LINUX_TYPE_VESA): ... this. Update all users. (GRUB_VIDEO_TYPE_EFI): Rename to ... (GRUB_VIDEO_LINUX_TYPE_SIMPLE): ... this. Update all users. 2010-01-17 Robert Millan * include/grub/test.h: Add license header. * tests/example_functional_test.c: Likewise. * tests/example_unit_test.c: Likewise. * tests/lib/functional_test.c: Likewise. * tests/lib/test.c: Likewise. * tests/lib/unit_test.c: Likewise. 2010-01-17 Vladimir Serbinenko Use flag-based instead of hook-based video mode selection and "auto" keyword. * include/grub/video.h (grub_video_adapter): Changed 'setup' member. (grub_video_set_mode): Changed prototype. All users updated. (grub_video_check_mode_flag): New inline function. * video/video.c (parse_modespec): New function. (grub_video_set_mode): Parse flags and keywords. 2010-01-17 Carles Pina i Estany * util/misc.c (grub_util_info): Fix the order of the parameters in a fprintf call. 2010-01-16 Grégoire Sutre * genmk.rb (class SCRIPT): Replace option -i of sed by a pipe. 2010-01-16 Carles Pina i Estany * util/grub-editenv.c (usage): Use `program_name' instead of hardcoded string. * util/grub-emu.c (usage): Likewise. * util/grub-mkpasswd-pbkdf2.c (usage): Likewise. * util/i386/efi/grub-mkimage.c (usage): Likewise. * util/i386/pc/grub-mkimage.c (usage): Likewise. * util/i386/pc/grub-setup.c (usage): Likewise. 2010-01-16 Carles Pina i Estany * util/misc.c (grub_util_warn): Gettextizze, print full stop after the message. (grub_util_info): Likewise. (grub_util_error): Likewise. * util/elf/grub-mkimage.c: Fix capitalisation, quotes, full stops and/or new lines in `grub_util_warna', `grub_util_info', `grub_util_error' calls. * util/getroot.c: Likewise. * util/grub-editenv.c: Likewise. * util/grub-emu.c: Likewise. * util/grub-fstest.c: Likewise. * util/grub-mkdevicemap.c: Likewise. * util/grub-mkfont.c: Likewise. * util/grub-mkpasswd-pbkdf2.c: Likewise. * util/grub-mkrelpath.c: Likewise. * util/grub-pe2elf.c: Likewise. * util/grub-probe.c: Likewise. * util/hostdisk.c: Likewise. * util/i386/efi/grub-mkimage.c: Likewise. * util/i386/pc/grub-mkimage.c: Likewise. * util/i386/pc/grub-setup.c: Likewise. * util/ieee1275/ofpath.c: Likewise. * util/mkisofs/eltorito.c: Likewise. * util/mkisofs/rock.c: Likewise. * util/mkisofs/write.c: Likewise. * util/raid.c: Likewise. * util/sparc64/ieee1275/grub-mkimage.c: Likewise. * util/sparc64/ieee1275/grub-setup.c: Likewise. 2010-01-15 Vladimir Serbinenko Enable multiboot on non-pc. * conf/i386-coreboot.rmk, conf/i386-pc.rmk (pkglib_MODULES): Move multiboot.mod and multiboot2.mod to ... * conf/i386.rmk (pkglib_MODULES): ... here. * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_SOURCES): Moved to ... * conf/i386.rmk (multiboot_mod_SOURCES): .. here. * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_CFLAGS): Moved to ... * conf/i386.rmk (multiboot_mod_CFLAGS): .. here. * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_ASFLAGS): Moved to ... * conf/i386.rmk (multiboot_mod_ASFLAGS): .. here. * conf/i386-coreboot.rmk, conf/i386-pc.rmk (multiboot_mod_LDFLAGS): Moved to ... * conf/i386.rmk (multiboot_mod_LDFLAGS): .. here. * conf/x86_64-efi.rmk (pkglib_MODULES): Remove ata.mod and relocator.mod. (ata_mod_SOURCES): Removed. (ata_mod_CFLAGS): Likewise. (ata_mod_LDFLAGS): Likewise. (relocator_mod_SOURCES): Removed. (relocator_mod_CFLAGS): Likewise. (relocator_mod_ASFLAGS): Likewise. (relocator_mod_LDFLAGS): Likewise. Include i386.mk. * include/grub/x86_64/multiboot.h: New file. * loader/i386/multiboot.c (grub_multiboot_boot) [GRUB_MACHINE_EFI]: Terminate EFI. 2010-01-15 Vladimir Serbinenko Video multiboot support. * include/grub/multiboot.h (grub_multiboot_set_accepts_video): New prototype. * include/multiboot.h: Resynced with multiboot specification. * include/multiboot2.h: Likewise. * loader/i386/multiboot.c (UNSUPPORTED_FLAGS): Support video flags. (grub_multiboot): Parse MULTIBOOT_VIDEO_MODE fields. * loader/i386/multiboot_mbi.c (DEFAULT_VIDEO_MODE): New constant. (HAS_VGA_TEXT): Likewise. (accepts_video): New variable. (grub_multiboot_set_accepts_video): New function. (grub_multiboot_get_mbi_size): Account for video structures. (set_video_mode): New function. (retrieve_video_parameters): Likewise. (grub_multiboot_make_mbi): Fill video fields. 2010-01-15 Vladimir Serbinenko Video driver ids. * include/grub/video.h (grub_video_driver_id): New type. (grub_video_adapter): New member 'id'. All users updated. (grub_video_get_driver_id): New proto. * video/video.c (grub_video_get_driver_id): New function. 2010-01-14 Carles Pina i Estany * util/grub.d/30_os-prober.in: Use `set var=val' rather than plain `var=val'. 2010-01-14 Carles Pina i Estany * normal/cmdline.c (print_completion): Gettextizze. 2001-01-14 Carles Pina i Estany * loader/i386/pc/chainloader.c: Include `'. 2010-01-14 Carles Pina i Estany * gettext/gettext.c (grub_gettext_translate): Push and pop grub_errno. (grub_gettext_delete_list): Change comment style. * kern/err.c (grub_error): Gettextizze. (grub_fatal): Gettextizze. 2010-01-14 Robert Millan * include/grub/i386/loader.h (grub_linux16_boot): Renamed to ... (grub_linux16_real_boot): ... this. * kern/i386/loader.S: Likewise. * loader/i386/pc/linux.c: Include `' and `'. (grub_linux16_boot): New function. Switches to text mode and calls grub_linux16_real_boot(). * loader/i386/bsd.c: Include `'. (grub_freebsd_boot, grub_openbsd_boot, grub_netbsd_boot): Switch to text mode before calling grub_unix_real_boot(). * loader/i386/multiboot.c: Include `'. (grub_multiboot_boot): Switch to text mode before calling grub_relocator32_boot(). * loader/i386/pc/chainloader.c: Include `'. (grub_chainloader_boot): Switch to text mode before calling grub_chainloader_real_boot(). 2010-01-05 Jordan Uggla 2010-01-05 Colin Watson * util/grub-reboot.in: Make sure prev_saved_entry always gets a non-empty value. 2010-01-05 Jordan Uggla 2010-01-05 Colin Watson * util/grub.d/00_header.in: Define a "savedefault" function for use in menu entries. * util/grub-mkconfig_lib.in (save_default_entry): Use it. 2010-01-05 Jordan Uggla 2010-01-05 Colin Watson * util/grub-mkconfig_lib.in (save_default_entry): Only set saved_entry if boot_once is unset. * util/grub.d/00_header.in: Set boot_once to "true" if there was a previous saved entry (i.e. grub-reboot). 2009-12-08 Colin Watson * util/grub.d/30_os-prober.in: Call save_default_entry for hurd. 2009-12-08 Colin Watson * util/grub.d/00_header.in: Use `set var=val' rather than plain `var=val'. * util/grub-mkconfig_lib.in (save_default_entry): Likewise. 2009-12-08 Colin Watson * util/grub-reboot.in: Fix --version output. * util/grub-set-default.in: Likewise. 2009-12-08 Colin Watson * util/grub.d/00_header.in: Silently ignore zero-sized environment blocks. 2009-12-08 Colin Watson * util/grub.d/00_header.in: Quote the value assigned to `default', in case it contains spaces. 2009-12-08 Colin Watson * util/grub.d/30_os-prober.in: Fix merge error that moved a `save_default_entry' call from the macosx case to the linux case. 2009-10-25 Vladimir Serbinenko 2009-10-25 Colin Watson * normal/menu.c (grub_menu_execute_entry): Save selected entry title in `chosen' environment variable. * normal/menu_text.c (get_entry_number): Check if the variable matches the title of a menu entry. (run_menu): Pass menu to get_entry_number. * util/grub-reboot.in: New file. * util/grub-set-default.in: New file. * conf/common.rmk (grub-reboot): New utility. (grub-set-default): New utility. * util/grub-mkconfig_lib.in (save_default_entry): New function. * util/grub.d/00_header.in: If GRUB_DEFAULT is `saved', set default to `${saved_entry}'. If `${prev_saved_entry}' is non-empty, move it to `saved_entry' for the next boot. Load environment on initialisation. * util/grub.d/10_kfreebsd.in: Call save_default_entry. * util/grub.d/10_hurd.in: Likewise. * util/grub.d/10_linux.in (linux_entry): Likewise. * util/grub.d/10_windows.in: Likewise. * util/grub.d/30_os-prober.in: Likewise. * util/grub-install.in: Create environment block. * util/i386/efi/grub-install.in: Likewise. * util/ieee1275/grub-install.in: Likewise. * util/sparc64/ieee1275/grub-install.in: Likewise. 2010-01-14 BVK Chaitanya Unit testing framework for GRUB. * Makefile.in: Test framework build rules for 'make check'. * conf/tests.rmk: Build rules for individual tests and framework. * include/grub/test.h: Header file for whitebox tests. * tests/lib/functional_test.c: Framework support for whitebox functional tests. * tests/lib/test.c: Common whitebox testing code for unit and functional tests. * tests/lib/unit_test.c: Framework support for whitebox unit tests. * tests/util/grub-shell-tester.in: Support utility for grub-script tests. * tests/util/grub-shell.in: Utility to execute grub-script commands in a Qemu instance. * tests/example_functional_test.c: Example whitebox functional test. * tests/example_grub_script_test.in: Example grub-script test. * tests/example_scripted_test.in: Example scripted test. * tests/example_unit_test.c: Example whitebox unit test. 2010-01-14 Vladimir Serbinenko * conf/i386-coreboot.rmk (multiboot_mod_SOURCES): Add loader/i386/multiboot_mbi.c. (multiboot2_mod_SOURCES): Likewise. * conf/i386-pc.rmk (multiboot_mod_SOURCES): Likewise. (multiboot2_mod_SOURCES): Likewise. * include/grub/multiboot.h (grub_multiboot_get_mbi_size): New proto. (grub_multiboot_make_mbi): Likewise. (grub_multiboot_free_mbi): Likewise. (grub_multiboot_init_mbi): Likewise. (grub_multiboot_add_module): Likewise. (grub_multiboot_set_bootdev): Likewise. * loader/i386/multiboot.c (mbi): Removed. (mbi_dest): Likewise. (alloc_mbi): New variable. (grub_multiboot_payload_size): Removed. All users updated. (grub_multiboot_pure_size): New variable. (grub_multiboot_boot): Use grub_multiboot_make_mbi. (grub_multiboot_unload): Use grub_multiboot_free_mbi. (grub_get_multiboot_mmap_len): Moved to loader/i386/multiboot_mbi.c. (grub_fill_multiboot_mmap): Likewise. (grub_multiboot_get_bootdev): Likewise. (grub_multiboot): Use multiboot_mbi functions. * loader/i386/multiboot_mbi.c: New file. 2010-01-13 Vladimir Serbinenko * kern/efi/init.c (grub_efi_fini): Don't call grub_efi_mm_fini as it would result in module crash. 2010-01-13 Vladimir Serbinenko * term/ieee1275/ofconsole.c (grub_ofconsole_putchar): Handle '\r'. (grub_ofconsole_getwh): Split to ... (grub_ofconsole_getwh): ... this. (grub_ofconsole_dimensions): ...and this. (grub_ofconsole_init_output): Call grub_ofconsole_dimensions. 2010-01-13 Robert Millan * util/mkisofs/rock.c (generate_rock_ridge_attributes): Fix a typo. 2010-01-12 Vladimir Serbinenko * loader/i386/pc/multiboot2.c: Removed stalled file. 2010-01-12 Vladimir Serbinenko * util/grub-mkpasswd-pbkdf2.c (main): Use grub_util_init_nls. Reported by: Grégoire Sutre 2010-01-11 Robert Millan * util/misc.c (canonicalize_file_name): New function. (make_system_path_relative_to_its_root): Use canonicalize_file_name() instead of realpath(). 2010-01-11 Colin Watson * util/grub-install.in (usage): Clarify meaning of --root-directory, and make it clearer that it's optional. Based on confusion witnessed on IRC. 2010-01-10 Vladimir Serbinenko * term/i386/pc/vga_text.c (inc_y): Fix off-by-one error which resulted in premature implicit newline. 2010-01-10 Vladimir Serbinenko * normal/cmdline.c (grub_cmdline_get): Fix off-by-one error which resulted in garbled command line at the end of screen. 2010-01-10 Robert Millan * loader/i386/ieee1275/linux.c (grub_linux_boot): Rework video position initialization with similar approach as with other Linux loaders. 2010-01-10 Robert Millan Fix i386-ieee1275 build. * loader/i386/ieee1275/linux.c (grub_linux_boot): Use grub_term_width() and grub_term_height() for video_{width,height} initialization. 2010-01-10 Robert Millan Fix grub-emu build. * conf/any-emu.rmk (grub_emu_SOURCES): Remove `kern/reader.c'. 2010-01-07 Vladimir Serbinenko 2010-01-09 Robert Millan Support for multiple terminals. * Makefile.in (pkglib_DATA): terminal.lst. (terminal.lst): New target. * commands/handler.c (grub_cmd_handler): Don't handle terminals. (GRUB_MOD_INIT(handler)): Likewise. (GRUB_MOD_FINI(handler)): Likewise. * commands/help.c (grub_cmd_help): Handle multiple terminals. * commands/keystatus.c (grub_cmd_keystatus): Likewise. * commands/sleep.c (do_print): Use grub_term_restore_pos. (grub_cmd_sleep): Use grub_term_save_pos. * commands/terminal.c: New file. * conf/any-emu.rmk (grub_emu_SOURCES): Add normal/term.c commands/terminal.c and lib/charset.c. * conf/common.rmk (normal_mod_SOURCES): Add normal/term.c. (pkglib_MODULES): Add terminal.mod. (terminal_mod_SOURCES): New variable. (terminal_mod_CFLAGS): Likewise. (terminal_mod_LDFLAGS): Likewise. * genhandlerlist.sh: Don't handle terminals. * genmk.rb: Generate terminal-*.lst. * genterminallist.sh: New file. * include/grub/charset.h (grub_ucs4_to_utf8_alloc): New proto. (grub_is_valid_utf8): Likewise. (grub_utf8_to_ucs4_alloc): Likewise. * include/grub/menu_viewer.h (grub_menu_viewer): Rewritten. (grub_menu_register_viewer): Changed argument. (grub_menu_try_text): New proto. (grub_gfxmenu_try_hook): New declaration. * include/grub/normal.h (grub_normal_exit_level): New declaration. (grub_menu_init_page): Additional argument term. (grub_normal_init_page): Likewise. (grub_cmdline_get): Arguments simplified. (grub_utf8_to_ucs4_alloc): Removed. (grub_print_ucs4): Additional argument term. (grub_getstringwidth): Likewise. (grub_print_message_indented): Likewise. (grub_menu_text_register_instances): New proto. (grub_show_menu): Likewise. (read_terminal_list): Likewise. (grub_set_more): Likewise. * include/grub/parser.h: Include handler.h. * include/grub/reader.h: Rewritten. * include/grub/term.h (GRUB_TERM_NEED_INIT): Removed. (GRUB_TERM_WIDTH): Changed to function. (GRUB_TERM_HEIGHT): Likewise. (GRUB_TERM_BORDER_WIDTH): Likewise. (GRUB_TERM_BORDER_HEIGHT): Likewise. (GRUB_TERM_NUM_ENTRIES): Likewise. (GRUB_TERM_ENTRY_WIDTH): Likewise. (GRUB_TERM_CURSOR_X): Likewise. (grub_term_input_class): Likewise. (grub_term_output_class): Likewise. (grub_term_outputs_disabled): New declaration. (grub_term_inputs_disabled): Likewise. (grub_term_outputs): Likewise. (grub_term_inputs): Likewise. (grub_term_register_input): Rewritten. (grub_term_register_output): Likewise. (grub_term_unregister_input): Likewise. (grub_term_unregister_output): Likewise. (FOR_ACTIVE_TERM_INPUTS): New macro. (FOR_DISABLED_TERM_INPUTS): Likewise. (FOR_ACTIVE_TERM_OUTPUTS): Likewise. (FOR_DISABLED_TERM_OUTPUTS): Likewise. * include/grub/terminfo.h: Add oterm argument to all protypes. * kern/main.c (grub_main): Don't call grub_register_rescue_reader. Use grub_rescue_run. * kern/misc.c (grub_utf8_to_ucs4): Put '?' for invalid characters. All users updated. * kern/reader.c: Removed. All users updated. * kern/rescue_reader.c (grub_rescue_init): Removed. (grub_rescue_reader): Likewise. (grub_register_rescue_reader): Likewise. (grub_rescue_run): New function based on kern/reader.c. * kern/term.c: Adapted for multiterm. * lib/charset.c (grub_ucs4_to_utf8_alloc): New function. (grub_is_valid_utf8): Likewise. (grub_utf8_to_ucs4_alloc): Moved from normal/menu_text.c. * loader/i386/efi/linux.c (grub_cmd_linux): Retrieve parameters of right terminal. * loader/i386/linux.c (grub_linux_boot): Likewise. * normal/auth.c (grub_username_get): New function. (grub_auth_check_authentication): Use grub_username_get. * normal/cmdline.c: Changed to UCS4. Adapted for multiterm. * normal/color.c: Adapt for multiterm. * normal/main.c (read_config_file): Don't use grub_reader_loop. (grub_normal_init_page): Additional argument term. (read_lists): Call read_terminal_lists. (grub_enter_normal_mode): Call grub_cmdline_run. Handle grub_normal_exit_level. (grub_cmd_normal): Make reentrant. (grub_cmd_normal_exit): New function. (grub_normal_reader_init): Additional argument nested. Handle multiterm. * normal/menu.c: Adapt for multiterm. * normal/menu_entry.c: Likewise. * normal/menu_text.c: Likewise. * normal/menu_viewer.c: Removed. All users updated. * normal/term.c: New file. * util/console.c: Change order of includes to workaround a bug in ncurses headers. * term/terminfo.c: New argument oterm on all exported functions. All users updated. * util/grub-editenv.c (grub_term_input_class): Removed. (grub_term_output_class): Likewise. 2010-01-09 Robert Millan Make loader output a bit more user-friendly. * util/grub.d/10_hurd.in: Print message indicating that GNU Mach is being loaded. Likewise for the Hurd. * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Print message indicating that kernel of FreeBSD ${version} is being loaded. * loader/i386/linux.c (grub_cmd_linux): Move debug info to grub_dprintf(). (grub_cmd_initrd): Likewise. * util/grub.d/10_linux.in (linux_entry): Print message indicating that Linux ${version} is being loaded. Likewise for initrd. 2010-01-09 Carles Pina i Estany * gettext/gettext.c (GRUB_MOD_INIT): Gettextizze. 2010-01-08 Carles Pina i Estany * loader/efi/appleloader.c: Include `'. (GRUB_MOD_INIT): Gettextizze. * loader/efi/chainloader.c: Include `'. (GRUB_MOD_INIT): Gettextizze. * loader/i386/efi/linux.c: Include `'. (grub_cmd_linux): Capitalise Linux. (GRUB_MOD_INIT): Gettextizze. * loader/i386/ieee1275/linux.c: Include `'. (grub_cmd_linux): Capitalise Linux. (GRUB_MOD_INIT): Gettextizze. * loader/i386/linux.c: Include `'. (grub_cmd_linux): Capitalise Linux. (GRUB_MOD_INIT): Gettextizze. * loader/i386/pc/chainloader.c: Include `'. (GRUB_MOD_INIT): Gettextizze. * loader/i386/pc/linux.c: Include `'. (grub_cmd_linux): Capitalise Linux. (GRUB_MOD_INIT): Gettextizze. * loader/i386/xnu.c: Include `'. (grub_cpu_xnu_init): Gettextizze. * loader/multiboot_loader.c: Include `'. (GRUB_MOD_INIT): Gettextizze. * loader/powerpc/ieee1275/linux.c: Include `'. (GRUB_MOD_INIT): Gettextizze. * loader/sparc64/ieee1275/linux.c: Include `'. (grub_linux_load64): Capitalise Linux. (GRUB_MOD_INIT): Gettextizze. * loader/xnu.c: Include `'. (GRUB_MOD_INIT): Gettextizze. * po/POTFILES: Add `loader/efi/appleloader.c', `loader/efi/chainloader.c', `loader/i386/efi/linux.c', `loader/i386/ieee1275/linux.c', `loader/i386/linux.c', `loader/i386/pc/chainloader.c', `loader/i386/pc/linux.c', `loader/i386/xnu.c', `loader/multiboot_loader.c', `loader/powerpc/ieee1275/linux.c', `loader/sparc64/ieee1275/linux.c' and `loader/xnu.c'. 2010-01-08 Robert Millan * src/mkisofs.c: Remove `ifdef linux' portability kludge. 2010-01-08 Robert Millan * util/mkisofs/defaults.h (APPID_DEFAULT): Redefine using PACKAGE_NAME. (SYSTEM_ID_DEFAULT): Set to "GNU" unconditionally. * util/mkisofs/mkisofs.c (main): Readjust --version output. 2010-01-07 Robert Millan Reset Multiboot 2 support. New loader implements the draft in /branches/multiboot2 and shares as much code as possible with the production Multiboot 1 implementation. * loader/ieee1275/multiboot2.c: Remove file. Update all users. * loader/multiboot2.c: Likewise. * loader/i386/multiboot_helper.S: Likewise. * include/multiboot2.h: Replace with latest version from the draft in /branches/multiboot2. * conf/i386-coreboot.rmk (multiboot_mod_SOURCES): Remove `loader/i386/multiboot_helper.S', `loader/i386/pc/multiboot2.c' and `loader/multiboot2.c'. (pkglib_MODULES): Add `multiboot2.mod'. (multiboot2_mod_SOURCES): New variable. (multiboot2_mod_LDFLAGS): Likewise. (multiboot2_mod_CFLAGS): Likewise. Define `GRUB_USE_MULTIBOOT2'. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'. (multiboot_mod_SOURCES): Remove variable. (multiboot_mod_LDFLAGS): Likewise. (multiboot_mod_CFLAGS): Likewise. * include/grub/multiboot.h [GRUB_USE_MULTIBOOT2]: Include `' instead of `'. [GRUB_USE_MULTIBOOT2] (MULTIBOOT_BOOTLOADER_MAGIC) (MULTIBOOT_HEADER_MAGIC): New macros. * loader/multiboot_loader.c (module_version_status): Remove variable. (find_multi_boot2_header): Remove function. (grub_cmd_multiboot_loader): Remove Multiboot 2 / Multiboot 1 selection logic. Always check for the Multiboot version we're compiling for. (grub_cmd_module_loader): Likewise. [GRUB_USE_MULTIBOOT2] (GRUB_MOD_INIT(multiboot)): Register `multiboot2' command instead of `multiboot'. 2010-01-07 Robert Millan * include/multiboot.h (MULTIBOOT_UNSUPPORTED): Moved from here ... * loader/i386/multiboot.c (UNSUPPORTED_FLAGS): ... to here. Update all users. 2010-01-07 Robert Millan 2010-01-07 Vladimir Serbinenko Fix breakage introduced with previous commit. * normal/dyncmd.c (read_command_list): Avoid unregistering kernel commands. * normal/handler.c (read_handler_list): Revert part of previous commit affecting this file. * normal/main.c (read_lists): Move read_handler_list() call back to ... (grub_normal_execute): ... here. 2010-01-07 Robert Millan Merge prefix-redefinition-fix branch. * normal/autofs.c (read_fs_list): Make function capable of being run multiple times, gracefuly replacing the previous data structures. * normal/dyncmd.c (read_command_list): Likewise. * normal/handler.c (read_handler_list): Likewise. * normal/main.c (read_lists): New function. Calls all the list reading functions. (grub_normal_execute): Use read_lists() instead of calling all list reading functions explicitly. Register read_lists() as a variable hook attached to ${prefix}. 2010-01-07 Vladimir Serbinenko Merge crypto branch. * Makefile.in (pkglib_DATA): Add crypto.lst. (crypto.lst): New target. * commands/hashsum.c: New file. * commands/password.c (check_password): Use grub_crypto_memcmp. * commands/password_pbkdf2.c: New file. * commands/xnu_uuid.c: Remove MD5. Use GRUB_MD_MD5. * conf/any-emu.rmk (grub_emu_SOURCES): Add lib/crypto.c, normal/crypto.c and lib/libgcrypt-grub/cipher/md5.c. (grub_emu_CFLAGS): Add -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap. * conf/common.rmk (normal_mod_SOURCES): Add normal/crypto.c. (pkglib_MODULES): Add crypto.mod, hashsum.mod, pbkdf2.mod and password_pbkdf2.mod. (crypto_mod_SOURCES): New variable. (crypto_mod_CFLAGS): Likewise. (crypto_mod_LDFLAGS): Likewise. (hashsum_mod_SOURCES): New variable. (hashsum_mod_CFLAGS): Likewise. (hashsum_mod_LDFLAGS): Likewise. (pbkdf2_mod_SOURCES): New variable. (pbkdf2_mod_CFLAGS): Likewise. (pbkdf2_mod_LDFLAGS): Likewise. (password_pbkdf2_mod_SOURCES): New variable. (password_pbkdf2_mod_CFLAGS): Likewise. (password_pbkdf2_mod_LDFLAGS): Likewise. (bin_UTILITIES): Add grub-mkpasswd-pbkdf2. (grub_mkpasswd_pbkdf2_SOURCES): New variable. (grub_mkpasswd_pbkdf2_CFLAGS): Likewise. Include conf/gcry.rmk. * include/grub/auth.h: Rewritten. * include/grub/crypto.h: New file. * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_LUKS_ID. * include/grub/normal.h (read_crypto_list): New prototype. * lib/crypto.c: New file. * lib/libgcrypt_wrap/cipher_wrap.h: Likewise. * lib/pbkdf2.c: Likewise. * normal/auth.c (grub_auth_strcmp): Removed. (grub_iswordseparator): Likewise. (grub_auth_strword): Likewise. (is_authenticated): Use grub_strword. (grub_auth_check_authentication): Use grub_strcmp, grub_password_get and grub_strword. Pass entered password to authentication callback. * normal/crypto.c: New file. * normal/main.c: Call read_crypto_list. * util/grub-mkpasswd-pbkdf2.c: New file. * util/import_gcry.py: Generate crypto.lst. Add hash blocklen. 2010-01-06 Vladimir Serbinenko Fix descent and ascent calculation. * util/grub-mkfont.c (grub_font_info): New fields 'asce' and 'max_y'. (options): New option "asce". (usage): Likewise. (add_char): Ignore invalid glyphs for descent calculation. Calculate ascent from actual content. (print_glyphs): Use 'asce'. (write_font): Likewise. Allow ascent override. (main): Handle "asce" option. 2010-01-06 Carles Pina i Estany * kern/err.c: Include `'. (grub_print_error): Add full stop. Gettextizze. * loader/i386/bsd.c (grub_netbsd_boot): Change grub_error description. (grub_bsd_load_elf): Capitalise ELF. (grub_cmd_freebsd_loadenv): Add `s' in error string. (grub_cmd_freebsd_module): Likewise. (grub_cmd_freebsd_module_elf): Likewise. * loader/i386/bsdXX.c (SUFFIX): Capitalise ELF. 2010-01-06 Carles Pina i Estany * commands/search.c (GRUB_MOD_INIT): Use HELP_MESSAGE. * commands/search_file.c (HELP_MESSAGE): New macro. * commands/search_label.c (HELP_MESSAGE): Likewise. * commands/search_uuid.c (HELP_MESSAGE): Likewise. * po/POTFILES: Add `commands/search_file.c', `commands/search_label.c', `commands_uuid.c'. Remove duplicate `commands/search.c'. 2010-01-05 Robert Millan * config.rpath: Update from Gnulib. 2010-01-05 Yves Blusseau * commands/acpi.c (grub_acpi_create_ebda): fix incorrect message. 2010-01-05 Yves Blusseau * util/sparc64/ieee1275/grub-mkimage.c (main): Typo fix. 2010-01-05 Colin Watson * util/mkisofs/write.c (padblock_write): Switch size and nmemb arguments to fread so that we get a return value in bytes, rather than something that will normally be rounded down to 0. Adjust error handling to avoid producing garbage when size_t is not the same size as long long. 2010-01-05 Colin Watson * util/mkisofs/write.c (padblock_write): Check return value of fread. 2010-01-05 Robert Millan Remove grub-mkfloppy. Images produced by grub-mkrescue are valid floppy images now. * util/i386/pc/grub-mkfloppy.in: Remove. Update all users. 2010-01-04 Robert Millan * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Use ALIGN_UP macro instead of manual alignment. * kern/disk.c (grub_disk_read): Remove grub_dprintf call (excessively verbose). Avoid attempts to read past end of the device (grub_disk_adjust_range() guarantees that we can read `size' bytes, but GRUB_DISK_CACHE_SIZE may exceed that). 2010-01-04 Robert Millan * commands/crc.c (grub_cmd_crc): Abort on read errors. * fs/iso9660.c (grub_iso9660_read): Check for read error and pass it to upper layer. 2010-01-04 Vladimir Serbinenko * include/grub/efi/api.h (GRUB_EFI_PIWG_DEVICE_PATH_SUBTYPE): New constant. (grub_efi_piwg_device_path): New structure (grub_efi_piwg_device_path_t): New type. * loader/efi/appleloader.c (piwg_full_device_path): New structure. (devpath_1): Transform to a structure. All users updated. (devpath_2): Likewise. (devpath_3): Likewise. (devpath_4): Likewise. (devpath_5): Likewise. 2010-01-04 Vladimir Serbinenko * loader/efi/appleloader.c: Restored. Update all users. 2010-01-03 Robert Millan * boot/i386/pc/diskboot.S: Fix inaccurate comment. * util/i386/pc/grub-setup.c: Include `'. (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 `'. (generate_image): Fix broken blocklist length initialization. Add assert() call to verify blocklist `segment' field. 2010-01-03 Robert Millan * loader/efi/appleloader.c: Remove. Update all users. 2010-01-03 Robert Millan * boot/i386/pc/boot.S: Update copyright year. * boot/i386/pc/cdboot.S: Likewise. * boot/i386/pc/diskboot.S: Likewise. * boot/i386/pc/lnxboot.S: Likewise. * boot/i386/pc/pxeboot.S: Likewise. * bus/pci.c: Likewise. * commands/cmp.c: Likewise. * commands/help.c: Likewise. * commands/hexdump.c: Likewise. * commands/i386/pc/halt.c: Likewise. * commands/i386/pc/play.c: Likewise. * commands/i386/pc/vbeinfo.c: Likewise. * commands/ls.c: Likewise. * commands/test.c: Likewise. * disk/dmraid_nvidia.c: Likewise. * disk/i386/pc/biosdisk.c: Likewise. * disk/ieee1275/nand.c: Likewise. * disk/ieee1275/ofdisk.c: Likewise. * disk/lvm.c: Likewise. * disk/raid.c: Likewise. * disk/raid6_recover.c: Likewise. * disk/scsi.c: Likewise. * fs/affs.c: Likewise. * fs/cpio.c: Likewise. * fs/ext2.c: Likewise. * fs/hfs.c: Likewise. * fs/iso9660.c: Likewise. * fs/ntfs.c: Likewise. * fs/sfs.c: Likewise. * fs/udf.c: Likewise. * fs/ufs.c: Likewise. * fs/xfs.c: Likewise. * gencmdlist.sh: Likewise. * genmk.rb: Likewise. * include/grub/disk.h: Likewise. * include/grub/efi/api.h: Likewise. * include/grub/efi/efi.h: Likewise. * include/grub/efi/pe32.h: Likewise. * include/grub/elf.h: Likewise. * include/grub/fs.h: Likewise. * include/grub/i386/at_keyboard.h: Likewise. * include/grub/i386/pc/memory.h: Likewise. * include/grub/i386/pc/vbe.h: Likewise. * include/grub/i386/pci.h: Likewise. * include/grub/i386/tsc.h: Likewise. * include/grub/ieee1275/ieee1275.h: Likewise. * include/grub/ntfs.h: Likewise. * include/grub/sparc64/ieee1275/ieee1275.h: Likewise. * include/grub/sparc64/libgcc.h: Likewise. * include/grub/symbol.h: Likewise. * include/grub/types.h: Likewise. * include/multiboot2.h: Likewise. * io/gzio.c: Likewise. * kern/device.c: Likewise. * kern/disk.c: Likewise. * kern/efi/efi.c: Likewise. * kern/efi/mm.c: Likewise. * kern/elf.c: Likewise. * kern/file.c: Likewise. * kern/i386/dl.c: Likewise. * kern/i386/pc/init.c: Likewise. * kern/i386/pc/startup.S: Likewise. * kern/ieee1275/ieee1275.c: Likewise. * kern/ieee1275/init.c: Likewise. * kern/main.c: Likewise. * kern/mm.c: Likewise. * kern/powerpc/dl.c: Likewise. * kern/sparc64/dl.c: Likewise. * kern/x86_64/dl.c: Likewise. * lib/hexdump.c: Likewise. * loader/efi/appleloader.c: Likewise. * loader/i386/ieee1275/linux.c: Likewise. * loader/i386/pc/chainloader.c: Likewise. * loader/i386/pc/linux.c: Likewise. * loader/i386/pc/multiboot2.c: Likewise. * loader/ieee1275/multiboot2.c: Likewise. * loader/multiboot2.c: Likewise. * loader/multiboot_loader.c: Likewise. * loader/powerpc/ieee1275/linux.c: Likewise. * normal/completion.c: Likewise. * normal/menu_entry.c: Likewise. * partmap/apple.c: Likewise. * util/grub.d/10_hurd.in: Likewise. * util/hostfs.c: Likewise. * video/readers/png.c: Likewise. 2010-01-03 Colin Watson * include/grub/misc.h (GNUC_PREREQ): New macro. (ATTRIBUTE_ERROR): New macro. * include/grub/list.h (grub_bad_type_cast_real): Use ATTRIBUTE_ERROR. 2010-01-03 Carles Pina i Estany * normal/menu_text.c (print_message): Change messages. 2010-01-03 Carles Pina i Estany * normal/menu_entry.c (store_completion): Gettextizze. 2010-01-03 Carles Pina i Estany * kern/env.c (grub_env_unset): Set the variable to "" if has hooks. 2010-01-03 Carles Pina i Estany * po/POTFILES: Sort correctly. 2010-01-03 Carles Pina i Estany * 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. 2010-01-03 Carles Pina i Estany * commands/acpi.c: Gettextizze help strings and/or options. Include `grub/i18n.h' if needed. * commands/blocklist.c: Likewise. * commands/boot.c: Likewise. * commands/cat.c: Likewise. * commands/cmp.c: Likewise. * commands/configfile.c: Likewise. * commands/crc.c: Likewise. * commands/date.c: Likewise. * commands/echo.c: Likewise. * commands/efi/fixvideo.c: Likewise. * commands/efi/loadbios.c: Likewise. * commands/gptsync.c: Likewise. * commands/halt.c: Likewise. * commands/handler.c: Likewise. * commands/hdparm.c: Likewise. * commands/hexdump.c: Likewise. * commands/i386/cpuid.c: Likewise. * commands/i386/pc/drivemap.c: Likewise. * commands/i386/pc/halt.c: Likewise. * commands/i386/pc/pxecmd.c: Likewise. * commands/i386/pc/vbeinfo.c: Likewise. * commands/i386/pc/vbetest.c: Likewise. * commands/ieee1275/suspend.c: Likewise. * commands/keystatus.c: Likewise. * commands/loadenv.c: Likewise. * commands/ls.c: Likewise. * commands/lsmmap.c: Likewise. * commands/lspci.c: Likewise. * commands/memrw.c: Likewise. * commands/minicmd.c: Likewise. * commands/parttool.c: Likewise. * commands/password.c: Likewise. * commands/probe.c: Likewise. * commands/read.c: Likewise. * commands/reboot.c: Likewise. * commands/search.c: Likewise. * commands/sleep.c: Likewise. * commands/test.c: Likewise. * commands/true.c: Likewise. * commands/usbtest.c: Likewise. * commands/videotest.c: Likewise. * commands/xnu_uuid.c: Likewise. * disk/loopback.c: Likewise. * hello/hello.c: Likewise. * loader/i386/bsd.c: Likewise. * term/i386/pc/serial.c: Likewise. * po/POTFILES: Add new files. 2010-01-02 Colin Watson * term/i386/pc/at_keyboard.c (keyboard_controller_wait_untill_ready): Rename to ... (keyboard_controller_wait_until_ready): ... this. Update all users. 2010-01-01 Carles Pina i Estany * 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. 2010-01-01 Robert Millan Import from Gnulib. * gnulib/getdelim.c: New file. * gnulib/getline.c: Likewise. 2009-12-31 BVK Chaitanya * include/grub/list.h (grub_assert_fail): Removed. (grub_bad_type_cast_real): New function. (grub_bad_type_cast): New macro. (GRUB_AS_LIST): Use grub_bad_type_cast. (GRUB_AS_LIST_P): Likewise. (GRUB_AS_NAMED_LIST): Likewise. (GRUB_AS_NAMED_LIST_P): Likewise. (GRUB_AS_PRIO_LIST): Likewise. (GRUB_AS_PRIO_LIST_P): Likewise. * include/grub/handler.h (GRUB_AS_HANDLER): Likewise. 2009-12-29 Vladimir Serbinenko * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT (linux)): Fix syntax error. 2009-12-29 Robert Millan * 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. 2009-12-28 Carles Pina i Estany * normal/misc.c (grub_normal_print_device_info): Add spaces and double quotes. 2009-12-27 Vladimir Serbinenko * kern/parser.c (grub_parser_split_cmdline): Don't dereference NULL. 2009-12-27 Vladimir Serbinenko * normal/menu_text.c (grub_print_message_indented): Prevent past-the-end-of-array dereference. 2009-12-27 Vladimir Serbinenko * video/readers/jpeg.c (GRUB_MOD_FINI (grub_cmd_jpegtest)): Rename to .. (GRUB_MOD_FINI (video_reader_jpeg)): ...this 2009-12-27 Carles Pina i Estany * normal/cmdline.c (grub_cmdline_get): Print a space after prompt. * normal/main.c (grub_normal_read_line): Remove a space from the default prompt. 2009-12-27 Carles Pina i Estany * loader/i386/efi/linux.c (GRUB_MOD_INIT): Improve command summary. * loader/i386/ieee1275/linux.c (GRUB_MOD_INIT): Likewise. * loader/i386/linux.c (GRUB_MOD_INIT): Likewise. * loader/i386/pc/linux.c (GRUB_MOD_INIT): Likewise. * loader/powerpc/ieee1275/linux.c (GRUB_MOD_INIT): Likewise. * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT): Likewise. * loader/xnu.c (GRUB_MOD_INIT): Likewise. 2009-12-26 Carles Pina i Estany * 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-26 Carles Pina i Estany * efiemu/main.c (GRUB_MOD_INIT): Fix capitalizations and/or full stops. * kern/corecmd.c (grub_register_core_commands): Likewise. * loader/efi/chainloader.c (GRUB_MOD_INIT): Likewise. * loader/i386/bsd.c (GRUB_MOD_INIT): Likewise. * loader/i386/efi/linux.c (GRUB_MOD_INIT): Likewise. * loader/i386/ieee1275/linux.c (GRUB_MOD_INIT): Likewise. * loader/i386/linux.c (GRUB_MOD_INIT): Likewise. * loader/i386/pc/chainloader.c (GRUB_MOD_INIT): Likewise. * loader/i386/pc/linux.c (GRUB_MOD_INIT): Likewise. * loader/multiboot_loader.c (GRUB_MOD_INIT): Likewise. * loader/powerpc/ieee1275/linux.c (GRUB_MOD_INIT): Likewise. * loader/sparc64/ieee1275/linux.c (GRUB_MOD_INIT): Likewise. * loader/xnu.c (GRUB_MOD_INIT): Likewise. * mmap/mmap.c (GRUB_MOD_INIT): Likewise. * normal/handler.c (insert_handler): Likewise. * normal/main.c (GRUB_MOD_INIT): Likewise. * term/gfxterm.c (GRUB_MOD_INIT): Likewise. 2009-12-26 Carles Pina i Estany * commands/help.c (grub_cmd_help): Print the command name before the summary. (GRUB_MOD_INIT): Remove command name from the summary. * kern/command.c (GRUB_MOD_INIT): If summary is null assign an empty string as summary. * lib/arg.c (find_long): Print the command name before the summary. * commands/acpi.c (GRUB_MOD_INIT): Remove command name from the summary. * commands/blocklist.c (GRUB_MOD_INIT): Likewise. * commands/cat.c (GRUB_MOD_INIT): Likewise. * commands/cmp.c (GRUB_MOD_INIT): Likewise. * commands/configfile.c (GRUB_MOD_INIT): Likewise. * commands/crc.c (GRUB_MOD_INIT): Likewise. * commands/date.c (GRUB_MOD_INIT): Likewise. * commands/echo.c (GRUB_MOD_INIT): Likewise. * commands/efi/loadbios.c (GRUB_MOD_INIT): Likewise. * commands/gptsync.c (GRUB_MOD_INIT): Likewise. * commands/handler.c (GRUB_MOD_INIT): Likewise. * commands/hdparm.c (GRUB_MOD_INIT): Likewise. * commands/hexdump.c (GRUB_MOD_INIT): Likewise. * commands/i386/cpuid.c (GRUB_MOD_INIT): Likewise. * commands/i386/pc/halt.c (GRUB_MOD_INIT): Likewise. * commands/i386/pc/play.c (GRUB_MOD_INIT): Likewise. * commands/i386/pc/pxecmd.c (GRUB_MOD_INIT): Likewise. * commands/keystatus.c (GRUB_MOD_INIT): Likewise. * commands/loadenv.c (GRUB_MOD_INIT): Likewise. * commands/ls.c (GRUB_MOD_INIT): Likewise. * commands/lspci.c (GRUB_MOD_INIT): Likewise. * commands/memrw.c (GRUB_MOD_INIT): Likewise. * commands/minicmd.c (GRUB_MOD_INIT): Likewise. * commands/parttool.c (GRUB_MOD_INIT): Likewise. * commands/password.c (GRUB_MOD_INIT): Likewise. * commands/probe.c (GRUB_MOD_INIT): Likewise. * commands/read.c (GRUB_MOD_INIT): Likewise. * commands/search.c (GRUB_MOD_INIT): Likewise. * commands/sleep.c (GRUB_MOD_INIT): Likewise. * commands/test.c (GRUB_MOD_INIT): Likewise. * commands/xnu_uuid.c (GRUB_MOD_INIT): Likewise. * efiemu/main.c (GRUB_MOD_INIT): Likewise. * font/font_cmd.c (GRUB_MOD_INIT): Likewise. * gettext/gettext.c (GRUB_MOD_INIT): Likewise. * kern/corecmd.c (GRUB_MOD_INIT): Likewise. * lib/arg.c (GRUB_MOD_INIT): Likewise. * loader/efi/appleloader.c (GRUB_MOD_INIT): Likewise. * loader/i386/bsd.c (GRUB_MOD_INIT): Likewise. * loader/xnu.c (GRUB_MOD_INIT): Likewise. * mmap/mmap.c (GRUB_MOD_INIT): Likewise. * term/terminfo.c (GRUB_MOD_INIT): Likewise. * video/readers/jpeg.c (GRUB_MOD_INIT): Likewise. * video/readers/png.c (GRUB_MOD_INIT): Likewise. * video/readers/tga.c (GRUB_MOD_INIT): Likewise. 2009-12-25 Vladimir Serbinenko Use search command for preliminar UUID search. * commands/search.c: Split into ... * commands/search_wrap.c: ...this * commands/search.c: ...and this. * commands/search_file.c: New file. * commands/search_label.c: New file. * commands/search_uuid.c: New file. * conf/any-emu.rmk (grub_emu_SOURCES): Remove commands/search.c. Add commands/search_wrap.c, commands/search_file.c, commands/search_label.c and commands/search_uuid.c. * conf/common.rmk (pkglib_MODULES): Remove fs_uuid.mod and fs_file.mod. (search_mod_SOURCES): Set to commands/search_wrap.c. (pkglib_MODULES): Add search_fs_file.mod, search_fs_uuid.mod and search_label.mod. (search_fs_file_mod_SOURCES): New variable. (search_fs_file_mod_CFLAGS): Likewise. (search_fs_file_mod_LDFLAGS): Likewise. (search_label_mod_SOURCES): Likewise. (search_label_mod_CFLAGS): Likewise. (search_label_mod_LDFLAGS): Likewise. (search_fs_uuid_mod_SOURCES): New variable. (search_fs_uuid_mod_CFLAGS): Likewise. (search_fs_uuid_mod_LDFLAGS): Likewise. (fs_file_mod_SOURCES): Removed. (fs_file_mod_CFLAGS): Likewise. (fs_file_mod_LDFLAGS): Likewise. (fs_uuid_mod_SOURCES): Removed. (fs_uuid_mod_CFLAGS): Likewise. (fs_uuid_mod_LDFLAGS): Likewise. * conf/sparc64-ieee1275.rmk (grub_install_SOURCES): Set to util/grub-install.in. * disk/fs_file.c: Removed. * disk/fs_uuid.c: Likewise. * include/grub/search.h: New file. * util/grub-install.in: Handle sparc64. Create and use load.cfg. * util/sparc64/ieee1275/grub-install.in: Removed. 2009-12-25 Vladimir Serbinenko * kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions): Ignore return status if CF is cleared. (grub_biosdisk_get_diskinfo_standard): Likewise. 2009-12-25 Robert Millan * 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. 2009-12-25 Vladimir Serbinenko Support for (pxe[:server[:gateway]]) syntax and use environment variable for PXE. * commands/i386/pc/pxecmd.c (options): Removed. (print_ip): Removed. (grub_cmd_pxe): Removed (grub_cmd_pxe_unload): New function. * fs/i386/pc/pxe.c (grub_pxe_disk_data): New structure. (grub_pxe_your_ip): Made static. (grub_pxe_default_server_ip): Likewise. (grub_pxe_default_gateway_ip): Likewise. (grub_pxe_blksize): Likewise. (parse_ip): New function. (grub_pxe_open): Support server and gateway specification. (grub_pxe_close): Free disk->data. (grub_pxefs_open): Use disk->data. (grub_pxefs_read): Likewise. (grub_env_write_readonly): New function. (set_mac_env): Likewise. (set_env_limn_ro): Likewise. (parse_dhcp_vendor): Likewise. (grub_pxe_detect): Set the environment variables. (set_ip_env): New function. (write_ip_env): Likewise. (grub_env_write_pxe_default_server): Likewise. (grub_env_write_pxe_default_gateway): Likewise. (grub_env_write_pxe_blocksize): Likewise. (GRUB_MOD_INIT(pxe)): Set environment variables. * include/grub/i386/pc/pxe.h (grub_pxe_mac_addr): Rename to ... (grub_pxe_mac_addr_t): ... this. All users updated. (grub_pxe_your_ip): Removed. (grub_pxe_server_ip): Likewise. (grub_pxe_gateway_ip): Likewise. (grub_pxe_blksize): Likewise. 2009-12-25 Carles Pina i Estany * commands/help.c: Include `'. (grub_cmd_help): Gettextizze. (GRUB_MOD_INIT): Likewise. * commands/i386/pc/play.c: Include `'. (GRUB_MOD_INIT): Gettextizze. * commands/search.c: Include `'. (options): Gettextizze. (GRUB_MOD_INIT): Gettextizze. * lib/arg.c: Include `'. (help_options): Gettextizze. (find_long): Likewise. (grub_arg_show_help): Likewise. * normal/dyncmd.c: Include `'. (read_command_list): Gettextizze. * po/POTFILES: Add `commands/i386/pc/play.c', `commands/search.c', `commands/help.c', `lib/arg.c' and `normal/dyncmd.c'. 2009-12-25 Robert Millan * 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. 2009-12-25 Felix Zielcke * util/hostdisk.c (open_device): Fix a comment. 2009-12-24 Robert Millan * util/grub-install.in (host_os): New variable. * util/i386/efi/grub-install.in (host_os): Likewise. 2009-12-24 Robert Millan * util/mkisofs/write.c (padblock_write): Abort when given an excedingly large embed image, instead of silently truncating it. 2009-12-24 Robert Millan * include/multiboot.h: Indentation fixes. 2009-12-24 Robert Millan * 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. 2009-12-24 Robert Millan * include/multiboot.h: Make comments src2texi-friendly. 2009-12-24 Robert Millan 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-24 Robert Millan * include/multiboot.h: Remove `'. (multiboot_uint16_t, multiboot_uint32_t, multiboot_uint64_t): New types. Update all users. 2009-12-25 Carles Pina i Estany * commands/efi/loadbios.c: Capitalize acronyms, replace `could not' by `couldn't' and `can not' by `cannot'. * commands/i386/pc/drivemap.c: Likewise. * disk/ata.c: Likewise. * disk/ieee1275/nand.c: Likewise. * fs/affs.c: Likewise. * fs/fat.c: Likewise. * fs/hfs.c: Likewise. * fs/hfsplus.c: Likewise. * fs/iso9660.c: Likewise. * fs/jfs.c: Likewise. * fs/minix.c: Likewise. * fs/reiserfs.c: Likewise. * fs/sfs.c: Likewise. * fs/udf.c: Likewise. * fs/ufs.c: Likewise. * fs/xfs.c: Likewise. * loader/powerpc/ieee1275/linux.c: Likewise. * loader/sparc64/ieee1275/linux.c: Likewise. * util/grub-probe.c: Likewise. * util/misc.c: Likewise. 2009-12-24 Carles Pina i Estany * bus/usb/usbhub.c: Fix capitalization, fullstop and newlines in grub_errno calls. * commands/acpi.c: Likewise. * commands/blocklist.c: Likewise. * commands/efi/loadbios.c: Likewise. * commands/i386/pc/drivemap.c: Likewise. * commands/loadenv.c: Likewise. * commands/memrw.c: Likewise. * commands/password.c: Likewise. * commands/videotest.c: Likewise. * disk/ata.c: Likewise. * disk/ata_pthru.c: Likewise. * disk/dmraid_nvidia.c: Likewise. * disk/ieee1275/nand.c: Likewise. * disk/ieee1275/ofdisk.c: Likewise. * disk/loopback.c: Likewise. * disk/lvm.c: Likewise. * disk/mdraid_linux.c: Likewise. * disk/raid.c: Likewise. * disk/raid6_recover.c: Likewise. * disk/scsi.c: Likewise. * efiemu/main.c: Likewise. * efiemu/mm.c: Likewise. * efiemu/pnvram.c: Likewise. * efiemu/symbols.c: Likewise. * font/font.c: Likewise. * fs/cpio.c: Likewise. * fs/hfsplus.c: Likewise. * fs/iso9660.c: Likewise. * fs/jfs.c: Likewise. * fs/minix.c: Likewise. * fs/ntfs.c: Likewise. * fs/ntfscomp.c: Likewise. * fs/reiserfs.c: Likewise. * fs/ufs.c: Likewise. * fs/xfs.c: Likewise. * gettext/gettext.c: Likewise. * include/grub/auth.h: Likewise. * kern/elf.c: Likewise. * kern/file.c: Likewise. * kern/ieee1275/init.c: Likewise. * kern/ieee1275/mmap.c: Likewise. * kern/ieee1275/openfw.c: Likewise. * kern/powerpc/dl.c: Likewise. * kern/sparc64/dl.c: Likewise. * lib/arg.c: Likewise. * loader/i386/bsd.c: Likewise. * loader/i386/bsdXX.c: Likewise. * loader/i386/efi/linux.c: Likewise. * loader/i386/efi/xnu.c: Likewise. * loader/i386/ieee1275/linux.c: Likewise. * loader/i386/linux.c: Likewise. * loader/i386/multiboot.c: Likewise. * loader/i386/pc/linux.c: Likewise. * loader/i386/pc/multiboot2.c: Likewise. * loader/i386/xnu.c: Likewise. * loader/ieee1275/multiboot2.c: Likewise. * loader/macho.c: Likewise. * loader/machoXX.c: Likewise. * loader/multiboot2.c: Likewise. * loader/multiboot_loader.c: Likewise. * loader/powerpc/ieee1275/linux.c: Likewise. * loader/sparc64/ieee1275/linux.c: Likewise. * loader/xnu.c: Likewise. * loader/xnu_resume.c: Likewise. * mmap/i386/pc/mmap.c: Likewise. * normal/menu_viewer.c: Likewise. * partmap/acorn.c: Likewise. * partmap/amiga.c: Likewise. * partmap/apple.c: Likewise. * script/lexer.c: Likewise. * term/gfxterm.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/i386/pc/vga.c: Likewise. * term/ieee1275/ofconsole.c: Likewise. * term/terminfo.c: Likewise. * video/bitmap.c: Likewise. * video/efi_gop.c: Likewise. * video/efi_uga.c: Likewise. * video/fb/video_fb.c: Likewise. * video/i386/pc/vbe.c: Likewise. * video/readers/tga.c: Likewise. * video/video.c: Likewise. 2009-12-23 Felix Zielcke * commands/i386/pc/drivemap.c: Remove all trailing whitespace. * commands/lspci.c: Likewise. * commands/probe.c: Likewise. * commands/xnu_uuid.c: Likewise. * conf/i386-coreboot.rmk: Likewise. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * fs/i386/pc/pxe.c: Likewise. * gettext/gettext.c: Likewise. * include/grub/efi/graphics_output.h: Likewise. * include/grub/i386/pc/memory.h: Likewise. * kern/env.c: Likewise. * kern/i386/qemu/startup.S: Likewise. * lib/i386/pc/biosnum.c: Likewise. * lib/i386/relocator.c: Likewise. * lib/i386/relocator_asm.S: Likewise. * lib/relocator.c: Likewise. * loader/i386/bsd.c: Likewise. * loader/i386/multiboot.c: Likewise. * loader/i386/pc/chainloader.c: Likewise. * loader/i386/xnu.c: Likewise. * loader/xnu.c: Likewise. * normal/main.c: Likewise. * normal/menu_text.c: Likewise. * util/getroot.c: Likewise. * util/grub-mkconfig_lib.in: Likewise. * util/grub.d/00_header.in: Likewise. * util/i386/pc/grub-mkimage.c: Likewise. * util/mkisofs/eltorito.c: Likewise. * util/mkisofs/exclude.h: Likewise. * util/mkisofs/hash.c: Likewise. * util/mkisofs/iso9660.h: Likewise. * util/mkisofs/joliet.c: Likewise. * util/mkisofs/mkisofs.c: Likewise. * util/mkisofs/mkisofs.h: Likewise. * util/mkisofs/multi.c: Likewise. * util/mkisofs/name.c: Likewise. * util/mkisofs/rock.c: Likewise. * util/mkisofs/tree.c: Likewise. * util/mkisofs/write.c: Likewise. * video/efi_gop.c: Likewise. 2009-12-23 Vladimir Serbinenko * video/efi_gop.c (grub_video_gop_get_bitmask): Fix off-by-one in mask size counting. 2009-12-22 Felix Zielcke * util/grub-mkrescue.in (pkglib_DATA): Set to @pkglib_DATA@. * genmk.rb (class SCRIPT): Modify the target file instead of source. 2009-12-22 Vladimir Serbinenko * commands/memrw.c (grub_cmd_write): Support for mask parameter. (GRUB_MOD_INIT(memrw)): Update help line. 2009-12-22 Vladimir Serbinenko * 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. 2009-12-22 Felix Zielcke * genmk.rb (class SCRIPT): Prepend #{src} path with $(srcdir). 2009-12-22 Felix Zielcke * 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' 2009-12-22 Felix Zielcke * util/grub.d/30_os-prober.in (osx_entry): Add round brackets after function name. Noticed by Rene Engelhard . 2009-12-22 Vladimir Serbinenko * commands/lspci.c (grub_pci_classes): Add "USB Controller". (options): New variable. (iospace): Likewise. (grub_lspci_iter): List IO spaces if "-i" was given. (grub_cmd_lspci): Parse options. (GRUB_MOD_INIT(lspci)): Use extcmd. (GRUB_MOD_FINI(lspci)): Likewise. 2009-12-22 Felix Zielcke * util/grub.d/30_os-prober.in (osx_entry): Remove non POSIX compliant `function' keyword. Patch by Tony Mancill . 2009-12-22 Vladimir Serbinenko * bus/usb/uhci.c (grub_uhci_transfer): Set a limit transaction time. (grub_uhci_portstatus): Likewise. (grub_uhci_portstatus): Add necessary delay. * bus/usb/usbhub.c (grub_usb_hub_add_dev): Fix loop-break condition. 2009-12-21 Carles Pina i Estany * commands/acpi.c (options): Fix capitalizations and/or full stops. (GRUB_MOD_INIT): Likewise. * commands/boot.c (GRUB_MOD_INIT): Likewise. * commands/cmp.c (grub_cmd_cmp): Improve the help message. * commands/echo.c (options): Fix capitalizations and/or full stops. * commands/efi/loadbios.c (enable_rom_area): Likewise. (enable_rom_area): Likewise. (GRUB_MOD_INIT): Likewise. * commands/gptsync.c (GRUB_MOD_INIT): Likewise. * commands/halt.c (GRUB_MOD_INIT): Improve the help message. * commands/handler.c (GRUB_MOD_INIT): Likewise. * commands/hdparm.c (options): Fix capitalizations and/or full stops. * commands/hexdump.c (options): Likewise. * commands/i386/cpuid.c (options): Likewise. (GRUB_MOD_INIT): Likewise. * commands/i386/pc/drivemap.c (options): Likewise. (GRUB_MOD_INIT): Likewise. * commands/i386/pc/halt (options): Likewise. (GRUB_MOD_INIT): Likewise. * commands/i386/pc/play.c (GRUB_MOD_INIT): Likewise. * commands/i386/pc/pxecmd.c (options): Likewise. * commands/i386/pc/vbetest.c (GRUB_MOD_INIT): Likewise. * commands/ieee1275/suspend.c (GRUB_MOD_INIT): Likewise. * commands/keystatus.c (options): Likewise. (GRUB_MOD_INIT): Likewise. * commands/loadenv.c (options): Likewise. * commands/ls.c (options): Likewise. * commands/lspci.c (GRUB_MOD_INIT): Likewise. * commands/memrw.c (GRUB_MOD_INIT): Likewise. * commands/minicmd.c (GRUB_MOD_INIT): Likewise. * commands/parttool.c (helpmsg): Likewise. * commands/probe.c (options): Likewise. * commands/read.c (GRUB_MOD_INIT): Likewise. * commands/reboot.c (GRUB_MOD_INIT): Likewise. * commands/search.c (options): Likewise. * commands/sleep.c (options): Likewise. * commands/test.c (GRUB_MOD_INIT): Likewise. * commands/true.c (GRUB_MOD_INIT): Likewise. * commands/usbtest.c (GRUB_MOD_INIT): Likewise. * commands/videotest.c (GRUB_MOD_INIT): Likewise. * lib/arg.c (help_options): Likewise. * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass -ctranslate to `$(XGETTEXT)'. * po/POTFILES: Add `commands/loadenv.c'. 2009-12-21 Felix Zielcke * util/grub-mkrescue.in (process_input_dir): Copy `*.lst' files instead of specifying them explicit. 2009-12-21 Robert Millan * NEWS: Add grub-probe support for GNU/Hurd. 2009-12-21 Robert Millan * NEWS: gettext was added after 1.97. 2009-12-21 Robert Millan * 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. 2009-12-21 Robert Millan * util/grub-mkrescue.in: Do not zero-pad image for BIOS-based disk boot. 2009-12-21 Robert Millan * util/mkisofs/mkisofs.c (use_embedded_boot, boot_image_embed): New variables. (ld_options, main): Recognize `--embedded-boot'. * util/mkisofs/mkisofs.h (use_embedded_boot, boot_image_embed): New declarations. * util/mkisofs/write.c (PADBLOCK_SIZE): New variable. (padblock_size): Use `PADBLOCK_SIZE' instead of hardcoding 16. (padblock_write): Likewise. Rewrite to support embedded boot image. * util/grub-mkrescue.in: When building i386-pc images, embed core.img for BIOS-based disk boot instead of only ElTorito. 2009-12-21 Robert Millan * util/grub-mkrescue.in: Remove `configfile' and `sh' from i386-pc build (not needed for bootstrap). 2009-12-21 Robert Millan * util/grub-mkrescue.in: Remove `memdisk', `tar' and `search' modules from i386-pc build (not needed for bootstrap). Rewrite a pair of strings. 2009-12-21 Robert Millan * normal/main.c (grub_normal_reader_init): Set left margin back to 3. 2009-12-21 Vladimir Serbinenko * video/i386/pc/vbe.c (grub_video_vbe_fini): Set 'last_set_mode'. 2009-12-21 Andreas Born * kern/env.c (grub_env_context_open): Mark exported variable for reexport. 2009-12-21 Andreas Born * kern/env.c (grub_env_export): Create nonexistent variables before exporting. 2009-12-20 Carles Pina i Estany * include/grub/auth.h: Include `'. (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_auth_check_authentication): Gettexttize string. * normal/cmdline.c: Include `'. (grub_cmdline_get): Gettextizze. * normal/color.c: Include `'. (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 `' and `'. (grub_normal_print_device_info): Gettexttize strings. * po/POTFILES: Add `auth.c', `color.c' and `misc.c'. 2009-12-20 Vladimir Serbinenko * kern/parser.c (grub_parser_split_cmdline): Fix incorrect counting of arguments. Return number of tokens and not arguments. All users updated. 2009-12-20 Vladimir Serbinenko * util/i386/pc/grub-setup.c (setup): Don't install on non-GPT, non-MSDOS paritions. 2009-12-19 Vladimir Serbinenko * include/grub/types.h (UNUSED): Removed since it conflicts with NetBSD headers. All users changed to direct __attribute__ ((unused)). Reported by Grégoire Sutre. 2009-12-19 Carles Pina i Estany * include/grub/normal.h (grub_utf8_to_ucs4): New declaration. (grub_print_ucs4_alloc): Likewise. (grub_getstringwidth): Likewise. * normal/main.c (grub_normal_init_page): Gettextize version string. * normal/menu_text.c (grub_utf8_to_ucs4_alloc): New definition. (getstringwidth): Renamed to ... (grub_getstringwidth): ... this. Remove `static' qualifier (now used in normal/main.c). Use `grub_utf8_to_ucs4_alloc'. (grub_print_ucs4): Remove `static' qualifer (now used in normal/main.c). * po/POTFILES: Add normal/main.c. 2009-12-19 Carles Pina i Estany * 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 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 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) Support for device properties. * include/grub/i386/xnu.h (grub_xnu_devprop_header): New structure. (grub_xnu_devprop_device_header): Likewise. (grub_xnu_devprop_device_descriptor): Likewise. (grub_xnu_devprop_add_device): New prototype. (grub_xnu_devprop_remove_device): Likewise. (grub_xnu_devprop_remove_property): Likewise. (grub_xnu_devprop_add_property_utf8): Likewise. (grub_xnu_devprop_add_property_utf16): Likewise. (grub_cpu_xnu_init): Likewise. (grub_cpu_xnu_fini): Likewise. (grub_cpu_xnu_unload): Likewise. * loader/i386/xnu.c (grub_xnu_devprop_device_descriptor): New structure. (property_descriptor): Likewise. (devices): New variable. (grub_xnu_devprop_remove_property): New function. (grub_xnu_devprop_add_device): Likewise. (grub_xnu_devprop_remove_device): Likewise. (grub_xnu_devprop_add_property): Likewise. (grub_xnu_devprop_add_property_utf8): Likewise. (grub_xnu_devprop_add_property_utf16): Likewise. (hextoval): Likewise. (grub_cpu_xnu_fill_devprop): Likewise. (grub_cmd_devprop_load): Likewise. (grub_xnu_boot): Call grub_cpu_xnu_fill_devprop, grub_xnu_fill_devicetree, grub_xnu_fill_devicetree (cmd_devprop_load): New variable. (grub_cpu_xnu_init): New function. (grub_cpu_xnu_fini): Likewise. * loader/i386/xnu.c (grub_xnu_unload): Call grub_cpu_xnu_unload. * loader/xnu.c (grub_xnu_parse_devtree): Remove. (grub_cmd_xnu_devtree): Likewise. (hextoval): New function. (unescape): Likewise. (grub_xnu_fill_devicetree): Likewise. * util/grub.d/30_os-prober.in: Load devprop.bin. Don't load devtree.txt. * util/i386/efi/grub-dumpdevtree: Generate devprop.bin. 2009-12-18 Vladimir Serbinenko Workaround for broken ATI VBE. * video/i386/pc/vbe.c (last_set_mode): New variable. (grub_vbe_set_video_mode): Set 'last_set_mode'. (grub_vbe_get_video_mode): Use 'last_set_mode' if get_mode fails. (grub_video_vbe_setup): Don't check for reserved flag. 2009-12-17 Felix Zielcke * gendistlist.sh: Use POSIX compliant `!' instead of `-not' in the `find' command. 2009-12-16 Vladimir Serbinenko UUID support for HFS. * fs/hfs.c (grub_hfs_uuid): New function. (grub_hfs_fs): New value .uuid. * include/grub/hfs.h (grub_hfs_sblock): New field 'num_serial'. 2009-12-14 Felix Zielcke Fix a segfault with parsing unknown long options. * util/grub-mkrelpath.c (options): Zero terminate it. 2009-12-13 Carles Pina i Estany * include/grub/misc.h (grub_puts): New declaration. (grub_puts_): Likewise. * kern/misc.c (grub_puts): New definition. (grub_puts_): Likewise. 2009-12-13 Robert Millan * util/grub-probe.c (probe): Improve error message. 2009-12-13 Robert Millan * loader/i386/multiboot_elfxx.c (CONCAT(grub_multiboot_load_elf, XX)): Fix `grub_multiboot_payload_eip' initialization. 2009-12-13 Vladimir Serbinenko Relocator framework * loader/i386/xnu_helper.S: Removed. All users updated. * conf/i386.rmk (pkglib_MODULES): Add relocator.mod. (relocator_mod_SOURCES): New variable. (relocator_mod_CFLAGS): Likewise. (relocator_mod_LDFLAGS): Likewise. (relocator_mod_ASFLAGS): Likewise. * conf/x86_64.rmk: Likewise. * include/grub/i386/multiboot.h (grub_multiboot_payload_orig): Removed. (grub_multiboot_payload_entry_offset): Likewise. (grub_multiboot_forward_relocator): Likewise. (grub_multiboot_forward_relocator_end): Likewise. (grub_multiboot_backward_relocator): Likewise. (grub_multiboot_backward_relocator_end): Likewise. (grub_multiboot_payload_eip): New variable. (grub_multiboot_payload_orig): Likewise. * include/grub/i386/pc/memory.h: Include grub/i386/memory.h. (GRUB_MEMORY_MACHINE_CR0_PE_ON): Move from here ... * include/grub/i386/memory.h (GRUB_MEMORY_CPU_CR0_PE_ON): ... to here (GRUB_MEMORY_CPU_CR4_PAE_ON): New definition. (GRUB_MEMORY_CPU_CR0_PAGING_ON): Likewise. (GRUB_MEMORY_CPU_AMD64_MSR): Likewise. (GRUB_MEMORY_CPU_AMD64_MSR_ON): Likewise. * include/grub/i386/relocator.h: New file. * include/grub/x86_64/relocator.h: Likewise. * include/grub/i386/xnu.h: Include grub/cpu/relocator.h. (XNU_RELOCATOR): New macro. (grub_xnu_launcher_start): Remove. (grub_xnu_launcher_end): Likewise. * include/grub/xnu.h (grub_xnu_boot_resume): New prototype. (grub_xnu_heap_real_start): Remove. (grub_xnu_heap_start): Change to void *. All users updated. * kern/i386/realmode.S (real_to_prot): Use GRUB_MEMORY_CPU_CR0_PE_ON. * lib/i386/relocator.c: New file. * lib/i386/relocator_asm.S: Likewise. * lib/i386/relocator_backward.S: Likewise. * lib/mips/relocator.c: Likewise. * lib/mips/relocator_asm.S: Likewise. * lib/relocator.c: Likewise. * loader/i386/multiboot.c: Include grub/i386/relocator.h. (entry): Removed. (playground): Likewise. (grub_multiboot_payload_orig): New variable. (grub_multiboot_payload_dest): Likewise. (grub_multiboot_payload_size): Likewise. (grub_multiboot_payload_eip): Likewise. (grub_multiboot_payload_esp): Likewise. (grub_multiboot_boot): Use grub_relocator32_boot. (grub_multiboot_unload): Free relocators. (grub_multiboot): Setup stack. Use relocators. * loader/i386/multiboot_elfxx.c: Include grub/i386/relocator.h. (grub_multiboot_load_elfXX): Use relocators. * loader/i386/multiboot_helper.S (grub_multiboot_payload_orig): Removed. (grub_multiboot_payload_size): Likewise. (grub_multiboot_payload_dest): Likewise. (grub_multiboot_payload_entry_offset): Likewise. (grub_multiboot_forward_relocator): Likewise. (grub_multiboot_backward_relocator): Likewise. (grub_multiboot_real_boot): Likewise. * loader/i386/xnu.c (grub_xnu_heap_will_be_at): New variable. (grub_xnu_entry_point): Likewise. (grub_xnu_arg1): Likewise. (grub_xnu_stack): Likewise. (grub_xnu_launch): Removed. (grub_xnu_boot_resume): New function. (grub_xnu_boot): Use relocators. * loader/i386/xnu_helper.S: Removed. * loader/xnu.c (grub_xnu_heap_start): New variable. (grub_xnu_heap_size): Likewise. (grub_xnu_heap_malloc): Use relocators. * loader/xnu_resume.c (grub_xnu_resume): Use relocators. 2009-12-13 Vladimir Serbinenko * kern/i386/pc/startup.S (multiboot_entry): Setup stack before calling anything. 2009-12-13 Carles Pina i Estany * script/execute.c (grub_script_execute_cmdline): Set grub_errno to GRUB_ERR_NONE before calling grub_env_set. 2009-12-12 Robert Millan * gendistlist.sh (EXTRA_DISTFILES): Add `genvideolist.sh'. * genmk.rb (video): New variable. (CLEANFILES, VIDEOFILES): Add #{video}. (#{video}): New target rule. * genvideolist.sh: New file. * Makefile.in (pkglib_DATA): Add video.lst. (video.lst): New target rule. * util/grub-mkconfig.in: Initialize ${GRUB_VIDEO_BACKEND} using `video.lst'. * util/grub.d/30_os-prober.in: Replace `vbe' with ${GRUB_VIDEO_BACKEND}. 2009-12-11 Robert Millan * THANKS: Add David Miller. 2009-12-11 Vladimir Serbinenko libpciaccess support. * Makefile.in (LIBPCIACCESS): New variable. (enable_grub_emu_pci): Likewise. * conf/any-emu.rmk (grub_emu_SOURCES) [enable_grub_emu_pci]: Add util/pci.c and commands/lspci.c. (grub_emu_LDFLAGS) [enable_grub_emu_pci]: Add $(LIBPCIACCESS). * configure.ac (grub-emu-pci): New option. * include/grub/i386/pci.h (grub_pci_device_map_range): New function. (grub_pci_device_unmap_range): Likewise. * include/grub/pci.h [GRUB_UTIL]: Include grub/pciutils.h. (grub_pci_device) [!GRUB_UTIL]: New structure. All users updated. (grub_pci_address_t) [!GRUB_UTIL]: New type. (grub_pci_device_t) [!GRUB_UTIL]: Likewise. (grub_pci_get_bus) [!GRUB_UTIL]: New function. (grub_pci_get_device) [!GRUB_UTIL]: Likewise. (grub_pci_get_function) [!GRUB_UTIL]: Likewise. * include/grub/pciutils.h: New file. * util/pci.c: Likewise. 2009-12-11 Felix Zielcke * util/misc.c: Don't include twice. 2009-12-10 Felix Zielcke * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Show the disk name in an error message. (grub_biosdisk_rw): Likewise. 2009-12-10 Vladimir Serbinenko Eliminate NTFS 4Gib barrier. * fs/ntfs.c (read_attr): Use grub_disk_addr_t and grub_size_t. (read_run_data): Likewise. (grub_ntfs_read_run_list): Likewise. (grub_ntfs_read_block): Likewise. (grub_ntfs_iterate_dir): Likewise. (read_mft): Likewise. (read_data): Likewise. Use COM_LOG_LEN. * fs/ntfscomp.c (read_block): Cast ctx->target_vcn & 0xF to unsigned to avoid 64-bit division * include/grub/ntfs.h (COM_LOG_LEN): New definition. (grub_ntfs_rlst): Use grub_disk_addr_t. 2009-12-10 Vladimir Serbinenko Eliminate grub-fstest 4Gib barrier. * util/grub-fstest.c (skip, leng): Use grub_disk_addr_t. (read_file): Fix error reporting. 2009-12-10 Vladimir Serbinenko Eliminate hexdump 4Gib barrier. * commands/hexdump.c (grub_cmd_hexdump): Use grub_disk_addr_t. * lib/arg.c (grub_arg_parse): Use grub_strtoull. 2009-12-10 Vladimir Serbinenko * kern/device.c (grub_device_iterate): Ignore errors during first scan. Fixes amarsh bug. 2009-12-09 Bruce Dubbs Remove miscellaneous files in distclean target. * Makefile.in: Remove docs/{grub.info,version.texi,stamp-vti} 2009-12-09 Colin Watson * util/grub-mkconfig_lib.in: Don't set grub_probe or grub_mkrelpath if they're already set. This resolves the conflict between my grub-install change on 2009-10-06 and Felix' change on 2009-11-11, fixing the --grub-probe option again. * util/sparc64/ieee1275/grub-install.in: Revert the last piece of my change on 2009-10-06, so that we now once again source `${libdir}/grub/grub-mkconfig_lib' after options have been parsed. 2009-12-08 Robert Millan * conf/common.rmk [sparc64-ieee1275] (grub_mkdevicemap_SOURCES): Use `util/ieee1275/ofpath.c' and `util/ieee1275/devicemap.c' instead of `util/devicemap.c'. 2009-12-08 Carles Pina i Estany * include/grub/misc.h (grub_printf_): New declaration. * kern/misc.c (grub_printf_): New definition. * normal/main.c (grub_normal_reader_init): Use `grub_printf_' and `N_' instead of `grub_printf' and `_'. * normal/menu_entry.c (store_completion): Likewise. (run): Likewise. (grub_menu_entry_run): Likewise. * normal/menu_text.c (grub_wait_after_message): Likewise. (notify_booting): Likewise. (notify_fallback): Likewise. (notify_execution_failure): Likewise. 2009-12-07 Colin Watson * configure.ac: Check for vasprintf. * util/misc.c (asprintf): Move allocation from here ... (vasprintf): ... to here. New function. (xasprintf): New function. * include/grub/util/misc.h (vasprintf, xasprintf): Add prototypes. * util/getroot.c (grub_util_get_grub_dev): Use xasprintf. * util/grub-mkfont.c (write_font): Likewise. * util/grub-probe.c (probe): Likewise. * util/hostdisk.c (make_device_name): Likewise. 2009-12-06 David S. Miller * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Recognize anything even prefixed with 'cdrom' as a cdrom. 2009-12-06 Felix Zielcke * util/misc.c (make_system_path_relative_to_its_root): Correctly cope with mount points. 2009-12-05 Carles Pina i Estany * gettext/gettext.c: Include `'. Define grub_gettext_msg, grub_gettext_msg_list. (grub_gettext_gettranslation_from_position): Return const char * and not char *. (grub_gettext_translate): Add the translated strings into a list, returns from the list if existing there. (grub_gettext_init_ext): Add \n at the end of grub_dprintf string. (grub_gettext_delete_list): Delete the list. (grub_gettext_env_write_lang): Call grub_gettext_delete_list when lang environment variable is changed. (GRUB_MOD_FINI): Call grub_gettext_delete_list. 2009-12-05 Vladimir Serbinenko Rename kernel.mod to kernel.img. * conf/i386-efi.rmk (pkglib_MODULES): Change kernel.mod to kernel.img. (kernel_mod_EXPORTS): Rename to ... (kernel_img_EXPORTS): ... this. (kernel_mod_SOURCES): Rename to ... (kernel_img_SOURCES): ... this. (kernel_mod_HEADERS): Rename to ... (kernel_img_HEADERS): ... this. All users updated. (kernel_mod_CFLAGS): Rename to ... (kernel_img_CFLAGS): ... this. (kernel_mod_ASFLAGS): Rename to ... (kernel_img_ASFLAGS): ... this. (kernel_mod_LDFLAGS): Rename to ... (kernel_img_LDFLAGS): ... this. * conf/x86_64-efi.rmk: Likewise. * util/i386/efi/grub-mkimage.c (read_kernel_module): Rename to ... (read_kernel_image): ... this. All users updated. (read_kernel_image): Read "kernel.img" instead of "kernel.mod". 2009-12-05 Carles Pina i Estany * normal/menu_text.c (grub_color_menu_high): Gettexttize string. (print_spaces): New function. (grub_print_ucs4): New function. (getstringwidth): New function. (print_message_indented): New function. (print_message): Gettexttize strings using print_message_indented. (run_menu): Replaces grub_printf by print_spaces and dynamic terminal width. (get_entry_number): Gettextize and uses dynamic terminal width. (notify_booting, notify_fallback, notify_execution_failure): Gettextize. * normal/menu_entry.c (store_completion): Cleanup the gettextized string. (run): Likewise. (grub_menu_entry_run): Likewise. * PO/POTFILES: Add normal/menu_entry.c. 2009-12-05 Vladimir Serbinenko * configure.ac (TARGET_ASFLAGS): Add "-D". 2009-12-05 Carles Pina i Estany * util/grub-install.in: Install gettext .mo files. * util/grub-mkrescue.in (process_input_dir): Copy gettext .mo files. 2009-12-05 Carles Pina i Estany * gettext/gettext.c (grub_gettext_init_ext): Replace grub_printf with grub_dprintf. 2009-12-05 Robert Millan * kern/ieee1275/openfw.c (grub_reboot): Disable for i386. The non-firmware-dependant one in realmode.S takes precedence. 2009-12-04 Robert Millan * commands/halt.c: Replace misc arch-specific headers with `'. * commands/reboot.c: Likewise. * commands/i386/pc/halt.c: Replace `' with `'. * conf/i386-coreboot.rmk (kernel_img_HEADERS): Remove `cpu/reboot.h'. (halt_mod_SOURCES): Move `kern/i386/halt.c' from here ... (kernel_img_SOURCES): ... to here. * include/grub/efi/efi.h (grub_reboot, grub_halt): Remove prototypes. * include/grub/i386/pc/init.h: Likewise. * include/grub/powerpc/ieee1275/kernel.h: Likewise. * include/grub/sparc64/ieee1275/kernel.h: Likewise. * include/grub/misc.h (grub_reboot, grub_halt): New prototypes. * include/grub/i386/halt.h: Remove. * include/grub/i386/reboot.h: Likewise. * kern/i386/halt.c: Remove `'. 2009-12-03 David S. Miller * conf/sparc64-ieee1275.rmk (grub_mkimage_SOURCES, grub_setup_SOURCES, grub_ofpathname_SOURCES): Add gnulib/progname.c * util/sparc64/ieee1275/grub-mkimage.c: Include and "progname.h" * util/sparc64/ieee1275/grub-ofpathname.c: Likewise. * util/sparc64/ieee1275/grub-setup.c: Likewise. (usage): Add missing comma in printf. 2009-12-02 Robert Millan Use the same reboot approach on i386 coreboot and qemu as we do on BIOS. * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add `cpu/reboot.h'. (reboot_mod_SOURCES): Remove `kern/i386/reboot.c'. * kern/i386/reboot.c: Remove. * include/grub/i386/reboot.h (grub_reboot): Export function. * kern/i386/pc/startup.S (grub_reboot): Move from here ... * kern/i386/realmode.S (grub_reboot): ... to here. Jump to 0xf000:0xfff0 instead of 0xffff:0x0000. [!GRUB_MACHINE_PCBIOS] (prot_to_real): Do not restore interrupts. * kern/i386/qemu/startup.S: Include `"../realmode.S"'. 2009-11-30 Robert Millan Fix $srcdir != $objdir build. * Makefile.in (po/%.po): Rewrite as ... ($(foreach lang, $(LINGUAS), $(srcdir)/po/$(lang).po)): ... this. 2009-11-29 Samuel Thibault Fix GNU/Hurd grub-install crash. * util/grub-probe.c (probe): Try to access `path' only when it is not NULL. 2009-11-28 Vladimir Serbinenko Correct module naming. * video/efi_uga.c (GRUB_MOD_INIT(efi_fb)): Renamed from this ... (GRUB_MOD_INIT(efi_uga)): ... to this (GRUB_MOD_FINI(efi_fb)): Renamed from this ... (GRUB_MOD_FINI(efi_uga)): ... to this * video/efi_gop.c (GRUB_MOD_INIT(efi_fb)): Renamed from this ... (GRUB_MOD_INIT(efi_gop)): ... to this (GRUB_MOD_FINI(efi_fb)): Renamed from this ... (GRUB_MOD_FINI(efi_gop)): ... to this 2009-11-28 Robert Millan * util/mkisofs/mkisofs.c (ld_options): Mark all `arg' strings as translatable. (usage): Translate `arg' strings using gettext(). Thanks to Jordi Mallach for the suggestion. 2009-11-28 Vladimir Serbinenko GOP support. Based on patch from Bean (http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00384.html) * video/efi_gop.c: New file. * include/grub/efi/graphics_output.h: Likewise. * conf/i386-efi.rmk (pkglib_MODULES): Add `efi_gop.mod'. (efi_fb_mod_SOURCES, efi_fb_mod_CFLAGS, efi_fb_mod_LDFLAGS): New variables. * conf/x86_64-efi.rmk: Likewise. 2009-11-28 Vladimir Serbinenko Rename efi_fb to efi_uga. * conf/i386-efi.rmk (pkglib_MODULES): Rename 'efi_fb.mod' to 'efi_uga.mod'. (efi_fb_mod_SOURCES): Rename this ... (efi_uga_mod_SOURCES): ... to this. (efi_fb_mod_CFLAGS): Rename this ... (efi_uga_mod_CFLAGS): ... to this. (efi_fb_mod_LDFLAGS): Rename this ... (efi_uga_mod_LDFLAGS): ... to this. * conf/x86_64-efi.rmk (pkglib_MODULES): Rename 'efi_fb.mod' to 'efi_uga.mod'. (efi_fb_mod_SOURCES): Rename this ... (efi_uga_mod_SOURCES): ... to this. (efi_fb_mod_CFLAGS): Rename this ... (efi_uga_mod_CFLAGS): ... to this. (efi_fb_mod_LDFLAGS): Rename this ... (efi_uga_mod_LDFLAGS): ... to this. * video/efi_fb.c: Move this ... * video/efi_uga.c: ... to this. Change prefix to 'grub_video_uga_'. 2009-11-27 Robert Millan * po/README: New file. Explain our PO file workflow. 2009-11-27 Robert Millan * po/ChangeLog: Remove. Move relevant entries back to ... * ChangeLog: ... here. * po/ca.po: Remove (now handled by TLP). * po/id.po: Likewise. * po/zh_CN.po: Likewise. * Makefile.in (LINGUAS): Initialize in a way that supports empty set. 2009-11-27 Robert Millan * Makefile.in (LINGUAS): Rewrite by scanning po/ directory instead of reliing on po/LINGUAS. ($(foreach lang, $(LINGUAS), $(srcdir)/po/$(lang).po)): Rewrite as ... (po/%.po): ... this. 2009-11-26 Felix Zielcke * util/i386/efi/grub-mkimage.c: Include "progname.h". (main): Use `program_name' instead of nonexistent `progname'. 2009-11-26 Felix Zielcke * conf/i386-efi.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'. * conf/x86_64-efi.rmk (grub_mkimage_SOURCES): Likewise. 2009-11-26 Robert Millan * conf/i386-coreboot.rmk: Cleanup stale filenames from my previous commit. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. 2009-11-26 Felix Zielcke * conf/any-emu.rmk (grub_emu_SOURCES): Add `gnulib/progname.c'. 2009-11-26 Felix Zielcke * conf/any-emu.rmk (grub_mkfont_SOURCES): Add `gnulib/progname.c'. 2009-11-26 Robert Millan * conf/common.rmk (sbin_UTILITIES): Add `grub-mkdevicemap'. (grub_mkdevicemap_SOURCES): New variable. (grub_probe_SOURCES, grub_fstest_SOURCES, grub_mkfont_SOURCES) (grub_mkrelpath_SOURCES, grub_editenv_SOURCES) (grub_pe2elf_SOURCES): Add `gnulib/progname.c'. * conf/i386-coreboot.rmk (sbin_UTILITIES): Remove `grub-mkdevicemap'. (grub_mkdevicemap_SOURCES): Remove. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * util/elf/grub-mkimage.c: Include `' and `"progname.h"'. (usage): Fix strings to use `program_name'. (main): Initialize gettext. * util/grub-editenv.c: Likewise. * util/grub-emu.c: Likewise. * util/grub-fstest.c: Likewise. * util/grub-mkdevicemap.c: Likewise. * util/grub-mkfont.c: Likewise. * util/grub-mkrelpath.c: Likewise. * util/grub-pe2elf.c: Likewise. * util/grub-probe.c: Likewise. * util/sparc64/ieee1275/grub-mkimage.c: Likewise. * util/sparc64/ieee1275/grub-ofpathname.c: Likewise. * util/sparc64/ieee1275/grub-setup.c: Likewise. * util/misc.c: Include `"progname.h"'. (progname): Remove variable. (grub_util_warn, grub_util_info, grub_util_error): Use `program_name'. 2009-11-25 Felix Zielcke * util/grub.d/10_linux.in (linux_entry): Quote the arguments to printf and print a newline after the menuentry header line. * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise. 2009-11-25 Felix Zielcke autoconf >= 2.60 support $(localedir). * INSTALL: Note that autoconf 2.60 is required. * configure.ac (AC_PREREQ): Bump to 2.60. * util/grub.d/10_kfreebsd.in (TEXTDOMAINDIR): Set to lowercased @localedir@. * util/grub.d/10_linux.in (TEXTDOMAINDIR): Likewise. 2009-11-25 Yves Blusseau * configure.ac: move the call to AM_GNU_GETTEXT to avoid warnings when aclocal is run. 2009-11-25 Robert Millan * normal/main.c (grub_normal_read_line): Fix off-by-one buffer overflow. 2009-11-25 Robert Millan * normal/main.c (grub_normal_execute): Replace "parser.sh" with "parser.grub" in grub_command_execute() call. 2009-11-24 Carles Pina i Estany * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add i18n.h. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * gettext/gettex.c: Include . * include/grub/misc.h (grub_gettext_dummy, grub_gettext): Move from here ... * include/grub/i18n.h: ... to here * include/grub/i18n.h: ... to here. * kern/misc.c: Include (grub_gettext_dummy): Move above user. 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Convert a `for' into a normal shell expansion. 2009-11-24 Robert Millan * autogen.sh: Add automake call. * config.guess: Remove. * config.sub: Likewise. * install-sh: Likewise. 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Fix the use of $lang shell variable. 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Convert a make `$(foreach)' function to a normal shell `for'. 2009-11-24 Felix Zielcke * conf/i386-coreboot.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'. 2009-11-24 Felix Zielcke * util/grub-mkrelpath.c: New file. * conf/common.rmk (bin_UTILITIES): Add grub-mkrelpath. (grub_mkrelpath_SOURCES): New variable. * include/grub/util/misc.h: New function prototype. * util/misc.c (make_system_path_relative_to_its_root): New function. * util/grub-mkconfig_lib.in (bindir): New variable. (grub_mkrelpath): Likewise. (make_system_path_relative_to_its_root): Use grub-mkrelpath. * util/probe.c (probe): Make the file path relative to its root. Change a info message to use the GRUB path. Enable again the check if we can read the file with GRUB facilities. * util/i386/pc/grub-setup.c (setup): Make core.img path relative to its root. 2009-11-24 Felix Zielcke * Makefile.in: Don't include GRUB_CONTRIB makefiles with emu platform. 2009-11-24 Felix Zielcke * util/getroot.c (grub_util_get_dev_abstraction): Properly use strncmp(). 2009-11-24 Felix Zielcke * util/getroot.c (grub_util_is_dmraid): New function. (grub_util_get_dev_abstraction): Treat dmraid and multipath devices as normal ones, not as LVM. 2009-11-23 Carles Pina i Estany * conf/common.rmk: Add grub-gettext_lib target and updates lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS, LDFLAGS. * gettext/gettext.c: New file. (Reads mo files). * include/grub/file.h (grub_file_pread): New prototype. * include/grub/i18n.h (_): New prototype. * include/grub/misc.h (grub_gettext_dummy, grub_gettext): New prototypes. * kern/misc.c (grub_gettext_dummy): New function. * normal/menu_text.c: Include . * normal/menu_text.c (print_timeout): Gettexttize string. * normal/menu_text.c (print_message): Gettexttize string. * po/POTFILES: Add `normal/menu_text.c'. * po/ca.po: Add new translations. * util/grub.d/00_header.in: Define locale_dir and lang. insmod gettext module and defines locale_dir and lang in grub.cfg. * NEWS: Add gettext support. 2009-11-23 Robert Millan * util/hostdisk.c: Include `'. (find_grub_drive): Use ARRAY_SIZE for map size calculation. (make_device_name): Rewrite using asprintf. (convert_system_partition_to_system_disk): Replace 0 with NULL. (find_system_device): If a device is not found, generate one just by reusing the OS path name. (read_device_map): Make it permissible for device.map not to exist. 2009-11-23 Robert Millan * script/sh/execute.c: Move from here ... * script/execute.c: ... to here. Update all users. * script/sh/function.c: Move from here ... * script/function.c: ... to here. Update all users. * script/sh/lexer.c: Move from here ... * script/lexer.c: ... to here. Update all users. * script/sh/main.c: Move from here ... * script/main.c: ... to here. Update all users. * script/sh/parser.y: Move from here ... * script/parser.y: ... to here. Update all users. * script/sh/script.c: Move from here ... * script/script.c: ... to here. Update all users. 2009-11-23 Robert Millan * configure.ac: Detect all `emu' platforms. Define GRUB_MACHINE_* macros in TARGET_CFLAGS. Remove --enable-grub-emu logic. Disable include/grub/machine symlink on `emu' platforms. * genkernsyms.sh.in: Use @TARGET_CFLAGS@ during symbol generation. * gensymlist.sh.in: Likewise. * include/grub/i386/coreboot/machine.h: Remove file. * include/grub/i386/efi/machine.h: Likewise. * include/grub/i386/ieee1275/machine.h: Likewise. * include/grub/i386/pc/machine.h: Likewise. * include/grub/i386/qemu/machine.h: Likewise. * include/grub/powerpc/ieee1275/machine.h: Likewise. * include/grub/sparc64/ieee1275/machine.h: Likewise. * include/grub/x86_64/efi/machine.h: Likewise. * commands/acpi.c: Remove `'. * commands/halt.c: Likewise. * commands/reboot.c: Likewise. * include/grub/autoefi.h: Likewise. * include/grub/i386/at_keyboard.h: Likewise. * include/grub/i386/kernel.h: Likewise. * include/grub/i386/loader.h: Likewise. * include/grub/i386/pc/memory.h: Likewise. * kern/dl.c: Likewise. * kern/i386/coreboot/init.c: Likewise. * loader/i386/bsd.c: Likewise. * loader/i386/linux.c: Likewise. * loader/multiboot_loader.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/usb_keyboard.c: Likewise. * include/grub/time.h [!GRUB_MACHINE_EMU]: Remove `' [!GRUB_MACHINE_EMU] (GRUB_TICKS_PER_SECOND): New macro. * util/misc.c: Remove `' and `'. * Makefile.in (enable_grub_emu): Remove variable. Include $(srcdir)/conf/any-emu.mk for the `emu' platform. * conf/any-emu.rmk: New file. * conf/common.rmk (grub_emu_init.lst, grub_emu_init.h) (grub_emu_init.c): Move from here ... * conf/any-emu.rmk: ... to here. * conf/i386-coreboot.rmk (sbin_UTILITIES): Remove `grub-emu'. (grub_emu_SOURCES, grub_emu_LDFLAGS): Move from here ... * conf/any-emu.rmk: ... to here. 2009-11-23 Robert Millan * include/grub/parser.h (grub_parser_register): Document need of `name' parameter. * normal/main.c (grub_normal_read_line): Simplify prompt string. * script/sh/main.c (grub_sh_parser, GRUB_MOD_INIT(sh)): Rename "sh" to "grub". 2009-11-23 Robert Millan * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass --keyword=N_ to `$(XGETTEXT)'. * include/grub/i18n.h (N_): New macro. * util/mkisofs/mkisofs.h: Likewise. * util/mkisofs/mkisofs.c (ld_options): Wrap all translatable strings around N_(). (usage): Use gettext() to translate help strings when printing them. 2009-11-23 Robert Millan Based on patch from Bean (http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00384.html) * video/efi_fb.c: New file. * conf/i386-efi.rmk (pkglib_MODULES): Add `efi_fb.mod'. (efi_fb_mod_SOURCES, efi_fb_mod_CFLAGS, efi_fb_mod_LDFLAGS): New variables. * conf/x86_64-efi.rmk: Likewise. 2009-11-22 Robert Millan * util/i386/pc/grub-mkimage.c: Ungettextize grub_util_info() strings. * util/i386/pc/grub-setup.c: Likewise. 2009-11-21 Samuel Thibault * util/getroot.c [__GNU__]: Include , , and [__GNU__] (grub_guess_root_device): Call file_name_lookup and file_get_storage_info to implement grub_guess_root_device. 2009-11-21 Felix Zielcke * Makefile.in (target): Use make's builtin $(shell) function instead of calling directly $(SHELL) to create the locale directories, inside the $(foreach) function. 2009-11-21 Felix Zielcke * util/grub-mkrescue.in: Print an error and usage if output option has not been given. 2009-11-21 Felix Zielcke Patch from Loïc Minier . * util/grub.d/30_os-prober.in: Cope with Linux entries where root and /boot are on different devices. 2009-11-21 Robert Millan Fix build for srcdir != objdir. * Makefile.in (po/$(PACKAGE).pot): Rename to ... ($(srcdir)/po/$(PACKAGE).pot): ... this. Run $(XGETTEXT) from $(srcdir). ($(foreach lang, $(LINGUAS), po/$(lang).po)): Rename to ... ($(foreach lang, $(LINGUAS), $(srcdir)/po/$(lang).po): ... this. Use $^ reference for input. 2009-11-21 Robert Millan * util/grub-mkrescue.in: Use source directory direcly (without copiing or hardlinking it). Remove -J option, Joliet is not compatible with multiple source directories. 2009-11-21 Carles Pina i Estany 2009-11-21 Robert Millan * util/grub-mkrescue.in: Recognize `--override-directory' option. (process_input_dir): New function. Process an arbitrary input directory. Misc adjustments to support both "override mode" and system-wide mode. 2009-11-20 Felix Zielcke * configure.ac (UNIFONT_BDF): Rename to ... (FONT_SOURCE): ... this. Update all users. 2009-11-20 Felix Zielcke * configure.ac: Add `/usr/share/fonts/X11/misc/unifont.pcf.gz' to the list of unifont files to look for. 2009-11-19 Robert Millan Patch from Joe Auricchio * commands/minicmd.c (grub_mini_cmd_clear): New function. (GRUB_MOD_INIT(minicmd)): Register grub_mini_cmd_clear(). (GRUB_MOD_FINI(minicmd)): Unregister grub_mini_cmd_clear(). 2009-11-19 Felix Zielcke * Makefile.in (install-local): Add a missing backslash. 2009-11-19 Felix Zielcke * include/grub/x86_64/io.h: New file. 2009-11-19 Robert Millan * conf/i386-pc.rmk (grub_setup_SOURCES): Add `gnulib/progname.c'. * util/i386/pc/grub-setup.c: Include `'. Include `"progname.h"'. (main): Initialize gettext. * util/i386/pc/grub-setup.c: Gettexttize. * util/i386/pc/grub-mkimage.c: Likewise. * Makefile.in (po/*.po): Redefine as ... ($(foreach lang, $(LINGUAS), po/$(lang).po)): ... this. * po/POTFILES: Add `util/i386/pc/grub-setup.c'. 2009-11-19 Robert Millan * conf/common.rmk (grub_mkisofs_SOURCES): Add `gnulib/progname.c'. * util/mkisofs/mkisofs.c: Include `"progname.h"'. (program_name): Remove. (main): Initialize gettext support. * util/mkisofs/mkisofs.h: Include `'. Include `'. (_): New macro. * util/mkisofs/eltorito.c: Gettexttize. * util/mkisofs/joliet.c: Likewise. * util/mkisofs/mkisofs.c: Likewise. * util/mkisofs/multi.c: Likewise. * util/mkisofs/rock.c: Likewise. * util/mkisofs/tree.c: Likewise. * util/mkisofs/write.c: Likewise. * po/POTFILES: Update with new files. 2009-11-18 Robert Millan * util/mkisofs/eltorito.c: Fix minor mistake in license text. * util/mkisofs/iso9660.h: Likewise. * util/mkisofs/joliet.c: Likewise. * util/mkisofs/mkisofs.c: Likewise. * util/mkisofs/mkisofs.h: Likewise. * util/mkisofs/rock.c: Likewise. * util/mkisofs/tree.c: Likewise. * util/mkisofs/write.c: Likewise. * util/mkisofs/eltorito.c (rcsid): Remove. * util/mkisofs/hash.c: Likewise. * util/mkisofs/joliet.c: Likewise. * util/mkisofs/name.c: Likewise. * util/mkisofs/rock.c: Likewise. * util/mkisofs/tree.c: Likewise. * util/mkisofs/write.c: Likewise. 2009-11-18 Robert Millan * util/mkisofs/match.c: Rewrite from scratch, using a linked list instead of static allocation. * util/mkisofs/match.h: Likewise. 2009-11-18 Robert Millan * po/POTFILES-shell: New file. List `util/grub.d/10_kfreebsd.in' and `util/grub.d/10_linux.in'. * Makefile.in (po/$(PACKAGE).pot): Process `po/POTFILES-shell' for translatable Shell files. 2009-11-18 Robert Millan * Makefile.in ($(srcdir)/aclocal.m4): New target. 2009-11-17 Robert Millan * INSTALL: Document Automake is needed for bootstrap. * po/ca.po: Fix PO-Revision-Date and Language-Team fields. * util/grub.d/10_kfreebsd.in (bindir): New variable. Add gettext initialization. (kfreebsd_entry): Make menuentry output translatable. 2009-11-17 Robert Millan * Makefile.in (XGETTEXT, MSGMERGE, MSGFMT): New variables. (po/$(PACKAGE).pot): Replace `xgettext' with `$(XGETTEXT)'. (po/*.po): Replace `msgmerge' with `$(MSGMERGE)'. (po/%.mo): Replace `msgfmt' with `$(MSGFMT)'. (LINGUAS): Auto-generate using `po/LINGUAS'. * po/LINGUAS: New file. 2009-11-17 Robert Millan * configure.ac: Call AM_GNU_GETTEXT() (defines localedir, among other things). * Makefile.in (CPPFLAGS): Add `-DLOCALEDIR=\"$(localedir)\"'. * util/i386/pc/grub-mkimage.c (main): Issue setlocale() and bindtextdomain() calls for gettext initialization. 2009-11-17 Robert Millan * gnulib/progname.c: New file (imported from Gnulib). * gnulib/progname.h: Likewise. * conf/i386-pc.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'. * util/i386/pc/grub-mkimage.c: Include `"progname.h"'. (usage): Replace `progname' with `program_name'. (main): Use set_program_name() for program name initialization. 2009-11-17 Robert Millan * conf/common.rmk (grub_mkisofs_CFLAGS): Move `-I$(srcdir)/gnulib' from here ... * Makefile.in (CPPFLAGS): ... to here. 2009-11-16 Robert Millan * aclocal.m4: Move from here ... * acinclude.m4: ... to here. * autogen.sh: Add call to `aclocal'. * configure.ac: Add AM_INIT_AUTOMAKE() after AC_INIT() call. 2009-11-16 Robert Millan * Makefile.in (CLEANFILES): Add `po/*.mo'. (LINGUAS): New variable. (all-local): Add `$(foreach lang, $(LINGUAS), po/$(lang).mo)'. (install-local): Install MO files. (po/$(PACKAGE).pot, po/*.po, po/%.mo): New rules. * include/grub/i18n.h: New file. * po/POTFILES: New file. * po/ca.po: New file. * util/grub.d/10_linux.in (bindir): New variable. Add gettext initialization. (linux_entry): Make menuentry output translatable. * util/i386/pc/grub-mkimage.c: Include `'. (usage): Make --help output translatable. (main): Initialize gettext. 2009-11-17 Robert Millan * import_gcry.py: New file (written by Vladimir with minor adjustments). * autogen.sh: Use import_gcry.py to auto-generate GRUB-ified ciphers. * INSTALL: Document that Python is required for bootstrap. 2009-11-17 Robert Millan Import ciphers from libgcrypt 1.4.4. * lib/libgcrypt/cipher/ChangeLog * lib/libgcrypt/cipher/ac.c * lib/libgcrypt/cipher/arcfour.c * lib/libgcrypt/cipher/bithelp.h * lib/libgcrypt/cipher/blowfish.c * lib/libgcrypt/cipher/camellia-glue.c * lib/libgcrypt/cipher/camellia.c * lib/libgcrypt/cipher/camellia.h * lib/libgcrypt/cipher/cast5.c * lib/libgcrypt/cipher/cipher.c * lib/libgcrypt/cipher/crc.c * lib/libgcrypt/cipher/des.c * lib/libgcrypt/cipher/dsa.c * lib/libgcrypt/cipher/ecc.c * lib/libgcrypt/cipher/elgamal.c * lib/libgcrypt/cipher/hash-common.c * lib/libgcrypt/cipher/hash-common.h * lib/libgcrypt/cipher/hmac-tests.c * lib/libgcrypt/cipher/md.c * lib/libgcrypt/cipher/md4.c * lib/libgcrypt/cipher/md5.c * lib/libgcrypt/cipher/primegen.c * lib/libgcrypt/cipher/pubkey.c * lib/libgcrypt/cipher/rfc2268.c * lib/libgcrypt/cipher/rijndael-tables.h * lib/libgcrypt/cipher/rijndael.c * lib/libgcrypt/cipher/rmd.h * lib/libgcrypt/cipher/rmd160.c * lib/libgcrypt/cipher/rsa.c * lib/libgcrypt/cipher/seed.c * lib/libgcrypt/cipher/serpent.c * lib/libgcrypt/cipher/sha1.c * lib/libgcrypt/cipher/sha256.c * lib/libgcrypt/cipher/sha512.c * lib/libgcrypt/cipher/tiger.c * lib/libgcrypt/cipher/twofish.c * lib/libgcrypt/cipher/whirlpool.c 2009-11-16 Robert Millan Fix build for systems without error(). * gnulib/error.c: New file (imported from Gnulib). * gnulib/error.h: Likewise. * conf/common.rmk (grub_mkisofs_SOURCES): Add `gnulib/error.c'. * util/mkisofs/mkisofs.c (program_name): Remove `static' qualifier (this variable is now used by error()). 2009-11-16 Felix Zielcke * util/mkisofs/name.c (iso9660_file_length): Use isascii macro instead of relying that char is signed. 2009-11-16 Vladimir Serbinenko * fs/i386/pc/pxe.c (grub_pxefs_open): Correctly handle PXE choosing blocksize different from specified. (grub_pxefs_read): Likewise. 2009-11-16 Felix Zielcke Enable ata.mod on x86_64-efi, i386-efi and i386-ieee1275. * disk/ata.c (grub_ata_dumpinfo): Add a cast. (grub_ata_readwrite): Likewise. Update 2 format strings. (grub_atapi_read): Likewise. * conf/i386-coreboot.rmk (pkglib_MODULES): Move `ata.mod' from here ... * conf/i386.rmk (pkglib_MODULES): ... to here ... * conf/x86_64-efi.rmk (pkglib_MODULES): ... and here. * conf/i386-coreboot.rmk (ata_mod_SOURCES, ata_mod_CFLAGS) (ata_mod_LDFLAGS): Move from here ... * conf/i386.rmk: ... to here ... * conf/x86_64-efi.rmk: ... and here. * conf/i386-pc.rmk (pkglib_MODULES): Remove `ata.mod' (ata_mod_SOURCES, ata_mod_CFLAGS, ata_mod_LDFLAGS): Remove. 2009-11-16 Robert Millan Relicense multiboot.h, with RMS' blessing. * include/multiboot.h: Change to X11 license. 2009-11-15 Robert Millan Support --version in grub-mkisofs. * util/mkisofs/mkisofs.c (rcsid): Remove variable. (OPTION_VERSION): New macro. (ld_options): Recognize --version. (usage): Move `program_name' from here ... (program_name): ... to here. Add `static' qualifier. (main): Recognize `OPTION_VERSION'. 2009-11-15 Felix Zielcke * Makefile.in (TARGET_CPPFLAGS): Replace `-isystem=$(srcdir)/include' with `-nostdinc -isystem $(shell $(TARGET_CC) -print-file-name=include)'. 2009-11-14 Robert Millan Fix help2man generation for mkisofs. * util/mkisofs/mkisofs.c (ld_options): Recognize --help. (usage): Send output to stdout (rather than stderr). 2009-11-14 Robert Millan * conf/i386-coreboot.rmk (grub_mkrescue_SOURCES): Replace `util/i386/coreboot/grub-mkrescue.in' with `util/grub-mkrescue.in'. * conf/i386-pc.rmk (grub_mkrescue_SOURCES): Replace `util/i386/pc/grub-mkrescue.in' with `util/grub-mkrescue.in'. (bin_SCRIPTS): Add `grub-mkfloppy'. (grub_mkfloppy_SOURCES): New variable. * util/grub-mkrescue.in: New file. * util/i386/pc/grub-mkfloppy.in: New file. * util/i386/coreboot/grub-mkrescue.in: Remove. * util/i386/pc/grub-mkrescue.in: Remove. 2009-11-13 Robert Millan * include/grub/multiboot.h (struct grub_multiboot_header): Move from here ... * include/multiboot.h (struct multiboot_header): ... to here. Update all users. * include/grub/multiboot.h (struct grub_multiboot_info): Move from here ... * include/multiboot.h (struct multiboot_info): ... to here. Update all users. * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): Move from here ... * include/multiboot.h (struct multiboot_mmap_entry): ... to here. Update all users. * include/grub/multiboot.h (struct grub_mod_list): Move from here ... * include/multiboot.h (struct multiboot_mod_list): ... to here. Update all users. 2009-11-13 Robert Millan * include/multiboot2.h (multiboot_word): Rename from this ... (multiboot2_word): ... to this. Update all users. (multiboot_header): Rename from this ... (multiboot2_header): ... to this. Update all users. (multiboot_tag_header): Rename from this ... (multiboot2_tag_header): ... to this. Update all users. (multiboot_tag_start): Rename from this ... (multiboot2_tag_start): ... to this. Update all users. (multiboot_tag_name): Rename from this ... (multiboot2_tag_name): ... to this. Update all users. (multiboot_tag_module): Rename from this ... (multiboot2_tag_module): ... to this. Update all users. (multiboot_tag_memory): Rename from this ... (multiboot2_tag_memory): ... to this. Update all users. (multiboot_tag_unused): Rename from this ... (multiboot2_tag_unused): ... to this. Update all users. (multiboot_tag_end): Rename from this ... (multiboot2_tag_end): ... to this. Update all users. 2009-11-13 Robert Millan Disable Multiboot2 in i386-ieee1275. It didn't actually work, and on this platform we should support Multiboot1 first. * conf/i386-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'. (multiboot_mod_SOURCES, multiboot_mod_CFLAGS) (multiboot_mod_LDFLAGS, multiboot_mod_ASFLAGS): Remove. 2009-11-12 Robert Millan * util/mkisofs/eltorito.c (init_boot_catalog): Handle return code of write calls (converting them to fwrite() if they aren't already). (get_torito_desc): Likewise. * util/mkisofs/rock.c (generate_rock_ridge_attributes): Likewise. 2009-11-12 Robert Millan * util/i386/pc/grub-install.in: Move from here ... * util/grub-install.in: ... to here. Update all users. 2009-11-11 Colin Watson * util/powerpc/ieee1275/grub-mkrescue.in: Fix --version output. 2009-11-11 Robert Millan Support for El Torito without floppy emulation. * util/mkisofs/eltorito.c: Include `'. (init_boot_catalog): Improve error handling. (get_torito_desc): Don't use floppy emulation unless requested by user. Patch boot information table when requested via `-boot-info-table'. * util/mkisofs/iso9660.h (struct eltorito_boot_info): New struct. * util/mkisofs/mkisofs.c (use_eltorito_emul_floppy) (use_boot_info_table): New variables. (OPTION_BOOT_INFO_TABLE, OPTION_NO_EMUL_BOOT) (OPTION_ELTORITO_EMUL_FLOPPY): New macros. (ld_options): Handle `-boot-info-table', `-no-emul-boot' and `--eltorito-emul-floppy'. (main): Handle `OPTION_BOOT_INFO_TABLE', `OPTION_NO_EMUL_BOOT' and `OPTION_ELTORITO_EMUL_FLOPPY'. * util/mkisofs/mkisofs.h (use_eltorito_emul_floppy) (use_boot_info_table, get_731): New prototypes. * util/mkisofs/write.c (get_731): New function. 2009-11-11 Felix Zielcke Fix the generation of the man page. * util/pc/i386/grub-install.in: Source `${libdir}/grub/grub-mkconfig_lib' after options have been parsed. 2009-11-11 Robert Millan Large file support for grub-mkisofs. * conf/common.rmk (grub_mkisofs_CFLAGS): Add `-D_FILE_OFFSET_BITS=64'. * util/mkisofs/mkisofs.c (next_extent, last_extent) (session_start): Upgrade type to `uint64_t'. Update all users. * util/mkisofs/mkisofs.h: Include `'. (struct directory_entry): Upgrade type of `starting_block' and `size' to `uint64_t'. Update all users. (struct deferred): Remove unused structure. (xfwrite): Upgrade type of `count' and `size' to `uint64_t'. Update all users. * util/mkisofs/tree.c (stat_filter, lstat_filter): Return -1 when file is larger than `UINT32_MAX'. * util/mkisofs/write.c (xfwrite): Upgrade type of `count' and `size' to `uint64_t'. Update all users. Fix handling of fwrite() return value. (struct deferred_write): Upgrade type of `extent' and `size' to `uint64_t'. Update all users. (last_extent_written): Upgrade type to `uint64_t'. Update all users. (write_one_file): Upgrade type of `count' and `size' to `uint64_t'. Update all users. Upgrade type of `remain' to `int64_t' and `use' to `size_t'. Use error() to handle fread() errors. (write_files): Rely on write_one_file() rather than calling xfwrite() directly. 2009-11-09 Felix Zielcke * util/mkisofs/mkisofs.c (ld_options): Fix a spelling mistake. 2009-11-09 Robert Millan * util/mkisofs/fnmatch.c: Remove. * util/mkisofs/getopt1.c: Likewise. * util/mkisofs/getopt.c: Likewise. * conf/common.rmk (grub_mkisofs_SOURCES): Replace `util/mkisofs/fnmatch.c', `util/mkisofs/getopt1.c' and `util/mkisofs/getopt.c' with `gnulib/fnmatch.c', `gnulib/getopt1.c' and `gnulib/getopt.c'. (grub_mkisofs_CFLAGS): Add `-I$(srcdir)/gnulib'. * configure.ac: Detect `mingw32msvc' host_os. Check for lstat(), getuid() and getgid(). * util/mkisofs/joliet.c: Include `'. Replace all instances of `u_char' with `uint8_t'. * util/mkisofs/mkisofs.h: Include `'. [!HAVE_GETUID] (getuid): New function (stub). [!HAVE_GETGID] (getgid): Likewise. [!HAVE_LSTAT] (lstat): Likewise. [!S_IROTH] (S_IROTH): New macro (dummy). [!S_IRGRP] (S_IRGRP): Likewise. 2009-11-09 Robert Millan * gnulib/fnmatch_loop.c (EXT): Fix warning (signed and unsigned type in conditional expression). 2009-11-09 Robert Millan Import from Gnulib. * gnulib/fnmatch.c: New file. * gnulib/fnmatch.h: Likewise. * gnulib/fnmatch_loop.c: Likewise. * gnulib/getopt.c: Likewise. * gnulib/getopt.h: Likewise. * gnulib/getopt1.c: Likewise. * gnulib/getopt_int.h: Likewise. * gnulib/gettext.h: Likewise. 2009-11-09 Robert Millan * normal/dyncmd.c (read_command_list): Replace `0' with `NULL'. * normal/handler.c (read_handler_list): Likewise. 2009-11-09 Robert Millan Misc cleanup. * kern/command.c (grub_register_command_prio): Use grub_zalloc() instead of explicitly zeroing data. * kern/list.c: Include `'. (grub_named_list_find): Replace `0' with `NULL'. * normal/autofs.c (struct grub_fs_module_list): Remove ad-hoc type. (fs_module_list): Change type to `grub_named_list_t'. Update all users. * normal/dyncmd.c (read_command_list): Add space between function call and parenthesis. * normal/handler.c (read_handler_list): Likewise. 2009-11-09 Robert Millan * normal/auth.c (punishment_delay): Moved from here ... (grub_auth_strcmp): ... to here (inside function). 2009-11-09 Robert Millan * include/grub/list.h (struct grub_named_list): Remove `const' qualifier from `name'. (struct grub_prio_list): Likewise. 2009-11-09 Robert Millan * normal/auth.c: Include `'. (grub_auth_strcmp): Replace `strcmp' with `grub_strcmp'. 2009-11-09 Robert Millan * normal/auth.c (punishment_delay): New variable. (grub_auth_strcmp): Rewrite using grub_get_time_ms (). (grub_auth_check_authentication): Punish failed login attempts with an incremental (2^N) delay. 2009-11-09 Robert Millan * conf/common.rmk (grub_mkisofs_CFLAGS): Prefix include path with $(srcdir). 2009-11-09 Vladimir Serbinenko * normal/auth.c (grub_auth_strcmp): Fixed incorrect variable usage. 2009-11-09 Robert Millan * util/i386/coreboot/grub-mkrescue.in: New file. * conf/i386-coreboot.rmk (bin_SCRIPTS, grub_mkrescue_SOURCES): New variables. * conf/common.rmk (bin_UTILITIES): Add `grub-mkisofs'. (grub_mkisofs_SOURCES, grub_mkisofs_CFLAGS): New variables. * configure.ac: Add header and function checks to satisfy grub-mkisofs requirements. * util/mkisofs/defaults.h: New file. * util/mkisofs/eltorito.c: Likewise. * util/mkisofs/exclude.h: Likewise. * util/mkisofs/fnmatch.c: Likewise. * util/mkisofs/getopt.c: Likewise. * util/mkisofs/getopt1.c: Likewise. * util/mkisofs/hash.c: Likewise. * util/mkisofs/include/fctldefs.h: Likewise. * util/mkisofs/include/mconfig.h: Likewise. * util/mkisofs/include/prototyp.h: Likewise. * util/mkisofs/include/statdefs.h: Likewise. * util/mkisofs/iso9660.h: Likewise. * util/mkisofs/joliet.c: Likewise. * util/mkisofs/match.c: Likewise. * util/mkisofs/match.h: Likewise. * util/mkisofs/mkisofs.c: Likewise. * util/mkisofs/mkisofs.h: Likewise. * util/mkisofs/multi.c: Likewise. * util/mkisofs/name.c: Likewise. * util/mkisofs/rock.c: Likewise. * util/mkisofs/tree.c: Likewise. * util/mkisofs/write.c: Likewise. 2009-11-09 Vladimir Serbinenko * normal/auth.c (grub_auth_strcmp): Fix bug which resulted in function being insecure. 2009-11-08 Robert Millan * util/i386/pc/grub-mkrescue.in: Fix miss-identification as `grub-mkimage' (and use $0 when possible). 2009-11-08 Robert Millan * kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve error message for excessively large memory map. 2009-11-08 Robert Millan * autogen.sh: Use `sh gendistlist.sh' to avoid reliing on executable bit. 2009-11-08 Robert Millan * kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve error message for coreboot users. 2009-11-07 Robert Millan Fix build with GNU gold. * conf/i386-pc.rmk (boot_img_LDFLAGS, pxeboot_img_LDFLAGS) (diskboot_img_LDFLAGS, lnxboot_img_LDFLAGS) (cdboot_img_LDFLAGS): Prepend `0x' qualifier to hexadecimal link addresses. * aclocal.m4: Likewise. 2009-11-04 Felix Zielcke * configure.ac (AC_PREREQ): Bump to 2.59d. * INSTALL: Make it more clear when Autoconf and Ruby are needed and when to run `./autogen.sh'. 2009-11-03 Samuel Thibault * util/grub.d/30_os-prober.in: Restore default behavior for unsupported OSes. 2009-11-02 Samuel Thibault * util/grub.d/30_os-prober.in: Add GNU/Hurd support 2009-11-02 Samuel Thibault * util/grub.d/10_hurd.in: Drop /dev/ prefix from root device path before giving it to GNU Mach. 2009-11-02 Samuel Thibault * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Subtract 1 from GNU partition number to get internal GRUB partition number. 2009-11-02 Samuel Thibault * util/grub.d/10_hurd.in: Call prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} before loading /boot kernel. 2009-11-01 Robert Millan Based on patch from BVK Chaitanya * kern/misc.c (grub_strchr, grub_strrchr): Fix to handle c == '\0' case. 2009-11-01 Felix Zielcke * Makefile.in (TARGET_CPPFLAGS): Add `-I$(srcdir)/include'. 2009-10-30 Robert Millan Fix build problem. * Makefile.in (TARGET_CPPFLAGS): Replace `-nostdinc' with `-isystem=$(srcdir)/include'. 2009-10-30 Robert Millan * util/i386/pc/grub-install.in: Remove hint that device.map should be checked (grub-install doesn't currently rely on it). 2009-10-29 Robert Millan Revert SVN r2660. * conf/common.rmk (script/sh/lexer.c_DEPENDENCIES): Moved from here ... * conf/i386-coreboot.rmk (script/sh/lexer.c_DEPENDENCIES): ... to here. * conf/i386-efi.rmk (script/sh/lexer.c_DEPENDENCIES): ... and here. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. 2009-10-28 Robert Millan * Makefile.in (TARGET_CPPFLAGS): Add `-nostdinc'. 2009-10-28 Robert Millan * include/grub/misc.h: Stop checking for APPLE_CC. 2009-10-28 Robert Millan * kern/i386/coreboot/init.c (grub_exit): Reimplement in a way that doesn't cause an infinite call loop. 2009-10-28 Felix Zielcke * commands/acpi.c (grub_cmd_acpi): Fix the out of memory error strings. 2009-10-26 Robert Millan * autogen.sh: Support addition of external modules via `GRUB_CONTRIB' variable. * Makefile.in: Likewise. 2009-10-26 Robert Millan * gendistlist.sh: Simplify .svn check. Skip .bzr as well. 2009-10-26 Robert Millan * Makefile.in (RMKFILES): Rewrite using $(wildcard). 2009-10-26 Robert Millan * disk/scsi.c: Remove `' (not needed). 2009-10-26 Robert Millan * gensymlist.sh.in (COMPILE_TIME_ASSERT): Copy macro declaration from here ... * include/grub/misc.h (COMPILE_TIME_ASSERT): ... to here. 2009-10-26 Robert Millan * Makefile.in (docs/grub.info): Use make syntax to ignore errors in $(MAKEINFO) invocation. This makes it clear in output that errors are being ignored. 2009-10-26 Robert Millan * conf/i386-coreboot.rmk (script/sh/lexer.c_DEPENDENCIES): Moved from here ... * conf/common.rmk (script/sh/lexer.c_DEPENDENCIES): ... to here. * conf/i386-efi.rmk (script/sh/lexer.c_DEPENDENCIES): Remove. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. 2009-10-26 Colin Watson * util/grub-editenv.c (main): If only a command is given, use DEFAULT_DIRECTORY "/" GRUB_ENVBLK_DEFCFG as a default file name. (usage): FILENAME is now optional and has a default. 2009-10-26 Colin Watson Improve grub-mkconfig performance when there are several menu entries on a single filesystem. * util/grub.d/10_linux.in (linux_entry): Cache the output of prepare_grub_to_access_device. * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise. * util/grub.d/30_os-prober.in: Likewise. 2009-10-26 Robert Millan * util/grub.d/10_freebsd.in: Remove. * util/grub.d/10_kfreebsd.in: New file (based on 10_linux.in). * configure.ac: Set host_kernel=kfreebsd for FreeBSD and GNU/kFreeBSD. 2009-10-26 Robert Millan * docs/grub.cfg: Fix example usage of *BSD loaders. 2009-10-25 Robert Millan * util/i386/pc/grub-setup.c (setup): Add missing parameter to grub_util_error() call. 2009-10-25 Robert Millan * include/grub/fs.h [GRUB_UTIL] (struct grub_fs): Add `reserved_first_sector' member. * fs/ext2.c [GRUB_UTIL] (grub_ext2_fs): Initialize `reserved_first_sector' to 1. * fs/fat.c [GRUB_UTIL] (grub_fat_fs): Likewise. * fs/ntfs.c [GRUB_UTIL] (grub_ntfs_fs): Likewise. * fs/hfsplus.c [GRUB_UTIL] (grub_hfsplus_fs): Likewise. * util/i386/pc/grub-setup.c (setup): Add safety check that probes for filesystems which begin at first sector. (options): New option --skip-fs-probe. (main): Handle --skip-fs-probe and pass it to setup(). 2009-10-25 Robert Millan * include/grub/misc.h: Fix wrong evaluation of APPLE_CC. (memset): Fix function prototype. 2009-10-25 Robert Millan 2009-10-25 Vasily Averin * fs/ext2.c (grub_ext2_iterate_dir): Avoid infinite loop when `dirent.direntlen == 0'. 2009-10-25 Robert Millan * fs/cpio.c [MODE_USTAR]: Initialize `tar' module instead of `cpio'. [! MODE_USTAR]: Initialize `cpio' module instead of `tar'. 2009-10-25 Robert Millan * configure.ac: Check for `__ashldi3', `__ashrdi3', `__lshrdi3', `__trampoline_setup' and `__ucmpdi2'. * include/grub/powerpc/libgcc.h: Only export symbols for functions that libgcc provides. 2009-10-25 Robert Millan * include/grub/powerpc/libgcc.h (memset): Remove function prototype. * include/grub/sparc64/libgcc.h (memset): Likewise. * include/grub/misc.h (memset, memcmp): New function prototypes. 2009-10-25 Robert Millan * fs/cpio.c [MODE_USTAR]: Finish `tar' module instead of `cpio'. [! MODE_USTAR]: Finish `cpio' module instead of `tar'. 2009-10-25 Robert Millan Patch from Samuel Thibault * docs/grub.cfg: Compensate for recent change in multiboot loader (since 2009-08-14 it won't pass filename to payload). * util/grub.d/10_hurd.in: Likewise. 2009-10-21 Felix Zielcke * config.guess: Update to latest version from config git repository. * config.sub: Likewise. 2009-10-20 Robert Millan Fix build on sparc64. * configure.ac: Perform checks for libgcc symbols before adding `-nostdlib' to LDFLAGS. 2009-10-16 Vladimir Serbinenko Let user specify OpenBSD root device. * loader/i386/bsd.c (openbsd_root): New variable. (openbsd_opts): New option 'root'. (OPENBSD_ROOT_ARG): New macro. (grub_openbsd_boot): Use 'openbsd_root'. (grub_cmd_openbsd): Fill 'openbsd_root'. 2009-10-16 Robert Millan * NEWS: Misc adjustments. 2009-10-16 Vladimir Serbinenko * NEWS: Mentioned XNU, ACPI, gptsync, password and parttool. 2009-10-16 Robert Millan * configure.ac: Bump version to 1.97. 2009-10-16 Colin Watson * configure.ac (TARGET_CFLAGS): Add -mno-mmx -mno-sse -mno-sse2 -mno-3dnow on x86 architectures. Some toolchains enable these features by default, but they rely on registers that aren't enabled in GRUB. Thanks to Vladimir Serbinenko for the suggestion. 2009-10-15 Robert Millan Make entry text a bit more readable. * util/grub.d/10_linux.in: Add `with' before `Linux'. 2009-10-15 Vladimir Serbinenko * loader/i386/pc/xnu.c (grub_xnu_set_video): Fix loading splash image. 2009-10-15 Vladimir Serbinenko * commands/xnu_uuid.c (grub_cmd_xnu_uuid): Remove duplicated bitwise operations. 2009-10-15 Vladimir Serbinenko * configure.ac: Add missing dollar. 2009-10-15 Vladimir Serbinenko Revert 2009-06-10 Pavel Roskin * configure.ac: Put checks for __bswapsi2 and __bswapdi2. * include/grub/powerpc/libgcc.h: Don't use weak attribute for all exports. * include/grub/sparc64/libgcc.h: Likewise. Use preprocessor conditionals. 2009-10-14 Robert Millan * conf/common.rmk (grub-dumpbios): Remove rule. (sbin_SCRIPTS, CLEANFILES): Remove `grub-dumpbios'. * util/grub-dumpbios.in: Remove file. 2009-10-14 Robert Millan Refer to kernel of FreeBSD "kFreeBSD" to avoid confusion between the Operating System (FreeBSD) and its kernel (kernel of FreeBSD). * loader/i386/bsd.c (grub_freebsd_boot): Read kernel environment from "kFreeBSD" namespace (rather than "FreeBSD"). Update all users. (GRUB_MOD_INIT (bsd)): Rename "freebsd" command to "kfreebsd", "openbsd" to "kopenbsd", "netbsd" to "knetbsd", "freebsd_loadenv" to "kfreebsd_loadenv", "freebsd_module" to "kfreebsd_module", and "freebsd_module_elf" to "kfreebsd_module_elf". Update all users. 2009-10-12 Robert Millan * term/tparm.c: Switch to GPLv3. 2009-10-09 Robert Millan * include/grub/i386/cpuid.h: Add header protection. 2009-10-09 Robert Millan Fail gracefuly when attempting to load 64-bit kFreeBSD on IA32 CPU. * include/grub/i386/cpuid.h: New file. * commands/i386/cpuid.c: Include `'. (has_longmode): Rename to ... (grub_cpuid_has_longmode): ... this. Update all users. Remove `static' attribute. * loader/i386/bsd.c: Include `'. (grub_bsd_load_elf): Fail if load of 64-bit kernel was requested on a CPU that doesn't implement AMD64 instruction set. 2009-10-06 Colin Watson * Makefile.in (docs/stamp-vti): Depend on configure.ac as well, so that version.texi is rebuilt on version number changes. 2009-10-06 Colin Watson * Makefile.in: Don't set info_INFOS unless makeinfo was found. Fixes bug #27602. 2009-10-06 Colin Watson * util/i386/pc/grub-install.in: Source ${libdir}/grub/grub-mkconfig_lib before option processing, in order that the --grub-probe option will work. * util/sparc64/ieee1275/grub-install.in: Likewise. 2009-10-05 Robert Millan * configure.ac: Bump version to 1.97~beta4. 2009-10-03 Robert Millan Resync grub-mkdevicemap in x86_64-efi. * conf/x86_64-efi.rmk (sbin_UTILITIES): Enable `grub-mkdevicemap'. (grub_mkdevicemap_SOURCES): Add missing `util/deviceiter.c' and `util/devicemap.c'. 2009-10-01 Colin Watson * util/grub-editenv.c (create_envblk_file): Write new block with a .new suffix and then rename it into place, to ensure atomic creation. 2009-09-28 Robert Millan Do not automatically install headers. * Makefile.in (include_DATA): Remove. Update all users. 2009-09-26 Robert Millan * conf/common.rmk (pkglib_MODULES): Remove `lua.mod'. (lua_mod_SOURCES, lua_mod_CFLAGS, lua_mod_LDFLAGS): Remove. * util/osdetect.lua: Remove. * script/lua/lauxlib.c: Likewise. * script/lua/ldebug.c: Likewise. * script/lua/grub_main.c: Likewise. * script/lua/lauxlib.h: Likewise. * script/lua/ldebug.h: Likewise. * script/lua/ltablib.c: Likewise. * script/lua/liolib.c: Likewise. * script/lua/lstrlib.c: Likewise. * script/lua/lualib.h: Likewise. * script/lua/ldo.c: Likewise. * script/lua/ldump.c: Likewise. * script/lua/ldo.h: Likewise. * script/lua/loslib.c: Likewise. * script/lua/lundump.c: Likewise. * script/lua/grub_lib.c: Likewise. * script/lua/ldblib.c: Likewise. * script/lua/lundump.h: Likewise. * script/lua/lmem.c: Likewise. * script/lua/grub_lib.h: Likewise. * script/lua/lmathlib.c: Likewise. * script/lua/lstate.c: Likewise. * script/lua/ltm.c: Likewise. * script/lua/lvm.c: Likewise. * script/lua/lmem.h: Likewise. * script/lua/lstate.h: Likewise. * script/lua/ltm.h: Likewise. * script/lua/ltable.c: Likewise. * script/lua/lvm.h: Likewise. * script/lua/llex.c: Likewise. * script/lua/lgc.c: Likewise. * script/lua/grub_lua.h: Likewise. * script/lua/loadlib.c: Likewise. * script/lua/lfunc.c: Likewise. * script/lua/lopcodes.c: Likewise. * script/lua/lparser.c: Likewise. * script/lua/ltable.h: Likewise. * script/lua/llex.h: Likewise. * script/lua/lgc.h: Likewise. * script/lua/lfunc.h: Likewise. * script/lua/lbaselib.c: Likewise. * script/lua/lopcodes.h: Likewise. * script/lua/lparser.h: Likewise. * script/lua/lzio.c: Likewise. * script/lua/linit.c: Likewise. * script/lua/lobject.c: Likewise. * script/lua/llimits.h: Likewise. * script/lua/lstring.c: Likewise. * script/lua/lzio.h: Likewise. * script/lua/lapi.c: Likewise. * script/lua/lcode.c: Likewise. * script/lua/lua.h: Likewise. * script/lua/lobject.h: Likewise. * script/lua/lstring.h: Likewise. * script/lua/lapi.h: Likewise. * script/lua/lcode.h: Likewise. * script/lua/luaconf.h: Likewise. 2009-09-26 Colin Watson * docs/grub.texi (Command-line and menu entry commands): Document date and echo commands. 2009-09-24 Pavel Roskin * include/grub/kernel.h (struct grub_module_header): Remove `grub_module_header_types'. Make `type' unsigned. Make `size' 32-bit on all platforms. * util/elf/grub-mkimage.c (load_modules): Treat `type' as an 8-bit field. Use grub_host_to_target32() for `size'. * util/i386/efi/grub-mkimage.c (make_mods_section): Likewise. * util/i386/pc/grub-mkimage.c (generate_image): Likewise. * util/sparc64/ieee1275/grub-mkimage.c (generate_image): Likewise. 2009-09-24 Robert Millan Fix "lost keypress" bug in at_keyboard. * term/i386/pc/at_keyboard.c (grub_at_keyboard_checkkey): New function. Checks for readyness of input buffer (without flushing it). (grub_at_keyboard_term): Use grub_at_keyboard_checkkey() rather than grub_at_keyboard_getkey_noblock() for `checkkey' struct member. 2009-09-24 Robert Millan * util/i386/pc/grub-mkimage.c (generate_image): Enclose BIOS-specific size check within GRUB_MACHINE_PCBIOS section. 2009-09-24 Robert Millan * include/grub/i386/at_keyboard.h (KEYBOARD_ISREADY): Negate return value. * term/i386/pc/at_keyboard.c (grub_keyboard_getkey): Negate KEYBOARD_ISREADY check. (grub_at_keyboard_checkkey): Rename to ... (grub_at_keyboard_getkey_noblock): ... this. Update all users. Remove gratuitous cast. 2009-09-23 Colin Watson * configure.ac: Call AC_PROG_MKDIR_P. * Makefile.in (docs/stamp-vti): Create docs directory. Create version.texi in $(builddir) rather than $(srcdir). (docs/grub.info): Create docs directory. Prepend $(builddir)/docs to makeinfo's @include search path. 2009-09-23 Felix Zielcke * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Cope with `*.dpkg-*' 2009-09-23 Felix Zielcke * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Add support for `*.dpkg-new'. 2009-09-21 Colin Watson Build info documentation. Some code borrowed from Automake. * configure.ac: Check for makeinfo. * Makefile.in (MAKEINFO, INFOS, info_INFOS): New variables. (MAINTAINER_CLEANFILES): Add $(INFOS), docs/stamp-vti, and docs/version.texi. (MOSTLYCLEANFILES): Add vti.tmp. (docs/version.texi, docs/stamp-vti): Update automatically. (docs/grub.info): Build info documentation. Use --force and ignore errors for now. (all-local): Add $(INFOS). (install-local): Install info files. (uninstall): Uninstall info files. * docs/version.texi: Remove from revision control. This file is automatically generated on build now. * gendistlist.sh: Add `*.info'. 2009-09-21 Felix Zielcke * kern/term.c: Fix indentation. 2009-09-21 Felix Zielcke * util/hostdisk.c: Fix a comment. 2009-09-20 Robert Millan Fix regression introduced in r2539. * term/usb_keyboard.c (USB_HID_DEVICE_TO_HOST): Change from 0x61 to 0xA1. 2009-09-19 Colin Watson * util/grub.d/30_os-prober.in: Don't throw away stderr from os-prober. Under normal operation, it does not print anything to stderr; if it does, we need to debug it, and throwing away stderr makes that excessively difficult. 2009-09-16 Vladimir Serbinenko * mmap/mmap.c (grub_cmd_badram): Fix off-by-one error. 2009-09-16 Robert Millan * aclocal.m4 (AC_LANG_PROGRAM): New macro. Overrides stock AC_LANG_PROGRAM from autoconf. (grub_ASM_USCORE, grub_PROG_OBJCOPY_ABSOLUTE): Add missing prototypes (fixes warning). * configure.ac: Add `-Werror' to TARGET_CFLAGS unless `--disable-werror' was used. 2009-09-16 Robert Millan * partmap/msdos.c (pc_partition_map_iterate): Fix possible use of uninitialized `lastaddr'. 2009-09-15 Vladimir Serbinenko * partmap/msdos.c (pc_partition_map_iterate): Detect and break loops. 2009-09-14 Colin Watson * commands/test.c (get_fileinfo): Return immediately if grub_fs_probe fails. 2009-09-14 José Martínez * commands/acpi.c (grub_cmd_acpi): Fix loading ACPI tables from file. 2009-09-14 Colin Watson * util/grub.d/30_os-prober.in: Cope with Windows 7 in os-prober output. 2009-09-13 Robert Millan * configure.ac: Remove --enable-grub-pe2elf. Only build grub-pe2elf when needed by the build system itself. * conf/common.rmk: Remove $(enable_grub_pe2elf) check. 2009-09-12 Robert Millan * configure.ac: Bump version to 1.97~beta3. * docs/version.texi: Likewise. 2009-09-12 Robert Millan * video/i386/pc/vbe.c (grub_vbe_get_video_mode_info): Move packed mode special handling (grub_vbe_bios_set_dac_palette_width() call) from here ... * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_linux_setup_video): ... to here (with some adjustments). 2009-09-12 Robert Millan Fix memory corruption issue (spotted by Colin Watson). * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette): Fix bug causing returned size to be stored in an incorrect memory location. Fix use of uninitialized value when storing the returned size. 2009-09-12 Yves Blusseau Change clean rules to properly remove files * genmk.rb: add new clean rules * Makefile.in (clean): add the new targets (mostlyclean): likewise 2009-09-11 Colin Watson * include/grub/ntfs.h (struct grub_fshelp_node): Change `size' to grub_uint64_t. * fs/ntfs.c (init_file): Understand 64-bit sizes for non-resident files. 2009-09-11 Colin Watson * configure.ac: Don't look for help2man when cross-compiling. Fixes part of bug #27349. 2009-09-10 Felix Zielcke * util/grub-mkconfig.in: Make the created config mode 400 and print a warning if it fails. 2009-09-10 Robert Millan * util/grub.d/40_custom.in: Ask user to type custom entries below comment, rather than below 'exec tail' line. 2009-09-10 Colin Watson * util/grub.d/40_custom.in: Make sure that the explanatory text is visible in grub.cfg. 2009-09-10 Colin Watson * util/grub.d/40_custom.in: Make it a little clearer how to use this file. 2009-09-10 Felix Zielcke * docs/grub.cfg: Add an example menu entry for memtest86+. 2009-09-09 Felix Zielcke * config.guess: Update to latest version from config git. * config.sub: Likewise. 2009-09-08 Colin Watson * script/sh/execute.c (grub_script_execute_cmdline): Set "?" in unknown-command case. Fixes bug #27320. 2009-09-08 Felix Zielcke * kern/rescue_parser.c (grub_rescue_parse_line): Only suggest to try `help' if the command exists. 2009-09-06 Robert Millan * INSTALL: Require GCC 4.1.3 or later. 2009-09-06 Yves Blusseau * Makefile.in (RMKFILES): add i386-qemu.rmk (MAINTAINER_CLEANFILES): add $(srcdir)/DISTLIST $(srcdir)/config.h.in $(srcdir)/stamp-h.in 2009-09-05 Robert Millan * util/grub-probe.c (probe): Comment out buggy codepath, which was unexpectedly enabled by Colin Watson's 2009-09-02 fix. This should be re-enabled after 1.97. 2009-09-05 Felix Zielcke * gendistlist.sh: Add `grub-dumpdevtree' and `*.lua' to the list find searches for. 2009-09-04 Vladimir Serbinenko * loader/i386/xnu.c (grub_cpu_xnu_fill_devicetree): Remove unnecessary calls to grub_error. 2009-09-04 Colin Watson * NEWS: Mention `keystatus' and Unicode fonts. 2009-09-04 Robert Millan * configure.ac: Bump version to 1.97~beta2. * docs/version.texi: Likewise. 2009-09-03 Colin Watson * configure.ac: By default, GCC 4.4 generates .eh_frame sections containing unwind information in some cases where it previously did not. Use -fno-dwarf2-cfi-asm if available to restore the old behaviour. See http://patchwork.kernel.org/patch/8555/ for related discussion. 2009-09-02 Yves BLUSSEAU Embedding loadenv module into grub-emu * conf/i386-pc.rmk (grub_emu_SOURCES): add lib/envblk.c and commands/loadenv.c * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise 2009-09-03 Magnus Granberg * aclocal.m4: Add grub_CHECK_PIE. It check if the compiler include -fPIE in the default specs. * configure.ac: Check if pie_possible is yes and add -fno-PIE to TARGET_CFLAGS. 2009-09-03 Felix Zielcke * INSTALL: Note that GNU Bison 2.3 or later is required. 2009-09-03 Colin Watson * kern/i386/pc/startup.S: Fix typo. 2009-09-02 Vladimir Serbinenko * efiemu/loadcore.c (SUFFIX (grub_efiemu_loadcore_load)): Fix style according to GCS. 2009-09-02 Colin Watson * docs/grub.texi (Naming convention): Describe one-based partition numbering. (Device syntax): Likewise. (File name syntax): Likewise. (Block list syntax): Likewise. (Making a GRUB bootable CD-ROM): Talk about grub.cfg rather than menu.lst. (File name syntax): Likewise. (Command-line and menu entry commands): Document acpi, blocklist, crc, export, insmod, keystatus, ls, set, and unset commands. 2009-09-02 Colin Watson * commands/keystatus.c (GRUB_MOD_INIT (keystatus)): Adjust summary to avoid implying that only one of --shift, --ctrl, or --alt may be used. 2009-09-02 Colin Watson * util/grub-probe.c (probe): Test st.st_mode using S_ISREG macro rather than comparing against S_IFREG, which will almost never work. 2009-09-01 Vladimir Serbinenko * commands/loadenv.c (check_blocklists): Fix off-by-one error. (write_blocklists): Likewise. 2009-09-01 Colin Watson * script/lua/grub_lua.h (fputs): Supply a format string as the first argument to grub_printf. 2009-09-01 Felix Zielcke * genmk.rb: Add quotes around $(TARGET_OBJ2ELF) to cope with non GNU test. 2009-08-30 Vladimir Serbinenko * kern/file.c (grub_file_read): Spelling fix 2009-08-30 Vladimir Serbinenko * loader/i386/bsdXX.c (SUFFIX (grub_freebsd_load_elfmodule)): Fix loading of headers in some cases. 2009-08-30 Robert Millan * configure.ac: Bump version to 1.97~beta1. * docs/version.texi: Likewise. 2009-08-29 Vladimir Serbinenko * include/grub/i386/xnu.h: Add license header. include grub/err.h explicitly. 2009-08-29 Robert Millan * util/grub.d/10_freebsd.in: Detect `ufs1' and `ufs2' and map them to `ufs' in the vfs.root.mountfrom kernel parameter. 2009-08-29 Robert Millan * term/i386/pc/serial.c: Include `'. [GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Macroify initialization value (0x0400 -> GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR). [! GRUB_MACHINE_PCBIOS] (GRUB_SERIAL_PORT_NUM): Calculate using `ARRAY_SIZE' macro. 2009-08-28 Vladimir Serbinenko * kern/file.c (grub_file_read): Check offset. * fs/hfs.c (grub_hfs_read_file): Remove unnecessary offset check. * fs/jfs.c (grub_jfs_read_file): Likewise. * fs/ntfs.c (grub_ntfs_read): Likewise. * fs/reiserfs.c (grub_reiserfs_read): Likewise. * fs/minix.c (grub_minix_read_file): Correct offset check. * fs/ufs.c (grub_ufs_read_file): Likewise. 2009-08-28 Colin Watson * term/i386/pc/console.c (bios_data_area): Cast GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR explicitly. 2009-08-28 Vladimir Serbinenko 1-bit optimised blitters. * include/grub/fbblit.h (grub_video_fbblit_replace_32bit_1bit): New prototype. (grub_video_fbblit_replace_24bit_1bit): Likewise. (grub_video_fbblit_replace_16bit_1bit): Likewise. (grub_video_fbblit_replace_8bit_1bit): Likewise. (grub_video_fbblit_blend_XXXA8888_1bit): Likewise. (grub_video_fbblit_blend_XXX888_1bit): Likewise. (grub_video_fbblit_blend_XXX565_1bit): Likewise. * video/fb/fbblit.c (grub_video_fbblit_replace_32bit_1bit): New function. (grub_video_fbblit_replace_24bit_1bit): Likewise. (grub_video_fbblit_replace_16bit_1bit): Likewise. (grub_video_fbblit_replace_8bit_1bit): Likewise. (grub_video_fbblit_blend_XXXA8888_1bit): Likewise. (grub_video_fbblit_blend_XXX888_1bit): Likewise. (grub_video_fbblit_blend_XXX565_1bit): Likewise. * video/fb/video_fb.c (common_blitter): Use 1-bit optimised blitters when possible. * video/video.c (grub_video_get_blit_format): Return GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED if bpp = 1. 2009-08-28 Colin Watson * normal/cmdline.c (grub_cmdline_get): Supply a format string as the first argument to grub_printf. 2009-08-28 Colin Watson 2009-08-28 Robert Millan Add `getkeystatus' terminal method. Add a new `keystatus' command to query it. * include/grub/term.h (GRUB_TERM_STATUS_SHIFT, GRUB_TERM_STATUS_CTRL, GRUB_TERM_STATUS_ALT): Definitions for modifier key bitmasks. (struct grub_term_input): Add `getkeystatus' member. (grub_getkeystatus): Add prototype. * kern/term.c (grub_getkeystatus): New function. * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR): New macro. (struct grub_machine_bios_data_area): Define necessary parts of BIOS Data Area layout. * term/i386/pc/console.c (grub_console_getkeystatus): New function. (grub_console_term_input): Set `getkeystatus' member. * term/usb_keyboard.c (grub_usb_hid): Macroify HID protocol constants. (grub_usb_keyboard_getreport): Likewise. (grub_usb_keyboard_checkkey): Likewise. (grub_usb_keyboard_getkeystatus): New function. (grub_usb_keyboard_term): Set `getkeystatus' member. * commands/keystatus.c: New file. * conf/common.rmk (pkglib_MODULES): Add keystatus.mod. (keystatus_mod_SOURCES): New variable. (keystatus_mod_CFLAGS): Likewise. (keystatus_mod_LDFLAGS): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add commands/keystatus.c. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. 2009-08-28 Vladimir Serbinenko Split befs.mod and afs.mod into *_be.mod and *.mod * conf/common.rmk (grub_probe_SOURCES): Add afs_be.c and befs_be.c. (grub_fstest_SOURCES): Likewise. (pkglib_MODULES): Add afs_be.mod and befs_be.mod. (afs_be_mod_SOURCES): New variable. (afs_be_mod_CFLAGS): Likewise. (afs_be_mod_LDFLAGS): Likewise. (befs_be_mod_SOURCES): Likewise. (befs_be_mod_CFLAGS): Likewise. (befs_be_mod_LDFLAGS): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add afs_be.c and befs_be.c. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise. (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. * fs/afs_be.c: New file. * fs/befs_be.c: New file. * fs/afs.c (GRUB_AFS_FSNAME_SUFFIX): New definition. (GRUB_AFS_FSNAME): Use GRUB_AFS_FSNAME_SUFFIX. (U16): Replaced with ... (grub_afs_to_cpu16): ...this. All users updated. (U32): Replaced with ... (grub_afs_to_cpu32): ...this. All users updated. (U64): Replaced with ... (grub_afs_to_cpu64): ...this. All users updated. (GRUB_AFS_BO_LITTLE_ENDIAN): Remove. (GRUB_AFS_BO_BIG_ENDIAN): Likewise. (grub_afs_validate_sblock): Check only one endianness. (GRUB_MOD_INIT (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to .. (GRUB_MOD_INIT (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this. (GRUB_MOD_INIT (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to .. (GRUB_MOD_INIT (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this. (GRUB_MOD_FINI (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to .. (GRUB_MOD_FINI (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this. (GRUB_MOD_FINI (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to .. (GRUB_MOD_FINI (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this. 2009-08-26 Bean * fs/xfs.c (GRUB_XFS_INO_INOINAG): Replace 1L with 1LL to support 64-bit number. (GRUB_XFS_FSB_TO_BLOCK): Likewise. (grub_xfs_inode_block): Change return type to grub_uint64_t. (grub_xfs_read_inode): Change type of block to grub_uint64_t. 2009-08-25 Vladimir Serbinenko NetBSD memory map support. * include/grub/i386/bsd.h (NETBSD_BTINFO_MEMMAP): New definition. (grub_netbsd_btinfo_mmap_header): New structure. (grub_netbsd_btinfo_mmap_entry): Likewise. * loader/i386/bsd.c (grub_netbsd_boot): Pass memory map. 2009-08-25 Vladimir Serbinenko Enable bsd.mod on coreboot. * conf/i386-coreboot.rmk (pkglib_MODULES): Add bsd.mod. (bsd_mod_SOURCES): New variable. (bsd_mod_CFLAGS): Likewise. (bsd_mod_LDFLAGS): Likewise. (bsd_mod_ASFLAGS): Likewise. * loader/i386/bsd.c [!GRUB_MACHINE_PCBIOS]: Fix includes. (grub_bsd_get_device) [!GRUB_MACHINE_PCBIOS]: Set *biosdev to 0xff. 2009-08-25 Vladimir Serbinenko Cleanup NetBSD root support. * loader/i386/bsd.c (grub_netbsd_boot): Remove call to grub_bsd_get_device. Fix typo. 2009-08-25 Felix Zielcke * util/grub.d/00_header.in: Move check for the video backend of gfxterm from here ... * util/grub-mkconfig.in: ... to here. Enable gfxterm if there's a suitable video backend. 2009-08-25 Vladimir Serbinenko Fix breakage in grub-setup. * util/i386/pc/grub-setup.c (setup): Use "part_msdos" instead of "msdos_partition_map". 2009-08-25 Vladimir Serbinenko Fix breakage in normal/auth.c. * normal/auth.c (grub_iswordseparator): New function. 2009-08-25 Vladimir Serbinenko Authentication support. * commands/password.c: New file. * conf/common.rmk (pkglib_MODULES): Add password.mod. (password_mod_SOURCES): New variable. (password_mod_CFLAGS): Likewise. (password_mod_LDFLAGS): Likewise. (normal_mod_SOURCES): Add normal/auth.c. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add commands/password.c and normal/auth.c. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. * include/grub/auth.h: New file. * include/grub/err.h (grub_err_t): New enum value GRUB_ERR_ACCESS_DENIED. * include/grub/menu.h (grub_menu_entry): New fields 'restricted' and 'users'. * include/grub/normal.h (grub_cmdline_get): New argument 'history'. * normal/cmdline.c (grub_cmdline_get): New argument 'history'. All users updated. * normal/auth.c: New file. * normal/main.c (grub_normal_add_menu_entry): Handle --users option. (grub_cmdline_run): Don't allow to go to command line without authentication. * normal/menu.c (grub_menu_execute_entry): Handle restricted entries. * normal/menu_entry.c (grub_menu_entry_run): Don't allow editing menuentry without superuser rights. * normal/menu_viewer.c (grub_menu_viewer_show_menu): Don't exit if user isn't a superuser. 2009-08-24 Vladimir Serbinenko Save space by inlining misc.c functions. * kern/misc.c (grub_iswordseparator): Made static. * kern/misc.c (grub_strcat): Moved from here ... * include/grub/misc.h (grub_strcat): ... here. Inlined. * kern/misc.c (grub_strncat): Moved from here ... * include/grub/misc.h (grub_strncat): ... here. Inlined. * kern/misc.c (grub_strcasecmp): Moved from here ... * include/grub/misc.h (grub_strcasecmp): ... here. Inlined. * kern/misc.c (grub_strncasecmp): Moved from here ... * include/grub/misc.h (grub_strncasecmp): ... here. Inlined. * kern/misc.c (grub_isalpha): Moved from here ... * include/grub/misc.h (grub_isalpha): ... here. Inlined. * kern/misc.c (grub_isdigit): Moved from here ... * include/grub/misc.h (grub_isdigit): ... here. Inlined. * kern/misc.c (grub_isgraph): Moved from here ... * include/grub/misc.h (grub_isgraph): ... here. Inlined. * kern/misc.c (grub_tolower): Moved from here ... * include/grub/misc.h (grub_tolower): ... here. Inlined. 2009-08-24 Vladimir Serbinenko * script/sh/function.c (grub_script_function_find): Cut error message not to flood terminal. * script/sh/lexer.c (grub_script_yylex): Remove command line length limit. * script/sh/script.c (grub_script_arg_add): Duplicate string. 2009-08-24 Colin Watson * term/usb_keyboard.c (grub_usb_keyboard_getreport): Make `report' grub_uint8_t *. (grub_usb_keyboard_checkkey): Make `data' elements grub_uint8_t. Use a 50-millisecond timeout rather than just repeating grub_usb_keyboard_getreport 50 times. (grub_usb_keyboard_getkey): Make `data' elements grub_uint8_t. 2009-08-24 Vladimir Serbinenko Rename *_partition_map to part_* * partmap/acorn.c (grub_acorn_partition_map): Set name to 'part_acorn'. * partmap/amiga.c (grub_amiga_partition_map): Set name to 'part_amiga'. * partmap/apple.c (grub_apple_partition_map): Set name to 'part_apple'. * partmap/gpt.c (grub_gpt_partition_map): Set name to 'part_gpt'. All users updated. * partmap/msdos.c (grub_msdos_partition_map): Set name to 'part_msdos'. All users updated. * partmap/sun.c (grub_sun_partition_map): Set name to 'part_sun'. * util/grub-probe.c (probe_partmap): Don't transform partition name to get module name. 2009-08-24 Vladimir Serbinenko Fix OpenBSD and NetBSD support. * include/grub/i386/bsd.h (GRUB_BSD_TEMP_BUFFER): Change to resolve memory address conflict. (OPENBSD_MMAP_ACPI): New definition. (OPENBSD_MMAP_NVS): Likewise. * loader/i386/bsd.c (grub_openbsd_boot): Support OPENBSD_MMAP_ACPI and OPENBSD_MMAP_NVS. Add memory map terminator Explicit cast when calling grub_unix_real_boot. (grub_netbsd_boot): Explicit cast when calling grub_unix_real_boot. 2009-08-24 Vladimir Serbinenko Let user specify NetBSD root device. * loader/i386/bsd.c (netbsd_root): New variable. (netbsd_opts): New option 'root'. (NETBSD_ROOT_ARG): New macro. (grub_netbsd_boot): Use 'netbsd_root'. (grub_bsd_unload): Free 'netbsd_root'. (grub_cmd_netbsd): Fill 'netbsd_root'. 2009-08-24 Vladimir Serbinenko Support for 64-bit NetBSD. * loader/i386/bsd.c (grub_bsd_load_elf): Apply correct mask to entry point when booting non-FreeBSD. 2009-08-24 Vladimir Serbinenko Support --no-smp and --no-acpi for NetBSD. * include/grub/i386/bsd.h (NETBSD_AB_NOSMP): New definition. (NETBSD_AB_NOACPI): Likewise. * loader/i386/bsd.c (netbsd_opts): New entries no-smp and no-acpi. (netbsd_flags): Add NETBSD_AB_NOSMP, NETBSD_AB_NOACPI. 2009-08-23 Vladimir Serbinenko * fs/hfsplus.c (grub_hfsplus_mount): Don't ignore grub_hfsplus_read_file errors. (grub_hfsplus_btree_iterate_node): Don't ignore grub_hfsplus_read_file errors. Call grub_error when needed. 2009-08-23 Vladimir Serbinenko * commands/search.c (search_fs): Try searching without autoload first. * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load filesystem module explicitly for faster booting. 2009-08-23 Colin Watson * util/grub-mkconfig.in: Export GRUB_DISABLE_OS_PROBER. 2009-08-23 Colin Watson * util/grub.d/30_os-prober.in: Disable os-prober if `GRUB_DISABLE_OS_PROBER' was set to true. 2009-08-23 Robert Millan * partmap/pc.c: Rename to ... * partmap/msdos.c: ... this. Update all users. (grub_pc_partition_map): Rename to ... (grub_msdos_partition_map): ... this. Update all users. * parttool/pcpart.c: Rename to ... * parttool/msdospart.c: ... this. Update all users. * include/grub/pc_partition.h: Rename to ... * include/grub/msdos_partition.h: ... this. Update all users. (grub_pc_partition_bsd_entry): Rename to ... (grub_msdos_partition_bsd_entry): ... this. Update all users. (grub_pc_partition_disk_label): Rename to ... (grub_msdos_partition_disk_label): ... this. Update all users. (grub_pc_partition_entry): Rename to ... (grub_msdos_partition_entry): ... this. Update all users. (grub_pc_partition_mbr): Rename to ... (grub_msdos_partition_mbr): ... this. Update all users. (grub_pc_partition): Rename to ... (grub_msdos_partition): ... this. Update all users. (grub_pc_partition_is_empty): Rename to ... (grub_msdos_partition_is_empty): ... this. Update all users. (grub_pc_partition_is_extended): Rename to ... (grub_msdos_partition_is_extended): ... this. Update all users. (grub_pc_partition_is_bsd): Rename to ... (grub_msdos_partition_is_bsd): ... this. Update all users. * conf/common.rmk (amiga_mod_SOURCES, amiga_mod_CFLAGS) (amiga_mod_LDFLAGS, apple_mod_SOURCES, apple_mod_CFLAGS) (apple_mod_LDFLAGS, msdos_mod_SOURCES, msdos_mod_CFLAGS) (msdos_mod_LDFLAGS, sun_mod_SOURCES, sun_mod_CFLAGS) (sun_mod_LDFLAGS, acorn_mod_SOURCES, acorn_mod_CFLAGS) (acorn_mod_LDFLAGS, gpt_mod_SOURCES, gpt_mod_CFLAGS) (gpt_mod_LDFLAGS): Rename to ... (part_amiga_mod_SOURCES, part_amiga_mod_CFLAGS, part_amiga_mod_LDFLAGS) (part_apple_mod_SOURCES, part_apple_mod_CFLAGS, part_apple_mod_LDFLAGS) (part_msdos_mod_SOURCES, part_msdos_mod_CFLAGS, part_msdos_mod_LDFLAGS) (part_sun_mod_SOURCES, part_sun_mod_CFLAGS, part_sun_mod_LDFLAGS) (part_acorn_mod_SOURCES, part_acorn_mod_CFLAGS, part_acorn_mod_LDFLAGS) (part_gpt_mod_SOURCES, part_gpt_mod_CFLAGS) (part_gpt_mod_LDFLAGS): ... this. (pkglib_MODULES): Prefix partition modules with `part_'. Rename `pcpart.mod' to `msdospart.mod'. (pcpart_mod_SOURCES, pcpart_mod_CFLAGS, pcpart_mod_LDFLAGS): Rename to ... (msdospart_mod_SOURCES, msdospart_mod_CFLAGS) (msdospart_mod_LDFLAGS): ... this. 2009-08-23 Vladimir Serbinenko * loader/i386/bsd.c (freebsd_opts): Rewritten to use extcmd. (openbsd_opts): Likewise. (netbsd_opts): Likewise. (freebsd_flags): Added 0 terminator. (openbsd_flags): Likewise. (netbsd_flags): Likewise. (grub_bsd_parse_flags): Rewritten to use extcmd. All users updated. (grub_cmd_freebsd): Transformed into extended command. (grub_cmd_openbsd): Likewise. (grub_cmd_netbsd): Likewise. (cmd_freebsd): Changed type to grub_extcmd_t. (cmd_openbsd): Likewise. (cmd_netbsd): Likewise. (GRUB_MOD_INIT (bsd)): Register grub_cmd_freebsd, grub_cmd_netbsd and grub_cmd_openbsd as extended commands. (GRUB_MOD_FINI (bsd)): Use grub_unregister_extcmd for cmd_freebsd, cmd_netbsd and cmd_openbsd 2009-08-22 Vladimir Serbinenko * commands/xnu_uuid.c (transform): Use grub_memcpy instead of memcpy. 2009-08-21 Pavel Roskin * Makefile.in (install-local): When checking if a file is in the build directory, use "test -e" to detect symlinks. * Makefile.in (install-local): Remove all files in $(DESTDIR)$(pkglibdir) before installing new files there. 2009-08-18 Felix Zielcke * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Use grub-mkelfimage. 2009-08-18 Felix Zielcke * util/grub-mkconfig.in: Don't use gfxterm by default if not explicitly specified by the user. 2009-08-18 Pavel Roskin * include/grub/fbfill.h (struct grub_video_fbrender_target): Use grub_uint8_t pointer for data. * include/grub/fbutil.h (struct grub_video_fbblit_info): Likewise. * video/fb/fbutil.c: Remove unnecessary casts. 2009-08-17 Michal Suchanek VBE cleanup. * video/i386/pc/vbe.c (vbe_mode_in_use): Removed (duplicate). (grub_vbe_set_video_mode): Save active mode info only after setting the mode. (grub_video_vbe_setup): Call 'grub_vbe_set_video_mode' with NULL as second argument. 2009-08-17 Michal Suchanek Rename variables for clarity. * video/i386/pc/vbe.c (active_mode_info): Renamed to ... (active_vbe_mode_info): ... this. All users updated. (framebuffer): Rename 'active_mode' to 'active_vbe_mode'. All users updated. (initial_mode): Rename to ... (initial_vbe_mode): ... this. All users updated. (mode_in_use): Rename to .. (vbe_mode_in_use): ... this. All users updated. (mode_list): Rename to .. (vbe_mode_list): ... this. All users updated. (grub_vbe_set_video_mode): Rename 'mode' to 'vbe_mode', 'mode_info' to 'vbe_mode_info' and 'old_mode' to 'old_vbe_mode'. (grub_video_vbe_init): Rename 'rm_mode_list' to 'rm_vbe_mode_list' and 'mode_list_size' to 'vbe_mode_list_size'. (grub_video_vbe_setup): Rename 'mode_info' to 'vbe_mode_info', 'best_mode_info' to 'best_vbe_mode_info' and 'best_mode' to 'best_vbe_mode' 2009-08-17 Michal Suchanek Remove duplicate grub_video_fb_get_video_ptr. * include/grub/fbutil.h (get_data_ptr): Rename to ... (grub_video_fb_get_video_ptr): ... this. * include/grub/video_fb.h (grub_video_fb_get_video_ptr): Removed. * video/fb/fbutil.c: Add comment about addressing. (get_data_ptr): Rename to ... (grub_video_fb_get_video_ptr): ... this. All users updated. * video/fb/video_fb.c (grub_video_fb_get_video_ptr): Remove. 2009-08-17 Robert Millan * fs/fat.c (grub_fat_read_data): Remove `#if 0' braces around the grub_dprintf() that was just added. 2009-08-17 Robert Millan * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT) (DEFAULT_VIDEO_MODE): Remove macros. (grub_linux_boot): Remove assumption that Linux has FB support, and use "text" as default video mode. 2009-08-15 Vladimir Serbinenko * fs/affs.c (grub_affs_read_symlink): Change leftover grub_printf into grub_dprintf. * fs/fat.c (grub_fat_read_data): Likewise. 2009-08-14 Vladimir Serbinenko * loader/i386/multiboot.c (grub_multiboot): Don't pass filename to payload. (grub_module): Likewise. 2009-08-14 Vladimir Serbinenko * loader/i386/multiboot.c (grub_multiboot_unload): Don't free mbi and mbi->cmdline but free playground. 2009-08-14 Vladimir Serbinenko Handle group offset on UFS1. * fs/ufs.c (grub_ufs_sblock): New field 'cylg_mask'. (grub_ufs_read_inode) [!MODE_UFS2]: handle cylg_offset and cylg_mask. 2009-08-14 Vladimir Serbinenko Split ufs.mod into ufs1.mod and ufs2.mod. * conf/common.rmk (grub_probe_SOURCES): Add fs/ufs2.c. (grub_fstest_SOURCES): Likewise. (pkglib_MODULES): Remove ufs.mod. Add ufs1.mod and ufs2.mod. (ufs_mod_SOURCES): Remove. (ufs_mod_CFLAGS): Likewise. (ufs_mod_LDFLAGS): Likewise. (ufs1_mod_SOURCES): New variable. (ufs1_mod_CFLAGS): Likewise. (ufs1_mod_LDFLAGS): Likewise. (ufs2_mod_SOURCES): New variable. (ufs2_mod_CFLAGS): Likewise. (ufs2_mod_LDFLAGS): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add fs/ufs2.c. * conf/i386-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES): Likewise. (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. (grub_setup_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64.rmk (grub_emu_SOURCES): Likewise. (grub_setup_SOURCES): Likewise. * conf/x86_64-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES): Likewise. * fs/ufs2.c: New file. * fs/ufs.c: Separate UFS1 from UFS2 by using preprocessor. 2009-08-14 Vladimir Serbinenko Framebuffer split. * commands/i386/pc/vbetest.c (grub_cmd_vbetest): Restore video subsystem at the end. * conf/common.rmk (pkglib_MODULES): Add video_fb.mod. (video_fb_mod_SOURCES): New variable. (video_fb_mod_CFLAGS): Likewise. (video_fb_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (vbe_mod_SOURCES): Remove video/i386/pc/vbeblit.c, video/i386/pc/vbefill.c and video/i386/pc/vbeutil.c. * video/i386/pc/vbeblit.c: Moved from here ... * video/fb/fbblit.c: ..here. Replaced 'vbe' with 'fb'. * video/i386/pc/vbefill.c: Moved from here ... * video/fb/fbfill.c: ..here. Replaced 'vbe' with 'fb'. * video/i386/pc/vbeutil.c: Moved from here ... * video/fb/fbutil.c: ..here. Replaced 'vbe' with 'fb'. * include/grub/i386/pc/vbeblit.h: Moved from here ... * include/grub/fbblit.h: ... here. Replaced 'vbe' with 'fb'. * include/grub/i386/pc/vbefill.h: Moved from here ... * include/grub/fbfill.h: ... here. Replaced 'vbe' with 'fb'. * include/grub/i386/pc/vbeutil.h: Moved from here ... * include/grub/fbutil.h: ... here. Replaced 'vbe' with 'fb'. * include/grub/i386/pc/vbe.h: Moved framebuffer part ... * include/grub/video_fb.h: ... here. Replaced 'vbe' with 'fb'. * include/grub/video.h (GRUB_VIDEO_RENDER_TARGET_FRONT_BUFFER): Removed. (GRUB_VIDEO_RENDER_TARGET_BACK_BUFFER): Likewise. (grub_video_adapter): Added 'get_info_and_fini'. (grub_video_get_info_and_fini): New prototype. (grub_video_set_mode): make modestring const char *. * loader/i386/linux.c (grub_linux_setup_video): Use grub_video_get_info_and_fini. (grub_linux_boot): Move modesetting just before booting. * loader/i386/pc/xnu.c (grub_xnu_set_video): Use grub_video_get_info_and_fini. * video/i386/pc/vbe.c: Moved framebuffer part ... * video/fb/video_fb.c: ... here. Replaced 'vbe' with 'fb'. * video/i386/pc/vbe.c (grub_vbe_set_video_mode): Use grub_video_fbstd_colors and grub_video_fb_set_palette. (grub_video_vbe_init): Clear 'framebuffer' variable and use grub_video_fb_init. (grub_video_vbe_fini): Use grub_video_fb_fini. (grub_video_vbe_setup): Use framebuffer.render_target instead of render_target and use grub_video_fb_set_active_render_target and grub_video_fb_set_palette. (grub_video_vbe_set_palette): Use grub_video_fb_set_palette. (grub_video_vbe_set_viewport): Use grub_video_fb_set_viewport. (grub_video_vbe_adapter): Use framebuffer. * video/video.c (grub_video_get_info_and_fini): New function. (grub_video_set_mode): Make modestring const char *. (GRUB_MOD_INIT(video_video)): Don't set variables to 0 since these values are already initialised. 2009-08-14 Pavel Roskin * boot/i386/pc/cdboot.S: Use LOCAL for local labels. Eliminate ABS and APPLE_CC. * boot/i386/pc/diskboot.S: Likewise. * boot/i386/pc/lnxboot.S: Likewise. Hardcode the number of code sectors allow compilation on MacOSX. * conf/i386-pc.rmk: Enable unconditional compilation of lnxboot.img. 2009-08-13 Colin Watson * util/grub-mkconfig.in: Export GRUB_HIDDEN_TIMEOUT. * util/grub.d/00_header.in: Enter interruptible sleep if GRUB_HIDDEN_TIMEOUT is set. 2009-08-13 Yves Blusseau * include/grub/symbol.h: Add the LOCAL macro. * boot/i386/pc/boot.S: Use the LOCAL macro for all labels starting with "L_". 2009-08-13 Pavel Roskin * boot/i386/pc/boot.S: Remove ABS macro, it's not required by any modern compilers we support. * boot/i386/pc/boot.S: Remove all code dependent on APPLE_CC. Use local labels starting with "L_" so that Apple assembler knows they are local. 2009-08-10 Robert Millan * include/grub/i386/bsd.h (KERNEL_TYPE_NONE, KERNEL_TYPE_FREEBSD) (KERNEL_TYPE_OPENBSD, KERNEL_TYPE_NETBSD): Convert to ... (bsd_kernel_types): ... this enum. * loader/i386/bsd.c (grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module) (grub_cmd_freebsd_module_elf): Abort with "You need to load the kernel first." when `kernel_type' is set to KERNEL_TYPE_NONE. (grub_bsd_load_aout, grub_bsd_load, grub_cmd_freebsd_loadenv) (grub_cmd_freebsd_module, grub_cmd_freebsd_module_elf) (GRUB_MOD_INIT (bsd)): Fix capitalization in a few error messages. 2009-08-08 Robert Millan * util/grub-dumpdevtree: Moved from here ... * util/i386/efi/grub-dumpdevtree: ... to here. (hexify): New function. Converts a string to its hex version. Generate hex versions of "efi" and "device-properties" by calling hexify() on the ASCII strings rather than by hardcoding numbers. 2009-08-08 Robert Millan * fs/jfs.c: Update copyright year. 2009-08-08 Felix Zielcke * util/grub.d/00_header.in: Fix a comment. * util/grub.d/10_linux.in: Likewise. * util/grub.d/10_windows.in: Likewise. * util/grub.d/10_hurd.in: Likewise. 2009-08-08 Felix Zielcke * util/grub-mkconfig.in: Allow the user to specify the used font with GRUB_FONT. 2009-08-08 Pavel Roskin * include/grub/powerpc/libgcc.h: Export __ashrdi3() if available, xfs.mod needs it now. * util/grub-mkconfig_lib.in (version_test_numeric): Don't use the "g" modifier in sed when the intention is to strip something once. This fixes comparison of kernels with multiple dashes. * util/grub-mkconfig.in: Define datarootdir, datadir may depend on it. Add missing space before closing bracket. Fix misleading formatting. 2009-08-07 Robert Millan * docs/grub.texi: Major overhaul. Remove all sections that are specific to GRUB Legacy, or mostly composed of Legacy-specific information. 2009-08-07 Robert Millan * docs/version.texi: New file. Provides version information for grub.texi. 2009-08-07 Robert Millan * docs/grub.texi: Update CVS information to SVN. Replace outdated "GRUB 2 will include" phrase with "GRUB 2 includes". 2009-08-07 Felix Zielcke * util/grub-mkconfig.in: Remove a wrong `fi'. 2009-08-07 Felix Zielcke * fs/uuid.c (grub_jfs_superblock): New fields unused2 and uuid. (grub_jfs_uuid): New function. (grub_jfs_fs): Set uuid field to grub_jfs_uuid. 2009-08-07 Felix Zielcke * util/grub-mkconfig_lib.in (font_path): Move the functionality of it to ... * util/grub-mkconfig.in: ... here. Prefer unicode.pf2 and unifont.pf2 over ascii.pf2. Export LANG=C in case ascii.pf2 gets used. 2009-08-07 Robert Millan * util/grub.d/10_linux.in (test_numeric): Moved from here ... * util/grub-mkconfig_lib.in (version_test_numeric): ... to here. Update all users. * util/grub.d/10_linux.in (test_gt): Strip any basename prefix, not just "vmlinu[zx]". Moved from here ... * util/grub-mkconfig_lib.in (version_test_gt): ... to here. Update all users. * util/grub.d/10_linux.in (find_latest): Moved from here ... * util/grub-mkconfig_lib.in (version_find_latest): ... to here. Update all users. 2009-08-07 Robert Millan * util/grub.d/10_freebsd.in: Use an absolute device path for `vfs.root.mountfrom'. Set `vfs.root.mountfrom.options=rw'. 2009-08-06 Felix Zielcke * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix handling of multiple abstraction modules. 2009-08-04 Robert Millan Fix a bug resulting in black screen when loading Linux using a packed video mode. * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette_width): New function. * include/grub/i386/pc/vbe.h (GRUB_VBE_CAPABILITY_DACWIDTH): New macro. (grub_vbe_bios_getset_dac_palette_width): New function. (grub_vbe_bios_get_dac_palette_width) (grub_vbe_bios_set_dac_palette_width): New macros (act as wrappers for grub_vbe_bios_getset_dac_palette_width()). * video/i386/pc/vbe.c (grub_vbe_probe): Use `GRUB_VBE_STATUS_OK' to check for return status. (grub_vbe_get_video_mode_info): When getting information for a packed mode (<= 8 bpp), obtain DAC palette width using grub_vbe_bios_getset_dac_palette_width(), and use that for initializing {red,green,blue}_mark_size. 2009-08-04 Felix Zielcke * commands/search.c (options): Fix help output to match actual code. 2009-08-02 Vladimir Serbinenko * commands/hexdump.c (grub_cmd_hexdump): Use grub_disk_read instead of homegrown code. 2009-08-01 Vladimir Serbinenko * util/hostfs.c (grub_hostfs_dir): Don't use DT_DIR: It doesn't work on XFS or ReiserFS. 2009-08-01 Vladimir Serbinenko Support Apple partition map with sector size different from 512 bytes. * partmap/apple.c (grub_apple_header): New field 'blocksize'. (apple_partition_map_iterate): Respect 'aheader.blocksize' and 'apart.partmap_size'. 2009-08-01 Vladimir Serbinenko 2009-08-01 Robert Millan Fix cpuid command. * commands/i386/cpuid.c (options): New variable. (grub_cmd_cpuid): Return real error. (GRUB_MOD_INIT(cpuid)): Declare options. 2009-07-31 Vladimir Serbinenko * partmap/pc.c (pc_partition_map_iterate): Check that boot flags are valid. 2009-07-31 Bean * fs/xfs.c (grub_xfs_sblock): Change unused5 field to log2_sect and log2_inode. (grub_fshelp_node): Move inode field to the end. (grub_xfs_data): Remove inode field. (grub_xfs_inode_block): Calculate inode size using sblock. (grub_xfs_inode_offset): Likewise. (grub_xfs_read_inode): Calculate inode size using sblock. (grub_xfs_read_block): Replace XFS_INODE_EXTENTS with nrec. (grub_xfs_iterate_dir): Calculate inode size using sblock. (grub_xfs_mount): Use grub_zalloc instead of grub_malloc. Realloc data to match inode size. (grub_xfs_dir): goto mount_fail when mount fails, as data->diropen is not accessible when data is null. (grub_xfs_open): Likewise. 2009-07-31 Bean * disk/lvm.c (grub_lvm_scan_device): Ignore extra copy of metadata. Don't change pv->disk if it's already set. * disk/raid.c (grub_raid_scan_device): Merge this function into ... (grub_raid_register): ... here. (grub_raid_rescan): Removed. * include/grub/raid.h (grub_raid_rescan): Removed. * util/grub-fstest.c: Remove include file . (fstest): Replace grub_raid_rescan with module fini function followed by init function. * util/grub-probe.c: Add include file . (probe_raid_level): New function. (probe): Detect abstraction by walking the disk device, support two level of abstraction (LVM on RAID) when detecting partition map. 2009-07-31 Pavel Roskin * disk/raid5_recover.c (grub_raid5_recover): Revert conversion to grub_zalloc(), it was erroneous. Reported by Bean 2009-07-30 Vladimir Serbinenko * util/i386/pc/grub-setup.c (setup): Check that no partition is in embedding zone, not only the first one. 2009-07-29 Joe Auricchio * term/gfxterm.c (clear_char): New function. (grub_virtual_screen_setup): Use clear_char. (scroll_up): Likewise. (grub_virtual_screen_cls): Likewise. 2009-07-29 Felix Zielcke * util/deviceiter.c (get_acceleraid_disk_name): New static function. (grub_util_iterate_devices): Handle Accelraid devices. * util/hostdisk.c (convert_system_partition_to_system_disk): Likewise. 2009-07-28 Robert Millan * loader/i386/linux.c (grub_cmd_linux): Use ',' rather than ';' as separator for the suggested gfxpayload string (';' collides with the parser and needs escaping). 2009-07-28 Vladimir Serbinenko * loader/i386/multiboot_helper.S (grub_multiboot_backward_relocator): Clear direction flag before jumping to OS. (grub_multiboot2_real_boot): Likewise. 2009-07-28 Felix Zielcke * util/i386/pc/grub-install: Fix parsing of --disk-module option. 2009-07-28 Felix Zielcke * util/i386/pc/grub-setup.c (setup): Fix 2 incorrect checks when embedding. 2009-07-26 Felix Zielcke * util/grub-mkconfig.in (package_version): New variable. Use it do display the version. 2009-07-25 Felix Zielcke * kern/file.c (grub_file_open): Revert to previous check with grub_errno. 2009-07-25 Vladimir Serbinenko * commands/probe.c (GRUB_MOD_INIT (probe)): Remove "[--target=target]" from help line. It's out of sync with code. 2009-07-25 Vladimir Serbinenko * kern/parser.c (grub_parser_execute): Fix a bug causing truncated entries on failed boot. 2009-07-25 Felix Zielcke * kern/file.c (grub_file_open): Fix an error check. 2009-07-24 Vladimir Serbinenko * util/i386/pc/grub-setup.c (setup): Fix segmentation fault when partition map couldn't be identified. 2009-07-23 Pavel Roskin * commands/xnu_uuid.c (transform): Use GRUB_CPU_WORDS_BIGENDIAN instead of WORDS_BIGENDIAN. Use grub_le_to_cpu32(), so that the case of little endian words becomes just an optimization. Respect const modifier. (md5_final): Use code that doesn't depend on endianness. * include/grub/misc.h (ALIGN_UP): Cast align to the type of addr to avoid loss of upper bits if align is unsigned and shorter than addr. 2009-07-21 Vladimir Serbinenko UUID support for UFS * fs/ufs.c (grub_ufs_sblock): Add uuidhi and uuidlow. (grub_ufs_uuid): New function. (grub_ufs_fs): add .uuid 2009-07-21 Pavel Roskin * kern/dl.c (grub_dl_check_header): Make static. 2009-07-21 Felix Zielcke * util/grub.d/30_os-prober.in: Remove unused CHAINROOT. Don't add drivemap for Vista. It breaks Windows 7. 2009-07-21 Vladimir Serbinenko * fs/ufs.c (grub_ufs_sblock): Fix offset of mtime2 which was off by 128 bytes 2009-07-20 Vladimir Serbinenko Add BFS support * conf/common.rmk (grub_probe_SOURCES): Add fs/befs.c. (grub_fstest_SOURCES): Likewise. (pkglib_MODULES): Add befs.mod. (befs_mod_SOURCES): New variable. (befs_mod_CFLAGS): Likewise. (befs_mod_LDFLAGS): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. (grub_setup_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. (grub_setup_SOURCES): Likewise. * fs/befs.c: New file. * fs/afs.c (GRUB_AFS_FSNAME): New declaration. (GRUB_AFS_SBLOCK_SECTOR): Likewise. (GRUB_AFS_SBLOCK_MAGIC1) [MODE_BFS]: New conditional declaration. (GRUB_AFS_BTREE_MAGIC) [MODE_BFS]: Likewise (B_KEY_INDEX_ALIGN): New declaration. (B_KEY_INDEX_OFFSET): Use B_KEY_INDEX_ALIGN. (grub_afs_bnode) [MODE_BFS]: Make key_count and key_size 16-bit (grub_afs_btree) [MODE_BFS]: New conditional declaration. (grub_afs_sblock) [MODE_BFS]: Remove link_count. (grub_afs_validate_sblock) [MODE_BFS]: Support BFS (grub_afs_mount) [MODE_BFS]: Likewise. (grub_afs_dir) [MODE_BFS]: Divide mtime by 65536 and not 1000000. (grub_afs_fs): Use GRUB_AFS_FSNAME (GRUB_MOD_INIT (afs)) [MODE_BFS]: Rename to ... (GRUB_MOD_INIT (befs)) [MODE_BFS]: ... this (GRUB_MOD_FINI (afs)) [MODE_BFS]: Rename to ... (GRUB_MOD_FINI (befs)) [MODE_BFS]: ... this 2009-07-19 Yves BLUSSEAU * util/getroot.c (find_root_device): Add support for MacOSX. * util/hostdisk.c: Likewise. 2009-07-20 Vladimir Serbinenko * font/font.c (find_glyph): Check whether a font is present to avoid segmentation fault. 2009-07-20 Joe Auricchio * term/gfxterm.c (grub_virtual_screen_setup): Clear virtual_screen. 2009-07-20 Pavel Roskin * configure.ac: Trim excessively wordy excuses. 2009-07-20 Vladimir Serbinenko Add symlink, mtime and label support to AtheFS. * fs/afs.c (grub_afs_sblock): Declare `name' as char. (grub_afs_iterate_dir): Handle symlinks. (grub_afs_open): Use grub_afs_read_symlink. (grub_afs_dir): Likewise. Pass mtime. (grub_afs_label): New function. (grub_afs_fs): Add grub_afs_label. (grub_afs_read_symlink): New function. 2009-07-20 Vladimir Serbinenko Fix AtheFS support. * fs/afs.c: Fix comments style. (grub_afs_blockrun): Declare as packed. (grub_afs_datastream): Likewise. (grub_afs_bnode): Likewise. (grub_afs_btree): Likewise. (grub_afs_sblock): Likewise. Declare `name' as char. (grub_afs_inode): Declare as packed. Change void *vnode to grub_uint32_t unused. (grub_afs_iterate_dir): Check that key_size is positive. (grub_afs_mount): Don't read superblock twice. (grub_afs_dir): Don't free node in case of error, grub_fshelp_find_file already handles this. (grub_afs_open): Likewise. 2009-07-19 Pavel Roskin * Makefile.in: Remove LIBLZO and enable_lzo. * conf/i386-pc.rmk: Remove lzo support. * configure.ac: Remove checks for lzo, don't define ENABLE_LZMA. * include/grub/i386/pc/kernel.h: Define ENABLE_LZMA. Remove lzo support. * kern/i386/pc/lzo1x.S: Remove. * kern/i386/pc/startup.S: Remove lzo support. * util/i386/pc/grub-mkimage.c: Likewise. 2009-07-19 Vladimir Serbinenko * disk/usbms.c (grub_usbms_transfer): Fix double semicolon. * fs/xfs.c (grub_xfs_dir): Likewise. * fs/afs.c (grub_afs_dir): Likewise. * fs/iso9660.c (grub_iso9660_iterate_dir): Likewise. (grub_iso9660_open): Likewise. * fs/jfs.c (grub_jfs_open): Likewise. * fs/ext2.c (grub_ext2_dir): Likewise. * include/grub/macho.h (grub_macho_fat_arch): Likewise. * script/sh/lexer.c (grub_script_yylex): Likewise. 2009-07-16 Pavel Roskin * configure.ac: Never add "-c" to CFLAGS. * configure.ac: Fix incorrect comparison for grub_cv_cc_efiemu. * configure.ac: Fix wrong use of grub_cv_cc_no_red_zone where grub_cv_cc_efiemu should be used. * configure.ac: Typo fixes. * kern/mm.c (grub_zalloc): New function. (grub_debug_zalloc): Likewise. * include/grub/mm.h: Declare grub_zalloc() and grub_debug_zalloc(). * util/misc.c (grub_zalloc): New function. * bus/usb/uhci.c (grub_uhci_pci_iter): Use grub_zalloc() instead of grub_malloc(), remove unneeded initializations. * bus/usb/usbhub.c (grub_usb_hub_add_dev): Likewise. * commands/extcmd.c (grub_extcmd_dispatcher): Likewise. * commands/parttool.c (grub_cmd_parttool): Likewise. * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise. * disk/raid5_recover.c (grub_raid5_recover): Likewise. * disk/raid6_recover.c (grub_raid6_recover): Likewise. * disk/usbms.c (grub_usbms_finddevs): Likewise. * efiemu/mm.c (grub_efiemu_request_memalign): Likewise. * efiemu/pnvram.c (grub_efiemu_pnvram): Likewise. (grub_cmd_efiemu_pnvram): Likewise. * fs/i386/pc/pxe.c (grub_pxefs_open): Likewise. * fs/iso9660.c (grub_iso9660_mount): Likewise. (grub_iso9660_iterate_dir): Likewise. * fs/jfs.c (grub_jfs_opendir): Likewise. * fs/ntfs.c (list_file): Likewise. (grub_ntfs_mount): Likewise. * kern/disk.c (grub_disk_open): Likewise. * kern/dl.c (grub_dl_load_core): Likewise. * kern/elf.c (grub_elf_file): Likewise. * kern/env.c (grub_env_context_open): Likewise. (grub_env_set): Likewise. (grub_env_set_data_slot): Likewise. * kern/file.c (grub_file_open): Likewise. * kern/fs.c (grub_fs_blocklist_open): Likewise. * loader/i386/multiboot.c (grub_module): Likewise. * loader/xnu.c (grub_xnu_create_key): Likewise. (grub_xnu_create_value): Likewise. * normal/main.c (grub_normal_add_menu_entry): Likewise. (read_config_file): Likewise. * normal/menu_entry.c (make_screen): Likewise. * partmap/sun.c (sun_partition_map_iterate): Likewise. * script/sh/lexer.c (grub_script_lexer_init): Likewise. * script/sh/script.c (grub_script_parse): Likewise. * video/bitmap.c (grub_video_bitmap_create): Likewise. * video/readers/jpeg.c (grub_video_reader_jpeg): Likewise. * video/readers/png.c (grub_png_output_byte): Likewise. (grub_video_reader_png): Likewise. 2009-07-16 Vladimir Serbinenko Enable all targets that can be built by default * configure.ac: enable efiemu runtime, grub-emu, grub-emu-usb, grub-mkfont and grub-fstest if they can be built 2009-07-16 Vladimir Serbinenko Fix hang and segmentation fault in grub-emu-usb * disk/scsi.c (grub_scsi_open): return err and not grub_errno * util/usb.c (grub_libusb_devices): likewise (grub_libusb_init): rename to ... (GRUB_MOD_INIT (libusb)):...this (grub_libusb_fini): rename to .. (GRUB_MOD_FINI (libusb)):...this * disk/usbms.c (grub_usbms_transfer): fix retry logic * include/grub/disk.h (grub_raid_init): removed, it's useless (grub_raid_fini): likewise (grub_lvm_init): likewise (grub_lvm_fini): likewise * util/grub-emu.c (main): don't call grub_libusb_init, it's done by grub_init_all 2009-07-16 Vladimir Serbinenko Fix libusb * Makefile.in (LIBUSB): new macro * genmk.rb (Utility/print_tail): new method (Utility/rule): use intermediary variable #{prefix}_OBJECTS (top level): call util.print_tail at the end. 2009-07-16 Vladimir Serbinenko Make FreeBSD accept zpool.cache * loader/i386/bsd.c (grub_freebsd_add_meta_module): spoof filename if type is /boot/zfs/zpool.cache 2009-07-16 Vladimir Serbinenko Fix 64-bit efiemu * include/grub/efiemu/efiemu.h (grub_efiemu_configuration_table64_t): correct wrong typedef * efiemu/prepare.c (SUFFIX (grub_efiemu_prepare)): minor style fixes 2009-07-15 Pavel Roskin * include/grub/disk.h (struct grub_disk_dev): Use enum for id. * kern/disk.c (struct grub_disk_cache): Likewise. * commands/probe.c (options): Typo fix. * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_BPB_END): Increase to 0x5a to accommodate FAT32. Adjust other offsets accordingly. Original patch by Yves Blusseau * boot/i386/pc/boot.S (general_error_string): Add DOS newline at the end of "Error" to make the message more readable. * boot/i386/pc/boot.S (kernel_segment): Remove. (copy_buffer): Use GRUB_BOOT_MACHINE_KERNEL_ADDR in segment 0 for destination. * boot/i386/pc/boot.S (boot_version): Remove. * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_VER_MAJ): Remove. * include/grub/i386/pc/boot.h: Sort all offsets. (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Remove, it's unused. (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Likewise. * boot/i386/pc/boot.S: Assert location of every offset listed in include/grub/i386/pc/boot.h. 2009-07-13 Pavel Roskin * include/grub/i386/coreboot/machine.h: Rename GRUB_MACHINE_LINUXBIOS to GRUB_MACHINE_COREBOOT. * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Allow multiboot 1 for GRUB_MACHINE_COREBOOT and GRUB_MACHINE_QEMU. * kern/dl.c: Force native word size to suppress warnings when compiling grub-emu. * kern/device.c (grub_device_iterate): Change struct part_ent to hold the name, not a pointer to it. Use one grub_malloc() per partition, not two. Free partition_name if grub_malloc() fails. Set ents to NULL only before grub_partition_iterate() is called. 2009-07-11 Bean * kern/ieee1275/openfw.c (grub_children_iterate): Fix size of childname. 2009-07-10 Bean 2009-07-10 Robert Millan * kern/ieee1275/openfw.c (grub_children_iterate) (grub_devalias_iterate): Fix size evaluation for property or path strings, which was broken since r2132. 2009-07-07 Pavel Roskin * commands/search.c (search_file): Merge into ... (search_fs): ... this. Accept search type as argument. (grub_cmd_search): Pass search type to search_fs(). * include/grub/util/console.h: New file. * util/console.c: Use it instead of grub/machine/console.h. * util/grub-emu.c: Likewise. * lib/arg.c (find_long_option): Remove. (find_long): Add `len' argument, make `s' const char *. (grub_arg_parse): Parse long options in place, not in a temporary buffer. 2009-07-06 Pavel Roskin * commands/search.c (search_fs): Fix potential NULL pointer dereference. * commands/search.c (search_fs): Replace QUID macro with quid_fn function pointer. 2009-07-06 Daniel Mierswa * commands/search.c (search_fs): Use grub_strcasecmp() for UUID comparison. 2009-07-05 Pavel Roskin * include/grub/i386/linux.h (struct linux_kernel_params): Restore padding3, it's still needed. * util/grub.d/10_freebsd.in: Fix spelling of `device.hints' on FreeBSD. * util/osdetect.lua: Likewise. 2009-07-05 Bean * conf/common.rmk (lua_mode_SOURCES): Add script/lua/lstrlib.c. * script/lua/grub_lib.c (grub_lua_run): Check input parameter. (grub_lua_getenv): Likewise. (grub_lua_setenv): Likewise. (save_errno): New function. (push_result): Likewise. (grub_lua_enum_device): Likewise. (grub_lua_enum_file): Likewise. (grub_lua_file_open): Likewise. (grub_lua_file_close): Likewise. (grub_lua_file_seek): Likewise. (grub_lua_file_read): Likewise. (grub_lua_file_getline): Likewise. (grub_lua_file_getsize): Likewise. (grub_lua_file_getpos): Likewise. (grub_lua_file_eof): Likewise. (grub_lua_file_exist): Likewise. (grub_lua_add_menu): Likewise. * script/lua/grub_lua.h (isupper): New inline function. (islower): Likewise. (ispunct): Likewise. (isxdigit): Likewise. (strcspn): Change to normal function. (strpbkr): New function declaration. (memchr): Likewise. * script/lua/grub_main.c (scan_str): New function. (strcspn): Likewise. (strpbrk): Likewise. (memchr): Likewise. * script/lua/linit.c (lualibs): Enable the string library. * util/osdetect.lua: New file. 2009-07-04 Robert Millan * include/grub/i386/linux.h (struct linux_kernel_params): Add `capabilities' member. 2009-07-02 Pavel Roskin * genparttoollist.sh: Add missing newline at the end. 2009-07-01 Pavel Roskin * kern/x86_64/efi/callwrap.S: Add missing newline at the end. * util/hostdisk.c (open_device): Remove `const' from `sysctl_size', as sysctlbyname() can change it (in this case it doesn't actually happen). * include/grub/types.h: Define GRUB_LONG_MAX and GRUB_LONG_MIN using signed long int constants. * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Make `p' constant to avoid a warning on FreeBSD. * util/hostdisk.c (device_is_wholedisk): Compile only on systems where it's needed. * Makefile.in: Install include/grub/machine symlink. * Makefile.in: When installing symlinks, use "cp -fR", which works on FreeBSD and MacOSX. From Yves Blusseau * kern/dl.c (grub_dl_resolve_symbol): Make static. * include/grub/dl.h: Remove grub_dl_resolve_symbol(). * util/misc.c: Move grub_reboot() and grub_halt() ... * util/grub-emu.c: ... here. Make main_env static. * include/grub/util/misc.h: Remove main_env. * kern/mm.c: Use correct format to print size_t. * include/grub/elf.h: Define Elf_Sword and Elf_Xword. * kern/i386/dl.c: Use ELF symbols without "32" or "64". * kern/powerpc/dl.c: Likewise. * kern/sparc64/dl.c: Likewise. * kern/x86_64/dl.c: Likewise. 2009-07-01 Robert Millan Fix grub-emu build on sparc64-ieee1275. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Synchronize with ... * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): ... this. 2009-07-01 Robert Millan * util/misc.c: Include `' and `'. (grub_reboot, grub_halt): New functions. * util/i386/pc/misc.c: Delete. Update all users. * util/sparc64/ieee1275/misc.c: Likewise. * util/powerpc/ieee1275/misc.c: Likewise. 2009-07-01 Robert Millan * conf/i386.rmk (setjmp_mod_SOURCES) (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Move to ... * conf/common.rmk (setjmp_mod_SOURCES) (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): ... here, and modify to use $(target_cpu). * conf/x86_64-efi.rmk (setjmp_mod_SOURCES) (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Remove. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/i386-pc.rmk (kernel_img_SOURCES): Use $(target_cpu) for kern/$(target_cpu)/dl.c. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * conf/i386-coreboot.rmk: Likewise. * conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Use $(target_cpu) for kern/$(target_cpu)/dl.c and for kern/$(target_cpu)/cache.S. * conf/sparc64-ieee1275.rmk: Likewise. 2009-07-01 Robert Millan * include/grub/i386/linux.h (linux_kernel_params): Change `mmap_size' type to `grub_uint8_t', and adjust `padding9' accordingly. 2009-06-29 Robert Millan * include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): New macro. * loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline assembly in final jump, using register constraints. (grub_linux_boot): For text mode, initialize `have_vga' using GRUB_VIDEO_TYPE_TEXT rather than 0 (this changes its value to 1). Initialize `video_cursor_x' and `video_cursor_y' as late as possible, right before the final jump. Set `video_mode' to 0x3. Document initialization of `video_page', `video_mode' and `video_ega_bx'. 2009-06-29 Robert Millan * include/grub/i386/linux.h (GRUB_LINUX_FLAG_QUIET): New macro. * loader/i386/linux.c (grub_cmd_linux): Recognize "quiet" option, and set GRUB_LINUX_FLAG_QUIET appropriately. 2009-06-29 Robert Millan Fix build on Debian / sparc. * configure.ac: Recognize `sparc' target_cpu (as sparc64). 2009-06-28 Pavel Roskin * kern/i386/qemu/mmap.c (grub_machine_mmap_iterate): Use cast to fix a warning. * util/grub.d/10_linux.in: Match SUSE style initrd names. 2009-06-27 Robert Millan * loader/i386/linux.c (grub_linux_boot): Fix uninitialized use of `err'. 2009-06-27 Robert Millan Revert r2338. * loader/i386/linux.c (grub_cmd_linux): Don't call grub_error when file can't be opened. grub_file_open() is already supposed to set grub_errno / grub_errmsg appropriately. * loader/i386/pc/linux.c (grub_cmd_linux): Likewise. 2009-06-27 Pavel Roskin 2009-06-27 Robert Millan * include/grub/dl.h: Include grub/elf.h. (struct grub_dl): Add symtab field. * kern/dl.c [GRUB_MACHINE_QEMU]: Define GRUB_MODULES_MACHINE_READONLY. (grub_dl_resolve_symbols): Populate mod->symtab, making a copy of the header for read-only modules. (grub_dl_unload): Free mod->symtab for read-only modules. * kern/i386/dl.c: Use mod->symtab. * kern/powerpc/dl.c: Likewise. * kern/sparc64/dl.c: Likewise. * kern/x86_64/dl.c: Likewise. * conf/i386-qemu.rmk: New file. * kern/i386/qemu/startup.S: Likewise. * kern/i386/qemu/mmap.c: Likewise. * boot/i386/qemu/boot.S: Likewise. * include/grub/i386/qemu/time.h: Likewise. * include/grub/i386/qemu/serial.h: Likewise. * include/grub/i386/qemu/kernel.h: Likewise. * include/grub/i386/qemu/console.h: Likewise. * include/grub/i386/qemu/boot.h: Likewise. * include/grub/i386/qemu/init.h: Likewise. * include/grub/i386/qemu/machine.h: Likewise. * include/grub/i386/qemu/loader.h: Likewise. * include/grub/i386/qemu/memory.h: Likewise. * conf/i386-coreboot.rmk (GRUB_BOOT_MACHINE_LINK_ADDR) (GRUB_KERNEL_MACHINE_LINK_ADDR): New variables. [qemu] (pkglib_IMAGES): Add `boot.img'. [qemu] (boot_img_SOURCES, boot_img_ASFLAGS, boot_img_LDFLAGS) [qemu] (boot_img_FORMAT): New variables. [qemu] (bin_UTILITIES): Add `grub-mkimage'. [qemu] (grub_mkimage_SOURCES, grub_mkimage_CFLAGS): New variables. [qemu] (kernel_img_SOURCES, kernel_img_HEADERS, kernel_img_CFLAGS) [qemu] (kernel_img_ASFLAGS, kernel_img_LDFLAGS) [qemu] (kernel_img_FORMAT): New variables. * configure.ac: Recognise `i386-qemu'. * util/i386/pc/grub-mkimage.c (compress_kernel): Add dummy variant (for no compression). [GRUB_MACHINE_QEMU] (generate_image): Misc adjustments to produce a valid i386 ROM image. Make `GRUB_KERNEL_MACHINE_COMPRESSED_SIZE', `GRUB_KERNEL_MACHINE_INSTALL_DOS_PART' and `GRUB_KERNEL_MACHINE_INSTALL_BSD_PART' optional features (with ifdefs). 2009-06-27 Pavel Roskin * efiemu/prepare.c: Eliminate TYPE macro, it makes code hard to read. * efiemu/prepare32.c: Likewise. * efiemu/prepare64.c: Likewise. 2009-06-26 Pavel Roskin * include/grub/types.h: Define GRUB_TARGET_WORDSIZE. * include/grub/elf.h: Define symbols without "32" or "64" based on GRUB_TARGET_WORDSIZE. * include/grub/multiboot2.h: Use GRUB_TARGET_WORDSIZE. * efiemu/loadcore32.c: Redefine GRUB_TARGET_WORDSIZE, remove own ELF definitions. * efiemu/loadcore64.c: Likewise. * loader/i386/bsd32.c: Likewise. * loader/i386/bsd64.c: Likewise. * kern/dl.c: Remove own ELF definitions. * util/i386/efi/grub-mkimage.c: Likewise. 2009-06-23 Robert Millan * kern/i386/pc/startup.S (real_to_prot): Access `gdtdesc' using segment 0x0 unconditionally, because the reference generated by GAS is an absolute address. 2009-06-22 Robert Millan * include/grub/i386/kernel.h: Include `'. [! GRUB_MACHINE_IEEE1275]: Set `GRUB_MOD_ALIGN' to 0x1. 2009-06-22 Robert Millan * commands/search.c (grub_cmd_search): Macroify hardcoded args[] indexes. Check for -f explicitly. (search_file): Improve error message. (GRUB_MOD_INIT(search)): Add missing `-n' to help output. 2009-06-22 Robert Millan * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): Rename to ... (GRUB_KERNEL_MACHINE_LINK_ADDR): ... this. Update all users. 2009-06-22 Robert Millan * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/misc.S'. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-coreboot.rmk: Likewise. * kern/i386/pc/startup.S (grub_stop): Remove function. * kern/i386/ieee1275/startup.S: Likewise. * kern/i386/coreboot/startup.S: Likewise. * kern/i386/misc.S (grub_stop): New function. 2009-06-22 Robert Millan * kern/i386/pc/startup.S (real_to_prot): Move from here ... * kern/i386/realmode.S (real_to_prot): ... to here. 2009-06-22 Robert Millan * conf/i386-ieee1275.rmk (pkglib_PROGRAMS): Replace `kernel.elf' with `kernel.img'. (kernel_elf_SOURCES): Rename to ... (kernel_img_SOURCES): ... this. (kernel_elf_HEADERS): Rename to ... (kernel_img_HEADERS): ... this. Update all users. (kernel_elf_ASFLAGS): Rename to ... (kernel_img_ASFLAGS): ... this. (kernel_elf_CFLAGS): Rename to ... (kernel_img_CFLAGS): ... this. (kernel_elf_LDFLAGS): Rename to ... (kernel_img_LDFLAGS): ... this. * conf/i386-coreboot.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * util/elf/grub-mkimage.c (add_segments): Replace "kernel.elf" with "kernel.img". 2009-06-21 Pavel Roskin * loader/powerpc/ieee1275/linux.c (offset_phdr): Fix prototypes to match nested functions. * loader/sparc64/ieee1275/linux.c: Likewise. * conf/i386-ieee1275.rmk: Define kernel_elf_ASFLAGS. 2009-06-21 Robert Millan * configure.ac: Enable `END_SYMBOL' / `BSS_START_SYMBOL' test on all i386 platforms. 2009-06-21 Robert Millan Fix asm file handling on ELF, and remove workarounds. * genmk.rb (class Programs): Detect assembly files, and set ASFLAGS and -DASM_FILE=1 appropriately (copied from `class Images' stanza). * kern/i386/ieee1275/startup.S (ASM_FILE): Remove macro. * kern/i386/coreboot/startup.S (ASM_FILE): Likewise. 2009-06-21 Vladimir Serbinenko Load BSD ELF modules * conf/i386-pc.rmk (bsd_mod_SOURCES): Add loader/i386/bsd32.c and loader/i386/bsd64.c * include/grub/i386/bsd.h (FREEBSD_MODTYPE_MODULE): Remove (FREEBSD_MODTYPE_ELF_MODULE): New definition (FREEBSD_MODTYPE_ELF_MODULE_OBJ): Likewise (grub_freebsd_load_elfmodule32): New declaration (grub_freebsd_load_elfmoduleobj64): Likewise (grub_freebsd_load_elf_meta32): Likewise (grub_freebsd_load_elf_meta64): Likewise (grub_freebsd_add_meta): Likewise (grub_freebsd_add_meta_module): Likewise * loader/i386/bsd.c (grub_freebsd_add_meta): Make global (grub_freebsd_add_meta_module): Likewise and move module-specific parts to grub_cmd_freebsd and grub_cmd_freebsd_module (grub_cmd_freebsd): Add elf-kernel specific parts based on grub_freebsd_add_meta_module (grub_cmd_freebsd_module): Add type parsing moved from grub_freebsd_add_meta_module (grub_cmd_freebsd_module_elf): New function (cmd_freebsd_module_elf): New variable (GRUB_MOD_INIT): Register freebsd_module_elf * loader/i386/bsd32.c: New file * loader/i386/bsd64.c: Likewise * loader/i386/bsdXX.c: Likewise * kern/elf.c (grub_elf32_load): Let hook decide which pheaders to load (grub_elf64_load): Likewise * include/grub/elfload.h (grub_elf32_load_hook_t): New parameter do_load All users updated (grub_elf64_load_hook_t): Likewise 2009-06-21 Colin Watson * util/grub-mkconfig.in (GRUB_DISABLE_LINUX_RECOVERY): Export variable. * util/grub.d/10_linux.in: If GRUB_DISABLE_LINUX_RECOVERY is true, don't write a menu entry for recovery mode. 2009-06-20 Robert Millan * util/i386/pc/grub-mkimage.c (main): Oops, free `output' only after it's no longer needed. 2009-06-20 Robert Millan * include/grub/i386/loader.h (grub_linux_prot_size) (grub_linux_tmp_addr, grub_linux_real_addr) (grub_linux_is_bzimage, grub_linux16_boot): Declare only on GRUB_MACHINE_PCBIOS. * util/i386/pc/grub-mkimage.c (compress_kernel): Move common grub_util_info() call to ... (generate_image): ... here. Fix use of uninitialized memory, comparison of signed with unsigned integers and memory leak. Remove bogus module address message. 2009-06-20 Vladimir Serbinenko * disk/mdraid_linux.c (GRUB_MOD_FINI): use grub_raid_unregister and not grub_raid_register * disk/dmraid_nvidia.c (GRUB_MOD_FINI): likewise 2009-06-19 Pavel Roskin * configure.ac: Remove stray AC_MSG_CHECKING. 2009-06-19 Vladimir Serbinenko * disk/scsi.c (grub_scsi_open): use continue instead of big if 2009-06-18 Pavel Roskin * conf/common.rmk: Add fs_file.mod. * disk/fs_file.c: New file. * include/grub/disk.h (enum grub_disk_dev_id): Add GRUB_DISK_DEVICE_FILE_ID. 2009-06-18 Vladimir Serbinenko Fix build with Apple's toolchain. Part 2 * aclocal.m4 (grub_PROG_TARGET_CC): add missing prototype for main and a fake start 2009-06-18 Vladimir Serbinenko Fix build with Apple's toolchain. Part 1 * commands/i386/pc/drivemap_int13h.S: use assembly-time constants for long calls * configure.ac: remove a leftover AC_MSG_RESULT (CFLAGS): don't add -Wl,--defsym,___main=0x8100 when building with Apple's toolchain 2009-06-18 Vladimir Serbinenko Fix warnings * fs/ntfscomp.c (decomp_get16): initialize c1 and c2 (decomp_block): initialize ch use grub_memcpy instead of memcpy 2009-06-17 Pavel Roskin * include/grub/i386/coreboot/console.h: Don't use the i386-pc version, use declarations needed to use vga_text as the startup console. * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Remove term/i386/pc/at_keyboard.c, it doesn't need to be compiled into the kernel. * kern/i386/coreboot/init.c: Don't call grub_at_keyboard_init() and grub_at_keyboard_fini(), it's done on module load and unload. 2009-06-17 Felix Zielcke * loader/i386/linux.c (grub_cmd_linux): Set grub_error if the file can't be found. * loader/i386/pc/linux.c (grub_cmd_linux): Likewise. 2009-06-17 Vladimir Serbinenko Fix newline handling * include/grub/script_sh.h (grub_lexer_param): new field was_newline * script/sh/lexer.c (grub_script_lexer_init): initialize was_newline (grub_script_yylex): don't segfault on unterminated script newline terminates command and variable 2009-06-17 Vladimir Serbinenko avoid double grub_adjust_range call. Bug reported by David Simner * kern/disk.c (grub_disk_write): change to raw disk access before calling disk_read 2009-06-17 Colin Watson * util/elf/grub-mkimage.c (usage): Prefix each option line with two spaces, for the benefit of help2man. * util/i386/efi/grub-mkimage.c (usage): Likewise. 2009-06-16 Pavel Roskin * kern/i386/halt.c: Include grub/machine/init.h. * kern/i386/reboot.c: Include grub/cpu/reboot.h. 2009-06-16 Felix Zielcke * util/grub.d/30_os-prober.in: Use ${root} in the generated drivemap menuentry. 2009-06-16 James Jarvis * commands/help.c GRUB_MOD_INIT(echo): Fix the help output of `echo' command. 2009-06-16 Pavel Roskin * boot/i386/pc/boot.S: Remove root_drive. Assert offset of boot_drive_check by using GRUB_BOOT_MACHINE_DRIVE_CHECK. Don't save %dx, we only need %dl and we never change it. * boot/i386/pc/cdboot.S: Don't set the root drive. * boot/i386/pc/pxeboot.S: Likewise. * include/grub/i386/pc/boot.h: Remove GRUB_BOOT_MACHINE_ROOT_DRIVE, adjust GRUB_BOOT_MACHINE_DRIVE_CHECK. * include/grub/i386/pc/kernel.h: Remove grub_root_drive. * kern/i386/pc/init.c (make_install_device): Remove references to grub_root_drive. * kern/i386/pc/startup.S: Likewise. * util/i386/pc/grub-setup.c (setup): Don't set root_drive. 2009-06-16 Vladimir Serbinenko xnu_uuid command * commands/xnu_uuid.c: new file * conf/common.rmk (pkglib_MODULES): add xnu_uuid.mod (xnu_uuid_mod_SOURCES): new variable (xnu_uuid_mod_CFLAGS): likewise (xnu_uuid_mod_LDFLAGS): likewise * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c * conf/i386-ieee1275.rmk: likewise * conf/i386-pc.rmk: likewise * conf/powerpc-ieee1275.rmk: likewise * conf/sparc64-ieee1275.rmk: likewise * util/grub.d/30_os-prober.in: use UUID for Mac OS X/Darwin 2009-06-16 Pavel Roskin * configure.ac: Avoid '==' in test command, it's not portable. 2009-06-16 Vladimir Serbinenko Probe command * commands/probe.c: new file * conf/common.rmk (pkglib_MODULES): add probe.mod (probe_mod_SOURCES): new variable (probe_mod_CFLAGS): likewise (probe_mod_LDFLAGS): likewise * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c * conf/i386-ieee1275.rmk: likewise * conf/i386-pc.rmk: likewise * conf/powerpc-ieee1275.rmk: likewise * conf/sparc64-ieee1275.rmk: likewise 2009-06-15 Vladimir Serbinenko Fix handling of string like \"hello\" and "a b" * script/sh/lexer.c (check_textstate): accept GRUB_PARSER_STATE_ESC (grub_script_yylex): fix parsing of quoting, escaping and newline 2009-06-13 Vladimir Serbinenko * loader/i386/multiboot.c (grub_multiboot_get_bootdev): fix partition handling 2009-06-13 Jun Inoue * util/grub-mkconfig.in: Fix parsing of --output option. 2009-06-12 Pavel Roskin * Makefile.in (pkgdata_SRCDIR): Remove. genmodsrc.sh and genmk.rb don't need to be generated or installed. 2009-06-12 Vladimir Serbinenko * commands/i386/pc/drivemap_int13h.S: add more comments 2009-06-11 Pavel Roskin * Makefile.in (uninstall): Uninstall manuals. * Makefile.in: Rename lib_DATA to lib_SCRIPTS, move it from PKGLIB to SCRIPTS. This fixes installation of grub-mkconfig_lib and update-grub_lib in two places. * conf/common.rmk: Rename lib_DATA to lib_SCRIPTS. * disk/usbms.c (grub_usbms_transfer): Initialize `err' to fix a compiler warning. * loader/i386/bsd.c (grub_freebsd_boot): Rename `entry' to `entry_lo' to fix variable shadowing. 2009-06-11 Christian Franke * kern/misc.c (__enable_execute_stack): Add missing return type to prevent gcc warning. 2009-06-11 Felix Zielcke * conf/i386-ieee1275.rmk (COMMON_LDFLAGS): Remove `-static -lgcc'. 2009-06-11 Pavel Roskin * Makefile.in: Don't rely on any scripts being executable. Always use $(SHELL) to run shell scripts. * configure.ac: Always define ___main if using -nostdlib. This fixes tests on Cygwin. 2009-06-11 Giuseppe Caizzone UDF fix * fs/udf.c (grub_udf_read_block): handle the fact that ad->length is in bytes and not in blocks 2009-06-11 Pavel Roskin * kern/i386/halt.c (grub_halt): Make `i' unsigned to fix a warning. 2009-06-11 Felix Zielcke * util/grub.d/30_os-prober.in: Fix a comment. Source ${libdir}/grub/grub-mkconfig_lib. Use prepare_grub_to_access_device to set the root device. Place drivemap command in the generated chain entry. 2009-06-11 Pavel Roskin * configure.ac: Remove host_m32. Issues with 64-bit utilities have long been resolved. 2009-06-11 Colin Watson * util/grub.d/10_linux.in: Capitalise "Linux". * util/grub-pe2elf.c (usage): Fix references to grub-editenv. 2009-06-11 Pavel Roskin * kern/efi/efi.c (grub_exit): Add infinite loop at the end to fix a gcc warning and ensure that the function won't ever exit. * kern/i386/ieee1275/init.c: Add missing prototype for grub_stop_floppy(). * loader/ieee1275/multiboot2.c [__i386__]: Include grub/cpu/multiboot.h. * term/i386/pc/serial.c (serial_translate_key_sequence): Avoid casts to short - they are not portable and cause warnings. Fix use of uninitialized values in input_buf. Use ARRAY_SIZE. 2009-06-11 Vladimir Serbinenko Drivemap fixes * commands/i386/pc/drivemap.c (grub_get_root_biosnumber_drivemap): new function (grub_get_root_biosnumber_saved): new variable (GRUB_MOD_INIT): register grub_get_root_biosnumber_drivemap (GRUB_MOD_FINI): unregister grub_get_root_biosnumber_drivemap * commands/i386/pc/drivemap_int13h.S (grub_drivemap_handler): restore %dx after the call if necessary * conf/common.rmk (pkglib_MODULES): remove boot.mod (boot_mod_SOURCES): remove (boot_mod_CFLAGS): remove (boot_mod_LDFLAGS): remove * conf/i386-coreboot.rmk (pkglib_MODULES): add boot.mod (boot_mod_SOURCES): new variable (boot_mod_CFLAGS): likewise (boot_mod_LDFLAGS): likewise * conf/i386-efi.rmk: likewise * conf/i386-ieee1275.rmk: likewise * conf/i386-pc.rmk: likewise * conf/powerpc-ieee1275.rmk: likewise * conf/sparc64-ieee1275.rmk: likewise * conf/x86_64-efi.rmk: likewise * include/grub/i386/pc/biosnum.h: new file * lib/i386/pc/biosnum.c: likewise * loader/i386/bsd.c (grub_bsd_get_device): use grub_get_root_biosnumber * loader/i386/multiboot.c (grub_multiboot_get_bootdev): likewise * loader/i386/pc/chainloader.c (grub_chainloader_cmd): likewise 2009-06-10 Pavel Roskin * io/gzio.c (test_header): Don't reuse one buffer for all data. Use separate variables. Read only the file size at the end, but not the checksum that we don't use. * kern/file.c (grub_file_read): Use void pointer for the buffer. Adjust all callers. * kern/ieee1275/openfw.c: Remove libc includes. * kern/ieee1275/cmain.c: Likewise. * include/grub/ieee1275/ieee1275.h: Likewise. * kern/i386/coreboot/init.c: Include grub/cpu/tsc.h to fix compiler warnings. 2009-06-10 Felix Zielcke * Makefile.in: Remove all trailing whitespace. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * docs/grub.texi: Likewise. * docs/texinfo.tex: Likewise. * disk/fs_uuid.c: Likewise. * disk/lvm.c: Likewise. * disk/scsi.c: Likewise. * disk/ata.c: Likewise. * disk/ieee1275/ofdisk.c: Likewise. * disk/i386/pc/biosdisk.c: Likewise. * disk/host.c: Likewise. * disk/raid.c: Likewise. * disk/efi/efidisk.c: Likewise. * disk/usbms.c: Likewise. * disk/memdisk.c: Likewise. * disk/loopback.c: Likewise. * kern/powerpc/dl.c: Likewise. * kern/device.c: Likewise. * kern/dl.c: Likewise. * kern/sparc64/dl.c: Likewise. * kern/ieee1275/ieee1275.c: Likewise. * kern/term.c: Likewise. * kern/fs.c: Likewise. * kern/i386/dl.c: Likewise. * kern/i386/pc/startup.S: Likewise. * kern/i386/pc/init.c: Likewise. * kern/i386/pc/mmap.c: Likewise. * kern/i386/pc/lzo1x.S: Likewise. * kern/i386/ieee1275/init.c: Likewise. * kern/i386/realmode.S: Likewise. * kern/i386/tsc.c: Likewise. * kern/partition.c: Likewise. * kern/corecmd.c: Likewise. * kern/file.c: Likewise. * kern/efi/efi.c: Likewise. * kern/efi/init.c: Likewise. * kern/efi/mm.c: Likewise. * kern/main.c: Likewise. * kern/err.c: Likewise. * kern/env.c: Likewise. * kern/disk.c: Likewise. * kern/generic/millisleep.c: Likewise. * kern/generic/rtc_get_time_ms.c: Likewise. * kern/misc.c: Likewise. * kern/parser.c: Likewise. * genmk.rb: Likewise. * configure.ac: Likewise. * boot/i386/pc/diskboot.S: Likewise. * boot/i386/pc/pxeboot.S: Likewise. * boot/i386/pc/boot.S: Likewise. * boot/i386/pc/lnxboot.S: Likewise. * boot/i386/pc/cdboot.S: Likewise. * parttool/pcpart.c: Likewise. * video/readers/tga.c: Likewise. * video/video.c: Likewise. * video/bitmap.c: Likewise. * lib/envblk.c: Likewise. * lib/i386/setjmp.S: Likewise. * fs/xfs.c: Likewise. * fs/afs.c: Likewise. * fs/fat.c: Likewise. * fs/ntfs.c: Likewise. * fs/udf.c: Likewise. * fs/affs.c: Likewise. * fs/iso9660.c: Likewise. * fs/hfs.c: Likewise. * fs/fshelp.c: Likewise. * fs/ext2.c: Likewise. * fs/jfs.c: Likewise. * fs/reiserfs.c: Likewise. * fs/hfsplus.c: Likewise. * fs/minix.c: Likewise. * fs/cpio.c: Likewise. * fs/sfs.c: Likewise. * fs/ufs.c: Likewise. * efiemu/prepare.c: Likewise. * efiemu/loadcore_common.c: Likewise. * efiemu/runtime/efiemu.sh: Likewise. * efiemu/runtime/efiemu.S: Likewise. * efiemu/runtime/efiemu.c: Likewise. * efiemu/pnvram.c: Likewise. * efiemu/main.c: Likewise. * efiemu/i386/pc/cfgtables.c: Likewise. * efiemu/i386/loadcore64.c: Likewise. * efiemu/i386/loadcore32.c: Likewise. * efiemu/loadcore.c: Likewise. * efiemu/symbols.c: Likewise. * efiemu/mm.c: Likewise. * include/grub/autoefi.h: Likewise. * include/grub/datetime.h: Likewise. * include/grub/term.h: Likewise. * include/grub/hfs.h: Likewise. * include/grub/lvm.h: Likewise. * include/grub/i386/tsc.h: Likewise. * include/grub/i386/linux.h: Likewise. * include/grub/i386/xnu.h: Likewise. * include/grub/i386/efiemu.h: Likewise. * include/grub/i386/pc/biosdisk.h: Likewise. * include/grub/i386/pc/memory.h: Likewise. * include/grub/i386/pc/vbe.h: Likewise. * include/grub/parttool.h: Likewise. * include/grub/video.h: Likewise. * include/grub/memory.h: Likewise. * include/grub/fs.h: Likewise. * include/grub/partition.h: Likewise. * include/grub/xnu.h: Likewise. * include/grub/efi/api.h: Likewise. * include/grub/efi/pe32.h: Likewise. * include/grub/efi/memory.h: Likewise. * include/grub/multiboot.h: Likewise. * include/grub/usbdesc.h: Likewise. * include/grub/multiboot2.h: Likewise. * include/grub/acpi.h: Likewise. * include/grub/efiemu/efiemu.h: Likewise. * include/grub/disk.h: Likewise. * include/grub/ieee1275/ieee1275.h: Likewise. * include/grub/net.h: Likewise. * include/grub/machoload.h: Likewise. * include/grub/macho.h: Likewise. * include/multiboot.h: Likewise. * genmoddep.awk: Likewise. * normal/main.c: Likewise. * normal/menu_entry.c: Likewise. * normal/menu_viewer.c: Likewise. * normal/completion.c: Likewise. * normal/cmdline.c: Likewise. * normal/misc.c: Likewise. * normal/datetime.c: Likewise. * bus/usb/usbtrans.c: Likewise. * bus/usb/ohci.c: Likewise. * bus/usb/uhci.c: Likewise. * bus/usb/usb.c: Likewise. * mmap/efi/mmap.c: Likewise. * mmap/i386/pc/mmap_helper.S: Likewise. * mmap/i386/pc/mmap.c: Likewise. * mmap/i386/mmap.c: Likewise. * mmap/i386/uppermem.c: Likewise. * mmap/mmap.c: Likewise. * commands/acpi.c: Likewise. * commands/echo.c: Likewise. * commands/blocklist.c: Likewise. * commands/loadenv.c: Likewise. * commands/usbtest.c: Likewise. * commands/boot.c: Likewise. * commands/parttool.c: Likewise. * commands/search.c: Likewise. * commands/cat.c: Likewise. * commands/i386/pc/play.c: Likewise. * commands/i386/pc/drivemap.c: Likewise. * commands/i386/pc/vbeinfo.c: Likewise. * commands/i386/pc/acpi.c: Likewise. * commands/i386/pc/vbetest.c: Likewise. * commands/ls.c: Likewise. * commands/cmp.c: Likewise. * commands/test.c: Likewise. * commands/efi/acpi.c: Likewise. * commands/gptsync.c: Likewise. * commands/help.c: Likewise. * partmap/amiga.c: Likewise. * partmap/apple.c: Likewise. * partmap/acorn.c: Likewise. * partmap/pc.c: Likewise. * partmap/sun.c: Likewise. * partmap/gpt.c: Likewise. * script/sh/lexer.c: Likewise. * script/sh/function.c: Likewise. * font/font.c: Likewise. * font/font_cmd.c: Likewise. * loader/powerpc/ieee1275/linux.c: Likewise. * loader/efi/chainloader.c: Likewise. * loader/multiboot_loader.c: Likewise. * loader/macho.c: Likewise. * loader/i386/multiboot.c: Likewise. * loader/i386/linux.c: Likewise. * loader/i386/pc/linux.c: Likewise. * loader/i386/pc/multiboot2.c: Likewise. * loader/i386/pc/chainloader.c: Likewise. * loader/i386/pc/xnu.c: Likewise. * loader/i386/bsd_trampoline.S: Likewise. * loader/i386/efi/linux.c: Likewise. * loader/i386/multiboot_elfxx.c: Likewise. * loader/i386/bsd_helper.S: Likewise. * loader/i386/bsd.c: Likewise. * loader/i386/linux_trampoline.S: Likewise. * loader/i386/xnu_helper.S: Likewise. * loader/i386/xnu.c: Likewise. * loader/i386/bsd_pagetable.c: Likewise. * loader/i386/multiboot_helper.S: Likewise. * loader/xnu.c: Likewise. * loader/xnu_resume.c: Likewise. * io/gzio.c: Likewise. * term/efi/console.c: Likewise. * term/terminfo.c: Likewise. * term/ieee1275/ofconsole.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/i386/pc/vesafb.c: Likewise. * term/i386/pc/vga.c: Likewise. * term/usb_keyboard.c: Likewise. * term/gfxterm.c: Likewise. * aclocal.m4: Likewise. * util/lvm.c: Likewise. * util/grub.d/30_os-prober.in: Likewise. * util/grub.d/10_hurd.in: Likewise. * util/console.c: Likewise. * util/grub-macho2img.c: Likewise. * util/grub-probe.c: Likewise. * util/hostfs.c: Likewise. * util/i386/pc/grub-mkimage.c: Likewise. * util/i386/pc/grub-setup.c: Likewise. * util/i386/efi/grub-mkimage.c: Likewise. * util/grub-mkconfig.in: Likewise. * util/raid.c: Likewise. * util/resolve.c: Likewise. * util/grub-mkdevicemap.c: Likewise. * util/grub-emu.c: Likewise. * util/getroot.c: Likewise. * util/hostdisk.c: Likewise. * util/usb.c: Likewise. * util/grub-editenv.c: Likewise. * util/misc.c: Likewise. 2009-06-10 Felix Zielcke * gendistlist.sh (EXTRA_DISTFILES): Add `genhandlerlist.sh' and `genparttoollist.sh'. (DISTDIRS): Add `efiemu', `mmap', `parttool' and `script'. Add `*.sh' to the list find searches for and change `mdate.sh' to `mdate-sh'. 2009-06-10 Pavel Roskin * include/grub/multiboot2.h: Provide compatibility defines for multiboot2.h. * include/multiboot2.h: Include stdint.h only if needed, using angle brackets. * loader/i386/pc/multiboot2.c: Include multiboot2.h after grub/multiboot2.h. * loader/ieee1275/multiboot2.c: Likewise. * loader/multiboot2.c: Likewise. * loader/multiboot_loader.c: Likewise. * configure.ac: Use -nostdlib when probing for the target. It should not be required to have libc for the target. * configure.ac: Remove checks for __bswapsi2 and __bswapdi2, they fail without libc headers for the target. * include/grub/powerpc/libgcc.h: Use weak attribute for all exports. * include/grub/sparc64/libgcc.h: Likewise. Don't use preprocessor conditionals. * conf/common.rmk: Compile tar.mod from tar.c, not cpio.c. The build system doesn't need to be aware of the tar.c internals. 2009-06-09 Michel Hermier * fs/i386/pc/pxe.c (grub_pxefs_read): Fix returned values. 2009-06-09 Robert Millan * util/deviceiter.c (grub_util_iterate_devices): Increase number of disk limit to 26 for IDE, Virtio, Xen and SCSI. 2009-06-09 Felix Zielcke * util/i386/pc/grub-install.in: Change the error message if UUIDs aren't available if ata.mod gets used. 2009-06-09 Oliver Henshaw * bus/usb/ohci.c (grub_ohci_pci_iter): Link struct only after initialising controller. * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise. 2009-06-08 Felix Zielcke * util/i386/pc/grub-install.in: Add a parameter --disk-module to choose between ata and biosdisk module on i386-pc. 2009-06-08 Oliver Henshaw * bus/usb/ohci.c (grub_ohci_pci_iter): Define the Class, Subclass and Programming Interface fields in terms of the 3 byte Class Code register. * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise. * bus/usb/ohci.c (grub_ohci_pci_iter): Check that programming interface is OHCI. Add grub_dprintf for symmetry with bus/usb/uhci.c. * bus/usb/uhci.c (grub_uhci_pci_iter): Check that programming interface is UHCI. Add interf variable for programming interface. Print interface with class/subclass. * bus/usb/ohci.c: Set interf with correct field. * bus/usb/uhci.c: Remove unneeded doubled lines. * bus/usb/ohci.c: Likewise. Change interf to grub_uint32_t. Remove whitespace inside comment. 2009-06-08 Robert Millan * loader/i386/linux.c (grub_cmd_linux): When processing `vga=', use as fallback an equivalent option without depth. 2009-06-08 Vladimir Serbinenko Not fail if unable to retrieve C/H/S on LBA disks * disk/i386/pc/biosdisk.c (grub_biosdisk_open): behave gracefully if unable to retrieve C/H/S on LBA disks 2009-06-08 Pavel Roskin * fs/hfs.c (grub_hfs_find_dir): Use union to avoid a warning about aliasing. 2009-06-08 Felix Zielcke * Makefile.in (uninstall): Remove all $lib_DATA files. 2009-06-08 Vladimir Serbinenko Bugfix: install on partitionless device * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): check if os_dev is a whole disk 2009-06-08 Felix Zielcke * Makefile.in (uninstall): Remove all $include_DATA files. 2009-06-08 Felix Zielcke * commands/true.c: New file. Implement the true and false commands. * conf/common.rmk.c (pkglib_MODULES): Add `true.mod'. (true_mod_SOURCES): New variable. (true_mod_CFLAGS): Likewise. (true_mod_LDFLAGS): Likewise. 2009-06-05 Colin D Bennett Optimized font character lookup using binary search instead of linear search. Fonts now are required to have the character index ordered by code point. * font/font.c (load_font_index): Verify that fonts have ordered character indices. (find_glyph): Use binary search instead of linear search to find a character in a font. 2009-06-05 Michael Scherer * fs/hfsplus.c (grub_hfsplus_mount): Determine if the filesystem uses case sensitive btree. (grub_hfsplus_iterate_dir): Use GRUB_FSHELP_CASE_INSENSITIVE only for case insensitive filesystems. 2009-06-05 Vladimir Serbinenko * conf/i386-pc.rmk (efiemu_mod_CFLAGS): remove -Werror -Wall * conf/common.rmk (search_mod_CFLAGS): likewise 2009-06-04 Vladimir Serbinenko * kern/i386/pc/startup.S [APPLE_CC]: block of nops to compensate a compiler bug 2009-06-04 Vladimir Serbinenko * include/grub/term.h (GRUB_TERM_BACKSPACE): explicitly define as 8 instead of '\b' 2009-06-04 Vladimir Serbinenko Definitions for creating asm symbols with Apple's CC * include/grub/symbol.h [APPLE_CC] (FUNCTION): new macro [APPLE_CC] (VARIABLE): likewise 2009-06-04 Vladimir Serbinenko Disable lnxboot.img when compiled with Apple's CC * conf/i386-pc.rmk (pkglib_IMAGES): remove lnxboot.img pkglib_IMAGES [! TARGET_APPLE_CC] (pkglib_IMAGES): add lnxboot.img * boot/i386/pc/lnxboot.S [APPLE_CC]: define an #error [! APPLE_CC] (CODE_LENG): skip [! APPLE_CC] (setup_sects): likewise [! APPLE_CC]: skip filling 2009-06-04 Vladimir Serbinenko Address in trampolines based on 32-bit registers when compiled with Apple's CC * loader/i386/xnu_helper.S [APPLE_CC]: use 32-bit registers for addresses * loader/i386/linux_trampoline.S [APPLE_CC]: likewise 2009-06-04 Vladimir Serbinenko Avoid aliases when compiling with Apple's CC for PCBIOS machine * kern/misc.c [APPLE_CC] (memcpy): new function [APPLE_CC] (memmove): likewise [APPLE_CC && !GRUB_UTIL] (grub_err_printf): likewise (memcpy): define alias conditionally on !APPLE_CC (memset): likewise (abort): likewise * include/grub/misc.h (memove): don't define when both GRUB_UTIL and APPLE_CC are defined * include/grub/list.h [APPLE_CC] (grub_assert_fail): new function (grub_assert_fail): make prototype conditional 2009-06-04 Vladimir Serbinenko Use grub-macho2img when compiling with Apple's CC for PCBIOS machine * conf/common.rmk (bin_UTILITIES): add (on false on condition) grub-macho2img (CLEANFILES): add grub-macho2img (grub_macho2img_SOURCES): new variable * kern/i386/pc/startup.S (bss_start): new variable (bss_end): likewise * genmk.rb: use grub-macho2img for *.img when compiled with Apple's CC * util/grub-macho2img.c: new file 2009-06-04 Vladimir Serbinenko Use objconv when compiling with Apple's CC * conf/i386-pc.rmk (efiemu32.o): use OBJCONV if defined (efiemu64.o): likewise (efiemu64_c.o): omit -mcmodel=large and add -DAPPLE_CC=1 when compiling with Apple's CC (efiemu64_s.o): likewise * configure.ac: check for objconv when compiling with Apple's CC * genmk.rb: use objconv for modules when compiled with Apple's CC 2009-06-04 Vladimir Serbinenko Define segment as well as section when compiling with Apple's CC * efiemu/runtime/efiemu.c (PHYSICAL_ATTRIBUTE): new definition (efiemu_set_virtual_address_map): declare with PHYSICAL_ATTRIBUTE (efiemu_convert_pointer): likewise (efiemu_set_virtual_address_map): likewise (efiemu_convert_pointer): likewise (efiemu_getcrc32): likewise (init_crc32_table): likewise (reflect): likewise * include/grub/dl.h (GRUB_MOD_NAME): define segment with Apple's CC (GRUB_MOD_DEP): likewise 2009-06-04 Vladimir Serbinenko Allow a compilation without -mcmodel=large * kern/efi/mm.c (grub_efi_allocate_pages): don't allocate >4GiB when compiled without -mcmodel=large (filter_memory_map): remove memory post 4 GiB when compiled without -mcmodel=large * configure.ac: fail gracefully and add -DMCMODEL_SMALL=1 to TARGET_CFLAGS when -mcmodel=large isn't supported 2009-06-04 Vladimir Serbinenko Remove nested functions in efiemu core * efiemu/runtime/efiemu.c (reflect): make static instead of nested 2009-06-04 Vladimir Serbinenko Avoid clobbering %ebx/%rbx in inline assembly with Apple's CC * efiemu/runtime/efiemu.c (write_cmos): use %cl instead of %bl as temporary storage * include/grub/i386/tsc.h (grub_get_tsc): restore %rbx/%ebx when using Apple's CC (grub_cpu_is_tsc_supported): likewise * loader/i386/xnu.c (guessfsb): restore %rbx/%ebx in inline assembly 2009-06-04 Vladimir Serbinenko Absolute addressing through constant with Apple's cc * kern/i386/pc/startup.S: Define necessary constants and address through it when using ABS with Apple's CC * boot/i386/pc/diskboot.S: likewise * boot/i386/pc/boot.S: likewise * boot/i386/pc/lnxboot.S: likewise * boot/i386/pc/cdboot.S: likewise * mmap/i386/pc/mmap_helper.S: likewise * commands/i386/pc/drivemap_int13h.S: likewise 2009-06-04 Vladimir Serbinenko Check if compiler is apple cc * Makefile.in (ASFLAGS): new variable (TARGET_ASFLAGS): likewise (TARGET_MODULE_FORMAT): likewise (TARGET_APPLE_CC): likewise (OBJCONV): likewise (TARGET_IMG_CFLAGS): likewise (TARGET_CPPFLAGS): add includedir * configure.ac: call grub_apple_cc and grub_apple_target_cc (TARGET_IMG_LDFLAGS): Add -Wl,-Ttext,. All users updated Check for linker script only if compiler isn't Apple's CC (TARGET_MODULE_FORMAT): set (TARGET_APPLE_CC): likewise (TARGET_ASFLAGS): likewise (ASFLAGS): likewise Check for objcopy only if compiler isn't Apple's CC Check for BSS symbol only if compiler isn't Apple's CC * genmk.rb: adapt nm options if we use Apple's utils * aclocal.m4 (grub_apple_cc): new test (grub_apple_target_cc): likewise 2009-06-04 Vladimir Serbinenko Simplify sed expressions and improve awk * Makefile.in (install-local): simplify sed expression * gencmdlist.sh: likewise * genmoddep.awk: avoid adding module as a dependency of itself 2009-06-04 Vladimir Serbinenko Add missing start symbols * boot/i386/pc/boot.S: add start * boot/i386/pc/pxeboot.S: likewise 2009-06-04 Vladimir Serbinenko Fix wrong assumptions with grub-mkimage on EFI * i386/efi/grub-mkimage.c (read_kernel_module): don't write prefix here (relocate_addresses): consider both r_addend and value at offset (make_mods_section): zerofill modinfo and header (convert_elf): write prefix here 2009-06-04 Vladimir Serbinenko Use .asciz instead of .string * i386/pc/diskboot.S: use .asciz instead of .string * i386/pc/boot.S: likewise * include/grub/dl.h (GRUB_MOD_DEP): likewise (GRUB_MOD_NAME): likewise 2009-06-04 Vladimir Serbinenko gfxpayload support * commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition (grub_video_setup): remove (grub_video_set_mode): new prototype * loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition (vid_mode): remove (linux_vesafb_res): compile only on PCBIOS (grub_linux_boot): support gfxpayload * loader/i386/pc/xnu.c (video_hook): new function (grub_xnu_set_video): support gfxpayload * term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed (DEFAULT_VIDEO_HEIGHT): likewise (DEFAULT_VIDEO_FLAGS): likewise (DEFAULT_VIDEO_MODE): new definition (video_hook): new function (grub_gfxterm_init): use grub_video_set_mode * util/grub.d/30_os-prober.in: remove explicit modesetting before loading xnu * video/video.c (grub_video_setup): removed (grub_video_set_mode): new function based on grub_gfxterm_init and grub_video_setup 2009-06-04 Vladimir Serbinenko Avoid calling biosdisk in drivemap * commands/i386/pc/drivemap.c (parse_biosdisk): remove (revparse_biosdisk): likewise (list_mappings): derive name from id directly (grub_cmd_drivemap): use tryparse_diskstring 2009-06-04 Vladimir Serbinenko Script fixes * include/grub/script_sh.h (grub_script_cmdline): remove cmdline (grub_lexer_param): add tokenonhold (grub_script_create_cmdline): remove cmdline. All callers updated (grub_script_function_create): make functionname grub_script_arg. All callers updated (grub_script_execute_argument_to_string): new prototype * kern/parser.c (state_transitions): reorder (grub_parser_cmdline_state): fix a bug and make more compact * script/sh/execute.c (grub_script_execute_argument_to_string): make global (grub_script_execute_cmdline): use new format * script/sh/function.c (grub_script_function_create): make functionname grub_script_arg. All callers updated * script/sh/lexer.c (grub_script_lexer_init): initialize tokenonhold (grub_script_yylex): remove (grub_script_yylex2): renamed to ... (grub_script_yylex): ...renamed parse the expressions like a${b}c * script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal (GRUB_PARSER_TOKEN_VAR): remove (GRUB_PARSER_TOKEN_NAME): likewise ("if"): declare as typeless ("while"): likewise ("function"): likewise ("else"): likewise ("then"): likewise ("fi"): likewise (text): remove (argument): likewise (script): accept empty scripts and make exit on error (arguments): use GRUB_PARSER_TOKEN_ARG (function): likewise (command): move error handling to script (menuentry): move grub_script_lexer_ref before * script/sh/script.c (grub_script_create_cmdline): remove cmdline argument. All callers updated 2009-06-04 Robert Millan Prevent GRUB from probing floppies during boot. * conf/common.rmk (search_mod_CFLAGS): Use `-Werror -Wall'. * commands/search.c (options): Add --no-floppy. (search_fs, search_file, grub_cmd_search): Support --no-floppy. * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Use --no-floppy when searching for UUIDs. 2009-06-04 Robert Millan Simplify the code duplication in commands/search.c. * commands/search.c (search_label, search_fs_uuid): Merge into ... (search_fs): ... this. Update all users. 2009-06-03 Felix Zielcke * util/grub-mkconfig.in (update_grub_dir): Rename to grub_mkconfig_dir. 2009-05-28 Pavel Roskin * Makefile.in: Don't use "cp -d", it doesn't work on FreeBSD. Remove the original symlink explicitly. * fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not just one slash. That's how grub_fshelp_find_file() does it. 2009-05-26 Pavel Roskin * genmk.rb: Avoid shadowing variable `s', rename the outer `s' to `str'. * util/getroot.c (grub_util_get_dev_abstraction): Mark os_dev as possibly unused. 2009-05-25 Christian Franke * disk/ata.c (grub_ata_wait_not_busy): Add debug output of status register. (grub_atapi_identify): Add wait after drive select. (grub_ata_identify): Do more strict status register check before calling grub_atapi_identify (). Suppress error message if status register is 0x00 after command failure. Add status register check after PIO read to avoid bogus identify due to stuck DRQ. Thanks to Pavel Roskin for testing. (grub_device_initialize): Remove unsafe status register check. Thanks to 'phcoder' for problem report and patch. Prevent sign extension in debug message. 2009-05-23 Colin D Bennett Cleaned up `include/grub/normal.h'. Grouped prototypes by definition file, and functions defined in `normal/menu.c' have had their prototypes moved to `include/grub/menu.h' for consistency. * include/grub/menu.h (grub_menu_execute_callback): Added; moved from normal.h. (grub_menu_get_entry): Likewise. (grub_menu_get_timeout): Likewise. (grub_menu_set_timeout): Likewise. (grub_menu_execute_entry): Likewise. (grub_menu_execute_with_fallback): Likewise. (grub_menu_entry_run): Likewise. * include/grub/normal.h: Re-ordered and grouped function prototypes by file that the function is defined in. (grub_menu_execute_callback): Removed; moved to menu.h. (grub_menu_get_entry): Likewise. (grub_menu_get_timeout): Likewise. (grub_menu_set_timeout): Likewise. (grub_menu_execute_entry): Likewise. (grub_menu_execute_with_fallback): Likewise. (grub_menu_entry_run): Likewise. (grub_menu_addentry): Renamed from this ... (grub_normal_add_menu_entry): ... to this. * normal/main.c (grub_menu_addentry): Renamed from this ... (grub_normal_add_menu_entry): ... to this. * script/sh/execute.c (grub_script_execute_menuentry): Update reference to renamed grub_menu_addentry function. 2009-05-23 Felix Zielcke * commands/i386/pc/drivemap.c (MODNAME): Remove. Update all users. 2009-05-22 Pavel Roskin * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Remove. * configure.ac: Don't call grub_I386_CHECK_REGPARM_BUG. Define NESTED_FUNC_ATTR using AH_BOTTOM. Use regparm(1) only when compiling for the i386 targets, but not for the utilities. * include/grub/i386/pc/kernel.h (grub_boot_drive): Change type to grub_uint8_t. (grub_root_drive): Likewise. * kern/i386/pc/startup.S (grub_boot_drive): Change size to byte, remove alignment. (grub_root_drive): Change size to byte. (grub_start_addr): Remove. (grub_end_addr): Likewise. (grub_apm_bios_info): Likewise. 2009-05-21 Felix Zielcke * normal/i386: Remove. * normal/powerpc: Likewise. * normal/sparc64: Likewise. * normal/x86_64: Likewise. 2009-05-19 Vladimir Serbinenko * conf/x86_64-efi.rmk (linux_mod_ASFLAGS): Add missing variable * loader/i386/linux_trampoline.S: Fix indentation * loader/i386/xnu_helper.S: Likewise 2009-05-18 Colin D Bennett Display error messages when parsing a Lua statement fails. Previously, executing a syntactically invalid statement like ")foo" or "bar;" would silently fail. * script/lua/grub_main.c (handle_lua_error): New function. (grub_lua_parse_line): Improved reporting of Lua parser and execution errors. 2009-05-17 Vladimir Serbinenko Remove -Werror which causes build to fail on some systems * conf/i386-pc.rmk (xnu_mod_CFLAGS): Remove -Werror -Wall * conf/i386-efi.rmk (xnu_mod_CFLAGS): Likewise * conf/x86_64-efi.rmk (xnu_mod_CFLAGS): Likewise 2009-05-17 Vladimir Serbinenko trampoline for linux on 64-bit platform * conf/x86_64-efi.rmk (linux_mod_SOURCES): added loader/i386/efi/linux_trampoline.S * include/grub/x86_64/efi/loader.h (grub_linux_real_boot): removed declaration * kern/x86_64/efi/startup.S (grub_linux_real_boot): moved from here * loader/i386/linux_trampoline.S: moved here * loader/i386/efi/linux.c (allocate_pages): reserve space for trampoline (jumpvector): removed (grub_linux_trampoline_start): new declaration (grub_linux_trampoline_end): likewise (grub_linux_boot): use trampoline when on 64-bit platform * loader/i386/linux.c: likewise 2009-05-16 Pavel Roskin * script/lua/grub_lib.c (grub_lua_getenv): Make name and value const to avoid a warning. (grub_lua_setenv): Likewise. * script/lua/grub_main.c (grub_lua_parse_line): Use size_t for lmsg to fix a warning. 2009-05-16 Felix Zielcke * conf/i386.rmk (setjmp_mod_CFLAGS): Rename to ... (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS). * conf/x86_64-efi.rmk (setjmp_mod_CFLAGS): Rename to ... (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS). * conf/powerpc-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ... (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS). * conf/sparc64-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ... (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS). 2009-05-16 Felix Zielcke * util/grub-mkconfig.in: Export GRUB_TERMINAL_INPUT. 2009-05-16 Bean * conf/common.rmk (pkglib_MODULES): Add lua.mod. (lua_mod_SOURCES): New variable. (lua_mod_CFLAGS): Likewise. (lua_mod_LDFLAGS): Likewise. * conf/i386.rmk (pkglib_MODULES): Add setjmp.mod. (setjmp_mod_SOURCES): New variable. (setjmp_mod_CFLAGS): Likewise. (setjmp_LDFLAGS): Likewise. * conf/x86_64-efi.rmk (pkglib_MODULES): Add setjmp.mod. (setjmp_mod_SOURCES): New variable. (setjmp_mod_CFLAGS): Likewise. (setjmp_LDFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod. (setjmp_mod_SOURCES): New variable. (setjmp_mod_CFLAGS): Likewise. (setjmp_LDFLAGS): Likewise. * conf/sparc64-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod. (setjmp_mod_SOURCES): New variable. (setjmp_mod_CFLAGS): Likewise. (setjmp_LDFLAGS): Likewise. * normal/i386/setjmp.S: Moved from here ... * lib/i386/setjmp.S: ... Moved here * normal/x86_64/setjmp.S: Moved from here ... * lib/x86_64/setjmp.S: ... Moved here * normal/powerpc/setjmp.S: Moved from here ... * lib/powerpc/setjmp.S: ... Moved here * normal/sparc64/setjmp.S: Moved from here ... * lib/sparc64/setjmp.S: ... Moved here * include/grub/i386/setjmp.h (grub_setjmp): Don't use attribute returns_twice in mingw. * script/lua/grub_lib.c: New file. * script/lua/grub_lib.h: Likewise. * script/lua/grub_lua.h: Likewise. * script/lua/grub_main.c: Likewise. * script/lua/lapi.c: Likewise. * script/lua/lapi.h: Likewise. * script/lua/lauxlib.c: Likewise. * script/lua/lauxlib.h: Likewise. * script/lua/lbaselib.c: Likewise. * script/lua/lcode.c: Likewise. * script/lua/lcode.h: Likewise. * script/lua/ldblib.c: Likewise. * script/lua/ldebug.c: Likewise. * script/lua/ldebug.h: Likewise. * script/lua/ldo.c: Likewise. * script/lua/ldo.h: Likewise. * script/lua/ldump.c: Likewise. * script/lua/lfunc.c: Likewise. * script/lua/lfunc.h: Likewise. * script/lua/lgc.c: Likewise. * script/lua/lgc.h: Likewise. * script/lua/linit.c: Likewise. * script/lua/liolib.c: Likewise. * script/lua/llex.c: Likewise. * script/lua/llex.h: Likewise. * script/lua/llimits.h: Likewise. * script/lua/lmathlib.c: Likewise. * script/lua/lmem.c: Likewise. * script/lua/lmem.h: Likewise. * script/lua/loadlib.c: Likewise. * script/lua/lobject.c: Likewise. * script/lua/lobject.h: Likewise. * script/lua/lopcodes.c: Likewise. * script/lua/lopcodes.h: Likewise. * script/lua/loslib.c: Likewise. * script/lua/lparser.c: Likewise. * script/lua/lparser.h: Likewise. * script/lua/lstate.c: Likewise. * script/lua/lstate.h: Likewise. * script/lua/lstring.c: Likewise. * script/lua/lstring.h: Likewise. * script/lua/lstrlib.c: Likewise. * script/lua/ltable.c: Likewise. * script/lua/ltable.h: Likewise. * script/lua/ltablib.c: Likewise. * script/lua/ltm.c: Likewise. * script/lua/ltm.h: Likewise. * script/lua/lua.h: Likewise. * script/lua/luaconf.h: Likewise. * script/lua/lualib.h: Likewise. * script/lua/lundump.c: Likewise. * script/lua/lundump.h: Likewise. * script/lua/lvm.c: Likewise. * script/lua/lvm.h: Likewise. * script/lua/lzio.c: Likewise. * script/lua/lzio.h: Likewise. 2009-05-16 Bean * include/grub/kernel.h (grub_module_header_types): Add type OBJ_TYPE_CONFIG. * kern/main.c (grub_load_config): New function. (grub_main): Call grub_load_config to read boot config. * grub-mkimage (generate_image): New parameter config_path. (options): New option --config. (main): Parse --config option, and pass it to generate_image. 2009-05-14 Christian Franke * commands/i386/pc/drivemap_int13h.S: Add missing EXT_C for symbols. This fixes build on Cygwin. 2009-05-14 Pavel Roskin * commands/i386/pc/drivemap_int13h.S: Eliminate unconditional jump. This saves two bytes, so the typical case of 2 swapped drives would fit 32 bytes. 2009-05-13 Pavel Roskin * loader/i386/multiboot.c (grub_multiboot): Cast mmap_addr to grub_uint32_t to avoid a warning. * loader/i386/linux.c (allocate_pages): When assigning real_mode_mem, cast through grub_size_t to fix a warning. The code already makes sure that the value would fit a pointer. (grub_linux_setup_video): Cast render_target->data to grub_size_t to fix a warning. 2009-05-13 Javier Martín * commands/i386/pc/drivemap.c: New file - implement drivemap command. * commands/i386/pc/drivemap_int13h.S: New file - int13 handler. * conf/i386-pc.rmk: Add drivemap.c and drivemap_int13h.S. 2009-05-13 Pavel Roskin * util/i386/pc/grub-setup.c (setup): Remove unused variable embedding_area_exists. 2009-05-13 Robert Millan * util/i386/pc/grub-setup.c (setup): Restructure code flow to make it easier to understand / work with. Improve warning messages for cases where there's no embedding area, or when it is too small (or core.img too large). 2009-05-13 Pavel Roskin * loader/i386/pc/multiboot2.c: Add necessary includes for grub_multiboot2_real_boot(). * fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the PX record is always little-endian. We only need the lower 2 bytes of the mode. * fs/cpio.c: Use the same name "struct head" for tar and cpio to facilitate code reuse. (grub_cpio_mount): Use "struct head", not a char buffer. This fixes a warning reported by gcc 4.4. * kernel/disk.c (grub_disk_read): Use void pointer for the buffer. (grub_disk_write): Use const void pointer for the buffer. Adjust all callers. Remove unnecessary casts. 2009-05-10 Robert Millan * util/i386/pc/grub-install.in: Update copyright year. 2009-05-09 Vladimir Serbinenko gptsync * commands/gptsync.c: new file * conf/common.rmk (pkglib_MODULES): add gptsync.mod (gptsync_mod_SOURCES): new variable (gptsync_mod_CFLAGS): likewise (gptsync_mod_LDFLAGS): likewise * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_NTFS): new definition (GRUB_PC_PARTITION_TYPE_HFS): likewise * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/gptsync.c * conf/i386-ieee1275.rmk: likewise * conf/i386-pc.rmk: likewise * conf/powerpc-ieee1275.rmk: likewise 2009-05-09 Vladimir Serbinenko Fixed grub-emu * kern/dl.c (grub_dl_ref): omit when compiling grub-emu (grub_dl_ref): likewise 2009-05-08 Robert Millan * util/i386/pc/grub-setup.c (setup): Factorize find_usable_region(), split in two functions (one for msdos and one for gpt). 2009-05-08 Pavel Roskin * disk/raid.c (grub_raid_block_xor): Make buf2 constant, it's not modified. * disk/raid6_recover.c (grub_raid6_recover): Fix warnings about uninitialized err[0] and err[1]. Rename them to bad1 and bad2. Initialize them with -1. Add sanity check for bad1. Eliminate nerr variable. 2009-05-08 David S. Miller * util/sparc64/ieee1275/grub-ofpathname.c (main): Set progname. 2009-05-06 Robert Millan * util/i386/pc/grub-setup.c (setup): Fix check for embed region existence. 2009-05-05 Felix Zielcke * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `kern/rescue_reader.c', `kern/rescue_parser.c' and `normal/autofs.c'. 2009-05-05 David S. Miller * util/sparc64/ieee1275/grub-install.in: Fix sed arg quoting. 2009-05-05 Pavel Roskin * include/grub/dl.h [GRUB_UTIL]: Provide inline implementations of grub_dl_ref() and grub_dl_unref(). * commands/parttool.c: Remove preprocessor conditionals around grub_dl_ref() and grub_dl_unref(). * fs/affs.c: Likewise. * fs/afs.c: Likewise. * fs/cpio.c: Likewise. * fs/ext2.c: Likewise. * fs/fat.c: Likewise. * fs/hfs.c: Likewise. * fs/hfsplus.c: Likewise. * fs/iso9660.c: Likewise. * fs/jfs.c: Likewise. * fs/minix.c: Likewise. * fs/ntfs.c: Likewise. * fs/reiserfs.c: Likewise. * fs/sfs.c: Likewise. * fs/udf.c: Likewise. * fs/ufs.c: Likewise. * fs/xfs.c: Likewise. * include/grub/dl.h: Likewise. * loader/xnu.c: Likewise. 2009-05-04 Pavel Roskin * commands/acpi.c: Remove unused variable my_mod. * partmap/amiga.c: Likewise. * partmap/apple.c: Likewise. * partmap/gpt.c: Likewise. * partmap/pc.c: Likewise. * partmap/sun.c: Likewise. * term/gfxterm.c: Likewise. * term/i386/pc/vesafb.c: Likewise. * term/i386/pc/vga.c: Likewise. 2009-05-04 David S. Miller * kern/ieee1275/openfw.c (grub_children_iterate): Fix string pointer args to grub_ieee1275_get_property(). * conf/sparc64-ieee1275.rmk: Fix build due to missing '\'. * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom devices, and do not traverse down under controller nodes. * disk/ieee1275/ofdisk.c (compute_dev_path): New. (grub_ofdisk_open): Use it to un-escape "," characters. * kern/disk.c (find_part_sep): New. (grub_disk_open): Use it to find the first non-escaped ',' character in the disk name. * util/ieee1275/devicemap.c (escape_of_path): New. (grub_util_emit_devicemap_entry): Use it. * util/sparc64/ieee1275/grub-install.in: Update script to strip partition specifiers properly by not triggering on '\' escaped ',' characters. 2009-05-04 Robert Millan * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): Set to 0x300. * loader/i386/linux.c (vga_modes, linux_vesafb_res): Add a few resolutions. (linux_vesafb_modes): Add a lot of additional modes to the list (based on documentation from Wikipedia). 2009-05-04 Pavel Roskin * disk/ata.c: Spelling fixes. * disk/raid.c: Likewise. * disk/usbms.c: Likewise. * disk/dmraid_nvidia.c: Likewise. * kern/ieee1275/openfw.c: Likewise. * kern/ieee1275/init.c: Likewise. * kern/ieee1275/cmain.c: Likewise. * boot/i386/pc/cdboot.S: Likewise. * video/readers/png.c: Likewise. * video/i386/pc/vbe.c: Likewise. * fs/udf.c: Likewise. * fs/hfs.c: Likewise. * fs/reiserfs.c: Likewise. * efiemu/runtime/efiemu.c: Likewise. * efiemu/main.c: Likewise. * efiemu/mm.c: Likewise. * include/grub/elf.h: Likewise. * include/grub/xnu.h: Likewise. * include/grub/usbdesc.h: Likewise. * include/grub/usb.h: Likewise. * include/grub/script_sh.h: Likewise. * include/grub/lib/LzmaEnc.h: Likewise. * include/grub/efiemu/efiemu.h: Likewise. * include/grub/command.h: Likewise. * normal/menu.c: Likewise. * normal/main.c: Likewise. * normal/datetime.c: Likewise. * bus/usb/uhci.c: Likewise. * mmap/i386/uppermem.c: Likewise. * mmap/mmap.c: Likewise. * commands/acpi.c: Likewise. * commands/test.c: Likewise. * partmap/apple.c: Likewise. * font/font.c: Likewise. * loader/sparc64/ieee1275/linux.c: Likewise. * loader/macho.c: Likewise. * loader/i386/bsd_trampoline.S: Likewise. * loader/i386/bsd.c: Likewise. * loader/xnu.c: Likewise. * term/i386/pc/vesafb.c: Likewise. * term/usb_keyboard.c: Likewise. * util/resolve.c: Likewise. * util/getroot.c: Likewise. 2009-05-04 Felix Zielcke * conf/i386-pc.rmk (libpkg_DATA): Rename to pkglib_DATA. 2009-05-04 Robert Millan * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_cmd_linux): Fix build error. 2009-05-04 Robert Millan * loader/i386/linux.c (grub_cmd_linux): Make "vga=" compatibility parameter only available on BIOS. 2009-05-04 Vladimir Serbinenko Removed wrong semicolon in declaration * grub/misc.h (grub_dprintf): remove semicolon 2009-05-04 Robert Millan * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT): New macro. (grub_linux_boot): Don't check for `linux_vesafb_modes' bounds (this is done by grub_cmd_linux() now). [! GRUB_ASSUME_LINUX_HAS_FB_SUPPORT]: If "vga=" parameter wasn't set, restore video to text mode. (grub_cmd_linux): Default `vid_mode' initialization to 0, which indicates lack of "vga=" parameter. "vga=0" is mapped to `GRUB_LINUX_VID_MODE_NORMAL'. 2009-05-04 Felix Zielcke * conf/i386-efi.rmk (grub_emu_SOURCES): Remove `normal/execute.c', `normal/lexer.c', `kern/rescue.c', `normal/function.c', `normal/misc.c' and `normal/script.c'. Add `kern/rescue_reader.c', `kern/rescue_parser.c', `script/sh/main.c', `script/sh/execute.c', `script/sh/function.c', `script/sh/lexer.c', `script/sh/script.c' and `grub_script.tab.c'. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. * Makefile.in: Remove duplicated 2008 in Copyright line. 2009-05-04 Robert Millan * util/misc.c (grub_util_warn): New function. Emits a warning unconditionally. * include/grub/util/misc.h (grub_util_warn): New declaration. * util/i386/pc/grub-install.in: Understand --force and pass it down to grub-setup. * util/i386/pc/grub-setup.c (main): Understand --force and pass it down to setup(). (setup): Improve error messages and add warnings when requested to install in odd layouts. Refuse to install using blocklists unless --force was set. 2009-05-04 martin f. krafft * disk/raid.c (grub_raid_scan_device): Improve debug message. 2009-05-04 Vladimir Serbinenko Updated copyright year * fs/hfsplus.c: updated copyright year 2009-05-04 Vladimir Serbinenko HFS+ UUID * fs/hfsplus.c (grub_hfsplus_volheader): added num_serial field in the space previously used by unused3 (grub_hfsplus_uuid): new function (grub_hfsplus_fs): added uuid field 2009-05-03 Pavel Roskin * disk/ata.c: Don't cast mod to void in GRUB_MOD_INIT to suppress warnings. It's no longer needed. * disk/host.c: Likewise. * disk/ata_pthru.c: Likewise. * disk/loopback.c: Likewise. * hook/datehook.c: Likewise. * parttool/pcpart.c: Likewise. * fs/i386/pc/pxe.c: Likewise. * fs/ntfscomp.c: Likewise. * efiemu/main.c: Likewise. * mmap/mmap.c: Likewise. * commands/crc.c: Likewise. * commands/hexdump.c: Likewise. * commands/hdparm.c: Likewise. * commands/acpi.c: Likewise. * commands/echo.c: Likewise. * commands/minicmd.c: Likewise. * commands/blocklist.c: Likewise. * commands/memrw.c: Likewise. * commands/loadenv.c: Likewise. * commands/usbtest.c: Likewise. * commands/lsmmap.c: Likewise. * commands/boot.c: Likewise. * commands/parttool.c: Likewise. * commands/configfile.c: Likewise. * commands/search.c: Likewise. * commands/ieee1275/suspend.c: Likewise. * commands/cat.c: Likewise. * commands/i386/pc/pxecmd.c: Likewise. * commands/i386/pc/play.c: Likewise. * commands/i386/pc/halt.c: Likewise. * commands/i386/pc/vbeinfo.c: Likewise. * commands/i386/pc/vbetest.c: Likewise. * commands/lspci.c: Likewise. * commands/date.c: Likewise. * commands/handler.c: Likewise. * commands/ls.c: Likewise. * commands/test.c: Likewise. * commands/cmp.c: Likewise. * commands/efi/loadbios.c: Likewise. * commands/efi/fixvideo.c: Likewise. * commands/halt.c: Likewise. * commands/help.c: Likewise. * commands/reboot.c: Likewise. * hello/hello.c: Likewise. * script/sh/main.c: Likewise. * loader/xnu.c: Likewise. * term/terminfo.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/usb_keyboard.c: Likewise. 2009-05-03 David S. Miller * normal/menu.c: Include grub/parser.h 2009-05-03 Pavel Roskin * mmap/efi/mmap.c (grub_mmap_malign_and_register): Return void*, not char*. * mmap/i386/mmap.c (grub_mmap_malign_and_register): Likewise. Suggested by Javier Martín * util/i386/pc/grub-mkrescue.in: Allow for the case when efiemu??.o doesn't exist. * util/i386/pc/grub-install.in: Likewise. Use "cp -f" for copying. 2009-05-03 Bean Vladimir Serbinenko FreeBSD 64-bit support * conf/i386-pc.rmk (bsd_mod_SOURCES): add loader/i386/bsd_helper.S and loader/i386/bsd_trampoline.S (bsd_mod_ASFLAGS): new variable * include/grub/i386/bsd.h (FREEBSD_MODINFOMD_SMAP): new definition (FREEBSD_MODTYPE_KERNEL64): likewise (grub_bsd64_trampoline_start): likewise (grub_bsd64_trampoline_end): likewise (grub_bsd64_trampoline_selfjump): likewise (grub_bsd64_trampoline_gdt): likewise * include/grub/i386/loader.h (grub_unix_real_boot): moved from here ... * include/grub/i386/bsd.h (grub_unix_real_boot): ... moved here * kern/i386/loader.S (grub_unix_real_boot): moved from here ... * loader/i386/bsd_helper.S (grub_unix_real_boot): moved here * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type of "attrib" member * loader/i386/bsd_pagetable.c: new file * loader/i386/bsd_trampoline.S: likewise * loader/i386/bsd.c (ALIGN_QWORD): new macro (ALIGN_VAR): likewise (entry_hi): new variable (kern_end_mdofs): likewise (is_64bit): likewise (grub_freebsd_add_meta): use ALIGN_VAR (grub_e820_mmap): new declaration (grub_freebsd_add_mmap): new function (grub_freebsd_add_meta_module): support 64 bit kernels (grub_freebsd_list_modules): use ALIGN_VAR (gdt_descriptor): new declaration (grub_freebsd_boot): support 64 bit kernels (grub_bsd_elf64_hook): new function (grub_bsd_load_elf): support elf64 2009-05-03 Bean * script/sh/execute.c (grub_script_execute_cmdif): Reset grub_errno after we get the result of if statement. 2009-05-03 Bean * Makefile.in (enable_efiemu): New variable. * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is set. (efiemu32.o): Use macro $< for source file, add $(srcdir) to include path. (efi64_c.o): Use macro $< for source file, add $(srcdir) to include path, add -mno-red-zone option. (efiemu64_s.o): Likewise. (efiemu64.o): Use macro $^ for source file. * configure.ac (--enable-efiemu): New option. 2009-05-03 Vladimir Serbinenko xnu support * conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h (pkglib_MODULES): add xnu.mod (xnu_mod_SOURCES): new variable (xnu_mod_CFLAGS): likewise (xnu_mod_LDFLAGS): likewise (xnu_mod_ASFLAGS): likewise * conf/i386-pc.rmk: likewise * conf/x86_64-efi.rmk: likewise * include/grub/efi/efi.h (grub_efi_finish_boot_services): new declaration * include/grub/i386/macho.h: new file * include/grub/i386/xnu.h: likewise * include/grub/macho.h: likewise * include/grub/machoload.h: likewise * include/grub/x86_64/macho.h: likewise * include/grub/x86_64/xnu.h: likewise * include/grub/xnu.h: likewise * kern/efi/efi.c (grub_efi_finish_boot_services): new function * kern/efi/mm.c (MAX_HEAP_SIZE): increase * loader/i386/efi/xnu.c: new file * loader/i386/pc/xnu.c: likewise * loader/i386/xnu.c: likewise * loader/i386/xnu_helper.S: likewise * loader/macho.c: likewise * loader/xnu.c: likewise * loader/xnu_resume.c: likewise * util/grub-dumpdevtree: likewise * include/grub/i386/pit.h: include grub/err.h (grub_pit_wait): export * util/grub.d/30_os-prober.in: support Darwin/Mac OS X 2009-05-02 Vladimir Serbinenko Efiemu * conf/i386-pc.rmk: new modules efiemu, efiemu_acpi, efiemu_pnvram, _linux_efi, linux_efi. new files in grub-emu new targets efiemu32.o and efiemu64.o * loader/linux_normal_efiemu.c: likewise * loader/i386/efi/linux.c: added preliminary efiemu support * util/i386/pc/grub-install.in: add efiemu??.o to the list of files to copy * include/grub/autoefi.h: new file * include/grub/i386/efiemu.h: likewise * include/grub/i386/pc/efiemu.h: likewise * include/grub/efi/api.h: add LL suffix when necessary new definitions relating to tables * include/grub/efiemu/efiemu.h: new file * include/grub/efiemu/runtime.h: likewise * efiemu/prepare.c: likewise * efiemu/loadcore_common.c: likewise * efiemu/loadcore64.c: likewise * efiemu/runtime/efiemu.sh: likewise * efiemu/runtime/efiemu.S: likewise * efiemu/runtime/efiemu.c: likewise * efiemu/runtime/config.h: likewise * efiemu/prepare32.c: likewise * efiemu/main.c: likewise * efiemu/modules/pnvram.c: likewise * efiemu/modules/i386: likewise * efiemu/modules/i386/pc: likewise * efiemu/modules/acpi.c: likewise * efiemu/i386/pc/cfgtables.c: likewise * efiemu/i386/loadcore64.c: likewise * efiemu/i386/loadcore32.c: likewise * efiemu/prepare64.c: likewise * efiemu/loadcore.c: likewise * efiemu/symbols.c: likewise * efiemu/mm.c: likewise * efiemu/loadcore32.c: likewise 2009-05-02 Vladimir Serbinenko ACPI spoofing * commands/acpi.c: new file * commands/i386/pc/acpi.c: likewise * commands/efi/acpi.c: likewise * include/grub/acpi.h: likewise * conf/i386-pc.rmk (pkglib_MODULES): added acpi.mod (acpi_mod_SOURCES): new variable (acpi_mod_CFLAGS): likewise (acpi_mod_LDFLAGS): likewise * conf/i386-efi.rmk: likewise * conf/x86_64-efi.rmk: likewise 2009-05-02 Vladimir Serbinenko Missing part from mmap patch * mmap/efi/mmap.c (grub_machine_mmap_unregister): renamed to (grub_mmap_unregister) (grub_mmap_free_and_unregister): use grub_mmap_register 2009-05-02 Vladimir Serbinenko Mmap services * loader/i386/efi/linux.c (grub_linux_boot): use grub_mmap_iterate * loader/i386/linux.c (find_mmap_size): likewise (allocate_pages): likewise * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): likewise (grub_fill_multiboot_mmap): likewise (grub_multiboot): use grub_mmap_get_lower and grub_mmap_get_upper * loader/i386/pc/linux.c (grub_cmd_linux): use grub_mmap_get_lower * include/grub/i386/bsd.h (OPENBSD_MMAP_AVAILABLE): new definition (OPENBSD_MMAP_RESERVED): likewise * include/grub/i386/pc/memory.h: include grub/memory.h (grub_lower_mem): removed (grub_upper_mem): likewise (GRUB_MACHINE_MEMORY_ACPI): new definition (GRUB_MACHINE_MEMORY_NVS): likewise (GRUB_MACHINE_MEMORY_MAX_TYPE): likewise (GRUB_MACHINE_MEMORY_HOLE): likewise (grub_machine_mmap_register): likewise (grub_machine_mmap_unregister): likewise (grub_machine_get_upper): likewise (grub_machine_get_lower): likewise (grub_machine_get_post64): likewise * include/grub/i386/efi/memory.h: new file * include/grub/x86_64/efi/memory.h: likewise * include/grub/efi/memory.h: likewise * conf/i386-pc.rmk (pkglib_MODULES): added mmap.mod (mmap_mod_SOURCES): new variable (mmap_mod_LDFLAGS): likewise (mmap_mod_ASFLAGS): likewise * conf/i386-coreboot.rmk: likewise * conf/i386-ieee1275.rmk: likewise * conf/i386-efi.rmk: likewise * conf/x86_64-efi.rmk: likewise * include/grub/types.h (UINT_TO_PTR): new macro (PTR_TO_UINT32): likewise (PTR_TO_UINT64): likewise * include/grub/memory.h: new file * mmap/i386/pc/mmap.c: likewise * mmap/i386/pc/mmap_helper.S: likewise * mmap/i386/uppermem.c: likewise * mmap/mmap.c: likewise * mmap/efi/mmap.c: likewise * kern/i386/coreboot/init.c (grub_machine_init): don't use grub_upper_mem * kern/i386/pc/init.c (grub_lower_mem): removed variable (grub_upper_mem): likewise (grub_machine_init): don't use grub_upper_mem, make grub_lower_mem local * loader/i386/bsd.c (grub_openbsd_boot): use grub_mmap_get_lower, grub_mmap_iterate and grub_mmap_get_upper (grub_netbsd_boot): use grub_mmap_get_lower and grub_mmap_get_upper 2009-05-02 Bean * conf/common.rmk (grub_script.tab.c): Change normal/parser.y to script/sh/parser.y. (pkglib_MODULES): Add normal.mod and sh.mod. (normal_SOURCES): New variable. (normal_mod_CFLAGS): Likewise. (normal_mod_LDFLAGS): Likewise. (sh_mod_SOURCES): Likewise. (sh_mod_CFLAGS): Likewise. (sh_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to script/sh/lexer.c_DEPENDENCIES. (kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c, kern/rescue_reader.c and kern/rescue_parser.c. (kernel_img_HEADERS): Remove rescue.h, add reader.h. (grub_emu_SOURCES): Change source files. (pkglib_MODULES): Remove normal.mod. (normal_SOURCES): Removed. (normal_mod_CFLAGS): Likewise. (normal_mod_LDFLAGS): Likewise. * conf/i386-coreboot.rmk: Likewise. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1276.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * include/grub/command.h (grub_command_execute): New inline function. * include/grub/menu.h (grub_menu_entry): Removed commands field. * include/grub/normal.h: Remove . (grub_fs_module_list): Moved to normal/autofs.c. (grub_exit_env): Removed. (grub_command_execute): Likewise. (grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed parameter script. (read_command_list): New function declaration. (read_fs_list): Likewise. * include/parser.h: Include . (grub_parser_split_cmdline): Change type of getline parameter. (grub_parser): New structure. (grub_parser_class): New variable. (grub_parser_execute): New function declaration. (grub_register_rescue_parser): Likewise. (grub_parser_register): New inline function. (grub_parser_unregister): Likewise. (grub_parser_get_current): Likewise. (grub_parser_set_current): Likewise. * include/grub/reader.h: New file. * kern/reader.c: Likewise. * kern/rescue_parser.c: Likewise. * kern/rescue_reader.c: Likewise. * normal/autofs.c: Likewise. * normal/dyncmd.c: Likewise. * include/grub/rescue.h: Removed. * normal/command.h: Likewise. * include/grub/script.h: Moved to ... * include/grub/script_sh.h: ... Moved here. * normal/execute.c: Moved to ... * script/sh/execute.c: ... Moved here. * normal/function.c: Moved to ... * script/sh/function.c: ... Moved here. * normal/lexer.c: Moved to ... * script/sh/lexer.c: ... Moved here. * normal/parser.y: Moved to ... * script/sh/parser.y: ... Moved here. * normal/script.c: Moved to ... * script/sh/script.c: ... Moved here. * normal/main.c: Remove and , include . (grub_exit_env): Removed. (fs_module_list): Moved to normal/autofs.c. (grub_file_getline): Don't handle comment here. (free_menu): Skip removed field entry->commands. (grub_normal_menu_addentry): Removed as grub_menu_entry, removed script parameter. (read_config_file): Removed nested parameter, change getline function. (grub_enter_normal_mode): Removed. (grub_dyncmd_dispatcher): Moved to normal/dyncmd.c. (read_command_list): Likewise. (autoload_fs_module): Moved to normal/autofs.c. (read_fs_list): Likewise. (reader_nested): New variable. (grub_normal_execute): Run parser.sh to switch to sh parser. (grub_cmd_rescue): Removed. (cmd_normal): Removed. (grub_cmd_normal): Unregister itself at the beginning. Don't register rescue command. (grub_cmdline_run): New function. (grub_normal_reader_init): Likewise. (grub_normal_read_line): Likewise. (grub_env_write_pager): Likewise. (cmdline): New variable. (grub_normal_reader): Likewise. (GRUB_MOD_INIT): Register normal reader and set as current, register pager hook, register normal command with grub_register_command_prio, so that it won't show up in command.lst. (GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear grub_fs_autoload_hook. * normal/menu.c: Remove , add . (grub_menu_execute_entry): Replace grub_script_execute with grub_parser_execute, change parameter to grub_command_execute. * normal/menu_text.c: Remove . * normal/menu_entry.c: Remove , add and . (run): Change editor_getline to use new parser interface. Change parameter to grub_command_execute. * kern/main.c: Remove , include , and . (grub_load_normal_mode): Execute normal command. (grub_main): Call grub_register_core_commands, grub_register_rescue_parser and grub_register_rescue_reader, use grub_reader_loop to enter input loop. * kern/parser.c (grub_parser_split_cmdline): Change type of getline parameter. (grub_parser_class): New variable. (grub_parser_execute): New function. * loader/i386/multiboot.c: Remove . * loader/multiboot2.c: Likewise. * loader/sparc64/ieee1275/linux.c: Likewise. * util/grub-emu.c (read_command_list): New dummy function. 2009-05-02 Robert Millan * util/deviceiter.c (grub_util_iterate_devices): Increase max drive count to 16 for CCISS and IDA. 2009-05-02 Robert Millan * normal/menu_text.c (grub_wait_after_message): Print a newline after waiting for user input. * loader/i386/linux.c: Include `'. (grub_cmd_linux): Improve the error message about `ask' mode, by waiting for user input so it's not missed (we can do this, since user requested interaction). 2009-05-02 Vladimir Serbinenko Added missing lst to grub-mkrescue * util/i386/pc/grub-mkrescue.in: added ${input_dir}/handler.lst and ${input_dir}/parttool.lst 2009-04-30 David S. Miller * util/hostdisk.c (device_is_wholedisk): New function. (grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is zero only if device_is_wholedisk() returns true. * util/hostdisk.c (convert_system_partition_to_system_disk): Handle virtual disk devices named /dev/vdiskX as found on sparc and powerpc. * kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If lettered partition specifier is found, convert to numbered. 2009-04-29 David S. Miller * include/grub/powerpc/ieee1275/memory.h: Include ieee1275.h. * include/grub/sparc64/ieee1275/memory.h: Likewise. * normal/command.c: Add missing newline at end of file. * commands/lsmmap.c (grub_cmd_lsmmap): Add casts to avoid printf warnings. * kern/ieee1275/openfw.c (grub_claimmap): Likewise. * disk/ieee1275/ofdisk.c (grub_ofdisk_open, grub_ofdisk_close, grub_ofdisk_read): Likewise, and deal similarly with the fact that ihandles have a 32-bit type but need to be stored in a "void *". 2009-04-28 Pavel Roskin * disk/fs_uuid.c (grub_fs_uuid_open): Use parent->data for dev, not disk. Adjust all dependencies. (grub_fs_uuid_close): Use grub_device_close(), not grub_disk_close(). * disk/fs_uuid.c (grub_fs_uuid_open): Allocate memory to copy parent's partition, don't copy it by reference, as it gets freed on close. 2009-04-27 Vladimir Serbinenko Preboot hooks support * commands/boot.c (struct grub_preboot_t): new declaration (preboots_head): new variable (preboots_tail): likewise (grub_loader_register_preboot_hook): new function (grub_loader_unregister_preboot_hook): likewise (grub_loader_set): launch preboot hooks * include/grub/loader.h (grub_loader_preboot_hook_prio_t): new type (grub_loader_register_preboot_hook): new declaration (grub_loader_unregister_preboot_hook): likewise 2009-04-27 Vladimir Serbinenko Warning fix * disk/scsi.c (grub_scsi_open): added missing cast when calling grub_dprintf 2009-04-26 Vladimir Serbinenko Bug and warning fixes * include/grub/i386/pc/init.h (grub_stop_floppy): added missing declaration * commands/test.c (test_parse): fixed bug with file tests and corrected declaration of find_file 2009-04-26 Pavel Roskin * Makefile.in: Don't install empty manual pages if help2man is missing. Use help2man option for output, not shell redirection. 2009-04-26 David S. Miller * util/grub-mkdevicemap.c (make_device_map): Add missing NESTED_FUNC_ATTR to process_device(). 2009-04-25 Vladimir Serbinenko Test command * commands/test.c: rewritten to use bash-like test 2009-04-25 Vladimir Serbinenko Parttool autoloading and improvements * Makefile.in (pkglib_DATA): add parttool.lst (parttool.lst): new target * genmk.rb: generate parttool-* (CLEANFILES): add #{parttool} (PARTTOOLFILES): new variable * genparttoollist.sh: new file * parttool/pcpart.c (grub_pcpart_boot): more feedback (grub_pcpart_type): likewise * commands/parttool.c (helpmsg): new variable (grub_cmd_parttool): output help if not enough arguments are supplied autoload modules (GRUB_MOD_INIT(parttool)): use helpmsg 2009-04-24 David S. Miller Avoiding opening same device multiple times in device iterator. * kern/device.c: (grub_device_iterate): Define struct part_ent, and use it to build a list of partitions in iterate_disk() and iterate_partition(). * disk/fs_uuid.c (grub_fs_uuid_close): Call grub_disk_close() on disk->data. * disk/ieee1275/nand.c (grub_nand_iterate): Return grub_devalias_iterate() result instead of unconditional 0. * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Likewise. Also, capture hook return value, either directly or via grub_children_iterate(), and propagate to caller. * include/grub/ieee1275/ieee1275.h (grub_devalias_iterate, grub_children_iterate): Return value is now 'int' instead of 'grub_err_t'. * kern/ieee1275/openfw.c (grub_children_iterate): Fix to behave like a proper iterator, stopping when hooks return non-zero. (grub_devalias_iterate): Likewise. 2009-04-23 David S. Miller * kern/sparc64/ieee1275/openfw.c: Unused, delete. 2009-04-22 David S. Miller * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): If size_cells is larger than address_cells, use that value for address_cells too. * include/grub/ieee1275/ieee1275.h (IEEE1275_MAX_PROP_LEN, IEEE1275_MAX_PATH_LEN): Define. * kern/ieee1275/openfw.c (grub_children_iterate): Dynamically allocate 'childtype', 'childpath', 'childname', and 'fullname'. (grub_devalias_iterate): Dynamically allocate 'aliasname' and 'devtype'. Explicitly NULL terminate devalias expansion. * util/sparc64/ieee1275/misc.c: New file. * util/sparc64/ieee1275/grub-setup.c: New file. * util/sparc64/ieee1275/grub-ofpathname.c: New file. * util/sparc64/ieee1275/grub-mkimage.c: New file. * util/sparc64/ieee1275/grub-install.in: New file. * util/ieee1275/ofpath.c: New file. * util/ieee1275/devicemap.c: New file. * util/devicemap.c: New file. * util/deviceiter.c: New file. * kern/sparc64/ieee1275/init.c: New file. * include/grub/util/ofpath.h: New file. * include/grub/util/deviceiter.h: New file. * util/grub-mkdevicemap.c: Include deviceiter.h. Implement using grub_util_emit_devicemap_entry and grub_util_iterate_devices. * conf/i386-corebook.rmk: Build util/deviceiter.c and util/devicemap.c into grub-mkdevicemap * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Add rules to build boot block images and installation utilities. Build kernel as image instead of as elf binary. Use common rules as much as possible. 2009-04-19 Vladimir Serbinenko Correct GPT definition * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type of "attrib" member 2009-04-19 Felix Zielcke * INSTALL: Replace `autogen.sh' with `./autogen.sh'. 2009-04-19 David S. Miller * loader/sparc64/ieee1275/linux.c: Include grub/command.h (grub_rescue_cmd_linux): Rename to... (grub_cmd_linux): and fix prototype. (grub_rescue_cmd_initrd): Rename to... (grub_cmd_initrd): and fix prototype. (cmd_linux, cmd_initrd): New. (GRUB_MOD_INIT(linux)): Use grub_register_command(). (GRUB_MOD_FINI(linux): Use grub_unregister_command(). 2009-04-17 Pavel Roskin * bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf format. (grub_ohci_transfer): Likewise. * bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix. * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix return without a value. Fix inconsistent indentation. * fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to match struct grub_fs. * disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR. * bus/usb/ohci.c (grub_ohci_pci_iter): Likewise. * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise. * commands/lspci.c (grub_lspci_iter): Likewise. 2009-04-16 Bean * commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return value. 2009-04-15 Pavel Roskin * include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and LONG_MAX to GRUB_LONG_MAX. Introduce GRUB_LONG_MIN. Update all users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new definitions. 2009-04-15 Felix Zielcke * disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages, that no multiple data or metadata areas are supported and `Unknown metadata header'. 2009-04-15 Vladimir Serbinenko Move loader out of the kernel * kern/loader.c: moved to ... * commands/boot.c: ... moved here * commands/minicmd.c (grub_mini_cmd_boot): moved to ... * commands/boot.c (grub_cmd_boot): moved here. All users updated * include/grub/kernel.h (grub_machine_fini): export * include/grub/loader.h (grub_loader_is_loaded): update declaration (grub_loader_set): likewise (grub_loader_unset): likewise (grub_loader_boot): likewise * conf/common.rmk: new module boot.mod (pkglib_MODULES): add boot.mod * conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c (grub_emu_SOURCES): likewise * conf/i386-efi.rmk (kernel_elf_SOURCES): likewise (grub_emu_SOURCES): likewise * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise (grub_emu_SOURCES): likewise * conf/i386-pc.rmk (kernel_elf_SOURCES): likewise (grub_emu_SOURCES): likewise * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise (grub_emu_SOURCES): likewise * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): likewise (grub_emu_SOURCES): likewise * conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise (grub_emu_SOURCES): likewise 2009-04-15 Vladimir Serbinenko use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes * kern/misc.c (grub_itoa): Removed function (grub_ltoa): likewise (grub_vsprintf): use grub_lltoa 2009-04-15 Vladimir Serbinenko Restore grub-emu * conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c * conf/i386-coreboot.rmk: likewise * conf/i386-ieee1275.rmk: likewise * conf/powerpc-ieee1275.rmk: likewise 2009-04-15 Felix Zielcke * INSTALL: Add that `./autogen.sh' needs to be run before `./configure.'. 2009-04-14 Bean * Makefile.in (pkglib_DATA): Add handler.lst. (handler.lst): New rule. * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c. * conf/i386-coreboot.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-efi.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * genhandlerlist.sh: New file. * genmk.rb: Add rules to generate handler.lst. * include/grub/normal.h (grub_file_getline): New function definition. (read_handler_list): Likewise. (free_handler_list): Likewise. * include/grub/term.h (grub_term_register_input): Add name parameter for auto generation of handler.lst. (grub_term_register_output): Likewise. * normal/handler.c: New file. * normal/main.c (get_line): Renamed to grub_file_getline. (read_config_file): Use the newly renamed grub_file_getline. (read_command_list): Likewise. (read_fs_list): Likewise. (grub_normal_execute): Call read_handler_list to parse handler.lst. (GRUB_MOD_FINI): Call free_handler_list to free handler list. * term/efi/console.c (grub_console_init): Add name parameter for auto generation of handler.lst. * term/gfxterm.c: Likewise. * term/i386/pc/at_keyboard.c: Likewise. * term/i386/pc/console.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/i386/pc/vesafb.c: Likewise. * term/i386/pc/vga.c: Likewise. * term/i386/pc/vga_text.c: Likewise. * term/ieee1275/ofconsole.c: Likewise. * term/usb_keyboard.c: Likewise. 2009-04-14 Bean * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol properly with null character. 2009-04-14 Felix Zielcke * configure: Remove. * config.h.in: Likewise. * stamp-h.in: Likewise. * DISTLIST: Likewise. * conf/common.mk: Likewise. * conf/i386-coreboot.mk: Likewise. * conf/i386-efi.mk: Likewise. * conf/i386-ieee1275.mk: Likewise. * conf/i386.mk: Likewise. * conf/i386-pc.mk: Likewise. * conf/powerpc-ieee1275.mk: Likewise. * conf/sparc64-ieee1275.mk: Likewise. * conf/x86_64-efi.mk: Likewise. * INSTALL: Remove the sentence that Ruby and autoconf are only required if you develop on GRUB. 2009-04-14 John Stanley David S. Miller * util/hostdisk.c (make_device_name): Fix buffer length calculations. 2009-04-14 Felix Zielcke * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include and . (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname() to add 0x10 to `kern.geom.debugflags' if it's not already set, before opening the device and reset them afterwards. 2009-04-13 Pavel Roskin * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c. Reported by John Stanley 2009-04-13 Robert Millan * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use that name for menuentries when appropriate. 2009-04-13 Felix Zielcke * util/grub.d/10_freebsd.in: Add a missing `fi'. 2009-04-13 Robert Millan * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter to Linux, simply abort telling the user it's no longer supported. 2009-04-13 Felix Zielcke * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints doesn't exist. Check also for /boot/kernel/kernel.gz. Print `freebsd_loadenv' only when devices.hints exist. 2009-04-13 Pavel Roskin * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes. 2009-04-13 Felix Zielcke * util/i386/pc/grub-install.in (install_drive): Remove the BSD partition number. (grub_drive): Likewise. 2009-04-13 David S. Miller * kern/sparc64/ieee1275/ieee1275.c: New file. * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE, IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED, IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL, IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define. (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr, grub_ieee1275_alloc_physmem): Declare new exported functions. * include/grub/sparc64/ieee1275/loader.h: New file. * include/grub/sparc64/ieee1275/memory.h: Likewise. * include/grub/sparc64/kernel.h: Likewise. * loader/sparc64/ieee1275/linux.c: Likewise. * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module. (grub_fstest_SOURCES): Likewise. * util/hostdisk.c (make_device_name): Do not make any assumptions about the length of drive names. * kern/dl.c (grub_dl_load_file): Close file immediately when we are done using it. 2009-04-12 David S. Miller * kern/misc.c (grub_ltoa): Fix cast when handling negative values. Noticed by Pavel Roskin. * configure.ac: Check for __bswapsi2 and__bswapdi2 using target compiler. * genmk.rb: Add more flexible image type specification, also pass --strip-unneeded to objcopy. * conf/i386-pc.rmk: Use *_FORMAT. * conf/i386-pc.mk: Rebuilt. * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct. (OFDISK_HASH_SZ): Define. (ofdisk_hash): New hash table. (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions. (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id instead of device phandle which is not unique. * kern/sparc64/ieee1275/init.c: Delete, replace with... * kern/sparc64/ieee1275/crt0.S: assembler implementation. * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[]. (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE, GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE, GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Define. (grub_kernel_image_size, grub_total_module_size): Declare. 2009-04-12 Pavel Roskin * configure.ac: Change the logic when we check for target tools. Do it when the target is specified and it's different from the specified value of the host. 2009-04-11 Felix Zielcke * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h. (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for GNU/kFreeBSD. Check if a device is a character device. Use DIOCGMEDIASIZE to get the size. (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add support for GNU/kFreeBSD. (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV is a character device instead of a block device. Add support for FreeBSD device names. * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT is a character device instead of a block device. * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME is a character device instead of a block device. 2009-04-11 Andrey Shuvikov * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h. (grub_util_biosdisk_open) [__FreeBSD__]: Add support for FreeBSD. Check if a device is a character device. Use DIOCGMEDIASIZE to get the size. (convert_system_partition_to_system_disk) [__FreeBSD__]: Add support for FreeBSD. (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV is a character device instead of a block device. Add support for FreeBSD device names. * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is a character device instead of a block device. (grub_util_check_char_device): New function. * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is a character device instead of a block device. * include/grub/util/getroot.h (grub_util_check_char_device): New prototype. 2009-04-11 David S. Miller * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with static libgcc. * configure.ac: Check for __bswapsi2 and __bswapdi2 presence. * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc function, if present. (__bswapdi2): Likewise. * include/grub/sparc64/ieee1275/boot.h: New file. * boot/sparc64/ieee1275/boot.S: Likewise. * boot/sparc64/ieee1275/diskboot.S: Likewise. * kern/misc.c (grub_ltoa): New function. (grub_vsprintf): Use it to format 'long' integers. 2009-04-10 David S. Miller * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg slots are of type grub_ieee1275_cell_t. (grub_nand_read): Likewise. * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID, IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these macros are used to compare values in arg/ret block of the call. (grub_ieee1275_finddevice, grub_ieee1275_get_property, grub_ieee1275_next_property, grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path, grub_ieee1275_write, grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open, grub_ieee1275_close, grub_ieee1275_set_property, grub_ieee1275_set_color): All ieee1275 call arg slots are of type grub_ieee1275_cell_t. * kern/ieee1275/openfw.c (grub_map): Likewise. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t, grub_ieee1275_phandle_t): Define as grub_unit32_t type. * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t. * kern/ieee1275/openfw.c (grub_children_iterate): Likewise. (grub_devalias_iterate): Likewise. 2009-04-10 Vladimir Serbinenko UFS improvements * fs/ufs.c (INODE_NBLOCKS): new definition (struct grub_ufs_dirent): added fields for non-BSD dirents (grub_ufs_get_file_block): fixed double indirect handling (grub_ufs_lookup_symlink): use more robust way to determine whether symlink is inline (grub_ufs_find_file): support for non-BSD dirents (grub_ufs_dir): support for non-BSD dirents 2009-04-10 Bean * include/grub/efi/api.h (grub_efi_configuration_table): Add packed attribute, otherwise the size would be wrong for i386 platform. * include/grub/pci.h (grub_pci_read_word): New inline function. (grub_pci_read_byte): Likewise. (grub_pci_write): Likewise. (grub_pci_write_word): Likewise. (grub_pci_write_byte): Likewise. * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR. * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module. (find_framebuf): Scan pci to locate the frame buffer address. * commands/efi/fixvideo.c: New file. * commands/efi/loadbios.c: Likewise. * commands/memrw.c: Likewise. * util/grub-dumpbios.in: Likewise. * conf/common.rmk (grub-dumpbios): New utility. (pkglib_MODULES): New module memrw.mod. (memrw_mod_SOURCE): New macro. (memrw_mod_CFLAGS): Likewise. (memrw_mod_LDFLAGS): Likewise. * conf/i386-efi.rmk (pkglib_MODULES): New module loadbios.mod and fixvideo.mod. (loadbios_mod_SOURCE): New macro. (loadbios_mod_CFLAGS): Likewise. (loadbios_mod_LDFLAGS): Likewise. (fixvideo_mod_SOURCE): Likewise. (fixvideo_mod_CFLAGS): Likewise. (fixvideo_mod_LDFLAGS): Likewise. * conf/x86_64.rmk (pkglib_MODULES): New module loadbios.mod and fixvideo.mod. (loadbios_mod_SOURCE): New macro. (loadbios_mod_CFLAGS): Likewise. (loadbios_mod_LDFLAGS): Likewise. (fixvideo_mod_SOURCE): Likewise. (fixvideo_mod_CFLAGS): Likewise. (fixvideo_mod_LDFLAGS): Likewise. 2009-04-08 Felix Zielcke * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check. 2009-04-07 David S. Miller * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add support for R_SPARC_OLO10 relocations. Fix compile warning for R_SPARC_WDISP30 case. * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation. 2009-04-06 Pavel Roskin * include/grub/misc.h (ARRAY_SIZE): New macro. * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): New macro. * loader/i386/linux.c (allocate_pages): Use free_pages(). (grub_linux_unload): Don't use free_pages(). (grub_linux_boot): Prevent accessing linux_vesafb_modes with a wrong index. Treat all other modes as text modes. (grub_cmd_linux): Initialize vid_mode unconditionally to GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask". * commands/help.c (print_command_help): Use cmd->prio, not cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE. 2009-04-06 Vladimir Serbinenko Parttool * parttool/pcpart.c: new file * commands/parttool.c: likewise * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod (parttool_mod_SOURCES): new variable (parttool_mod_CFLAGS): likewise (parttool_mod_LDFLAGS): likewise (pcpart_mod_SOURCES): likewise (pcpart_mod_CFLAGS): likewise (pcpart_mod_LDFLAGS): likewise * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c and parttool/pcpart.c * conf/i386-efi.rmk: likewise * conf/i386-ieee1275.rmk: likewise * conf/i386-pc.rmk: likewise * conf/powerpc-ieee1275.rmk: likewise * conf/sparc64-ieee1275.rmk: likewise * conf/x86_64-ieee1275.rmk: likewise 2009-04-05 Vladimir Serbinenko Support for mtime and further expandability of dir command * include/grub/lib/datetime.h: moved to ... * include/grub/datetime.h: ... moved here and added declaration of grub_unixtime2datetime. All users updated * include/grub/fs.h: new syntax for dir and mtime functions in struct grub_fs * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK and GRUB_FSHELP_FLAGS_MASK * commands/ls.c (grub_ls_list_files): Write mtime in long format * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime (grub_ext2_mtime): new function * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime (grub_hfsplus_mtime): new function * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition (GRUB_UFS_ATTR_FILE): likewise (GRUB_UFS_ATTR_LNK): likewise (struct grub_ufs_sblock): new fields mtime (grub_ufs_read_inode): new parameter to read inode to a separate buffer all users updated (grub_ufs_dir): mtime support (grub_ufs_mtime): new function * fs/affs.c (grub_affs_dir): use new dir syntax * fs/afs.c (grub_afs_dir): likewise * fs/cpio.c (grub_cpio_dir): likewise * fs/fat.c (grub_fat_find_dir): likewise * fs/hfs.c (grub_hfs_dir): likewise * fs/iso9660.c (grub_iso9660_dir): likewise * fs/jfs.c (grub_jfs_dir): likewise * fs/minix.c (grub_minix_dir): likewise * fs/ntfs.c (grub_ntfs_dir): likewise * fs/reiserfs.c (grub_reiserfs_dir): likewise * fs/sfs.c (grub_sfs_dir): likewise * fs/xfs.c (grub_xfs_dir): likewise * util/hostfs.c (grub_hostfs_dir): likewise * lib/datetime.c: moved to ... * normal/datetime.c: ... moved here (grub_unixtime2datetime): new function * kern/rescue.c (grub_rescue_print_files): use new dir syntax * normal/completion.c (iterate_dir): use new dir syntax * normal/misc.c (grub_normal_print_device_info): tell the last modification time of a volume * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax * conf/common.rmk: added lib/datetime.c to ls.mod * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c (normal_mod_SOURCES): likewise (datetime_mod_SOURCES): Removed lib/datetime.c * conf/i386-efi.rmk: likewise * conf/i386-ieee1275.rmk: likewise * conf/i386-pc.rmk: likewise * conf/powerpc-ieee1275.rmk: likewise * conf/sparc64-ieee1275.rmk: likewise * conf/x86_64-efi.rmk: likewise 2009-04-05 Vladimir Serbinenko Trim trailing spaces in FAT label and support mtools-like labels * fs/fat.c (grub_fat_iterate_dir): New function based on grub_fat_find_dir (grub_fat_find_dir): use grub_fat_iterate_dir (grub_fat_label): likewise 2009-04-04 Vladimir Serbinenko * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h and command.h remove extraneous kernel_elf_HEADERS 2009-04-04 Bean * include/grub/util/misc.h: Add dummy function fsync for mingw. * util/misc.c: Likewise. 2009-04-04 Yoshinori K. Okuji * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf instead of grub_printf. 2009-04-03 Robert Millan * loader/i386/linux.c (grub_linux_setup_video): Fill `params->{red,green,blue,reserved}_{mask_size,field_pos}' with values from `mode info' structure instead of hardcoded values. 2009-04-01 Pavel Roskin * Makefile.in: Remove all references to MODULE_LDFLAGS, it's unused now. * genmk.rb: Likewise. * configure.ac: Likewise. 2009-04-01 Manoel Abranches * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage. 2009-04-01 David S. Miller * normal/sparc64/setjmp.S: Fix setjmp implementation. * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update. (grub_setjmp): Mark with 'returns_twice' attribute. * include/grub/i386/setjmp.h (grub_setjmp): Likewise * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise. * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise. 2009-04-01 Robert Millan Reapply fix from 2008-07-28 which was accidentally reverted; also perform the same fix to a similar check in same function. * disk/raid.c (grub_raid_scan_device): Do not abort when two disks with the same number are found, just use issue a warning with grub_dprintf(), as this error has been reported to be non-fatal. 2009-03-31 Pavel Roskin * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default for cross-compilation. 2009-03-30 Robert Millan Fix i386-ieee1275 build. * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot): Remove declaration. 2009-03-30 Pavel Roskin * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ... (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be zero-terminated, rely only on the strlen value. Fix comparison of strings differing in length. 2009-03-30 Robert Millan * loader/i386/linux.c (grub_cmd_linux): Check for zImage before checking for abi version. Improve error messages on BIOS to notify user about `linux16' command. 2009-03-29 Vladimir Serbinenko Leak fixes * kern/disk.c (grub_disk_cache_store): Invalidate previous cache in case of collision * disk/scsi.c (grub_scsi_open): free scsi in case of error 2009-03-29 Robert Millan * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and set `vid_mode' accordingly. (grub_linux_boot): Process `vid_mode' and set video mode. 2009-03-29 Robert Millan * util/grub.d/10_linux.in (linux_entry): New function. Factorize generation of Linux boot entries. 2009-03-29 Yoshinori K. Okuji Make the format of Environment Block plain text. The boot loader part is not tested well yet. * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro. (buffer): Removed. (envblk): Likewise. (usage): Remove "info" and "clear". Add "unset". Update the description of "set", as this does not delete variables any longer. (create_envblk_file): Complete rewrite. (open_envblk_file): Likewise. (cmd_info): Removed. (cmd_list): Likewise. (cmd_set): Likewise. (cmd_clear): Likewise. (list_variables): New function. (write_envblk): Likewise. (set_variables): Likewise. (unset_variables): Likewise. (main): Complete rewrite. * commands/loadenv.c (buffer): Removed. (envblk): Likewise. (open_envblk_file): New function. (read_envblk_file): Complete rewrite. (grub_cmd_load_env): Likewise. (grub_cmd_list_env): Likewise. (struct blocklist): New struct. (free_blocklists): New function. (check_blocklists): Likewise. (write_blocklists): Likewise. (grub_cmd_save_env): Complete rewrite. * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with a plain text signature. (GRUB_ENVBLK_MAXLEN): Removed. (struct grub_envblk): Complete rewrite. (grub_envblk_find): Removed. (grub_envblk_insert): Likewise. (grub_envblk_open): New prototype. (grub_envblk_set): Likewise. (grub_envblk_delete): Put const to VALUE. (grub_envblk_iterate): Put const to NAME and VALUE. (grub_envblk_close): New prototype. (grub_envblk_buffer): New inline function. (grub_envblk_size): Likewise. * lib/envblk.c: Include grub/mm.h. (grub_env_find): Removed. (grub_envblk_open): New function. (grub_envblk_close): Likewise. (escaped_value_len): Likewise. (find_next_line): Likewise. (grub_envblk_insert): Removed. (grub_envblk_set): New function. (grub_envblk_delete): Complete rewrite. (grub_envblk_iterate): Likewise. 2009-03-28 Robert Millan * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'. (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New variables. Use 16-bit loader. (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit loader. * kern/i386/loader.S (grub_linux_boot): Rename to ... (grub_linux16_boot): ... this. Update all users. * loader/i386/linux.c (grub_linux32_boot): Rename to ... (grub_linux_boot): ... this. Update all users. * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ... (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd' commands to `linux16' and `initrd16'. (GRUB_MOD_FINI(linux)): Rename to ... (GRUB_MOD_FINI(linux16)): ... this. 2009-03-24 Pavel Roskin * genmk.rb: Define ASM_FILE for *.S files for *.lst generation, not just for compilation. 2009-03-22 Vladimir Serbinenko Move multiboot helper out of kernel * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add `loader/i386/multiboot_helper.S'. * conf/i386-coreboot.rmk: Likewise * conf/i386-ieee1275.rmk: Likewise * kern/i386/loader.S: Move multiboot helpers from here... * loader/i386/multiboot_helper.S: ...moved here * include/grub/i386/loader.h: Move declarations of multiboot helpers from here... * include/grub/i386/multiboot.h: ...moved here * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h 2009-03-22 Yoshinori K. Okuji * kern/env.c (grub_env_context_open): Added an argument to specify whether a new context inherits exported variables from current one. This is useful when making a sandbox to interpret a config file. All callers updated. * include/grub/env.h (grub_env_context_open): Updated the prototype. 2009-03-22 Yoshinori K. Okuji * kern/env.c (grub_env_context_close): Fix memory leaks. 2009-03-22 Yoshinori K. Okuji * normal/main.c (grub_normal_execute): Added an argument BATCH to specify if an interactive interface should be provided after reading a config file. All callers updated. (read_command_list): Prevent being executed twice. (read_fs_list): Likewise. * include/grub/normal.h (grub_normal_execute): Updated the prototype. 2009-03-22 Pavel Roskin * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with _start. * kern/i386/pc/startup.S: Likewise. * kern/i386/efi/startup.S: Likewise. * kern/i386/ieee1275/startup.S: Likewise. * kern/i386/coreboot/startup.S: Likewise. * kern/x86_64/efi/startup.S: Likewise. * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove. * configure.ac: Don't call grub_CHECK_START_SYMBOL. * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL. 2009-03-21 Vladimir Serbinenko Bugfixes in multiboot for bugs uncovered by solaris kernel. * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected limit detection. Use vaddr of correct segment for entry_point. 2009-03-21 Bean * commands/blocklist.c: Add include file , remove and . (grub_cmd_blocklist): Use the new command interface. (GRUB_MOD_INIT): Likewise. (GRUB_MOD_FINI): Likewise. * commands/boot.c: Likewise. * commands/cat.c: Likewise. * commands/cmp.c: Likewise. * commands/configfile.c: Likewise. * commands/crc.c: Likewise. * commands/echo.c: Likewise. * commands/halt.c: Likewise. * commands/handler.c: Likewise. * commands/hdparm.c: Likewise. * commands/help.c: Likewise. * commands/hexdump.c: Likewise. * commands/loadenv.c: Likewise. * commands/ls.c: Likewise. * commands/lsmmap.c: Likewise. * commands/lspci.c: Likewise. * commands/loadenv.c: Likewise. * commands/read.c: Likewise. * commands/reboot.c: Likewise. * commands/search.c: Likewise. * commands/sleep.c: Likewise. * commands/test.c: Likewise. * commands/usbtest.c: Likewise. * commands/videotest.c: Likewise. * commands/i386/cpuid.c: Likewise. * commands/i386/pc/halt.c: Likewise. * commands/i386/pc/play.c: Likewise. * commands/i386/pc/pxecmd.c: Likewise. * commands/i386/pc/vbeinfo.c: Likewise. * commands/i386/pc/vbetest.c: Likewise. * commands/ieee1275/suspend.c: Likewise. * disk/loopback.c: Likewise. * font/font_cmd.c: Likewise. * hello/hello.c: Likewise. * loader/efi/appleloader.c: Likewise. * loader/efi/chainloader.c: Likewise. * loader/i386/bsd.c: Likewise. * loader/i386/efi/linux.c: Likewise. * loader/i386/ieee1275/linux.c: Likewise. * loader/i386/linux.c: Likewise. * loader/i386/pc/chainloader.c: Likewise. * loader/i386/pc/linux.c: Likewise. * loader/powerpc/ieee1275/linux.c: Likewise. * loader/multiboot_loader.c: Likewise. * term/gfxterm.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/terminfo.c: Likewise. * term/i386/pc/vesafb.c: Removed . * term/i386/pc/vga.c: Likewise. * video/readers/jpeg.c: Likewise. * video/readers/png.c: Likewise. * video/readers/tga.c: Likewise. * util/grub-fstest (cmd_loopback): Removed. (cmd_blocklist): Likewise. (cmd_ls): Likewise. (grub_register_command): Likewise. (grub_unregister_command): Likewise. (execute_command): Use grub_command_find to locate command and execute it. * include/grub/efi/chainloader.h: Removed. * loader/efi/chainloader_normal.c: Likewise. * loader/i386/bsd_normal.c: Likewise. * loader/i386/pc/chainloader_normal.c: Likewise. * loader/i386/pc/multiboot_normal.c: Likewise. * loader/linux_normal.c: Likewise. * loader/multiboot_loader_normal.c: Likewise. * loader/powerpc/ieee1275/linux_normal.c: Likewise. * gencmdlist.sh: Scan new registration command grub_register_extcmd and grub_register_command_p1. * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c, kern/command.c, lib/arg.c and commands/extcmd.c. (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod. (minicmd_mod_SOURCES): New variable. (minicmd_mod_CFLAGS): Likewise. (minicmd_mod_LDFLAGS): Likewise. (extcmd_mod_SOURCES): Likewise. (extcmd_mod_CFLAGS): Likewise. (extcmd_mod_LDFLAGS): Likewise. (boot_mod_SOURCES): Removed. (boot_mod_CFLAGS): Likewise. (boot_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and kern/corecmd.c. (kernel_img_HEADERS): Add command.h. (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c and lib/arg.c. (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod, remove the corresponding normal mode command. (normal_mod_SOURCES): Remove normal/arg.c. * conf/i386-coreboot.rmk: Likewise. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * include/grub/arg.h: Move from here ... * include/grub/lib/arg.h: ... to here. * normal/arg.c: Move from here ... * lib/arg.c: ... to here. * commands/extcmd.c: New file. * commands/minicmd.c: Likewise. * include/grub/command.h: Likewise. * include/grub/extcmd.h: Likewise. * kern/command.c: Likewise. * kern/corecmd.c: Likewise. * kern/list.c (grub_list_iterate): Return int instead of void. (grub_list_insert): New function. (grub_prio_list_insert): Likewise. * kern/rescue.c (grub_rescue_command): Removed. (grub_rescue_command_list): Likewise. (grub_rescue_register_command): Likewise. (grub_rescue_unregister_command): Likewise. (grub_rescue_cmd_boot): Move to minicmd.c (grub_rescue_cmd_help): Likewise. (grub_rescue_cmd_info): Likewise. (grub_rescue_cmd_boot): Likewise. (grub_rescue_cmd_testload): Likewise. (grub_rescue_cmd_dump): Likewise. (grub_rescue_cmd_rmmod): Likewise. (grub_rescue_cmd_lsmod): Likewise. (grub_rescue_cmd_exit): Likewise. (grub_rescue_print_devices): Moved to corecmd.c. (grub_rescue_print_files): Likewise. (grub_rescue_cmd_ls): Likewise. (grub_rescue_cmd_insmod): Likewise. (grub_rescue_cmd_set): Likewise. (grub_rescue_cmd_unset): Likewise. (attempt_normal_mode): Use grub_command_find to get normal module. (grub_enter_rescue_mode): Use grub_register_core_commands to register commands, remove grub_rescue_register_command calls. * normal/command.c (grub_register_command): Removed. (grub_unregister_command): Likewise. (grub_command_find): Likewise. (grub_iterate_commands): Likewise. (rescue_command): Likewise. (export_command): Moved to corecmd.c. (set_command): Removed. (unset_command): Likewise. (insmod_command): Likewise. (rmmod_command): Likewise. (lsmod_command): Likewise. (grub_command_init): Likewise. * normal/completion.c (iterate_command): Use cmd->prio to check for active command. (complete_arguments): Use grub_extcmd_t structure to find options. (grub_normal_do_completion): Change function grub_iterate_commands to grub_command_iterate. * normal/execute.c (grub_script_execute_cmd): No need to parse argument here. * normal/main.c (grub_dyncmd_dispatcher): New function. (read_command_list): Register unload commands as dyncmd. (grub_cmd_normal): Use new command interface, register rescue, unregister normal at entry, register normal, unregister rescue at exit. * include/grub/list.h (grub_list_test_t): New type. (grub_list_iterate): Return int instead of void. (grub_list_insert): New function. (GRUB_AS_NAMED_LIST_P): New macro. (GRUB_AS_PRIO_LIST): Likewise. (GRUB_AS_PRIO_LIST_P): Likewise. (GRUB_PRIO_LIST_PRIO_MASK): New constant. (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise. (grub_prio_list): New structure. (grub_prio_list_insert): New function. (grub_prio_list_remove): New inline function. * include/grub/normal.h: Remove , add . (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h. (GRUB_COMMAND_FLAG_MENU): Likewise. (GRUB_COMMAND_FLAG_BOTH): Likewise. (GRUB_COMMAND_FLAG_TITLE): Likewise. (GRUB_COMMAND_FLAG_NO_ECHO): Likewise. (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed. (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise. (grub_command): Likewise. (grub_register_command): Likewise. (grub_command_find): Likewise. (grub_iterate_commands): Likewise. (grub_command_init): Likewise. (grub_arg_parse): Likewise. (grub_arg_show_help): Likewise. * include/grub/rescue.h (grub_rescue_register_command): Removed. (grub_rescue_unregister_command): Likewise. * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd, grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd, grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module. * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and grub_rescue_cmd_initrd. * include/grub/i386/loader.h: Likewise. * include/grub/x86_64/loader.h: Likewise. * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd. 2009-03-21 Bean * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size instead of stat in mingw environment. * util/misc.c (grub_millisleep): Use Sleep in mingw environment. * aclocal.m4 (grub_CHECK_LINK_DIR): New function. * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use AC_CONFIG_LINKS. 2009-03-21 Bean * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for out of range error. 2009-03-18 Michel Dänzer * fs/ext2.c (grub_ext2_read_block): Take endianness into account when checking inode flags for EXT4_EXTENTS_FLAG. 2009-03-18 Robert Millan * loader/i386/linux.c: Include `' and `'.. (grub_linux_setup_video): New function. Loosely based on the EFI one. (grub_linux32_boot): Attempt to configure video settings with grub_linux_setup_video(). (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order to avoid grub_console_fini() which would step out of graphical mode unconditionally. 2009-03-14 Robert Millan Fix build on powerpc. * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'. 2009-03-12 Vladimir Serbinenko * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of background image command. 2009-03-12 Colin D Bennett * term/gfxterm.c (draw_cursor): Ensure character is redrawn. (grub_gfxterm_putchar): Extract pairs of identical calls to draw_cursor out of conditional blocks. 2009-03-11 Pavel Roskin * fs/hfs.c (grub_hfs_strncasecmp): New function. (grub_hfs_cmp_catkeys): Use HFS specific string comparison. 2009-03-11 Robert Millan * loader/i386/multiboot_elfxx.c (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files. 2009-03-11 Felix Zielcke * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and `kern/handler.c'. 2009-03-11 Robert Millan * loader/i386/multiboot.c (code_size): New variable. (grub_multiboot): Define offsets by adding to `code_size' rather than subtracting from `grub_multiboot_payload_size'. Provide 4-byte alignment to MBI and others by increasing `boot_loader_name_length' appropriately. * loader/i386/multiboot_elfxx.c (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'. 2009-03-09 Felix Zielcke * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated `fs/ext2.c'. 2009-03-08 Robert Millan Make loader/i386/linux.c usable on i386-pc again. * kern/i386/pc/init.c (grub_machine_init): Disable addition of low memory to heap. * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove `#error' stanza. 2009-03-07 Bean * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd allocation. 2009-03-06 Robert Millan Fix display issue on terminals with screen size other than 80x25 (e.g. gfxterm with resolution higher than 640x480). * normal/main.c (grub_normal_init_page): Display title text in a position relative to the center of the terminal instead of relying on a hardcoded offset. 2009-03-04 Robert Millan Filter /etc/grub.d/10_* so that only add-ons for native kernels are installed. * Makefile.in (host_kernel): New variable. * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in scripts instead of just the windows one. * configure.ac: Initialize and AC_SUBST `host_kernel'. 2009-03-04 Felix Zielcke * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and `kern/handler.c'. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. 2009-03-04 Felix Zielcke * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions or if there's no space for the disk label and print the partition number on a invalid magic. 2009-03-04 Felix Zielcke * util/misc.c: Include . (grub_millisleep): New function. 2009-03-04 Bean * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add another option -mno-red-zone. * commands/handler.c: Change module description. * kern/handler.c: Add missing space at the end of description line. * kern/list.c: Likewise. 2009-03-03 Robert Millan Move more components to the relocation area, and fix mbi pointer handling to use the destination rather than the origin (thanks to Vladimir Serbinenko for spotting). * loader/i386/multiboot.c (mbi_dest): New variable. (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'. (grub_multiboot): Put cmdline, boot_loader_name and mbi in the relocation area. 2009-03-01 Bean * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant. (GRUB_EFI_ACPI_TABLE_GUID): Likewise. (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise. (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise. * loader/i386/efi/linux.c (acpi_guid): New variable. (acpi_guid): Likewise. (EBDA_SEG_ADDR): New constant. (LOW_MEM_ADDR): Likewise. (FAKE_EBDA_SEG): Likewise. (fake_bios_data): New function. (grub_linux_boot): Call fake_bios_data. 2009-03-01 Bean * commands/terminal.c: Removed. * commands/handler.c: New file. * include/grub/list.h: Likewise. * include/grub/handler.h: Likewise. * kern/list.c: Likewise. * kern/handler.c: Likewise. * kern/term.h: Include header file . (grub_term_input): Move next field to the beginning. (grub_term_output): Likewise. (grub_term_input_class): New variable. (grub_term_output_class): Likewise. (grub_term_register_input): Changed to inline function. (grub_term_register_output): Likewise. (grub_term_unregister_input): Likewise. (grub_term_unregister_output): Likewise. (grub_term_set_current_input): Likewise. (grub_term_set_current_output): Likewise. (grub_term_get_current_input): Likewise. (grub_term_get_current_output): Likewise. (grub_term_iterate_input): Removed. (grub_term_iterate_output): Likewise. * kern/term.c (grub_term_list_input): Removed. (grub_term_list_output): Likewise. (grub_term_input_class): New variable. (grub_term_output_class): Likewise. (grub_cur_term_input): Change variable as macro. (grub_cur_term_output): Likewise. (grub_term_register_input): Removed. (grub_term_register_output): Likewise. (grub_term_unregister_input): Likewise. (grub_term_unregister_output): Likewise. (grub_term_set_current_input): Likewise. (grub_term_set_current_output): Likewise. (grub_term_iterate_input): Likewise. (grub_term_iterate_output): Likewise. (grub_term_get_current_input): Likewise. (grub_term_get_current_output): Likewise. * util/grub-editenv.c: Include header file . (grub_term_get_current_input): Removed. (grub_term_get_current_output): Likewise. (grub_term_input_class): New variable. (grub_term_output_class): Likewise. * util/grub-fstest.c (grub_term_get_current_input): Removed. (grub_term_get_current_output): Likewise. (grub_term_input_class): New variable. (grub_term_output_class): Likewise. * util/grub-probe.c (grub_term_get_current_input): Removed. (grub_term_get_current_output): Likewise. (grub_term_input_class): New variable. (grub_term_output_class): Likewise. * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed. (grub_term_get_current_output): Likewise. (grub_term_input_class): New variable. (grub_term_output_class): Likewise. * conf/common.rmk (pkglib_MODULES): Replace terminal with handler. (terminal_mod_SOURCES): Likewise. (terminal_mod_CFLAGS): Likewise. (terminal_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with handler.c. (kernel_img_SOURCES): Add list.c and handler.c. (kernel_img_HEADERS): Add list.h and handler.h. * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with handler.c. (kernel_mod_SOURCES): Add list.c and handler.c. (kernel_mod_HEADERS): Add list.h and handler.h. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with handler.c. (kernel_elf_SOURCES): Add list.c and handler.c. (kernel_elf_HEADERS): Add list.h and handler.h. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with handler.c. (kernel_elf_SOURCES): Add list.c and handler.c. (kernel_elf_HEADERS): Add list.h and handler.h. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with handler.c. (kernel_mod_SOURCES): Add list.c and handler.c. (kernel_mod_HEADERS): Add list.h and handler.h. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with handler.c. (kernel_elf_SOURCES): Add list.c and handler.c. (kernel_elf_HEADERS): Add list.h and handler.h. 2009-02-27 Robert Millan Factorize elf32 / elf64 code in Multiboot loader. This will prevent it from getting out of sync again. * loader/i386/multiboot.c (grub_multiboot_is_elf32, grub_multiboot_load_elf32, grub_multiboot_is_elf64, grub_multiboot_load_elf64): Move from here ... * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf, grub_multiboot_load_elf): ... to here (new file). 2009-02-27 Robert Millan * util/grub.d/10_linux.in: Rename "single-user mode" to "recovery mode". 2009-02-27 Vladimir Serbinenko Don't leak in SCSI code. * disk/scsi.c (grub_scsi_close): free `scsi'. 2009-02-27 Robert Millan * loader/i386/pc/multiboot.c: Move from here ... * loader/i386/multiboot.c: ... to here. Update all users. 2009-02-27 Robert Millan Patch from Alexandre Bique * util/i386/pc/grub-setup.c (setup): Fix directory path. 2009-02-27 Krzysztof Smiechowicz * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent b-tree. 2009-02-27 Robert Millan * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the `0x' qualifier as 0 when base is specified as parameter). 2009-02-24 Bean * configure.ac: Check for -mcmodel=large in x86_64 target. * include/grub/efi/api.h (efi_call_10): New macro. (efi_wrap_10): New function. * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro. (GRUB_PE32_REL_BASED_HIGH): Likewise. (GRUB_PE32_REL_BASED_LOW): Likewise. (GRUB_PE32_REL_BASED_HIGHLOW): Likewise. (GRUB_PE32_REL_BASED_HIGHADJ): Likewise. (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise. (GRUB_PE32_REL_BASED_SECTION): Likewise. (GRUB_PE32_REL_BASED_REL): Likewise. (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise. (GRUB_PE32_REL_BASED_DIR64): Likewise. (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise. * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation issue. * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix. (efi_wrap_10): New function. * kern/x86_64/efi/startup.S (codestart): Use relative addressing. * loader/efi/appleloader.c (devpath_5): Add support for late 2008 MB/MBP model (NV chipset). (devdata_devs): Add devpath_5 to the list. * load/i386/efi/linux.c (video_base): Remove variable. (RGB_MASK): New macro. (RGB_MAGIC): Likewise. (LINE_MIN): Likewise. (LINE_MAX): Likewise. (FBTEST_STEP): Likewise. (FBTEST_COUNT): Likewise. (fb_list): New variable. (grub_find_video_card): Remove function. (find_framebuf): New function. (grub_linux_setup_video): Use find_framebuf to get frame buffer and line length. * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation problem for x86_64. 2009-02-22 Vesa Jääskeläinen Patch #25624 by Kevin Lacquement . * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard coding tool name. 2009-02-22 Robert Millan * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro. * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI in our relocation, instead of using it directly from heap. Also use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned. 2009-02-21 Robert Millan Implement USB keyboard support (based on patch by Marco Gerards) * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'. (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS) (usb_keyboard_mod_LDFLAGS): New variables. * term/usb_keyboard.c: New file. 2009-02-14 Vladimir Serbinenko Corrected wrong declaration * kern/disk.c: corrected declaration of grub_disk_ata_pass_through. 2009-02-14 Christian Franke * commands/lspci.c (grub_pci_classes): Add `SATA Controller'. (grub_lspci_iter): Print class code and programming interface byte. 2009-02-14 Christian Franke * gendistlist.sh: Ignore `.svn' directories. 2009-02-14 Felix Zielcke * fs/fat.c: Add 2009 to Copyright line. 2009-02-14 Christian Franke * commands/hdparm.c: New file. Provides `hdparm' command which sends ATA commands via grub_disk_ata_pass_through (). * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod. * disk/ata.c: Include . Move and to include/grub/ata.h. (enum grub_ata_addressing_t): Move to include/grub/ata.h. (GRUB_CDROM_SECTOR_SIZE): Remove. (GRUB_ATA_*): Move to include/grub/ata.h. (GRUB_ATAPI_*): Likewise. (enum grub_ata_commands): Likewise. (enum grub_ata_timeout_milliseconds): Likewise. (struct grub_ata_device): Likewise. (grub_ata_regset): Likewise. (grub_ata_regget): Likewise. (grub_ata_regset2): Likewise. (grub_ata_regget2): Likewise. (grub_ata_check_ready): Likewise. (grub_ata_wait_not_busy): Remove static, exported in include/grub/ata.h. (grub_ata_wait_drq): Likewise. (grub_ata_pio_read): Likewise. * disk/ata_pthru.c: New file. Provides grub_ata_pass_through () function for hdparm.mod. * include/grub/ata.h: New file, contains declarations from disk/ata.c. (enum grub_ata_commands): Add new commands for commands/hdparm.c. * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct. (grub_disk_ata_pass_through): New exported variable. * kern/disk.c (grub_disk_ata_pass_through): New variable. 2009-02-13 Colin D Bennett Support multiple fallback entries, and provide an API to support executing default+fallback menu entries. Renamed the `terminal' menu viewer to `text'. * include/grub/normal.h (grub_normal_text_menu_viewer): New global variable declaration. (grub_menu_execute_callback): New structure declaration. (grub_menu_execute_callback_t): New typedef. (grub_menu_execute_with_fallback): New function declaration. (grub_menu_get_entry): Likewise. (grub_menu_get_timeout): Likewise. (grub_menu_set_timeout): Likewise. * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name. * normal/menu.c (grub_wait_after_message): Moved to `normal/menu_text.c'. (draw_border): Likewise. (print_message): Likewise. (print_entry): Likewise. (print_entries): Likewise. (grub_menu_init_page): Likewise. (get_entry_number): Likewise. (print_timeout): Likewise. (run_menu): Likewise. (grub_menu_execute_entry): Likewise. (show_text_menu): Likewise. (get_and_remove_first_entry_number): New function. (grub_menu_execute_with_fallback): Likewise. (get_entry): Renamed to ... (grub_menu_get_entry): .. this and made it global. (get_timeout): Renamed to ... (grub_menu_get_timeout): ... this and made it global. (set_timeout): Renamed to ... (grub_menu_set_timeout): ... this and made it global. (grub_normal_terminal_menu_viewer): Renamed to ... (grub_normal_text_menu_viewer): ... this. * normal/menu_text.c: New file. Extracted text-menu-specific code from normal/menu.c. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'. (normal_mod_SOURCES): Likewise. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. 2009-02-11 Robert Millan * util/grub.d/00_header.in: Update old reference to `font' command. 2009-02-10 Felix Zielcke * fs/fat.c (grub_fat_mount): Fix wrong comparison. Based on patch from Javier Martín. 2009-02-09 Felix Zielcke * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c to avoid false positives with FAT. (grub_fstest_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. 2009-02-09 Felix Zielcke * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking bpb.version_specific.fat12_or_fat16.fstype and bpb.version_specific.fat32.fstype. 2009-02-08 Robert Millan * fs/tar.c: Replace "fs/cpio.c" with "cpio.c". 2009-02-08 Robert Millan * Makefile.in (host_os, host_cpu): New variables. (target_os): Remove. Update all users. 2009-02-08 Marco Gerards * Makefile.in (enable_grub_emu_usb): New variable. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'. (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c', `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'. (grub_emu_LDFLAGS): Add `$(LIBUSB)'. (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod', `usbtest.mod' and `usbms.mod'. (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS) (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS) (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS, (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS) (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New variables. * disk/usbms.c: New file. * include/grub/usb.h: Likewise. * include/grub/usbtrans.h: Likewise. * include/grub/usbdesc.h: Likewise. * bus/usb/usbtrans.c: Likewise. * bus/usb/ohci.c: Likewise. * bus/usb/uhci.c: Likewise. * bus/usb/usbhub.c: Likewise. * bus/usb/usb.c: Likewise. * commands/usbtest.c: Likewise. * util/usb.c: Likewise. * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'. * configure.ac: Test for libusb presence. * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'. 2009-02-08 Vesa Jääskeläinen * kern/mm.c: Add more comments. 2009-02-08 Robert Millan Patch from Javier Martín. * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add `EXT4_FEATURE_INCOMPAT_FLEX_BG'. 2009-02-08 Robert Millan * fs/cpio.c: Split tar functionality to ... * fs/tar.c: ... here (new file). Update all users. 2009-02-07 Robert Millan * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with backward-incompatible features. Based on patch from Javier Martín, with some adjustments. 2009-02-07 Michael Scherer * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive. 2009-02-07 Robert Millan * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move position of `disk/lvm.c' to ensure grub_init_all() always picks it after the RAID stuff. 2009-02-05 Vesa Jääskeläinen Fixes problem when running vbetest command as reported by Vladimir Serbinenko . * (grub_vbe_set_video_mode): Fixed problem with text modes. 2009-02-04 Felix Zielcke util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and /dev/md/NpN style mdraid devices. 2009-02-03 Felix Zielcke * util/unifont2pff.rb: Remove. 2009-02-03 Felix Zielcke * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing `#'. 2009-02-03 Felix Zielcke * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. 2009-02-02 Christian Franke * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical. 2009-02-01 Felix Zielcke * INSTALL: Note that we now require at least autoconf 2.59 and that LZO is optional. 2009-02-01 Vesa Jääskeläinen Base on patch on bug #24154 created by Tomas Tintera . * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling. 2009-02-01 Vesa Jääskeläinen Based on patch on bug #25318 created by Bernhard Rosenkraenzer . * normal/parser.y (script_init): Add missing semicolon. 2009-01-31 Colin D Bennett * normal/main.c: Add include to grub/menu_viewer.h. (free_menu_entry_classes): Added. (grub_normal_menu_addentry): Added class property handling. (grub_normal_execute): Changed to use new menu viewer for menu viewing. (GRUB_MOD_INIT(normal)): Added register for text based menu viewer. * normal/menu_viewer.c: New file. * normal/menu.c (run_menu_entry): Renamed to ... (grub_menu_execute_entry): ... this and made it as global. (grub_menu_run): Renamed to ... (show_text_menu): ... this and made it local. (show_text_menu): Adapt to new function names. (grub_normal_terminal_menu_viewer): New global variable. * include/grub/menu.h: New file. * include/grub/menu_viewer.h: New file. * include/grub/normal.h: Added include to grub/menu.h. (grub_menu_entry): Moved to include/grub/menu.h. (grub_menu_entry_t): Likewise. (grub_menu): Likewise. (grub_menu_t): Likewise. (grub_normal_terminal_menu_viewer): Added. (grub_menu_execute_entry): Likewise. (grub_menu_run): Removed. * DISTLIST: Added include/grub/menu.h. Added include/grub/menu_viewer.h. Added normal/menu_viewer.c. 2009-01-31 Vesa Jääskeläinen * normal/execute.c (grub_script_execute_menuentry): Changed to use arglist for menutitle arguments. * normal/main.c (grub_normal_menu_addentry): Likewise. * normal/parser.y (menuentry): Likewise. * normal/script.c (grub_script_create_cmdmenu): Likewise. * include/grub/script.h (grub_script_cmd_menuentry): Likewise. (grub_script_create_cmdmenu): Likewise. * include/grub/normal.h (grub_normal_menu_addentry): Likewise. * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's changes. * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise. * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise. * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise. * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise. 2009-01-30 Christian Franke * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears in option help text. 2009-01-27 Pavel Roskin * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID. 2009-01-27 Vesa Jääskeläinen * commands/lsmmap.c: Add include to grub/machine/memory.h. * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem. * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper unregister function. 2009-01-27 Vesa Jääskeläinen * disk/scsi.c (grub_scsi_read): Fix sign problem. * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration. * util/grub-mkfont.c (usage): Fix typo. * util/elf/grub-mkimage.c (load_modules): Fix warning. 2009-01-26 Daniel Mierswa * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes. * commands/search.c (search_fs_uuid): Ignore case of the UUID. * kern/misc.c (grub_strcasecmp): New function. (grub_strcasecmp): Use grub_size_t instead of int for length. Fix return value. * include/grub/misc.h: Update function prototypes. 2009-01-26 Robert Millan * configure.ac: Fix cross-compilation check. 2009-01-22 Christian Franke * kern/misc.c (grub_vsprintf): Fix size and termination of `format2' (precision) digit string. Allow `.format2' without `format1' (width). Limit input chars for `%s' output to `format2' if specified. This is compatible with standard printf (). 2009-01-22 Christian Franke * disk/ata.c (grub_ata_wait_status): Replace by ... (grub_ata_wait_not_busy): ... this function. Checks only BSY bit, other status bits may be invalid while BSY is asserted. (grub_ata_check_ready): New function. (grub_ata_cmd): Removed. (grub_ata_wait_drq): New function. (grub_ata_strncpy): Remove inline. (grub_ata_pio_read): Reduce to actual block transfer. BSY wait and error check now done by grub_ata_wait_drq (). (grub_ata_pio_write): Likewise. (grub_atapi_identify): Set DEV before check for !BSY. Use grub_ata_wait_drq () to wait for data. (grub_ata_device_initialize): Add status register check to detect missing SATA slave devices. Add debug messages. (grub_atapi_wait_drq): Use grub_ata_wait_not_busy (). (grub_atapi_packet): Set DEV before check for !BSY. Replace transfer loop by grub_ata_pio_write (). (grub_ata_identify): Set DEV before check for !BSY. Use grub_ata_wait_drq () to wait for data. (grub_ata_setaddress): Set DEV before check for !BSY. (grub_ata_readwrite): Remove duplicate code, handle batch/rest and read/write in one loop. Fix invalid command on write. Fix incomplete command on (size % batch) == 0. Add missing error check after write of last block. Add debug messages. (grub_atapi_read): Replace transfer loop by grub_ata_pio_read (). 2009-01-19 Christian Franke * disk/ata.c (GRUB_ATAPI_REG_*): New defines. (GRUB_ATAPI_IREASON_*): Likewise. (grub_ata_pio_write): Fix timeout error return. (grub_atapi_identify): Add grub_ata_wait () after cmd. (grub_atapi_wait_drq): New function. (grub_atapi_packet): New parameter `size'. Use grub_atapi_wait_drq () and direct write instead of grub_ata_pio_write (). (grub_atapi_read): Replace grub_ata_pio_read () by a loop which reads the number of bytes requested by the device for each DRQ assertion. (grub_atapi_write): Remove old implementation, return not implemented instead. 2009-01-19 Christian Franke * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead of 512 to calculate data size. (grub_scsi_read12): Likewise. (grub_scsi_write10): Likewise. (grub_scsi_write12): Likewise. (grub_scsi_read): Adjust size according to blocksize. Add checks for invalid blocksize and unaligned transfer. 2009-01-19 Vesa Jääskeläinen * font/font.c (grub_font_loader_init): Re-position unknown glyph. * term/gfxterm.c (write_char): Fix background rendering for wide width glyphs. 2009-01-19 Robert Millan * config.guess: Update to latest version from config git. * config.sub: Likewise. 2009-01-17 Felix Zielcke * Makefile.in: Change font compilation to use new grub-mkfont instead of java version. * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove. * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise. 2009-01-16 Christian Franke * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS. (enum grub_ata_timeout_milliseconds): New enum. (grub_ata_wait_status): Add parameter milliseconds. (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow recovery from timed-out commands. (grub_ata_pio_read): Add parameter milliseconds. Fix error return, return grub_errno instead of REG_ERROR. (grub_ata_pio_write): Add parameter milliseconds. (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector. Pass milliseconds to grub_ata_wait_status () and grub_ata_pio_read (). (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write (). (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to grub_ata_wait_status (). Fix IDENTIFY timeout check. (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS. It is not suitable for device detection, because DEV bit is ignored, the command may run too long, and not all devices set the signature properly. (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize (). (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status (). Fix device selection, DEV bit must be set first to address the registers of the correct device. (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and grub_ata_pio_read/write (). (grub_atapi_read): Pass milliseconds to grub_ata_pio_read (). (grub_atapi_write): Pass milliseconds to grub_ata_pio_write (). 2009-01-13 Carles Pina i Estany * util/grub-editenv.c (main): Use fseeko(), not fseek(). 2009-01-13 Bean * util/grub-mkfont.c (write_font): forget to remove some debug code. 2009-01-13 Bean * Makefile.in: (enable_grub_mkfont): New variable. (freetype_cflags): Likewise. (freetype_libs): Likewise. * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested. (grub_mkfont_SOURCES): New variable. (grub_mkfont_CFLAGS): Likewise. (grub_mkfont_LDFLAGS): Likewise. * configure.ac (--enable-grub-mkfont): New option. Check for freetype2 library if `--enable-grub-mkfont' is requested. (enable_grub_mkfont): New variable. (freetype_cflags): Likewise. (freetype_libs): Likewise. * util/grub-mkfont.c: New file. 2009-01-12 Christian Franke * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility mode check. Fix setting of compat_use[]. 2009-01-10 Robert Millan Update a few copyright years which we forgot to do in 2008 (only for files whose changes made in 2008 were copyright-significant) * Makefile.in: Add 2008 to Copyright line. * disk/ieee1275/ofdisk.c: Likewise. * disk/efi/efidisk.c: Likewise. * kern/dl.c: Likewise. * kern/sparc64/ieee1275/init.c: Likewise. * kern/mm.c: Likewise. * kern/efi/mm.c: Likewise. * boot/i386/pc/boot.S: Likewise. * genfslist.sh: Likewise. * fs/iso9660.c: Likewise. * fs/hfs.c: Likewise. * fs/jfs.c: Likewise. * fs/minix.c: Likewise. * fs/ufs.c: Likewise. * gensymlist.sh.in: Likewise. * genkernsyms.sh.in: Likewise. * include/grub/misc.h: Likewise. * include/grub/types.h: Likewise. * include/grub/symbol.h: Likewise. * include/grub/elf.h: Likewise. * include/grub/kernel.h: Likewise. * include/grub/disk.h: Likewise. * include/grub/dl.h: Likewise. * include/grub/i386/linux.h: Likewise. * include/grub/i386/pc/biosdisk.h: Likewise. * include/grub/efi/api.h: Likewise. * include/grub/efi/pe32.h: Likewise. * include/grub/util/misc.h: Likewise. * normal/execute.c: Likewise. * normal/arg.c: Likewise. * normal/completion.c: Likewise. * normal/lexer.c: Likewise. * normal/parser.y: Likewise. * normal/misc.c: Likewise. * commands/i386/pc/vbeinfo.c: Likewise. * commands/hexdump.c: Likewise. * commands/terminal.c: Likewise. * commands/ls.c: Likewise. * commands/help.c: Likewise. * partmap/pc.c: Likewise. * loader/efi/chainloader.c: Likewise. * loader/multiboot_loader.c: Likewise. * loader/i386/pc/multiboot2.c: Likewise. * term/efi/console.c: Likewise. * term/i386/pc/serial.c: Likewise. * util/lvm.c: Likewise. * util/console.c: Likewise. * util/i386/efi/grub-mkimage.c: Likewise. * util/raid.c: Likewise. 2009-01-06 Vesa Jääskeläinen * commands/videotest.c: Removed include to grub/machine/memory.h. * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod, videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod. (video_mod_SOURCES): Removed. (video_mod_CFLAGS): Likewise. (video_mod_LDFLAGS): Likewise. (gfxterm_mod_SOURCES): Likewise. (gfxterm_mod_CFLAGS): Likewise. (gfxterm_mod_LDFLAGS): Likewise. (videotest_mod_SOURCES): Likewise. (videotest_mod_CFLAGS): Likewise. (videotest_mod_LDFLAGS): Likewise. (bitmap_mod_SOURCES): Likewise. (bitmap_mod_CFLAGS): Likewise. (bitmap_mod_LDFLAGS): Likewise. (tga_mod_SOURCES): Likewise. (tga_mod_CFLAGS): Likewise. (tga_mod_LDFLAGS): Likewise. (jpeg_mod_SOURCES): Likewise. (jpeg_mod_CFLAGS): Likewise. (jpeg_mod_LDFLAGS): Likewise. (png_mod_SOURCES): Likewise. (png_mod_CFLAGS): Likewise. (png_mod_LDFLAGS): Likewise. * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod (video_mod_SOURCES): Added. (video_mod_CFLAGS): Likewise. (video_mod_LDFLAGS): Likewise. (videotest_mod_SOURCES): Likewise. (videotest_mod_CFLAGS): Likewise. (videotest_mod_LDFLAGS): Likewise. (bitmap_mod_SOURCES): Likewise. (bitmap_mod_CFLAGS): Likewise. (bitmap_mod_LDFLAGS): Likewise. (tga_mod_SOURCES): Likewise. (tga_mod_CFLAGS): Likewise. (tga_mod_LDFLAGS): Likewise. (jpeg_mod_SOURCES): Likewise. (jpeg_mod_CFLAGS): Likewise. (jpeg_mod_LDFLAGS): Likewise. (png_mod_SOURCES): Likewise. (png_mod_CFLAGS): Likewise. (png_mod_LDFLAGS): Likewise. (gfxterm_mod_SOURCES): Likewise. (gfxterm_mod_CFLAGS): Likewise. (gfxterm_mod_LDFLAGS): Likewise. * term/gfxterm.c: Removed include to grub/machine/memory.h, grub/machine/console.h. 2009-01-04 Jerone Young Make on screen instructions clearer Based on patch created by Jidanni * normal/menu.c: print clearer instructions on the screen 2009-01-02 Colin D Bennett New font engine. Additional changes by Vesa Jääskeläinen to adapt to build system and fixed gfxterm.c to work with different sized fonts. * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF. * configure: Re-generated. * DISTLIST: Removed font/manager.c. Added font/font.c. Added font/font_cmd.c. * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool compilation. * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users. * kern/misc.c (grub_utf8_to_ucs4): Changed prototype. * kern/term.c: Changed users of grub_utf8_to_ucs4. * normal/menu.c: Likewise. * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c. (font_mod_SOURCES): Added font/font_cmd.c, font/font.c. * include/grub/font.h: Replaced with new file. * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value. (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise. (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise. (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added. (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED. (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha, fg_red, fg_green, fg_blue, fg_alpha. (grub_video_adapter): Removed blit_glyph. (grub_video_blit_glyph): Removed. * font/manager.c: Removed file. * font/font.c: New file. * font/font_cmd.c: Likewise. * video/video.c (grub_video_blit_glyph): Removed. * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support. (grub_video_vbe_map_rgba): Likewise. (grub_video_vbe_unmap_color_int): Likewise. (grub_video_vbe_blit_glyph): Removed. (grub_video_vbe_adapter): Removed blit_glyph. * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support. (get_pixel): Likewise. (set_pixel): Likewise. * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts. * term/gfxterm.c: Adapted to new font engine. * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile. * term/i386/pc/vga.c: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file. * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise. * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise. * util/grub.d/00_header.in: Changed to use new loadfont command. * util/grub-mkconfig_lib.in: Changed font extension. 2008-12-28 Felix Zielcke * util/getroot.c (grub_util_get_grub_dev): Add support for /dev/md/dNNpNN style partitionable mdraid devices. 2008-12-12 Alex Smith * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection at a time limit of the PXE TFTP API correctly. (grub_pxefs_close): Likewise. 2008-11-29 Robert Millan * disk/ata.c (grub_ata_pciinit): Handle errors raised by grub_ata_device_initialize() calls. 2008-11-28 Krzysztof Smiechowicz * fs/affs.c (grub_affs_iterate_dir): Return failure when directory iteration failed. * fs/sfs.c (grub_sfs_iterate_dir): Likewise. 2008-11-28 Robert Millan Fix build on powerpc-ieee1275. Based on patch created by Manoel Abranches . * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/ieee1275/mmap.c'. * include/grub/powerpc/ieee1275/memory.h: New file. Provide grub-install on coreboot. * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'. (grub_install_SOURCES): New variable. * util/i386/pc/grub-install.in: Add a few condition checks to make it usable on coreboot. 2008-11-25 Felix Zielcke * util/grub-fstest.c (grub_term_get_current_input): Change return type to `grub_term_input_t'. (grub_term_get_current_output): Change return type to `grub_term_output_t'. 2008-11-22 Robert Millan Fix breakage on coreboot due to declaration mismatch. * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function. (grub_vga_text_term): Use grub_vga_text_init_fini() instead of grub_vga_text_cls(). * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve comments. Avoid copying one more byte than necessary (just in case). * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address to 0x200000 (avoids trouble with some OFW implementations, and matches with the one in Yaboot). Reported by Manoel Abranches 2008-11-20 Robert Millan * kern/i386/coreboot/init.c (grub_time_tics): Remove variable. (grub_get_rtc, grub_exit): Abort with grub_fatal() if called. * util/grub-mkconfig_lib.in (grub_warn): New function. (convert_system_path_to_grub_path): Use grub_warn() when issuing warnings, to obtain consistent formatting. * util/grub.d/00_header.in: Likewise. * util/update-grub_lib.in: Likewise. * loader/i386/linux.c (allocate_pages): Fix a warning. Move comment text to `#error' stanza. Harmonize ieee1275's grub_available_iterate() with the generic grub_machine_mmap_iterate() interface (fixes a recently-introduced build problem on i386-ieee1275): * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ... * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third parameter `type'. Update all users of this function. * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/ieee1275/mmap.c'. * kern/ieee1275/init.c * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace with ... (grub_machine_mmap_iterate): ... this. * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change return type to `grub_err_t'. Update all implementations of this function prototype. * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate): Likewise. Add `lsmmap' command (lists firmware-provided memory map): * commands/lsmmap.c: New file. * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'. (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New variables. * conf/powerpc-ieee1275.rmk: Likewise. * conf/i386-coreboot.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. 2008-11-19 Robert Millan * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo. * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed constraints to initrd allocation (based on code from loader/i386/pc/linux.c). Without them, initrd was allocated too high for Linux to find it. 2008-11-14 Robert Millan * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in order to cope with duplicate slashes. 2008-11-14 Robert Millan * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE): Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We don't want to mess with lower memory, because it is used in the Linux loader. * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in an appropriate place in lower memory, between 0x10000 and 0x90000, like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem is in our heap (probably as a result of it being corrupted during decompression). Add #error instance with comment to explain why this loader isn't currently usable on PC/BIOS. 2008-11-14 Robert Millan * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS] (GRUB_SERIAL_PORT_NUM): Fix miscalculation. 2008-11-12 Robert Millan Make loader/i386/linux.c buildable on i386-pc (although disabled). * include/grub/i386/pc/init.h: Include `'. (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move from here ... * include/grub/i386/pc/memory.h: ... to here. 2008-11-12 Robert Millan Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text split). * include/grub/i386/pc/console.h: Include `'. (grub_console_cur_color, grub_console_real_putchar) (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh) (grub_console_setcolorstate, grub_console_setcolor) (grub_console_getcolor): Move from here ... * include/grub/i386/vga_common.h: ... to here (new file). * term/i386/pc/vga_text.c: Replace `' with `' and `' with `'. * term/i386/vga_common.c: Replace `' with `'. 2008-11-12 Robert Millan * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'. * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'. (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New variables. * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace `term/i386/pc/console.c' with `term/i386/vga_common.c'. * kern/i386/coreboot/init.c (grub_machine_init): Replace call to grub_console_init() with call to grub_vga_text_init(). (grub_machine_fini): Replace call to grub_console_fini() with call to grub_vga_text_fini() and grub_at_keyboard_fini(). * include/grub/i386/pc/console.h: Include `'. (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh) (grub_console_setcolorstate, grub_console_setcolor) (grub_console_getcolor): New function prototypes. * term/i386/pc/vga_text.c: Include `'. (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls) (grub_vga_text_setcursor): Static-ize. (grub_vga_text_term): New structure. (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions. * term/i386/pc/console.c: Remove `'. (grub_console_cur_color, grub_console_standard_color) (grub_console_normal_color, grub_console_highlight_color) (map_char, grub_console_putchar, grub_console_getcharwidth) (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor) (grub_console_getcolor): Move from here ... * term/i386/vga_common.c: ... to here (same function names). 2008-11-12 Robert Millan Use newly-added Multiboot support in coreboot. * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'. * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its alignment, set `MULTIBOOT_MEMORY_INFO' flag. (codestart): Store the MBI in `startup_multiboot_info' when we're being loaded using Multiboot. * kern/i386/coreboot/init.c (grub_machine_init): Move grub_at_keyboard_init() call to beginning of function (useful for debugging). Call grub_machine_mmap_init() before attempting to use grub_machine_mmap_iterate(). (grub_lower_mem, grub_upper_mem): Move from here ... * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to here (new file). * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New function prototype. 2008-11-12 Robert Millan Fix a regression introduced by the at_keyboard.mod split. Because some terminals are default on some platforms and non-default on others, the first terminal being registered determines which is going to be default. * kern/term.c (grub_term_register_input): If this is the first terminal being registered, set it as the current one. (grub_term_register_output): Likewise. * term/efi/console.c (grub_console_init): Do not call grub_term_set_current_output() or grub_term_set_current_input(). * term/ieee1275/ofconsole.c (grub_console_init): Likewise. * term/i386/pc/console.c (grub_console_init): Likewise. (grub_console_fini): Do not call grub_term_set_current_input() (but leave grub_term_set_current_output() to restore text mode). 2008-11-10 Robert Millan * util/grub.d/00_header.in: Add backward compatibility check for versions of terminal.mod that don't understand `terminal_input' or `terminal_output'. 2008-11-09 Robert Millan * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister `terminal_input' / `terminal_output', not `terminal'. 2008-11-08 Robert Millan * Makefile.in (include_DATA): Fix srcdir=. assumption. (DISTCLEANFILES): Add `build_env.mk'. 2008-11-08 Robert Millan * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to `struct grub_term_output'. Remove `.checkkey' and `.getkey' members. Update all users. * util/console.c (grub_ncurses_term): Split in ... (grub_ncurses_term_input): ... this, and ... (grub_ncurses_term_output): ... this. Update all users. * term/ieee1275/ofconsole.c: Remove stale `#endif'. 2008-11-08 Robert Millan * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR). (PKGDATA): Add $(pkgdata_SRCDIR). (pkglib_BUILDDIR): New variable. (pkgdata_SRCDIR): New variable. (build_env.mk): New target. (include_DATA): New variable. (install-local): Install $(include_DATA) files in $(includedir). 2008-11-07 Pavel Roskin * gendistlist.sh: Use C locale for sorting to ensure consistent output on all systems. * util/grub.d/00_header.in: Remove incorrect space before "serial". 2008-11-07 Robert Millan * include/multiboot2.h (struct multiboot_header): Add `flags' member as per specification. * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check. * loader/multiboot_loader.c (find_multi_boot2_header): New function (based on find_multi_boot1_header). (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header, using find_multi_boot2_header(), and abort if neither Multiboot or Multiboot headers were found. 2008-11-07 Robert Millan Modularize at_keyboard.mod: * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'. (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS) (at_keyboard_mod_LDFLAGS): New variables. Actual terminal split: * include/grub/term.h (struct grub_term): Split in ... (struct grub_term_input): ... this, and ... (struct grub_term_output): ... this. Update all users. (grub_term_set_current): Split in ... (grub_term_set_current_input): ... this, and ... (grub_term_set_current_output): ... this. (grub_term_get_current): Split in ... (grub_term_get_current_input): ... this, and ... (grub_term_get_current_output): ... this. (grub_term_register): Split in ... (grub_term_register_input): ... this, and ... (grub_term_register_output): ... this. (grub_term_unregister): Split in ... (grub_term_unregister_input): ... this, and ... (grub_term_unregister_output): ... this. (grub_term_iterate): Split in ... (grub_term_iterate_input): ... this, and ... (grub_term_iterate_output): ... this. * kern/term.c (grub_term_list): Split in ... (grub_term_list_input): ... this, and ... (grub_term_list_output): ... this. Update all users. (grub_cur_term): Split in ... (grub_cur_term_input): ... this, and ... (grub_cur_term_output): ... this. Update all users. (grub_term_set_current): Split in ... (grub_term_set_current_input): ... this, and ... (grub_term_set_current_output): ... this. (grub_term_get_current): Split in ... (grub_term_get_current_input): ... this, and ... (grub_term_get_current_output): ... this. (grub_term_register): Split in ... (grub_term_register_input): ... this, and ... (grub_term_register_output): ... this. (grub_term_unregister): Split in ... (grub_term_unregister_input): ... this, and ... (grub_term_unregister_output): ... this. (grub_term_iterate): Split in ... (grub_term_iterate_input): ... this, and ... (grub_term_iterate_output): ... this. * kern/misc.c (grub_abort): Split use of grub_term_get_current() into a check for input and one for output (and only attempt to get keys from user when input works). * util/grub-probe.c (grub_term_get_current): Split in ... (grub_term_get_current_input): ... this, and ... (grub_term_get_current_output): ... this. * util/grub-fstest.c: Likewise. * util/i386/pc/grub-setup.c: Likewise. * util/grub-editenv.c: Likewise. Portability adjustments: * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove `term/i386/pc/at_keyboard.c'. * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to grub_keyboard_controller_init() (now handled by terminal .init). * kern/i386/coreboot/init.c (grub_machine_init): Add call to grub_at_keyboard_init(). * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init) (grub_console_checkkey, grub_console_getkey): Remove (now provided by at_keyboard.mod via input terminal interface). * include/grub/i386/coreboot/console.h: Convert into a stub for `'. Migrate full terminals to new API: * term/efi/console.c (grub_console_term): Split into ... (grub_console_term_input): ... this, and ... (grub_console_term_output): ... this. Update all users. * term/ieee1275/ofconsole.c: Remove __i386__ hack. (grub_ofconsole_init): Split into ... (grub_ofconsole_init_input): ... this, and ... (grub_ofconsole_init_output): ... this. (grub_ofconsole_term): Split into ... (grub_ofconsole_term_input): ... this, and ... (grub_ofconsole_term_output): ... this. Update all users. * term/i386/pc/serial.c (grub_serial_term): Split into ... (grub_serial_term_input): ... this, and ... (grub_serial_term_output): ... this. Update all users. * term/i386/pc/console.c (grub_console_term): Split into ... (grub_console_term_input): ... this, and ... (grub_console_term_output): ... this. Update all users. (grub_console_term_input): Only enable it on PC/BIOS platform. (grub_console_init): Remove grub_keyboard_controller_init() call. Migrate input terminals to new API: * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with `i386' and `i386/pc' to enable build on x86_64 (this driver is i386-specific anyway). (grub_console_checkkey): Rename to ... (grub_at_keyboard_checkkey): ... this. Static-ize. Update all users. (grub_keyboard_controller_orig): New variable. (grub_console_getkey): Rename to ... (grub_at_keyboard_getkey): ... this. Static-ize. Update all users. (grub_keyboard_controller_init): Static-ize. Save original controller value so that it can be restored ... (grub_keyboard_controller_fini): ... here (new function). (grub_at_keyboard_term): New structure. (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New functions. Migrate output terminals to new API: * term/i386/pc/vga.c (grub_vga_term): Change type to `struct grub_term_output'. Remove `.checkkey' and `.getkey' members. Update all users. * term/gfxterm.c (grub_video_term): Change type to `struct grub_term_output'. Remove `.checkkey' and `.getkey' members. Update all users. * include/grub/i386/pc/console.h (grub_console_checkkey) (grub_console_getkey): Do not export (no longer needed by gfxterm, etc). Migrate `terminal' command and userland tools to new API: * commands/terminal.c (grub_cmd_terminal): Split into ... (grub_cmd_terminal_input): ... this, and ... (grub_cmd_terminal_output): ... this. (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands: `terminal_input' and `terminal_output'. * util/grub.d/00_header.in: Adjust `terminal' calls to new `terminal_input' / `terminal_output' API. * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user provided ${GRUB_TERMINAL}, convert it). 2008-11-04 Robert Millan * util/grub.d/10_freebsd.in: New file. Generate grub configuration for FreeBSD. * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd. 2008-11-03 Bean * kern/elf.c (grub_elf32_load): Revert to previous code. (grub_elf64_load): Likewise. * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address. 2008-11-01 Robert Millan * Makefile.in (CPPFLAGS): Fix builddir=. assumption. (TARGET_CPPFLAGS): Likewise. * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions. 2008-11-01 Carles Pina i Estany * normal/menu.c (run_menu): Add Previous and Next Page keys in menu. 2008-10-29 Guillem Jover * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the addition of objects until the code is not going to be able to fail. 2008-10-29 Guillem Jover * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling (add a missing NULL check, and correct them by moving the pointer operations after the actual check). 2008-10-29 Robert Millan * util/i386/pc/grub-install.in: Handle empty string as output from make_system_path_relative_to_its_root(). 2008-10-05 Hans Lambermont * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the circular metadata worst case scenario. If the metadata is circular then copy the wrap in place. * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2 project lib/format_text/layout.h Circular metadata bug found and patch debugged by Jan Derk Gerlings. 2008-10-03 Felix Zielcke * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib. 2008-10-03 Felix Zielcke * util/update-grub_lib.in: Mention filename in warning message. 2008-09-29 Felix Zielcke * NEWS: Update for rename of update-grub to grub-mkconfig. 2008-09-29 Felix Zielcke * util/update-grub_lib.in: Copy to ... * util/grub-mkconfig_lib.in: ... this. Update all users. * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'. * util/update-grub.in: Rename to ... * util/grub-mkconfig.in: ... this. Update all users. Remove `-y' option. Add `--output' option to allow users to specify the generated configuration file. Default to stdout. (update_grub_dir): Rename to ... (grub_mkconfig_dir): ... this. (grub_cfg): Default to an empty string. * conf/common.rmk (update-grub): Rename to ... (grub-mkconfig): ... this. (update-grub_lib): Copy to ... (grub-mkconfig_lib): ... this. (update-grub_SCRIPTS): Copy to ... (grub-mkconfig_SCRIPTS): ... this. Update all users. (update-grub_DATA): Rename to ... (grub-mkconfig_DATA): ... this. 2008-09-28 Robert Millan * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created' to `modified'. Add the real `created' field. (grub_iso9660_uuid): Use `modified' rather than `created' for constructing the UUID. 2008-09-28 Felix Zielcke fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one. Based on code from Tomas Ebenlendr . 2008-09-28 Bean * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch. Thanks to Christian Franke for finding this bug. 2008-09-25 Robert Millan * util/grub-mkdevicemap.c (make_device_map): Actually replace all instances of grub_util_get_disk_name() (see previous commit). 2008-09-25 Robert Millan * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove `util/i386/get_disk_name.c'. * conf/i386-efi.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * conf/i386-coreboot.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove `util/ieee1275/get_disk_name.c'. * include/grub/util/misc.h (grub_util_get_disk_name): Remove. * util/ieee1275/get_disk_name.c: Remove file. * util/i386/get_disk_name.c: Remove file. * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding "hd%d" for device.map entries, rather than using grub_util_get_disk_name(). 2008-09-24 Carles Pina i Estany * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter' warning. * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise. 2008-09-24 Carles Pina i Estany * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE): Changed to 0x5100. (GRUB_TERM_PPAGE): Changed to 0x4900. 2008-09-24 Robert Millan * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove macros (they were i386-pc specific). * include/grub/sparc64/ieee1275/console.h: Likewise. * include/grub/efi/console.h: Likewise. 2008-09-22 Bean * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is resident and in attribute list. * include/grub/ntfs.h (BMP_LEN): Removed. 2008-09-22 Bean * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set scsi->name and scsi->luns, as they will be set in grub_scsi_open. * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when error occurs, as grub_disk_open will call grub_disk_close, which will call p->close (scsi). 2008-09-21 Felix Zielcke * configure.ac (AC_INIT): Quote `GRUB' string and version number. (AC_PREREQ): Bumped to 2.59. (AC_TRY_COMPILE): Replace obsolete macro with ... (AC_COMPILE_IFELSE): ... this. * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ... (AC_LINK_IFELSE): ... this. 2008-09-21 Felix Zielcke * autogen.sh: Add a call to `gendistlist.sh'. 2008-09-19 Christian Franke * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function. * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK. * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]: Export __enable_execute_stack() to modules. * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack): New function. 2008-09-09 Felix Zielcke * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'. Sort the list. 2008-09-09 Felix Zielcke * util/hostdisk.c: Replace #include with #include . 2008-09-08 Robert Millan * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip segments when their filesz is zero (grub_file_read() interprets zero-size as "read until EOF", which results in memory corruption). Use `lowest_segment' rather than 0 for calculating the current segment load address. 2008-09-08 Robert Millan * util/hostdisk.c (open_device): Replace a grub_util_info() call with grub_dprintf("hostdisk", ...), as it was so verbose that it clobbered useful information. 2008-09-08 Robert Millan * include/grub/util/biosdisk.h: Move to ... * include/grub/util/hostdisk.h: ... here. Update all users. * util/biosdisk.c: Move to ... * util/hostdisk.c: ... here. Update all users. 2008-09-07 Robert Millan * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove variables. (grub_multiboot): Move `mbi' allocation upwards, so that mmap address and length can be stored directly in the `mbi->mmap_addr' and `mbi->mmap_length' struct fields. 2008-09-07 Robert Millan * conf/i386.rmk: New file. Provides declaration for building `cpuid.mod'. * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'. (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove variables. Include `conf/i386.mk'. * conf/i386-efi.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * conf/i386-coreboot.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. 2008-09-07 Vesa Jääskeläinen Based on patch created by Colin D Bennett . Adds optimization support for BGR based modes. * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed. (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise. (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise. (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise. (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise. (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8): Likewise. (grub_video_i386_vbeblit_index_index): Likewise. (grub_video_i386_vbeblit_replace_directN): Added. (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise. (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise. (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise. (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise. (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise. (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise. (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise. (grub_video_i386_vbeblit_replace_index_RGB888): Likewise. (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise. (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise. (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise. (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise. (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise. * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed. (grub_video_i386_vbefill_R8G8B8): Likewise. (grub_video_i386_vbefill_index): Likewise. (grub_video_i386_vbefill_direct32): Added. (grub_video_i386_vbefill_direct24): Likewise. (grub_video_i386_vbefill_direct16): Likewise. (grub_video_i386_vbefill_direct8): Likewise. * include/grub/video.h (grub_video_blit_format): Removed GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8. (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888, GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888, GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565, GRUB_VIDEO_BLIT_FORMAT_BGR_565. * video/video.c (grub_video_get_blit_format): Updated to use new blit formats. Added handling for 16 bit color modes. * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new fillers. (common_blitter): Updated to use new blitters. * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Removed. (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise. (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise. (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise. (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise. (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8): Likewise. (grub_video_i386_vbeblit_index_index): Likewise. (grub_video_i386_vbeblit_replace_directN): Added. (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise. (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise. (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise. (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise. (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise. (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise. (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise. (grub_video_i386_vbeblit_replace_index_RGB888): Likewise. (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise. (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise. (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise. (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise. (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise. * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed. (grub_video_i386_vbefill_R8G8B8): Likewise. (grub_video_i386_vbefill_index): Likewise. (grub_video_i386_vbefill_direct32): Added. (grub_video_i386_vbefill_direct24): Likewise. (grub_video_i386_vbefill_direct16): Likewise. (grub_video_i386_vbefill_direct8): Likewise. * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter types. * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter types. * video/readers/png.c (grub_png_decode_image_header): Adapt to new blitter types. * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter types. 2008-09-06 Felix Zielcke * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for RAID level 1. 2008-09-06 Felix Zielcke * fs/iso9660.c (grub_iso9660_date): New structure. (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member. (grub_iso9660_uuid): New function. 2008-09-05 Bean * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names. * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case insensitive bit for names in Win32 and Win32 & DOS namespace. * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro. * include/grub/types.h (LONG_MAX): Likewise. 2008-09-04 Felix Zielcke * util/getroot.c: Include . (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices, add support for /dev/md/N devices and handle LVM double dash escaping. 2008-09-04 Felix Zielcke * config.guess: Update to latest version from config git. * config.sub: Likewise. 2008-09-03 Robert Millan * disk/scsi.c (grub_scsi_open): Remove size limit when printing `disk->total_sectors'. 2008-09-01 Colin D Bennett * include/grub/normal.h: Fixed incorrect comment for GRUB_COMMAND_FLAG_NO_ARG_PARSE. 2008-09-01 Colin D Bennett * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant values with defines. * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added. (GRUB_VBE_MODEATTR_RESERVED_1): Likewise. (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise. (GRUB_VBE_MODEATTR_COLOR): Likewise. (GRUB_VBE_MODEATTR_GRAPHICS): Likewise. (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise. (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise. (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise. (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise. (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise. (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise. (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise. (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise. (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise. (GRUB_VBE_MEMORY_MODEL_CGA): Likewise. (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise. (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise. (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise. (GRUB_VBE_MEMORY_MODEL_YUV): Likewise. 2008-08-31 Robert Millan * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix declaration. (grub_multiboot): Fix a few warnings. 2008-08-31 Robert Millan * loader/i386/pc/multiboot.c: Update comment not to say that boot_device support is unimplemented. 2008-08-31 Robert Millan * loader/i386/pc/multiboot.c: Update comment not to say that a.out or memory map support are unimplemented. 2008-08-31 Colin D Bennett * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories. 2008-08-31 Colin D Bennett * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and total video memory in 'vbeinfo' output; show color format details for each video mode. 2008-08-30 Pavel Roskin * util/genmoddep.c: Remove for real this time. * DISTLIST: Remove util/genmoddep.c. 2008-08-30 Robert Millan * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment as required by Multiboot spec (it was already 4-byte aligned, but only by chance). 2008-08-29 Pavel Roskin * kern/powerpc/ieee1275/crt0.S: Rename to ... * kern/powerpc/ieee1275/startup.S: ... this. * conf/powerpc-ieee1275.rmk: Adjust for the above. * DISTLIST: Likewise. * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and grub/cpu/kernel.h. Add start label for consistency with other platforms. Add grub_prefix immediately after start. Add jump to the code after grub_prefix. * include/grub/powerpc/kernel.h: Provide valid values for GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END. 2008-08-29 Bean * configure.ac: Change host_os to cygwin for mingw. (asprintf): New check for function. * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with #if ! defined (__CYGWIN__) && ! defined (__MINGW32__). * include/grub/util/misc.h: #include and , declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello, sync, sleep and grub_util_get_disk_size for mingw. * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size to get size in mingw. (open_device): Use flag O_BINARY if it's defined. (find_root_device): Add dummy code for mingw. * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw. (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw. (get_scsi_disk_name): Return 0 for mingw. * util/hostfs.c: #include . (grub_hostfs_open): Use "rb" flag to open file, use grub_util_get_disk_size to get disk size for mingw. * util/misc.c: #include and in mingw. (asprintf): New function if HAVE_ASPRINTF is not set. (sync): New function for mingw. (sleep): Likewise. (grub_util_get_disk_size): Likewise. 2008-08-28 Pavel Roskin * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c. 2008-08-28 Robert Millan * util/biosdisk.c (find_grub_drive): Declare missing `i' variable. 2008-08-28 Robert Millan Change find_grub_drive() syntax so it doesn't prevent it from detecting NULL names as errors. * util/biosdisk.c (find_grub_drive): Move free slot search code from here ... (find_free_slot): ... to here. (read_device_map): Use find_free_slot() to search for free slots. 2008-08-27 Marco Gerards * conf/common.rmk (pkglib_MODULES): Add scsi.mod. (scsi_mod_SOURCES): New variable. (scsi_mod_CFLAGS): Likewise (scsi_mod_LDFLAGS): Likewise. * disk/scsi.c: New file. * include/grub/scsi.h: Likewise. * include/grub/scsicmd.h: Likewise. * disk/ata.c: Include . (grub_atapi_packet): Do not use grub_ata_cmd, use registers instead. (grub_ata_iterate): Skip ATAPI devices. (grub_ata_open): Only handle ATAPI devices. (struct grub_atapi_read): Removed. (grub_atapi_readsector): Likewise. (grub_ata_read): No longer handle ATAPI devices. (grub_ata_write): Likewise. (grub_atapi_iterate): New function. (grub_atapi_read): Likewise. (grub_atapi_write): Likewise. (grub_atapi_open): Likewise. (grub_atapi_close): Likewise. (grub_atapi_dev): New variable. (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device. (GRUB_MOD_FINI(ata)): Unregister ATAPI. * include/grub/disk.h (enum grub_disk_dev_id): Add `GRUB_DISK_DEVICE_SCSI_ID'. 2008-08-26 Robert Millan * util/biosdisk.c (grub_util_biosdisk_open, open_device) (grub_util_biosdisk_get_grub_dev): Make error messages a bit more descriptive. 2008-08-23 Bean * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c. (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c. (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and dm_nv.mod. (raid5rec_mod_SOURCES): New macro. (raid5rec_mod_CFLAGS): Likewise. (raid5rec_mod_LDFLAGS): Likewise. (raid6rec_mod_SOURCES): Likewise. (raid6rec_mod_CFLAGS): Likewise. (raid6rec_mod_LDFLAGS): Likewise. (mdraid_mod_SOURCES): Likewise. (mdraid_mod_CFLAGS): Likewise. (mdraid_mod_LDFLAGS): Likewise. (dm_nv_mod_SOURCES): Likewise. (dm_nv_mod_CFLAGS): Likewise. (dm_nv_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c. (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * disk/raid5_recover.c: New file. * disk/raid6_recover.c: Likewise. * disk/mdraid_linux.c: Likewise. * disk/dmraid_nvidia.c: Likewise. * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to ULONG_MAX. * disk/raid.c (grub_raid_open): Use the size of the smallest disk to calculate the size of raid device. (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four different layout of raid5. (grub_raid_scan_device): Remove code specific to mdraid. (grub_raid_list): New variable. (free_array): New function. (grub_raid_register): Likewise. (grub_raid_unregister): Likewise. (grub_raid_rescan): Likewise. (GRUB_MOD_INIT): Don't iterate device here. (GRUB_MOD_FINI): Use free_array to release resource. * include/grub/raid.h: Remove macro and structure specific to mdraid. (grub_raid5_recover_func_t): New function variable type. (grub_raid6_recover_func_t): Likewise. (grub_raid5_recover_func): New variable. (grub_raid6_recover_func): Likewise. (grub_raid_register): New function. (grub_raid_unregister): Likewise. (grub_raid_rescan): Likewise. (grub_raid_block_xor): Likewise. * util/grub-fstest.c: Add #include and . (CMD_CRC): New macro. (part): Removed. (read_file): Handle device as well as file. (cmd_crc): New function. (fstest): Handle multiple disks. (options): Remove part, raw and long, add root and diskcount. (usage): Add crc, remove -p, -r, -l, add -r and -c. (main): Find the first non option entry and ignore subsequent options, add handling for the new options, support multiple disks. * util/grub-probe.c (probe): Add mdraid to abstraction_name. 2008-08-23 Bean * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0. * genfslist.sh: Ignore kernel.mod. * genpartmaplist.sh: Likewise. 2008-08-23 Robert Millan * util/getroot.c (find_root_device): Skip anything that starts with a dot, not just directories. This avoids things like /dev/.tmp.md0. 2008-08-22 Felix Zielcke * util/update-grub.in (GRUB_GFXMODE): Export variable. * util/grub.d/00_header.in: Allow the administrator to change default gfxmode via ${GRUB_GFXMODE}. 2008-08-21 Felix Zielcke * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak. 2008-08-21 Robert Millan * loader/i386/linux.c: New file. Implements generic 32-bit Linux loader. * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace `loader/i386/pc/linux.c' with `loader/i386/linux.c'. 2008-08-20 Carles Pina i Estany * menu/normal.c (run_menu): Replace hardcoded numbers with macros (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN) 2008-08-19 Robert Millan * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove. (struct grub_virtual_screen): Remove `cursor_color'. (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color' initialization. (write_cursor): Use `virtual_screen.fg_color' to draw cursor. 2008-08-18 Robert Millan Unify (identical) linux_normal.c files. * loader/i386/efi/linux_normal.c: Move from here ... * loader/linux_normal.c: ... to here. Update all users. * loader/i386/pc/linux_normal.c: Delete. Update all users. * loader/i386/ieee1275/linux_normal.c: Likewise. 2008-08-18 Robert Millan * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO) (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT) (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT) (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT) (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU): New macros. (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ... * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET) (GRUB_LINUX_CL_END_OFFSET): ... to here. * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ... (GRUB_LINUX_CL_OFFSET): ... this. Update all users. (GRUB_EFI_CL_END_OFFSET): Rename to ... (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users. (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization. Initialize `params->video_cursor_x' and `params->video_cursor_y' portably using grub_getxy(). Replace `-EFI' with `-bzImage' in boot message. 2008-08-17 Robert Millan * include/grub/x86_64/kernel.h: New file ( stub). 2008-08-17 Robert Millan * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'. * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE) (GRUB_MACHINE_MEMORY_RESERVED): New macros. (grub_machine_mmap_iterate): New function declaration. * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New structure. (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New macros. * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'. Move e820 parsing from here ... * kern/i386/pc/mmap.c: New file. (grub_machine_mmap_iterate): ... to here. * include/grub/i386/coreboot/memory.h: Remove `'. (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ... (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users. (grub_available_iterate): Redeclare to return `void', and redeclare its hook to use grub_uint64_t as addr and size parameters, and rename to ... (grub_machine_mmap_iterate): ... this. Update all users. * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop to make it more readable. Rename to ... (grub_machine_mmap_iterate): ... this. * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables. (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions. (grub_multiboot): Allocate an extra region after the payload, and fill it with a Multiboot memory map. Adjust a.out loader to calculate size with the extra space. (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size with the extra space. 2008-08-17 Carles Pina i Estany * menu/normal.c (run_menu): Add Home and End keys in grub-menu. 2008-08-17 Felix Zielcke * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc, mdate-sh to the list `find' searches for. * DISTLIST: Regenerated. 2008-08-16 Felix Zielcke * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh, genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in, genmoddep.awk, gensymlist.sh.in. (DISTDIRS): Add bus, docs, hook, lib. * DISTLIST: Regenerated. * NEWS: Add cygwin support and change the `os-prober' entry a bit. 2008-08-16 Robert Millan * disk/raid.c (grub_raid_init): Handle/report errors set by grub_device_iterate(). * disk/lvm.c (grub_lvm_init): Likewise. 2008-08-15 Bean * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod and datehook.mod. (datetime_mod_SOURCES): New macro. (datetime_mod_CFLAGS): Likewise. (datetime_mod_LDFLAGS): Likewise. (date_mod_SOURCES): Likewise. (date_mod_CFLAGS): Likewise. (date_mod_LDFLAGS): Likewise. (datehook_mod_SOURCES): Likewise. (datehook_mod_CFLAGS): Likewise. (datehook_mod_LDFLAGS): Likewise. * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod and datehook.mod. (datetime_mod_SOURCES): New macro. (datetime_mod_CFLAGS): Likewise. (datetime_mod_LDFLAGS): Likewise. (date_mod_SOURCES): Likewise. (date_mod_CFLAGS): Likewise. (date_mod_LDFLAGS): Likewise. (datehook_mod_SOURCES): Likewise. (datehook_mod_CFLAGS): Likewise. (datehook_mod_LDFLAGS): Likewise. * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod and datehook.mod. (datetime_mod_SOURCES): New macro. (datetime_mod_CFLAGS): Likewise. (datetime_mod_LDFLAGS): Likewise. (date_mod_SOURCES): Likewise. (date_mod_CFLAGS): Likewise. (date_mod_LDFLAGS): Likewise. (datehook_mod_SOURCES): Likewise. (datehook_mod_CFLAGS): Likewise. (datehook_mod_LDFLAGS): Likewise. * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod and datehook.mod. (datetime_mod_SOURCES): New macro. (datetime_mod_CFLAGS): Likewise. (datetime_mod_LDFLAGS): Likewise. (date_mod_SOURCES): Likewise. (date_mod_CFLAGS): Likewise. (date_mod_LDFLAGS): Likewise. (datehook_mod_SOURCES): Likewise. (datehook_mod_CFLAGS): Likewise. (datehook_mod_LDFLAGS): Likewise. * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod and datehook.mod. (datetime_mod_SOURCES): New macro. (datetime_mod_CFLAGS): Likewise. (datetime_mod_LDFLAGS): Likewise. (date_mod_SOURCES): Likewise. (date_mod_CFLAGS): Likewise. (date_mod_LDFLAGS): Likewise. (datehook_mod_SOURCES): Likewise. (datehook_mod_CFLAGS): Likewise. (datehook_mod_LDFLAGS): Likewise. * kern/env.c (grub_env_insert): Fix a bug in prevp pointer. * commands/date.c: New file. * hook/datehook.c: Likewise. * include/grub/lib/datetime.h: Likewise. * include/grub/i386/cmos.h: Likewise. * lib/datetime.c: Likewise. * lib/i386/datetime.c: Likewise. * lib/efi/datetime.c: Likewise. 2008-08-14 Robert Millan * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'. (grub_mkelfimage_SOURCES): New variable. (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise. * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES) (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove. * conf/powerpc-ieee1275.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * kern/ieee1275/init.c: Include `'. * kern/i386/coreboot/init.c: Likewise. * kern/i386/ieee1275/startup.S: Replace `' with `'. (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed to ... (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this. * kern/i386/coreboot/startup.S: Likewise. * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN) (GRUB_MOD_GAP): Remove. * include/grub/powerpc/kernel.h: New file. * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX) (GRUB_KERNEL_MACHINE_DATA_END): Remove. * include/grub/i386/kernel.h: New file. * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN) (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX) (GRUB_KERNEL_MACHINE_DATA_END): Remove. * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use `grub-mkelfimage'. Use --directory when invoking grub_mkimage. * util/elf/grub-mkimage.c: Include `'. (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END and GRUB_KERNEL_CPU_PREFIX. 2008-08-14 Felix Zielcke * include/grub/err.h (grub_err_printf): New function prototype. * util/misc.c (grub_err_printf): New function. * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for grub_printf. * kern/err.c (grub_print_error): Use grub_err_printf. 2008-08-13 Robert Millan * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry. 2008-08-13 Robert Millan * docs/grub.cfg: Use the native device name for the example GNU/Hurd boot entry. 2008-08-12 Robert Millan * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part of the relocation code from here ... (grub_multiboot): ... to here. (forward_relocator, backward_relocator): Move from here ... * kern/i386/loader.S (grub_multiboot_forward_relocator) (grub_multiboot_backward_relocator): ... to here. (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot magic in %eax. Use %ebp for jumping (so %edx is not trashed). * include/grub/i386/loader.h (grub_multiboot_forward_relocator) (grub_multiboot_forward_relocator_end) (grub_multiboot_backward_relocator) (grub_multiboot_backward_relocator_end): New variables. 2008-08-12 Bean * disk/raid.c (grub_raid_read): Fix a bug in raid0 code. 2008-08-11 Robert Millan * kern/i386/linuxbios/startup.S: Move from here ... * kern/i386/coreboot/startup.S: ... to here. * kern/i386/linuxbios/init.c: Move from here ... * kern/i386/coreboot/init.c: ... to here. * kern/i386/linuxbios/table.c: Move from here ... * kern/i386/coreboot/mmap.c: ... to here. * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files. 2008-08-11 Robert Millan * kern/device.c (grub_device_open): Do not handle grub_disk_open() errors. Leave it to the upper layer to handle them. 2008-08-09 Christian Franke * Makefile.in: Add `target_os' and `enable_grub_pe2elf'. * conf/common.rmk: Install `grub-pe2elf' only if requested. Install `grub.d/10_windows' only on Cygwin. * configure.ac: Add subst of `target_os'. Check `target_os' also before setting TARGET_OBJ2ELF. Add `--enable-grub-pe2elf'. 2008-08-08 Robert Millan * kern/disk.c: Replace `' with `'. (grub_last_time): Change type to grub_uint64_t. (grub_disk_open): Migrate code from to using grub_get_time_ms(). (grub_disk_close): Likewise. * normal/menu.c: Replace `' with `'. (run_menu): Migrate code from to using grub_get_time_ms(). * util/misc.c (grub_get_time_ms): New function. 2008-08-08 Marco Gerards * disk/ata.c (grub_ata_regget): Change return type to `grub_uint8_t'. (grub_ata_regget2): Likewise. (grub_ata_wait_status): New function. (grub_ata_wait_busy): Removed function, updated all users to use `grub_ata_wait_status'. (grub_ata_wait_drq): Likewise. (grub_ata_cmd): New function. (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add error handling. (grub_ata_pio_write): Add error handling. (grub_atapi_identify): Likewise. (grub_atapi_packet): Use `grub_ata_cmd' and improve error handling. (grub_ata_identify): Use `grub_ata_cmd' and improve error handling. Actually use the detected registers. Reorder the detection logic such that it is easier to read. (grub_ata_pciinit): Do not assign the same ID to each controller. (grub_ata_setaddress): Use `grub_ata_cmd' and improve error handling. (grub_atapi_readsector): Check the result of `grub_ata_pio_read'. * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'. 2008-08-08 Marco Gerards * NEWS: Update. 2008-08-07 Bean * include/grub/x86_64/pci.h: New file. 2008-08-07 Christian Franke * kern/i386/pit.c (TIMER2_SPEAKER): New define. (TIMER2_GATE): Likewise. (grub_pit_wait): Add enable/disable of the timer2 gate bit of port 0x61. This fixes a possible infinite loop. 2008-08-07 Bean * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c, kern/i386/tsc.c and kern/i386/pit.c. * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle x86_64 platform. * kern/i386/efi/init.c: Replace with . * kern/i386/pit.c: Replace with . 2008-08-07 Bean * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c. * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c, * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid multiple inclusion. Add #include . 2008-08-06 Christian Franke * conf/common.rmk: Build and install `10_windows'. * util/grub.d/10_windows.in: New script. 2008-08-06 Pavel Roskin * kern/i386/pit.c: Include `'. 2008-08-06 Robert Millan * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable. * kern/i386/tsc.c: Include `'. 2008-08-06 Bean * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size. (grub_pxefs_fs_int): Remove dummy definition. (grub_pxefs_open): Use data->block_size to store the current block size setting. (grub_pxefs_read): Use block size stored in data->block_size. As the value of grub_pxe_blksize can be changed after the file is opened. 2008-08-06 Bean * fs/i386/pc/pxe.c (curr_file): new variable. (grub_pxefs_open): Simply the handling of pxe file system. Don't require the dummy internal file system anymore. (grub_pxefs_read): Removed. (grub_pxefs_close): Likewise. (grub_pxefs_fs_int): Likewise. (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp connection when we switch file. (grub_pxefs_close_int): Renamed to grub_pxefs_close. 2008-08-06 Robert Millan * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and `halt.mod'. (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS) (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables. * kern/i386/halt.c: New file. * kern/i386/reboot.c: Likewise. * include/grub/i386/reboot.h: Likewise. * include/grub/i386/halt.h: Likewise. * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]: Include `'. * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI] [! GRUB_MACHINE_PCBIOS]: Include `'. * term/i386/pc/at_keyboard.c: Include `'. (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA) (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ) (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT) (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY) (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move from here ... * include/grub/i386/at_keyboard.h: ... to here. 2008-08-05 Robert Millan * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'. * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise. * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'. * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait() instead of grub_get_rtc(). (grub_tsc_init): Initialize `tsc_boot_time'. * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub. (grub_machine_init): Use grub_tsc_init() rather than installing an RTC-based handler via grub_install_get_time_ms(). * kern/i386/pit.c: New file. * include/grub/i386/pit.h: Likewise. 2008-08-05 Bean * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe. * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h. (pkglib_MODULES): Add pxe.mod and pxecmd.mod. (pxe_mod_SOURCES): New macro. (pxe_mod_CFLAGS): Likewise. (pxe_mod_LDFLAGS): Likewise. (pxecmd_mod_SOURCES): Likewise. (pxecmd_mod_CFLAGS): Likewise. (pxecmd_mod_LDFLAGS): Likewise. * kern/i386/pc/startup.S (grub_pxe_scan): New function. (grub_pxe_call): Likewise. * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID. * commands/i386/pc/pxecmd.c: New file. * fs/i386/pc/pxe.c: Likewise. * include/grub/i386/pc/pxe.h: Likewise. 2008-08-05 Bean * util/console.c (grub_console_cur_color): New variable. (grub_console_standard_color): Likewise. (grub_console_normal_color): Likewise. (grub_console_highlight_color): Likewise. (color_map): Likewise. (use_color): Likewise. (NUM_COLORS): New macro. (grub_ncurses_setcolorstate): Handle color properly. (grub_ncurses_setcolor): Don't change color here, just remember the settings, color will be set in grub_ncurses_setcolorstate. (grub_ncurses_getcolor): New function. (grub_ncurses_init): Initialize color pairs. (grub_ncurses_term): New member grub_ncurses_getcolor. 2008-08-05 Colin D Bennett High resolution timer support. Implemented for x86 CPUs using TSC. Extracted generic grub_millisleep() so it's linked in only as needed. This requires a Pentium compatible CPU; if the RDTSC instruction is not supported, then it falls back on the generic grub_get_time_ms() implementation that uses the machine's RTC. * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c', `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'. * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'. * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'. * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/generic/millisleep.c'. * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise. * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'. * kern/generic/rtc_get_time_ms.c: New file. * kern/generic/millisleep.c: New file. * kern/misc.c: Don't include anymore. (grub_millisleep_generic): Removed. * commands/sleep.c (grub_interruptible_millisleep): Uses grub_get_time_ms() instead of grub_get_rtc(). * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline function. (grub_cpu_is_cpuid_supported): New inline function. (grub_cpu_is_tsc_supported): New inline function. (grub_tsc_init): New function prototype. (grub_tsc_get_time_ms): New function prototype. * kern/i386/tsc.c (grub_get_time_ms): New file. * include/grub/time.h: Include . Don't include anymore. (grub_millisleep): Removed. (grub_machine_init): Call grub_tsc_init. * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC get_time_ms() implementation. * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed. (ieee1275_get_time_ms): New function. (grub_machine_init): Install get_time_ms() implementation. * kern/i386/pc/init.c: Include . (grub_machine_init): Call grub_tsc_init(). (grub_millisleep): Removed. * kern/ieee1275/init.c (grub_millisleep): Removed. (grub_machine_init): Install ieee1275_get_time_ms() implementation. (ieee1275_get_time_ms): New function. (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the real work. 2008-08-05 Marco Gerards * disk/ata.c: Include . (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'. (grub_ata_initialize): Rewritten. (grub_ata_device_initialize): New function. 2008-08-04 Pavel Roskin * kern/main.c: Include grub/mm.h. 2008-08-04 Robert Millan * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS) (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code corruption problem). 2008-08-04 Robert Millan * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc warnings introduced in my last commit. 2008-08-03 Robert Millan Make PCI available on all i386 architectures. * include/grub/i386/pc/pci.h: Move from here ... * include/grub/i386/pci.h: ... to here. * include/grub/i386/pc/pci.h: Remove. * include/grub/i386/efi/pci.h: Remove. * include/grub/x86_64/efi/pci.h: Remove. * include/grub/pci.h: Replace `' with `'. * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'. (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES) (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables. * conf/i386-ieee1275.rmk: Likewise. 2008-08-03 Robert Millan * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro. (grub_console_setcursor): Make it possible to set cursor off. 2008-08-03 Robert Millan * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence of modules instead of assuming which platform provides what. * util/update-grub.in: Likewise. 2008-08-03 Robert Millan * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix' instead of `grub_install_dos_part' to determine whether a drive needs to be prepended to prefix (`grub_install_dos_part' is not reliable, because it can be overridden when loading GRUB via Multiboot). 2008-08-02 Robert Millan * util/i386/pc/grub-install.in: Remove trailing slash from prefix. 2008-08-02 Robert Millan * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair of informational grub_dprintf() calls. 2008-08-02 Robert Millan * disk/memdisk.c (memdisk_size): Don't initialize. (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate(). * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro. (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift. (grub_memdisk_image_size, grub_arch_memdisk_addr) (grub_arch_memdisk_size): Remove. * include/grub/kernel.h (struct grub_module_header): Remove `offset' field (was only used to transfer a constant). Add `type' field to support multiple module types. (grub_module_iterate): New function. * kern/device.c (grub_device_open): Do not hide error messages when grub_disk_open() fails. Use grub_print_error() instead. * kern/i386/pc/init.c (grub_arch_modules_addr) (grub_arch_memdisk_size): Remove functions. (grub_arch_modules_addr): Return the module address in high memory (now that it isn't copied anymore). * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable. (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA decompression routine (grub_total_module_size already includes that now). Don't copy modules back to low memory. * kern/main.c: Include `'. (grub_load_modules): Split out (and use) ... (grub_module_iterate): ... this function, which iterates through module objects and runs a hook. Comment out grub_mm_init_region() call, as it would cause non-ELF modules to be overwritten. * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending the memdisk image in its own region, make it part of the module list. * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option. (main): Parse --memdisk|-m option, and pass user-provided path as parameter to generate_image(). (add_segments): Pass `memdisk_path' down to load_modules(). (load_modules): Embed memdisk image in module section when requested. * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize `header.type' instead of `header.offset'. * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'. (memdisk_mod_SOURCES, memdisk_mod_CFLAGS) (memdisk_mod_LDFLAGS): New variables. * conf/i386-coreboot.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. 2008-08-02 Robert Millan * loader/i386/pc/multiboot.c (playground, forward_relocator) (backward_relocator): New variables. Used to allocate and relocate the payload, respectively. (grub_multiboot_load_elf32): Load into heap instead of requested address, install the appropriate relocator code in each bound of the payload, and set the entry point such that grub_multiboot_real_boot() will jump to one of them. * kern/i386/loader.S (grub_multiboot_payload_size) (grub_multiboot_payload_orig, grub_multiboot_payload_dest) (grub_multiboot_payload_entry_offset): New variables. (grub_multiboot_real_boot): Set cpu context to what the relocator expects, and jump to the relocator instead of the payload. * include/grub/i386/loader.h (grub_multiboot_payload_size) (grub_multiboot_payload_orig, grub_multiboot_payload_dest) (grub_multiboot_payload_entry_offset): Export. 2008-08-01 Bean * normal/menu_entry.c (editor_getline): Don't return the original string as result, as it will be released by lexer once it has done using it. 2008-08-01 Robert Millan * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from within menuentries, not before them. util/grub.d/10_hurd.in: Likewise. 2008-08-01 Bean * conf/common.rmk (pkglib_MODULES): Add bufio.mod. (bufio_mod_SOURCES): New macro. (bufio_mod_CFLAGS): Likewise. (bufio_mod_LDFLAGS): Likewise. * include/grub/bufio.h: New file. * io/bufio.c: Likewise. * video/png.c: Replace with . (grub_video_reader_png): Use grub_buffile_open to open file. * video/jpeg.c: Replace with . (grub_video_reader_jpeg): Use grub_buffile_open to open file. * video/tga.c: Replace with . (grub_video_reader_tga): Use grub_buffile_open to open file. * font/manager.c: Include . (add_font): Use grub_buffile_open to open file. 2008-07-31 Robert Millan * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading ELF segments, use a macro for arbitrarily accessing any of them instead of preparing a pointer that allows access to one at a time. (grub_multiboot_load_elf64): Likewise. 2008-07-31 Bean * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with GRUB_KERNEL_MACHINE_DATA_END. 2008-07-30 Robert Millan * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END): Increase from 0x50 to 0x60. * util/i386/pc/grub-install.in: Detect cross-disk installs, and use UUIDs to identify the root drive for them. If that's not possible, abort. * util/i386/pc/grub-setup.c (setup): Do not special-case, or even check, for cross-disk installs. 2008-07-30 Robert Millan * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix' is non-empty, use it to set the `prefix' environment variable instead of the usual approach. * kern/i386/linuxbios/init.c (make_install_device): Remove function. (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix' environment variable instead of dummy make_install_device(). * kern/i386/ieee1275/startup.S: Include `'. (start): Insert a data section, with `grub_prefix' variable. * kern/i386/linuxbios/startup.S: Likewise. * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix): New variable reference. * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX): New macro. Defines offset of `grub_prefix' within startup.S (relative to `start'). (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data section within startup.S (relative to `start'). * include/grub/i386/coreboot/kernel.h: Likewise. * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter. Overwrite grub_prefix with its contents, at the beginning of the first segment. (main): Understand -p|--prefix. 2008-07-30 Robert Millan * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib. 2008-07-30 Robert Millan * term/i386/pc/vga_text.c (grub_console_cls): Use grub_console_gotoxy() to go back to beginning of the screen. Found by Patrick Georgi 2008-07-29 Christian Franke * util/update-grub_lib.in (make_system_path_relative_to_its_root): Add conversion of emulated mount points on Cygwin. 2008-07-29 Christian Franke * util/update-grub.in: Add a check for admin group on Cygwin. Remove old `grub.cfg.new' before creation. Add `-f' to `mv' to handle the different filesystem semantics of Windows. 2008-07-29 Bean * normal/main.c (get_line): Fix buffer overflow bug. 2008-07-28 Robert Millan * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro. (struct grub_apple_header): New struct. Describes the layout of the partmap header. (apple_partition_map_iterate): Check the header magic as well as the partition magic (which was already being checked). 2008-07-28 Pavel Roskin * genmk.rb: Add a warning to the beginning of the output that it's a generated file and should not be edited. 2008-07-28 Robert Millan * disk/raid.c (grub_raid_scan_device): Do not abort when two disks with the same number are found, just use issue a warning with grub_dprintf(), as this error has been reported to be non-fatal. 2008-07-27 Robert Millan * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging information. 2008-07-27 Bean * fs/fat.c (GRUB_FAT_MAXFILE): New constant. (grub_fat_find_dir): Ignore case when comparing filename. 2008-07-27 Bean * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to smallino, as it's more descriptive, and i8count can be confused with the other field count. (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small inode type. 2008-07-27 Bean * commands/crc.c: New file. * lib/crc.c: Likewise. * include/grub/lib/crc.h: Likewise. * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h. * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h. (hexdump): Move this function to ... * lib/hexdump.c: ... here. * include/grub/hexdump.h: Renamed to ... * include/grub/lib/hexdump.h: ... this. * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h * util/grub-editenv.c: Likewise. * include/envblk.h: Renamed to ... * include/lib/envblk.h: ... this. * util/envblk.c: Renamed to ... * lib/envblk.c: ... this. * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c => lib/hexdump.c. (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c (pkglib_MODULES): Add crc.mod. (hexdump_mod_SOURCES): Add lib/hexdump.c. (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c. (crc_mod_SOURCES): New macro. (crc_mod_CFLAGS): Likewise. (crc_mod_LDFLAGS): Likewise. * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise. 2008-07-27 Felix Zielcke * commands/help.c: Include . (TERM_WIDTH): Removed. Updated all users. 2008-07-27 Pavel Roskin * util/getroot.c (find_root_device): Rephrase a comment to avoid spurious warnings about a comment within a comment. 2008-07-25 Robert Millan * util/getroot.c (find_root_device): Skip devices that match /dev/dm-[0-9]. This lets the real device be found for any type of abstraction (LVM, EVMS, RAID..). (grub_guess_root_device): Do not traverse /dev/mapper (for LVM) and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9] device is found first, find_root_device() will now skip it. 2008-07-24 Pavel Roskin * include/grub/types.h: Use __builtin_bswap32() and __builtin_bswap64() with gcc 4.3 and newer. 2008-07-24 Christian Franke * util/i386/pc/grub-install.in: If `--debug' is specified, pass `--verbose' to grub-setup. Abort script if make_system_path_relative_to_its_root() fails. 2008-07-24 Bean * configure.ac: Fixed a bug caused by the previous cygwin patch, variable `target_platform' should be `platform'. 2008-07-24 Bean * video/reader/png.c (DEFLATE_HLIT_MAX): Change value. (grub_png_init_fixed_block): New function. (grub_png_decode_image_data): Handle fixed huffman code compression. 2008-07-24 Bean * common.rmk (bin_UTILITIES): Add grub-pe2elf. (grub_pe2elf_SOURCES): New macro. (CLEANFILES): Add grub-pe2elf. * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant. (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise. (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise. (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise. (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise. (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise. (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise. (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise. (GRUB_PE32_SCN_ALIGN_MASK): Likewise. (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise. (GRUB_PE32_SYM_CLASS_STATIC): Likewise. (GRUB_PE32_SYM_CLASS_FILE): Likewise. (GRUB_PE32_DT_FUNCTION): Likewise. (GRUB_PE32_REL_I386_DIR32): Likewise. (GRUB_PE32_REL_I386_REL32): Likewise. (grub_pe32_symbol): New structure. (grub_pe32_reloc): Likewise. * util/grub-pe2elf.c: New file. * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for start symbol in non pc platform. * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf. The following patches are from Christian Franke. * include/grub/dl.h: Remove .previous, gas supports this only for ELF format. * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE): Remove .type, gas supports this only for ELF format. * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing nullbytes in symbol table. This fixes an infinite loop if table is zero filled. * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT, TARGET_IMG_LDFLAGS and EXEEXT. * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by TARGET_IMG_LDFLAGS_AC. (grub_CHECK_STACK_ARG_PROBE): New function. * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS. * conf/i386-pc-cygwin-ld-img.sc: New linker script. * configure.ac: Add check for linker script "conf/${target}-img-ld.c" to set TARGET_IMG_LD* accordingly. Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly. Add call to grub_CHECK_STACK_ARG_PROBE. Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols. * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case. * genmk.rb: Add EXEEXT to CLEANFILES. 2008-07-23 Robert Millan * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they define the codes for arrows and lines used for the menu). (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES) as well. * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete fonts, because the latter are too slow. 2008-07-21 Bean * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for a20. Run keyboard test last, as it will cause macbook to halt. 2008-07-18 Pavel Roskin * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot load foreign architecture modules correctly anyway. Keep support for loading host architecture modules, whether we compile them or not. 2008-07-17 Pavel Roskin * configure.ac: Use -m32 or -m64 regardless of whether we had to change target_cpu. The compiler default can mismatch target_cpu in any case. * disk/efi/efidisk.c: Fix format warnings on x86_64. * kern/efi/efi.c: Likewise. * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the target compiler is functional. * configure.ac: Call grub_PROG_TARGET_CC once all target flags are set up. * configure.ac: Default to efi platform for x86_64-apple. Allow powerpc64 CPU, default to ieee1275 platform for it. Split CPU adjustments from the rest, only do them if target is not explicitly given. Merge other adjustments with the final sanity check. Remove an extraneous check for supported CPU. Be specific which CPU and which platform is not supported. * configure.ac: Default to pc platform for x86_64. 2008-07-17 Robert Millan Partial LinuxBIOS -> Coreboot rename. * conf/i386-linuxbios.rmk: Renamed to ... * conf/i386-coreboot.rmk: ... this. * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g. * configure.ac: Accept "coreboot" as input platform (but maintain compatibility with "linuxbios"). * include/grub/i386/linuxbios: Renamed to ... * include/grub/i386/coreboot: ... this. 2008-07-17 Bean * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod. (appleldr_mod_SOURCE): New variable. (appleldr_mod_CFLAGS): Likewise. (appleldr_mod_LDFLAGS): Likewise. (pci_mod_SOURCES): Likewise. (pci_mod_CFLAGS): Likewise. (pci_mod_LDFLAGS): Likewise. (lspci_mod_SOURCES): Likewise. (lspci_mod_CFLAGS): Likewise. (lspci_mod_LDFLAGS): Likewise. * conf/x86_64-efi.rmk: New file. * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N macro. (grub_efidisk_write): Likewise. * include/efi/api.h (efi_call_0): New macro. (efi_call_1): Likewise. (efi_call_2): Likewise. (efi_call_3): Likewise. (efi_call_4): Likewise. (efi_call_5): Likewise. (efi_call_6): Likewise. * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to grub_rescue_cmd_chainloader. * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro. (grub_pe32_optional_header): Change some fields based on i386 or x86_64 platform. (GRUB_PE32_PE32_MAGIC): Likewise. * include/grub/efi/uga_draw.h: New file. * include/grub/elf.h (STN_ABS): New constant. (R_X86_64_NONE): Relocation constant for x86_64. (R_X86_64_64): Likewise. (R_X86_64_PC32): Likewise. (R_X86_64_GOT32): Likewise. (R_X86_64_PLT32): Likewise. (R_X86_64_COPY): Likewise. (R_X86_64_GLOB_DAT): Likewise. (R_X86_64_JUMP_SLOT): Likewise. (R_X86_64_RELATIVE): Likewise. (R_X86_64_GOTPCREL): Likewise. (R_X86_64_32): Likewise. (R_X86_64_32S): Likewise. (R_X86_64_16): Likewise. (R_X86_64_PC16): Likewise. (R_X86_64_8): Likewise. (R_X86_64_PC8): Likewise. * include/grub/i386/efi/pci.h: New file. * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE): Change it value based on platform. (GRUB_LINUX_EFI_SIGNATURE_0204): New constant. (GRUB_E820_RAM): Likewise. (GRUB_E820_RESERVED): Likewise. (GRUB_E820_ACPI): Likewise. (GRUB_E820_NVS): Likewise. (GRUB_E820_EXEC_CODE): Likewise. (GRUB_E820_MAX_ENTRY): Likewise. (grub_e820_mmap): New structure. (linux_kernel_header): Change the efi field according to different kernel version, also field from linux_kernel_header. * include/grub/kernel.h (grub_module_info): Add padding for x86_64. * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant. (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise. (GRUB_PCI_ADDR_SPACE_IO): Likewise. (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise. (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise. (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise. (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise. (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise. (GRUB_PCI_ADDR_MEM_MASK): Likewise. (GRUB_PCI_ADDR_IO_MASK): Likewise. * include/grub/x86_64/efi/kernel.h: New file. * include/grub/x86_64/efi/loader.h: Likewise. * include/grub/x86_64/efi/machine.h: Likewise. * include/grub/x86_64/efi/pci.h: Likewise. * include/grub/x86_64/efi/time.h: Likewise. * include/grub/x86_64/linux.h: Likewise. * include/grub/x86_64/setjmp.h: Likewise. * include/grub/x86_64/time.h: Likewise. * include/grub/x86_64/types.h: Likewise. * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P. * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls. (grub_efi_locate_handle): Likewise. (grub_efi_open_protocol): Likewise. (grub_efi_set_text_mode): Likewise. (grub_efi_stall): Likewise. (grub_exit): Likewise. (grub_reboot): Likewise. (grub_halt): Likewise. (grub_efi_exit_boot_services): Likewise. (grub_get_rtc): Likewise. * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models. (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P. (grub_efi_allocate_pages): Wrap efi calls. (grub_efi_free_pages): Wrap efi calls. (grub_efi_get_memory_map): Wrap efi calls. * kern/x86_64/dl.c: New file. * kern/x86_64/efi/callwrap.S: Likewise. * kern/x86_64/efi/startup.S: Likewise. * loader/efi/appleloader.c: Likewise. * loader/efi/chainloader.c (cmdline): New variable. (grub_chainloader_unload): Wrap efi calls. (grub_chainloader_boot): Likewise. (grub_rescue_cmd_chainloader): Wrap efi calls, handle command line. * loader/efi/chainloader_normal.c (chainloader_command): Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass command line. * loader/i386/efi/linux.c (allocate_pages): Change allocation method. (grub_e820_add_region): New function. (grub_linux_boot): Construct e820 map from efi map, handle x86_64 booting. (grub_find_video_card): New function. (grub_linux_setup_video): New function. (grub_rescue_cmd_linux): Probe for video information. * normal/x86_64/setjmp.S: New file. * term/efi/console.c (map_char): New function. (grub_console_putchar): Map unicode char. (grub_console_checkkey): Wrap efi calls. (grub_console_getkey): Likewise. (grub_console_getwh): Likewise. (grub_console_gotoxy): Likewise. (grub_console_cls): Likewise. (grub_console_setcolorstate): Likewise. (grub_console_setcursor): Likewise. * util/i386/efi/grub-mkimage.c: Add support for x86_64. 2008-07-16 Pavel Roskin * loader/i386/efi/linux.c (allocate_pages): Fix warnings in format strings. * util/i386/efi/grub-mkimage.c (get_target_address): Return a pointer, not an integer. This fixes a warning and prevents precision loss on 64-bit systems. (relocate_addresses): Remove unneeded cast. 2008-07-15 Pavel Roskin * kern/i386/ieee1275/init.c: Include grub/cache.h. * term/ieee1275/ofconsole.c: Disable code unused on i386. * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property): Fix comparison between signed and unsigned. * include/grub/i386/ieee1275/console.h: Declare grub_console_init() and grub_console_fini(). * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove. It's empty and unused. * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the beginning to avoid warnings with some compilers. * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h. [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast. 2008-07-14 Pavel Roskin * kern/env.c (grub_register_variable_hook): Don't copy empty string, it leaks memory. Pass "" to grub_env_set(), it should handle constant strings. * commands/blocklist.c (grub_cmd_blocklist): Fix format warning. * commands/cmp.c (grub_cmd_cmp): Likewise. * kern/dl.c (grub_dl_flush_cache): Likewise. (grub_dl_load_core): Likewise. * kern/elf.c (grub_elf32_load_phdrs): Likewise. (grub_elf64_load_phdrs): Likewise. 2008-07-13 Pavel Roskin * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison between signed and unsigned. (LzmaEnc_Finish): Fix warning about an unused parameter. 2008-07-13 Bean * Makefile.in (enable_lzo): New rule. * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo. * configure.ac (ENABLE_LZO): New option --enable-lzo. * boot/i386/pc/lnxboot.S: #include . * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change its value according to the compression algorithm used, lzo or lzma. * util/i386/pc/grub-mkimage.c (compress_kernel): Use different compression algorithm according to configure macro. * kern/i386/pc/startup.S (codestart): Likewise. * kern/i386/pc/lzma_decode.S: New file. * include/grub/lib/LzFind.h: Likewise. * include/grub/lib/LzHash.h: Likewise. * include/grub/lib/LzmaDec.h: Likewise. * include/grub/lib/LzmaEnc.h: Likewise. * include/grub/lib/LzmaTypes.h: Likewise. * lib/LzFind.c: Likewise. * lib/LzmaDec.c: Likewise. * lib/LzmaEnc.c: Likewise. 2008-07-13 Bean * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro. (grub_ext4_extent_header): New structure. (grub_ext4_extent): Likewise. (grub_ext4_extent_idx): Likewise. (grub_ext4_find_leaf): New function. (grub_ext2_read_block): Handle extents. 2008-07-12 Robert Millan * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g. 2008-07-11 Robert Millan * util/grub.d/40_custom.in: New file. Example on how to add custom entries to /etc/grub.d. * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install 40_custom (implicitly, by merging all the grub.d rules). 2008-07-11 Pavel Roskin * commands/read.c (grub_getline): Fix invalid memory access. Don't add newline to the variable value. * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant. [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3. (serial_hw_get_port): Check validity of the port number. (grub_cmd_serial): Check return value of serial_hw_get_port(). 2008-07-07 Pavel Roskin * boot/i386/pc/diskboot.S (notification_string): Replace "Loading kernel" with just "loading". This is shorter, less confusing and saves a few bytes for possible future changes. 2008-07-05 Pavel Roskin * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and size for ATAPI devices, they are undefined. Output sector number in decimal form. * disk/ata.c: Use named constants for status bits. 2008-07-04 Pavel Roskin * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to grub_addr_t before casting it to the void pointer to fix a warning. Non-addressable regions are discarded earlier. (grub_arch_modules_addr): Cast _end to grub_addr_t. * kern/i386/linuxbios/table.c: Include grub/misc.h. (check_signature): Don't shadow table_header. (grub_linuxbios_table_iterate): Cast numeric constants to grub_linuxbios_table_header_t. * include/grub/i386/linuxbios/init.h: Add noreturn attribute to grub_stop(). * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to prevent warnings. * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a pointer, which can cause warnings. Support 64-bit addresses. * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead of sizeof(long). This fixes PowerPC image generation on x86_64. 2008-07-04 Robert Millan This fixes a performance issue when pc & gpt partmap iterators didn't abort iteration even after our hook found what it was looking for (often causing expensive probes of non-existent drives). Some callers relied on previous buggy behaviour, since they would raise an error when their own hooks caused early abortion of its iteration. * kern/device.c (grub_device_open): Improve error message. * disk/lvm.c (grub_lvm_open): Likewise. * disk/raid.c (grub_raid_open): Likewise. * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration when hook requests it, independently of grub_errno. (pc_partition_map_probe): Do not fail when find_func() caused early abortion of pc_partition_map_iterate(). * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration when hook requests it, independently of grub_errno. (gpt_partition_map_probe): Do not fail when find_func() caused early abortion of gpt_partition_map_iterate(). * kern/partition.c (grub_partition_iterate): Abort parent iteration when hook requests it, independently of grub_errno. Do not fail when part_map_iterate_hook() caused early abortion of p->iterate(). * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail when grub_partition_iterate() returned with non-zero. 2008-07-03 Pavel Roskin * disk/ata.c (grub_ata_pio_write): Check status before writing, like we do in grub_ata_pio_read(). (grub_ata_readwrite): Always write individual sectors. Fix the sector count for the remainder. (grub_ata_write): Enable writing to ATA devices. Correctly report error for ATAPI devices. 2008-07-02 Pavel Roskin * boot/i386/pc/cdboot.S: Add _start entry to fix a linker warning. * disk/ata.c (grub_ata_readwrite): Don't increment sector number for every read sector, we already increment it for the whole batch. This fixes reading more than 256 sectors at once. * util/grub-editenv.c (cmd_info): Cast argument to long explicitly. ptrdiff_t reduces to int on i386. * util/grub-editenv.c (main): Be specific which parameter is missing. * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings. (memdisk): Make memdisk_orig_addr a pointer. * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t for file offsets, use grub_off_t instead. Fix printf format warnings. * fs/reiserfs.c: Remove #warning, TODO list items don't belong there. Real unexpected warnings should not drown in the noise about known problems. * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of grub_disk_addr_t for memory addresses. * loader/aout.c (grub_aout_load): Cast load_addr to pointer explicitly to fix a warning. * util/grub-editenv.c (cmd_info): Fix warning in printf format. * Makefile.in (MODULE_LDFLAGS): New variable. * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if the linker accepts --build-id=none. * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute MODULE_LDFLAGS. * genmk.rb: Use MODULE_LDFLAGS when linking modules. * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to those in Linux XFS code. Provide a way to access 64-bit parent inode. (grub_xfs_iterate_dir): Use the new names. Avoid reading past the end of struct grub_xfs_dir_header. 2008-07-02 Bean * include/grub/ieee1275.h (grub_ieee1275_flag): New constant GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM and GRUB_IEEE1275_FLAG_NO_ANSI. * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware. * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set. * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if GRUB_IEEE1275_FLAG_FORCE_CLAIM is set. * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output esc sequence on non ANSI terminal. (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal. * util/elf/grub-mkimage.c (add_segments): Move ELF header to the beginning of file. 2008-07-02 Bean * conf/common.rmk (bin_UTILITIES): Add grub-editenv. (grub_editenv_SOURCES): New variable. (pkglib_MODULES): Add loadenv.mod. (loadenv_mod_SOURCES): New variable. (loadenv_mod_CFLAGS): Likewise. (loadenv_mod_LDFLAGS): Likewise. * include/grub/envblk.h: New file. * util/envblk.c: New file. * util/grub-editenv.c: New file. * commands/loadenv.c: New file. 2008-07-01 Pavel Roskin * include/multiboot2.h (struct multiboot_tag_module): Use char, not unsigned char. This fixes warnings and is consistent with other tags. * disk/fs_uuid.c (search_fs_uuid): Correctly increment count. * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings. * term/tparm.c (analyze): Always set *popcount. * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless cast to fix a warning. * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use cast to suppress a warning. * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as grub_fshelp_read_file() expects. * fs/fat.c: Fix UUID calculation on big-endian systems. We write uuid as a 32-bit value in CPU byte order, so declare and use it as such. * disk/raid.c: Cast grub_dprintf() arguments to unsigned long long if the format specifier expects it. * partmap/gpt.c (gpt_partition_map_iterate): Likewise. * partmap/pc.c (pc_partition_map_iterate): Likewise. * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long long to fix a warning. * fs/reiserfs.c (grub_reiserfs_read): Change casts in grub_dprintf() arguments to fix warnings. 2008-06-30 Pavel Roskin * util/i386/pc/grub-setup.c (setup): Write install_dos_part and install_bsd_part immediately before core.img is embedded or modified on disk. This fixes core.img verification if core.img cannot be embedded. * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not core_path to calculate the blocklist. Patch from Javier Martín 2008-06-29 Robert Millan * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem block to disk block. (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result. Patch from Niels Böhm 2008-06-29 Robert Millan * util/update-grub_lib.in (font_path): Search for fonts in /boot/grub first, which is more likely to be readable (we aren't deciding where fonts live, just looking for them). 2008-06-26 Pavel Roskin * util/biosdisk.c (read_device_map): Don't leave dead map entries for devices failing stat() check. * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use core_path_dev for the core.img path on the target device. 2008-06-26 Robert Millan * disk/fs_uuid.c: New file. * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'. (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS) (fs_uuid_mod_LDFLAGS): New variables. * include/grub/disk.h (grub_disk_dev_id): Add `GRUB_DISK_DEVICE_UUID_ID'. * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to implement iterate(). 2008-06-26 Robert Millan * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a Linux image includes no initrd. 2008-06-21 Javier Martín * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a call to resolve the core image location that effectively appended the name twice. 2008-06-21 Robert Millan * util/grub.d/00_header.in: Move last prepare_grub_to_access_device() call from here ... * util/grub.d/10_hurd.in: ... to here ... * util/grub.d/10_linux.in: ... and here. 2008-06-19 Robert Millan * kern/main.c (grub_main): Export `prefix' variable immediately after it has been set by grub_machine_set_prefix(). 2008-06-19 Robert Millan * commands/search.c (search_label, search_fs_uuid, search_file): Print search result when not saving to variable, not the other way around. When saving to variable, abort iteration as soon as a match is found. 2008-06-19 Robert Millan * util/update-grub_lib.in (prepare_grub_to_access_device): Remove check for partition that provides /boot/grub. Its logic is flawed, as it prevents prepare_grub_to_access_device() from being called multiple times. 2008-06-19 Robert Millan * util/update-grub_lib.in (prepare_grub_to_access_device): Issue "insmod" command directly when abstraction modules are needed, instead of relying on GRUB_PRELOAD_MODULES (which had no effect since it had already been processed). 2008-06-19 Pavel Roskin * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has changed. This is needed in case GRUB_LIBDIR changes. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-linuxbios.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. 2008-06-18 Pavel Roskin * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename kernel_elf_symlist.c to symlist.c for consistency with other architectures. Update all users. * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise. 2008-06-18 Robert Millan * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend it in prefix. * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set `must_embed' to 1 when root_dev is a RAID device. When dest_dev is a RAID device, run setup() for all members independently on whether LVM abstraction is being used. (setup): Don't handle prefix at all; let grub-mkimage take care of it. If grub-mkimage has set `*install_dos_part == -2', don't override this value. Perform *install_dos_part adjustments independently on whether we're embedding or not. Clarify error message when image is too big for embedding. Remove duplicate *install_dos_part stanza. 2008-06-17 Robert Millan * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables. (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New variables. (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store values in grub_ofconsole_normal_color and grub_ofconsole_highlight_color (they're not directly related to background and foreground). (grub_ofconsole_setcolorstate): Extract background and foreground from grub_ofconsole_normal_color and grub_ofconsole_highlight_color. 2008-06-17 Robert Millan * util/update-grub_lib.in (prepare_grub_to_access_device): Use /boot/grub for the check in last commit, not /boot (they could be different partitions). 2008-06-16 Robert Millan * util/update-grub_lib.in (prepare_grub_to_access_device): If we were asked to setup access for the same partition that provides /boot, don't bother using UUIDs since our root already has the value we want. 2008-06-16 Robert Millan * util/biosdisk.c (convert_system_partition_to_system_disk): Detect I2O devices. Patch from Sven Mueller . 2008-06-16 Robert Millan * util/update-grub.in: Check for $EUID instead of $UID. Reported by Vincent Zweije. 2008-06-16 Bean * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state. (grub_ext2_read_block): Likewise. (grub_ext2_read_inode): Likewise. (grub_ext2_mount): Likewise. (grub_ext2_close): Likewise. (grub_ext3_get_journal): Removed. * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state. (grub_reiserfs_read_symlink): Likewise. (grub_reiserfs_mount): Likewise. (grub_reiserfs_open): Likewise. (grub_reiserfs_read): Likewise. (grub_reiserfs_close): Likewise. (grub_reiserfs_get_journal): Removed. * fs/fshelp.c (grub_fshelp_read): Removed. (grub_fshelp_map_block): Likewise. * include/grub/fshelp.h (grub_fshelp_journal_type): Removed. (grub_fshelp_journal): Likewise. (grub_fshelp_read): Likewise. (grub_fshelp_map_block): Likewise. 2008-06-16 Pavel Roskin * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use floating point anymore. * include/grub/powerpc/libgcc.h: Leave only necessary exports. 2008-06-15 Pavel Roskin * commands/ls.c (grub_ls_list_files): Use integer calculations for human readable format, avoid floating point use. * kern/misc.c (grub_ftoa): Remove. (grub_vsprintf): Remove floating point support. 2008-06-15 Robert Millan * util/grub.d/10_linux.in: Use the underlying device for loop-AES devices. Reported by Max Vozeler. 2008-06-15 Robert Millan * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be skipped later. (main): If a memdisk was requested, add "(memdisk)" drive explicitly to the beginning of the prefix. * kern/i386/pc/init.c (make_install_device): Remove memdisk check. It is assumed that if we have a memdisk, grub-mkimage has set grub_prefix to include the "(memdisk)" drive in it. 2008-06-15 Robert Millan * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init): Initialize keyboard controller after registering the terminal, so that grub_printf() can be called from grub_keyboard_controller_init(). 2008-06-15 Robert Millan * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in extent-btree which is written as big endian on disk. Reported by Alain Greppin . 2008-06-14 Robert Millan * util/i386/efi/grub-install.in (modules): Remove `_chain'. * util/i386/pc/grub-install.in (modules): Likewise. 2008-06-13 Pavel Roskin * commands/ls.c (grub_ls_list_files): Fix format warnings. 2008-06-13 Bean * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition. * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling. * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used to indicate sparse block. 2008-06-12 Pavel Roskin * fs/ext2.c (grub_ext2_read_inode): Don't normalize block number, grub_fshelp_read() does it for us. * fs/fshelp.c (grub_fshelp_read): New function. Implement linear disk read with journal translation. * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read(). * include/grub/fshelp.h: Declare grub_fshelp_read(). 2008-06-09 Pavel Roskin * fs/minix.c (grub_minix_mount): Handle error reading superblock. 2008-06-08 Robert Millan * util/i386/pc/grub-setup.c (main): If install drive is an LVM, don't append the RAID prefix afterwards. Reported by Clint Adams. 2008-06-08 Robert Millan Based on description from Pavel: * kern/disk.c (grub_disk_check_range): Rename to ... (grub_disk_adjust_range): ... this. Add a comment explaining the tasks performed by this function. 2008-06-08 Robert Millan * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to `num_serial' (for consistency with other variables). (struct grub_ntfs_data): Add `uuid' member. * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'. (grub_ntfs_uuid): New function. (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member. 2008-06-07 Pavel Roskin * util/biosdisk.c (open_device): Revert last change to the function, it broke installation. The sector needs to be different dependent on which device is opened. 2008-06-06 Robert Millan Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the rest of GRUB, and breakage doesn't happen if its value were modified. * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of a constant (same value). * kern/i386/pc/startup.S: Replace hardcoded `0x50' with `GRUB_KERNEL_MACHINE_DATA_END' (same value). 2008-06-06 Robert Millan * util/biosdisk.c (open_device): Do not modify sector offset when accessing a partition. kern/disk.c already handles this for us. 2008-06-06 Robert Millan * util/grub-emu.c (grub_machine_init): Move code in this function from here ... (main): ... to here (before grub_util_biosdisk_init() call, to prevent segfault in case grub_printf() is called). * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to grub_probe. Update all users not to explicitly add it again. (grub_device): New variable; contains corresponding device for grubdir. (fs_module, partmap_module, devabstraction_module): Pass `--device ${grub_device}' to grub_probe to avoid traversing /dev every time. 2008-06-05 Robert Millan * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID is found, print it (same layout as with labels). 2008-06-04 Robert Millan * util/biosdisk.c (get_drive): Rename to ... (find_grub_drive): ... this. Update all users. (get_os_disk): Rename to ... (convert_system_partition_to_system_disk): ... this. Update all users. (find_drive): Rename to ... (find_system_device): ... this. Update all users. 2008-06-04 Robert Millan * util/biosdisk.c (get_os_disk): Handle IDA devices. * util/grub-mkdevicemap.c (get_mmc_disk_name) (make_device_map): Likewise. 2008-06-01 Robert Millan * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL before dereferencing it. * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a union with fat12/fat16-specific ones. Add some new fields, including `num_serial' for both versions. (struct grub_fat_data): Add `uuid' member. (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new names. Initialize `data->uuid' using `num_serial'. (grub_fat_uuid): New function. (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member. * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field. (grub_reiserfs_uuid): New function. (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member. * fs/xfs.c (grub_xfs_sblock): Add `uuid' field. (grub_xfs_uuid): New function. (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member. 2008-06-01 Robert Millan * util/update-grub_lib.in (prepare_grub_to_access_device): Generate code that is backward compatible with pre-uuid search command. 2008-05-31 Robert Millan * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through floppies after everything else, to ensure floppy drive isn't accessed unnecessarily (patch from Bean). 2008-05-31 Robert Millan * commands/search.c (search_label, search_fs_uuid, search_file): Do not print device names when we were asked to set a variable. 2008-05-31 Robert Millan * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement using "cursor-on" and "cursor-off" commands (understood at least by the Open Firmware flavour on OLPC). 2008-05-31 Michael Gorven * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor on and off sequences. 2008-05-31 Robert Millan * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'. * util/update-grub.in: Likewise. 2008-05-30 Pavel Roskin * util/biosdisk.c (linux_find_partition): Simplify logic and make the code more universal. Keep special processing for devfs, but use a simple rule for all other devices. If the device ends with a number, append 'p' and the partition number. Otherwise, append only the partition number. 2008-05-30 Robert Millan * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable. * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as the `root' parameter to Linux. 2008-05-30 Robert Millan * commands/search.c (options): Rename --fs_uuid to --fs-uuid. * util/update-grub_lib.in (prepare_grub_to_access_device): Replace --fs_uuid with --fs-uuid. * util/update-grub.in: Allow filesystem UUID probes to fail (since not all filesystems support them). 2008-05-30 Robert Millan * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as grub_printf() flags, since we're printing in units of 2 bytes. 2008-05-30 Robert Millan * util/grub.d/00_header.in: Remove obsolete comment referencing convert_system_path_to_grub_path(). * util/update-grub.in: Likewise. * util/update-grub_lib.in (is_path_readable_by_grub): New function. (convert_system_path_to_grub_path): Add a warning message explaining that this function is deprecated. Rely on is_path_readable_by_grub() for the readability checks. (font_path): Use is_path_readable_by_grub() for the readability check rather than convert_system_path_to_grub_path(). 2008-05-30 Robert Millan * util/update-grub_lib.in (prepare_grub_to_access_device): New function. * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without converting it first. * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup grub.cfg for access to font file, and afterwards call it again to set the root device. 2008-05-30 Robert Millan * commands/search.c (options): Add --fs_uuid option. (search_fs_uuid): New function. (grub_cmd_search): Fix --set argument passing. Use search_fs_uuid() when requested via --fs_uuid. (grub_search_init): Update help message. * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid' and redeclare it as an array of 16-bit words. (grub_ext2_uuid): New function. (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member. * include/grub/fs.h (struct grub_fs): Add `uuid' struct member. * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT) (GRUB_DEVICE_BOOT_UUID): New variables. (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove. * util/grub.d/00_header.in: Set root using `search --fs_uuid' command whenever possible. * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead, just assume `root' variable has the right value. * util/grub.d/10_linux.in: Likewise. * util/grub-probe.c (probe): Probe for filesystem UUID when requested via PRINT_FS_UUID. (main): Recognise `-t fs_uuid' argument. 2008-05-30 Robert Millan * util/biosdisk.c (map): Redefine structure to hold information about GRUB drive name. (get_drive): Reimplement without assuming (and verifying) BIOS-like drive names. (call_hook): Remove. (grub_util_biosdisk_iterate): Access drive names via `.drive' struct member. Assume drive has partitions. (grub_util_biosdisk_open): Access device names via `.device' struct member. (open_device): Likewise. (find_drive): Likewise. (read_device_map): Adjust map[] usage to match the new struct definition. Don't check for duplicates (still possible, but not cheap anymore). (grub_util_biosdisk_fini): Free malloced buffers referenced by map[]. (make_device_name): Remove assumption of BIOS-like drive names. 2008-05-30 Pavel Roskin * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as compiling execute.c doesn't need grub_script.tab.h anymore. (normal/command.c_DEPENDENCIES): Likewise. (normal/function.c_DEPENDENCIES): Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-linuxbios.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. 2008-05-29 Pavel Roskin * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end when scanning metadata for volume group name. * include/grub/script.h: Don't include grub_script.tab.h. It's a generated file, which may only be included from the files with DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE, use union YYSTYPE, as the later allows forward declaration. * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE. 2008-05-29 Robert Millan * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'. (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros. [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes (grub_console_checkkey): Add grub_dprintf() call to report unknown scan codes. 2008-05-29 Robert Millan * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for control key combinations. 2008-05-29 Robert Millan * util/powerpc/ieee1275/grub-install.in: Move from here ... * util/ieee1275/grub-install.in: ... to here. * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location. * i386-ieee1275.rmk (sbin_SCRIPTS): New variable. (grub_install_SOURCES): Likewise. 2008-05-29 Robert Millan * fs/affs.c: Update copyright year. * fs/ext2.c: Likewise. * fs/fshelp.c: Likewise. * fs/hfsplus.c: Likewise. * fs/ntfs.c: Likewise. * fs/xfs.c: Likewise. * include/grub/fshelp.h: Likewise. * util/grub-mkdevicemap.c: Likewise. 2008-05-28 Robert Millan * util/update-grub.in: Allow chmod call to fail, since /boot/grub/ might need to be fatfs to support some firmware implementations (e.g. OFW or EFI). 2008-05-28 Robert Millan * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC devices. * util/grub-mkdevicemap.c (get_mmc_disk_name) (make_device_map): Likewise. 2008-05-20 Bean * fs/fshelp.c (grub_fshelp_map_block): New function. (grub_fshelp_find_file): Use 64-bit type for pos and block address. Use `>>' and `&' operator to avoid 64-bit divide and modulo. * include/grub/fshelp.h (grub_fshelp_journal_type): New enum. (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro. (grub_fshelp_journal): New structure. (grub_fshelp_map_block): New function prototype. (grub_fshelp_read_file): Use grub_disk_addr_t as block type. (grub_fshelp_map_block): Likewise. * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro. (EXT3_JOURNAL_MAGIC_NUMBER): Likewise. (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise. (EXT3_JOURNAL_COMMIT_BLOCK): Likewise. (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise. (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise. (EXT3_JOURNAL_REVOKE_BLOCK): Likewise. (EXT3_JOURNAL_FLAG_ESCAPE): Likewise. (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise. (EXT3_JOURNAL_FLAG_DELETED): Likewise. (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise. (grub_ext2_sblock): New members for journal support. (grub_ext3_journal_header): New structure. (grub_ext3_journal_revoke_header): Likewise. (grub_ext3_journal_block_tag): Likewise. (grub_ext3_journal_sblock): Likewise. (grub_fshelp_node): New members logfile and journal. (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use grub_fshelp_map_block to get real block number. (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block number. (grub_ext2_read_inode): Likewise. (grub_ext3_get_journal): New function. (grub_read_inode): Initialize journal using grub_ext3_get_journal. (grub_ext2_close): Release memory used by journal. * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr". (REISERFS_MAGIC_DESC_BLOCK): New macro. (grub_reiserfs_transaction_header): Renamed to grub_reiserfs_description_block, replace field data with real_blocks. (grub_reiserfs_commit_block): New structure. (grub_reiserfs_data): New member journal. (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block number. (grub_reiserfs_read_symlink): Likewise. (grub_reiserfs_iterate_dir): Likewise. (grub_reiserfs_open): Likewise. (grub_reiserfs_read): Likewise. (grub_reiserfs_get_journal): New function. (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal using grub_reiserfs_get_journal. (grub_reiserfs_close): Release memory used by journal. * fs/affs.c (grub_affs_read_block): Change block type to grub_disk_addr_t. Use grub_divmod64 to do 64-bit division. * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t. * fs/hfsplus.c (grub_hfsplus_read_block): Likewise. * fs/ntfs.c (grub_ntfs_read_block): Likewise. * fs/udf.c (grub_udf_read_block): Change block type to grub_disk_addr_t. Use type cast to avoid warning. * fs/xfs.c (grub_xfs_read_block): Likewise. 2008-05-16 Christian Franke * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue to ensure that break with ESC will always work. * commands/sleep.c (grub_interruptible_millisleep): Likewise. Remove ESC from keyboard queue. 2008-05-16 Christian Franke * util/biosdisk.c: [__CYGWIN__] Add includes. (grub_util_biosdisk_open): Use Linux code also for Cygwin. (get_os_disk): Move variable declarations to OS specific parts to avoid warning. [__GNU__] (get_os_disk): Fix /dev/sdXsN case. [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names. (grub_util_biosdisk_get_grub_dev): Use Linux code also for Cygwin. * util/getroot.c: [__CYGWIN__] Add includes. (strip_extra_slashes): Fix "/" case. [__CYGWIN__] (get_win32_path): New function. [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path. [__CYGWIN__] (find_root_device): Disable. [__CYGWIN__] (get_bootsec_serial): New function. [__CYGWIN__] (find_cygwin_root_device): Likewise. [__linux__] (grub_guess_root_device): Add early returns to simplify structure. [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device. [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID check for Linux only. 2008-05-15 Bean * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the keyboard hang problem in apple's intel mac. 2008-05-09 Robert Millan * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio devices. * util/grub-mkdevicemap.c (get_virtio_disk_name) (make_device_map): Likewise. Reported by Aurelien Jarno 2008-05-07 Ian Campbell * util/biosdisk.c (get_os_disk): Recognise xvd type disks. * util/grub-mkdevicemap.c (get_xvd_disk_name): New function. (make_device_map): Output entries for xvd type disks. 2008-05-07 Robert Millan * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS devices. * util/grub-mkdevicemap.c (get_cciss_disk_name) (make_device_map): Likewise. Reported by Roland Dreier 2008-05-07 Robert Millan * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional grub_strstr() call. Correct a few mistakes in failure path handling. 2008-05-06 Robert Millan * util/update-grub_lib.in (make_system_path_relative_to_its_root): Do not print a trailing slash (therefore, the root directory is an empty string). (convert_system_path_to_grub_path): Do not remove trailing slash from make_system_path_relative_to_its_root() output. * util/i386/pc/grub-install.in: Add trailing slash to output from make_system_path_relative_to_its_root(). 2008-05-06 Robert Millan * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This ensures that output lines aren't intermangled with those sent to stderr (via grub_util_info()). * util/grub-probe.c (grub_refresh): Likewise. * util/i386/pc/grub-setup.c (grub_refresh): Likewise. 2008-05-05 Christian Franke * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]: Add Cygwin device names. (get_ide_disk_name) [__CYGWIN__]: Likewise. (get_scsi_disk_name) [__CYGWIN__]: Likewise. (check_device): Return error instead of success on empty name. (make_device_map): Move label inside linux specific code to prevent compiler warning. 2008-04-30 Robert Millan Based on patch from Fabian Greffrath * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the first boot option. * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT. 2008-04-29 Robert Millan * docs/grub.cfg: New file (example GRUB configuration). 2008-04-26 Robert Millan * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c' and `disk/ieee1275/nand.c'. 2008-04-25 Bean * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and i386-linuxbios. * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device, change the buffer size to 4096 for cdrom device. * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod and nand.mod. (_linux_mod_SOURCES): New variable. (_linux_mod_CFLAGS): Likewise. (_linux_mod_LDFLAGS): Likewise. (linux_mod_SOURCES): Likewise. (linux_mod_CFLAGS): Likewise. (linux_mod_LDFLAGS): Likewise. (nand_mod_SOURCES): Likewise. (nand_mod_CFLAGS): Likewise. (nand_mod_LDFLAGS): Likewise. * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device type property. (nand device in olpc don't have this property) * include/grub/disk.h (grub_disk_dev_id): New macro GRUB_DISK_DEVICE_NAND_ID. * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New function prototype. (grub_rescue_cmd_initrd): Likewise. * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro. (linux_kernel_params): Add new member ofw_signature, ofw_num_items, ofw_cif_handler and ofw_idt, adjust padding number. * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if GRUB_MACHINE_IEEE1275 is defined. * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Use NESTED_FUNC_ATTR attribute on the hook parameter. * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR on nested function heap_init. (grub_upper_mem): New variable for i386-ieee1275. (grub_get_extended_memory): New function for i386-ieee1275. (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275. * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type property. * loader/i386/ieee1275/linux.c: New file. * loader/i386/ieee1275/linux_normal.c: New file. * disk/ieee1275/nand.c: New file. 2008-04-18 Thomas Schwinge * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct value. * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise. 2008-04-18 Robert Millan Restructures early code path on ieee1275 to unify grub_main() as the first C function that is executed in every platform. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype. * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of cmain(). * kern/powerpc/ieee1275/crt0.S (_start): Likewise. * kern/ieee1275/cmain.c (cmain): Rename to ... * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this. * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init() at the beginning. 2008-04-18 Robert Millan * util/update-grub.in: Fix syntax error when setting `GRUB_PRELOAD_MODULES'. Reported by Stephane Chazelas 2008-04-17 Lubomir Kundrak * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text section into account, newer toolchains generate unique build ids * configure.ac: remove the test for --build-id=none acceptance, we want build ids to be preserved * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id far from other sections don't cause the raw binary images grow size 2008-04-15 Robert Millan * disk/lvm.c: Update copyright year. * kern/misc.c: Likewise. 2008-04-14 Vesa Jaaskelainen * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when there is no memory left for physical volume name. 2008-04-14 Vesa Jaaskelainen * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical volume name mapping to support bigger than 9 character names properly. 2008-04-13 Robert Millan * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check, as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm 2008-04-13 Christian Franke * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy to create a floppy emulation boot CD when non emulation mode does not work. Enable Joliet CD filesystem extension. 2008-04-13 Robert Millan * kern/misc.c (grub_strncat): Fix off-by-one error. Reported by Zhang Huan * kern/env.c (grub_env_context_close): Clear current context, not previous one. Patch from Zhang Huan * kern/misc.c (grub_strcat): Minor speed optimization (same code size). 2008-04-13 Robert Millan Improve robustness when handling LVM. * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL (and leave `*p' unmodified). (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating through it. (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when iterating through it. (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating through it. (grub_lvm_scan_device): Check the return value (and fail gracefully when due) on each grub_lvm_getvalue() or grub_strstr() call. Don't assume `vg->pvs != NULL' when iterating through it. 2008-04-13 Robert Millan * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'. * genmk.rb (partmap): New variable. (CLEANFILES, PARTMAPFILES): Add #{partmap}. (#{partmap}): New target rule. * genpartmaplist.sh: New file. * Makefile.in (pkglib_DATA): Add partmap.lst. (partmap.lst): New target rule. * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed modules (including all partition maps), instead of preloading them. 2007-04-13 Fabian Greffrath * util/grub.d/30_os-prober.in: New script. Use `os-prober' and `linux-boot-prober' (if installed) to detect other operating systems which are installed on the computer and add them to the boot menu. * conf/common.rmk: Build and install 30_os-prober. 2008-04-12 Robert Millan * kern/powerpc/ieee1275/init.c: Move from here ... * kern/ieee1275/init.c: ... to here. Update all users. * kern/powerpc/ieee1275/cmain.c: Move from here ... * kern/ieee1275/cmain.c: ... to here. Update all users. * kern/powerpc/ieee1275/openfw.c: Move from here ... * kern/ieee1275/openfw.c: ... to here. Update all users. * loader/powerpc/ieee1275/multiboot2.c: Move from here ... * loader/ieee1275/multiboot2.c: ... to here. Update all users. 2008-04-10 Pavel Roskin * configure.ac: Always use "_cv_" in cache variables for compatibility with Autoconf 2.62. 2008-04-07 Robert Millan Revert grub/machine/init.h addition by Pavel (since it breaks on i386-ieee1275 and others): * util/i386/pc/misc.c: Remove grub/machine/init.h. * util/powerpc/ieee1275/misc.c: Likewise. 2008-04-07 Robert Millan * util/grub-probe.c (probe): Improve error message. 2008-04-07 Robert Millan * util/biosdisk.c (read_device_map): Skip devices that don't exist (this prevents the presence of a bogus entry from ruining the whole thing). 2008-04-06 Pavel Roskin * util/biosdisk.c: Include grub/util/biosdisk.h. * util/grub-fstest.c (execute_command): Make static. * util/grub-mkdevicemap.c (check_device): Likewise. * util/i386/pc/misc.c: Include grub/machine/init.h. * util/powerpc/ieee1275/misc.c: Likewise. * util/lvm.c: Include grub/util/lvm.h. * util/misc.c: Include grub/kernel.h, grub/misc.h and grub/cache.h. * util/raid.c: Include grub/util/raid.h. (grub_util_getdiskname): Make static. * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and grub_hostfs_fini(), as they are called from grub_init_all() and grub_fini_all() respectively. This fixes an infinite loop in grub-fstest due to double registration of hostfs. Reported by Christian Franke 2008-04-05 Pavel Roskin * bus/pci.c (grub_pci_iterate): For multifunction devices, probe all 8 functions. Otherwise, probe function 0 only. 2008-04-04 Pavel Roskin * commands/lspci.c (grub_lspci_iter): Print the bus number correctly. * commands/lspci.c (grub_pci_classes): Fix typos. (grub_lspci_iter): Don't print func twice. Print vendor ID before device ID, as it's normally done. * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Fix signedness warnings. * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise. * util/ieee1275/get_disk_name.c: Include config.h so that _GNU_SOURCE is defined and getline() is declared. Mark an unused argument as such. Fix a signedness warning. 2008-04-02 Pavel Roskin * genkernsyms.sh.in: Use more robust assignments for CC and srcdir. Quote srcdir. * gensymlist.sh.in: Likewise. Assert at the compile time that the symbol table is not empty. * disk/raid.c (grub_raid_memberlist): Fix a signedness warning. * fs/cpio.c (grub_cpio_read): Likewise. 2008-04-01 Pavel Roskin * disk/ata.c (grub_ata_open): Don't lose precision in disk->id. * disk/host.c (grub_host_open): Likewise. * disk/loopback.c (grub_loopback_open): Likewise. * disk/memdisk.c (grub_memdisk_open): Use a string pointer for disk->id as in disk/host.c, not a multi-character constant. * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The later is obsolete, potentially dangerous and sets a bad example. * util/i386/efi/grub-mkimage.c (make_header): Likewise. * util/misc.c (grub_util_get_image_size): Likewise. * disk/loopback.c (options): Improve help for "--partitions". * normal/arg.c (grub_arg_show_help): Fix spacing of the long options to align them with the short options, e.g. "echo -e". 2008-03-31 Bean * video/reader/png.c (grub_png_data): New member is_16bit and image_data. (grub_png_decode_image_header): Detect 16 bit png image. (grub_png_convert_image): New function to convert 16 bit image to 8 bit. (grub_png_decode_png): Call grub_png_convert_image for 16 bit image. (grub_video_reader_png): Release memory occupied by image_data. * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than 4096 bytes. (grub_nfs_mount): Skip the test for sector per cluster. * include/grub/ntfs.h (MAX_SPC): Removed. 2008-03-31 Bean * conf/common.rmk (pkgdata_MODULES): Add afs.mod. (grub_probe_SOURCES): Add fs/afs.c. (grub_fstest_SOURCES): Likewise. (afs_mod_SOURCES): New variable. (afs_mod_CFLAGS): Likewise. (afs_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c. (grub_emu_SOURCES): Likewise. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * fs/afs.c: New file. 2008-03-30 Pavel Roskin * disk/host.c: Include grub/misc.h to fix a warning. * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix warnings about implicit declarations. * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a variable. * include/grub/i386/loader.h: Change declaration of grub_linux_boot() to match what grub_loader_set() expects. * util/getroot.c (grub_guess_root_device): Return const char* to fix a warning. * util/grub-probe.c (probe): Fix a warning about uninitialized abstraction_name variable. * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark second argument as unused to fix a warning. * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add missing grub_error() call. * util/update-grub_lib.in: Define datarootdir, since Autoconf 2.60 and newer uses it to define datadir. * commands/sleep.c: Fix warning about implicit declaration. * disk/memdisk.c: Likewise. * loader/aout.c: Likewise. * loader/i386/bsd_normal.c: Likewise. * util/grub-probe.c: Likewise. * commands/i386/cpuid.c (has_longmode): Make static. * disk/i386/pc/biosdisk.c (cd_drive): Likewise. * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused. * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load GDT. This is more robust, as %ds can change. (grub_biosdisk_rw_int13_extensions): Don't clear %ds before calling real_to_prot(). (grub_biosdisk_get_diskinfo_int13_extensions): Likewise. 2008-03-28 Pavel Roskin * kern/i386/pc/startup.S: Assert that uncompressed functions don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE. * kern/i386/pc/lzo1x.S: Remove all .align directives in the code, as they push parts of the code (error handlers) beyond GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this code as correctness and size. 2008-03-28 Pavel Roskin * kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions): When converting data block address to the real mode, keep offset minimal. This works around a bug in AWARD BIOS on old Athlon systems, which makes CD detection hang. 2008-03-26 Pavel Roskin * normal/color.c (grub_parse_color_name_pair): Make `name' a const. * include/grub/normal.h: Add grub_parse_color_name_pair() declaration. 2008-03-24 Bean * disk/i386/pc/biosdisk.c (cd_start): Removed. (cd_count): Removed. (cd_drive): New variable. (grub_biosdisk_get_drive): Don't check for (cdN) device. (grub_biosdisk_call_hook): Likewise. (grub_biosdisk_iterate): Change cdrom detection method. (grub_biosdisk_open): Replace cd_start with cd_drive. (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to detect cdrom device. * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START): Removed. (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed. (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro. (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise. (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise. (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise. (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise. (GRUB_BIOSDISK_CDTYPE_MASK): Likewise. (grub_biosdisk_cdrp): New structure. (grub_biosdisk_get_cdinfo_int13_extensions): New function. * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable. * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root device. * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions): New function. 2008-03-20 Robert Millan Remove 2 TiB limit in ata.mod. * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t. (grub_ata_dumpinfo): Print sector count with 0x%llx. (grub_ata_identify): Interpret `&info16[100]' as a pointer to grub_uint64_t instead of grub_uint32_t. 2008-03-05 Bean * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function. (grub_multiboot): Set boot device. * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF. 2008-03-02 Bean * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of symlink_buffer. 2008-03-01 Yoshinori K. Okuji * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and texinfo.tex. * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly modified. * docs/fdl.texi: New file. * docs/mdate-sh: New file. Copied from gnulib. * docs/texinfo.tex: Likewise. * config.guess: Updated from gnulib. * install-sh: Likewise. 2008-02-28 Robert Millan * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod. (aout_mod_SOURCES): New variable. (aout_mod_CFLAGS): Likewise. (aout_mod_LDFLAGS): Likewise. * conf/i386-ieee1275.rmk: Likewise. 2008-02-28 Robert Millan * util/update-grub.in: Reorganise terminal validity check. Accept `ieee1275:console' (OLPC) and `*:gfxterm' as valid too. Based on suggestion by Franklin PIAT. 2008-02-28 Fabian Greffrath * include/grub/util/getroot.h (grub_util_check_block_device): Export new function. * util/getroot.c (grub_util_check_block_device): New function that returns the given argument if it is a block device and returns NULL else. * util/grub-probe.c (argument_is_device): New variable. (probe): Promote device_name from a variable to an argument. Receive device_name from grub_util_check_block_device() if path is NULL and from grub_guess_root_device() else. Do not free() device_name anymore. (options): Introduce new parameter '-d, --device'. (main): Add description of the new parameter to the help screen. Rename path variable to argument. Set argument_is_device if the '-d' option is given. Pass argument to probe() depending on argument_is_device. 2008-02-24 Bean * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro. (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise. (GRUB_ISO9660_VOLDESC_SUPP): Likewise. (GRUB_ISO9660_VOLDESC_PART): Likewise. (GRUB_ISO9660_VOLDESC_END): Likewise. (grub_iso9660_primary_voldesc): New member escape. (grub_iso9660_data): New member joliet. (grub_iso9660_convert_string): New function. (grub_iso9660_mount): Detect joliet extension. (grub_iso9660_iterate_dir): Convert filename when joliet is detected. (grub_iso9660_iso9660_label): Likewise. * conf/common.rmk (pkgdata_MODULES): Add udf.mod. (grub_setup_SOURCES): Add fs/udf.c. (grub_fstest_SOURCES): Likewise. (udf_mod_SOURCES): New variable. (udf_mod_CFLAGS): Likewise. (udf_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c. (grub_emu_SOURCES): Likewise. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * fs/udf.c: New file. 2008-02-24 Robert Millan * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES) (normal/lexer.c_DEPENDENCIES): New variables. * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES) (normal/lexer.c_DEPENDENCIES): Likewise. * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES) (normal/lexer.c_DEPENDENCIES): Likewise. * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES) (normal/lexer.c_DEPENDENCIES): Likewise. * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES) (normal/lexer.c_DEPENDENCIES): Likewise. * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES) (normal/lexer.c_DEPENDENCIES): Likewise. 2008-02-23 Robert Millan * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member, since they were intended to be in hex. This didn't break previously because of a bug in gpt_partition_map_iterate() (see below). (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp' when checking the validity of GPT header. Remove `partno', since it always provides the same information as `i'. 2008-02-21 Yoshinori K. Okuji * include/grub/efi/time.h: Fix a wrong comment. 2008-02-19 Pavel Roskin * kern/rescue.c (grub_enter_rescue_mode): Improve initial message. 2008-02-19 Bean * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod. (aout_mod_SOURCES): New variable. (aout_mod_CFLAGS): Likewise. (aout_mod_LDFLAGS): Likewise. (_bsd_mod_SOURCES): New variable. (_bsd_mod_CFLAGS): Likewise. (_bsd_mod_LDFLAGS): Likewise. (bsd_mod_SOURCES): New variable. (bsd_mod_CFLAGS): Likewise. (bsd_mod_LDFLAGS): Likewise. * include/grub/aout.h: New file. * include/grub/i386/loader.h (grub_unix_real_boot): New function. * include/grub/i386/bsd.h: New file. * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC to make it public. * kern/elf.c (grub_elf32_load): Get the physical address after the hook function is called, so that it's possible to change it inside the hook. (grub_elf64_load): Likewise. (grub_elf_file): Don't close the file if elf header is not found. (grub_elf_close): Close the file if grub_elf_file fails (The new grub_elf_file won't close it). (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize. (grub_elf64_size): Likewise. * kern/i386/loader.S (grub_unix_real_boot): New function. * loader/aout.c: New file. * loader/i386/bsd.c: New file. * loader/i386/bsd_normal.c: New file. * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format. * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it can test other formats. 2008-02-19 Robert Millan * partmap/gpt.c: Include `'. (grub_gpt_partition_type_empty): Redefine with macro from `'. (gpt_partition_map_iterate): Adjust partition type comparison. Export `entry' as partmap-specific `part.data' struct. (grub_gpt_header, grub_gpt_partentry): Move from here ... * include/grub/gpt_partition.h (grub_gpt_header) (grub_gpt_partentry): ... to here (new file). * util/i386/pc/grub-setup.c: Include `'. (grub_gpt_partition_type_bios_boot): New const variable, defined with macro from `'. (setup): Replace `first_start' with `embed_region', which keeps track of the embed region (and is partmap-agnostic). Replace find_first_partition_start() with find_usable_region(), which finds a usable region for embedding using partmap-specific knowledge (supports PC/MSDOS and GPT). Fix all assumptions that the embed region start at sector 1, using `embed_region.start' from now on. Similarly, use `embed_region.end' rather than `first_start' to calculate available size. In grub_util_info() message, replace "into after the MBR" with an indication of the specific sector our embed region starts at. 2008-02-19 Robert Millan * DISTLIST: Replace `commands/ieee1275/halt.c' and `commands/ieee1275/reboot.c' with `commands/halt.c' and `commands/reboot.c'. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES) (halt_mod_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES) (halt_mod_SOURCES): Likewise. 2008-02-17 Christian Franke * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key. 2008-02-17 Robert Millan * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(), set `first_start' to 0 for non-PC/MSDOS partition maps. 2008-02-16 Robert Millan * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(), do not assume partition map is PC/MSDOS before performing checks that are specific to that layout. 2008-02-13 Robert Millan * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'. * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs. 2008-02-13 Yoshinori K. Okuji * configure.ac: Only a cosmetic change on the handling of -fno-stack-protector. 2008-02-12 Alexandre Boeglin * conf/i386-efi.rmk (grub_emu_SOURCES): Replace commands/i386/pc/halt.c and reboot.c by commands/halt.c and reboot.c. (grub_install_SOURCES): Add halt.mod and reboot.mod. (halt_mod_SOURCES): New variable. (halt_mod_CFLAGS): Likewise. (halt_mod_LDFLAGS): Likewise. (reboot_mod_SOURCES): Likewise. (reboot_mod_CFLAGS): Likewise. (reboot_mod_LDFLAGS): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace commands/ieee1275/halt.c and reboot.c by commands/halt.c and reboot.c. (halt_mod_SOURCES): Likewise. (reboot_mod_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Replace commands/i386/pc/reboot.c by commands/reboot.c. (reboot_mod_SOURCES): Likewise. * commands/i386/pc/reboot.c: merge this file ... * commands/ieee1275/reboot.c: ... and this file ... * commands/reboot.c: ... to this file. Add some precompiler directive to include the correct header for each machine. * commands/ieee1275/halt.c: move this file ... * commands/halt.c: ... to here. Add some precompiler directive to include the correct header for each machine. * include/grub/efi/efi.h (grub_reboot): New function declaration. (grub_halt): Likewise. * kern/efi/efi.c (grub_reboot): New function. (grub_halt): Likewise. 2008-02-12 Robert Millan * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before /dev (like it is done for /dev/mapper). This doesn't provide support for EVMS, but at least it is now easy to identify the problem when it arises. 2008-02-11 Robert Millan * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition) (grub_util_biosdisk_get_grub_dev): Check open() exit status by comparing it with -1, not 0. 2008-02-10 Robert Millan * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and `disk/lvm.c'. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and `disk/lvm.c' to the end of the list. * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. 2008-02-10 Robert Millan * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call grub_print_error() instead. This will let user know why we're entering rescue mode. Based on suggestions from Sam Morris. 2008-02-10 Alexandre Boeglin * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg() on remaining N args, instead of "--" arg N times. 2008-02-09 Vesa Jaaskelainen * font/manager.c (unknown_glyph): Added variable for unknown glyph. (fill_with_default_glyph): Changed to use unknown_glyph for fill pattern for unknown glyphs. 2008-02-09 Robert Millan * configure.ac: Probe for `help2man'. * Makefile.in (builddir): New variable. (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it, or otherwise add a few flags/options to it. (install-local): For every executable utility or script that is installed, invoke $(HELP2MAN) to install a manpage based on --help output. * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so that it doesn't prevent --help from working in build tree. * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org' with `bug-grub@gnu.org'. * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise. * util/update-grub.in (usage): New function. Implement proper argument check, with support for --help and --version (as well as existing -y). 2008-02-09 Christian Franke * commands/cat.c (grub_cmd_cat): Print '\r' as hex to avoid overwriting previous output. * kern/rescue.c (grub_rescue_cmd_cat): Likewise. 2008-02-09 Robert Millan * normal/menu.c (run_menu): If timeout is set to zero, don't bother drawing the menu. 2008-02-09 Robert Millan * commands/sleep.c: New file. * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'. (sleep_mod_SOURCES): New variable. (sleep_mod_CFLAGS): Likewise. (sleep_mod_LDFLAGS): Likewise. 2008-02-09 Robert Millan * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for situations in which we can deduce the RAID size and the superblock doesn't match it. 2008-02-09 Robert Millan * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct and return a grub_diskmemberlist_t composed of LVM physical volumes. [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member. * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct and return a grub_diskmemberlist_t composed of physical array members. [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member. * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct prototype. [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer. [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration. [GRUB_UTIL] (grub_disk_memberlist_t): New typedef. * util/grub-probe.c (probe): Move partmap probing code from here ... (probe_partmap): ... to here. (probe): Use probe_partmap() once for the disk we're probing, and additionally, when such disk contains a memberlist() struct member, once for each disk that is contained in the structure returned by memberlist(). 2008-02-09 Robert Millan * util/grub-probe.c (main): When `verbosity > 1', set `debug' environment variable to 'all' in order to obtain debug output from non-util/ code. * util/i386/pc/grub-setup.c (main): Likewise. 2008-02-08 Robert Millan * disk/raid.c (grub_raid_scan_device): Check for `array->device[sb.this_disk.number]' rather than for `array->device[sb.this_disk.number]->name', since the latter is not guaranteed to be accessible. 2008-02-08 Robert Millan * disk/raid.c: Update copyright. * fs/cpio.c: Likewise. * include/grub/raid.h: Likewise. * loader/i386/pc/multiboot.c: Likewise. * util/hostfs.c: Likewise. 2008-02-08 Robert Millan * include/grub/raid.h (struct grub_raid_array): Change type of `device' to a grub_disk_t array. * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with `device[x]'. (grub_raid_scan_device): Replace `device[x].name' accesses with `device[x]->name'. Simplify initialization of `array->device[x]'. 2008-02-08 Robert Millan * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few grub_dprintf() calls. * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range error message. 2008-02-07 Christian Franke * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello instead of fseek and ftell to support large files. (grub_hostfs_read): Likewise. 2008-02-07 Robert Millan Patch from Jeroen Dekkers. * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk failure, since successfully reading all array members might not be required. 2008-02-06 Robert Millan * util/grub-probe.c (probe): Simplify partmap probing (with the assumption that the first word up to the underscore equals to the module name). 2008-02-06 Christian Franke * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on last block of a cpio or tar stream. Check for "TRAILER!!!" instead of any empty data block to detect last block of a cpio stream. (grub_cpio_dir): Fix constness of variable np. (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if cpio or tar trailer is detected. This fixes a crash on open of a non existing file. 2008-02-05 Bean * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical address of entry. (grub_multiboot_load_elf64): Likewise. (grub_multiboot): Initialize mbi structure. * util/grub-fstest.c: Don't include unused header file script.h. * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning of file. (grub_fstest_SOURCES): Likewise. 2008-02-05 Robert Millan * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT) (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END) (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC) (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros. * kern/i386/pc/startup.S: Include `'. (translation_table): Replace hardcoded values with macros provided by `'. * term/i386/pc/at_keyboard.c: Include `'. (keyboard_map): Correct/add a few values, with macros provided by `'. (keyboard_map_shift): Zero values that don't differ from their `keyboard_map' equivalents. (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling. Discard the second scan code that is always sent by Caps lock. Only use `keyboard_map_shift' when it provides a non-zero value, otherwise fallback to `keyboard_map'. 2008-02-04 Bean * Makefile.in (enable_grub_fstest): New variable. * conf/common.rmk (grub_fstest_init.lst): New rule. (grub_fstest_init.h): Likewise. (grub_fstest_init.c): Likewise. (util/grub-fstest.c_DEPENDENCIES): New variable. (grub_fstest_SOURCES): Likewise. * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest. * util/grub-fstest.c: New file. 2008-02-03 Yoshinori K. Okuji Make grub-setup handle a separate root device. * util/i386/pc/grub-setup.c (setup): Always open the root device, so that the root device can be compared with the destination device. When embedding the core image, if the root and destination devices are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to 0xFF. When not embedding, set ROOT_DRIVE to 0xFF. 2008-02-03 Yoshinori K. Okuji Add support for having a grub directory in a different drive. This is still only the data handling part. * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF. (codestart): Save %dh in GRUB_ROOT_DRIVE. (grub_root_drive): New variable. * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE instead of GRUB_BOOT_DRIVE to construct a device name. Set GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it as it was. * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype. * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New macro. (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f. * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this is bogus, because PXE booting does not specify any drive correctly. * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I am not sure if this is really correct. * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive is always identical to the boot drive when booting from a CD. * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any longer. (root_drive): New variable. (real_start): Unconditionally set %dh to ROOT_DRIVE. (setup_sectors): Push %dx right after popping it, because %dh will be modified later. (copy_buffer): Restore %dx. 2008-02-03 Robert Millan * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to use `cdboot.img' for cdrom images. 2008-02-03 Robert Millan * util/grub.d/00_header.in: Issue scripting commands for GRUB to only setup gfxterm when `font' command has succeeded. 2008-02-03 Robert Millan * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS] (grub_rescue_cmd_multiboot_loader) (grub_rescue_cmd_module_loader): Enable multiboot1 calls. 2008-02-03 Pavel Roskin * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop %edx and %esi from stack only after grub_gate_a20() is called. grub_gate_a20() clobbers %edx. 2008-02-03 Yoshinori K. Okuji * configure.ac (AC_INIT): Bumped to 1.96. * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c, commands/lspci.c,disk/memdisk.c, include/grub/pci.h, include/grub/i386/pc/pci.h, video/readers/jpeg.c, and video/readers/png.c. 2008-02-03 Bean * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img. (cdboot_img_SOURCES): New variable. (cdboot_img_ASFLAGS): New variable. (cdboot_img_LDFLAGS): New variable. * boot/i386/pc/cdboot.S: New file. * disk/i386/pc/biosdisk.c (cd_start): New variable. (cd_count): Likewise. (grub_biosdisk_get_drive): Add support for cd device. (grub_biosdisk_call_hook): Likewise. (grub_biosdisk_iterate): Likewise. (grub_biosdisk_open): Likewise. (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro. (grub_biosdisk_rw): Support reading from cd device. (GRUB_MOD_INIT): Iterate cd devices. * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro. (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise. (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise. * kern/i386/pc/init.c (make_install_device): Check for cd device. 2008-02-02 Robert Millan * commands/read.c: New file. * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'. (read_mod_SOURCES): New variable. (read_mod_CFLAGS): Likewise. (read_mod_LDFLAGS): Likewise. 2008-02-02 Robert Millan * normal/main.c (grub_normal_execute): Check for `menu->size' when determining whether menu has to be displayed. 2008-02-02 Marco Gerards * bus/pci.c: New file. * include/grub/pci.h: Likewise. * include/grub/i386/pc/pci.h: Likewise. * commands/lspci.c: Likewise. * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and `lspci.mod'. (pci_mod_SOURCES): New variable. (pci_mod_CFLAGS): Likewise. (pci_mod_LDFLAGS): Likewise. (lspci_mod_SOURCES): Likewise. (lspci_mod_CFLAGS): Likewise. (lspci_mod_LDFLAGS): Likewise. 2008-02-02 Bean * fs/ufs.c (INODE_BLKSZ): Fix incorrect value. (grub_ufs_get_file_block): Fix indirect block calculation problem. * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk. (grub_xfs_btree_node): New structure. (grub_xfs_btree_root): New structure. (grub_xfs_inode): New members nblocks, extsize, nextents and btree. (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents. (GRUB_XFS_EXTENT_BLOCK): Likewise. (GRUB_XFS_EXTENT_SIZE): Likewise. (grub_xfs_read_block): Support btree format type. (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook. Use directory block as basic unit. * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block. * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as __attribute__ ((__regparm__ (1))). 2008-02-01 Robert Millan Correct a mistake in previous commit. * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the top. (normal/command.c_DEPENDENCIES): New variable. 2008-02-01 Robert Millan * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the top. (normal/command.c_DEPENDENCIES): New variable. (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-linuxbios.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. (grub_emu_SOURCES): Add `fs/fshelp.c'. * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it. 2008-02-01 Robert Millan * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf() call at beginning of function. 2008-01-31 Pavel Roskin * util/powerpc/ieee1275/grub-mkrescue.in: New file. * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable. (grub_mkrescue_SOURCES): Likewise. * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in. 2008-01-30 Robert Millan * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'. (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ... * conf/common.rmk (util/grub-probe.c_DEPENDENCIES) (grub_probe_SOURCES): ... to here. * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'. (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-linuxbios.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. 2008-01-30 Tristan Gingold * kern/rescue.c: Silently accept empty lines. 2008-01-29 Bean * boot/i386/pc/lnxboot.S (data_start): Code cleanup. (real_code_2): Code cleanup and change comment style. (move_memory): Avoid using 32-bit address mode. 2008-01-29 Bean * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'. (png_mod_SOURCES): New variable. (png_mod_CFLAGS): Likewise. (png_mod_LDFLAGS): Likewise. * video/readers/png.c: New file. 2008-01-28 Robert Millan * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro. * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove `ifndef GRUB_MOD_GAP' hack. * util/elf/grub-mkimage.c (add_segments): Likewise. 2008-01-27 Robert Millan * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip `GRUB_MOD_GAP' for platforms in which it's not defined. * util/elf/grub-mkimage.c (add_segments): Likewise. 2008-01-27 Robert Millan Get grub-emu to build again (including parallel builds). * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable. Split into ... (util/grub-emu.c_DEPENDENCIES): ... this, ... (normal/execute.c_DEPENDENCIES): ... this, ... (grub-emu_DEPENDENCIES): ... and this. * conf/i386-efi.rmk: Likewise. * conf/i386-linuxbios.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. (grub_emu_SOURCES): Remove duplicated `kern/file.c'. 2008-01-27 Robert Millan * NEWS: Add a few items. 2008-01-27 Robert Millan Fix parallel builds with grub-emu. Based on earlier commit for grub-probe and grub-setup. * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ... (util/grub-emu.c_DEPENDENCIES): ... this. * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ... (util/grub-emu.c_DEPENDENCIES): ... this. * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ... (util/grub-emu.c_DEPENDENCIES): ... this. * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ... (util/grub-emu.c_DEPENDENCIES): ... this. * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ... (util/grub-emu.c_DEPENDENCIES): ... this. 2008-01-27 Pavel Roskin * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP to create a gap between _end and the modules added to the image with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC. * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP. * util/elf/grub-mkimage.c (add_segments): Likewise. 2008-01-26 Pavel Roskin * kern/dl.c (grub_dl_load): Don't abort if prefix is not set, just return an error. 2008-01-26 Bean * fs/reiserfs.c (grub_fshelp_node): New member next_offset. (grub_reiserfs_get_item): Save offset of the next item. (grub_reiserfs_iterate_dir): Use next_offset to find next item. 2008-01-25 Robert Millan * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to make all filesystem sources appear together (possibly fixing omissions while at it). * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally, add `kern/file.c'. * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise. * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise. * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise. * util/grub-probe.c: Include `' and `'. (probe): Add a sanity check to make sure of our ability to read requested files when probing for filesystem type. * genmk.rb: Update copyright year (2007). * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init) (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init) (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init) (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init) (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init) : Remove function prototypes. 2008-01-25 Robert Millan Revert my previous commits (based on wrong assumption of how grub_errno works). * kern/disk.c (grub_disk_open): Stop resetting grub_errno. * kern/file.c (grub_file_open): Likewise. 2008-01-24 Pavel Roskin * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares that hang if GRUB tries to setup colors. * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set colors for firmwares that don't support it. * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Recognize Open Hack'Ware, set flags to work around its limitations. 2008-01-24 Robert Millan * kern/file.c (grub_file_open): Do not account previous failures of unrelated functions when grub_errno is checked for. Reported by Oleg Strikov. 2008-01-24 Bean * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro. (grub_ufs_sblock): New member volume name. (grub_ufs_find_file): Fix string copy bug. (grub_ufs_label): Implement this function properly. * fs/hfs.c (grub_hfs_cnid_type): New enum. (grub_hfs_iterate_records): Use the correct file number for extents and catalog file. Fix problem in next index calculation. (grub_hfs_find_node): Replace recursive function call with loop. (grub_hfs_iterate_dir): Replace recursive function call with loop. 2008-01-23 Robert Millan * include/grub/i386/ieee1275/loader.h: Include `', `' and `'. (grub_multiboot2_real_boot): New function prototype. * include/grub/i386/pc/memory.h: Include `'. [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable. * kern/i386/ieee1275/init.c (grub_os_area_addr) (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables. 2008-01-23 Robert Millan * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with #ifdef'ed out grub_printf(). 2008-01-23 Robert Millan * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out grub_dprintf calls, since they make "debug=all" mode unusable. (grub_console_checkkey): Likewise. 2008-01-23 Robert Millan * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `term/i386/pc/at_keyboard.c'. (pkglib_MODULES): Add `serial.mod'. (serial_mod_SOURCES): New variable. (serial_mod_CFLAGS): Likewise. (serial_mod_LDFLAGS): Likewise. * include/grub/i386/ieee1275/console.h: Add `'. Remove `'. (grub_keyboard_controller_init): New function prototype. (grub_console_checkkey): Likewise. (grub_console_getkey): Likewise. * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT keyboard on i386. * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input. 2008-01-23 Robert Millan * kern/i386/pc/init.c (make_install_device): When memdisk image is present, "(memdisk)/boot/grub" becomes the default prefix. * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus a memdisk tarball with all the modules. Add --overlay=DIR option that allows users to overlay additional files into the image. 2008-01-23 Robert Millan * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h' and `machine/memory.h'. (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'. (_multiboot_mod_SOURCES): New variable. (_multiboot_mod_CFLAGS): Likewise. (_multiboot_mod_LDFLAGS): Likewise. (multiboot_mod_SOURCES): Likewise. (multiboot_mod_CFLAGS): Likewise. (multiboot_mod_LDFLAGS): Likewise. * include/grub/i386/ieee1275/loader.h: New file. * include/grub/i386/ieee1275/machine.h: Likewise. * include/grub/i386/ieee1275/memory.h: Likewise. * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant) variable declaration. (grub_os_area_size): Likewise. * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size) (grub_lower_mem, grub_upper_mem): New variables. (grub_stop_floppy): New function (just to make grub_multiboot2_real_boot() happy). * kern/i386/ieee1275/startup.S: Include `', `', `' and `'. (grub_stop): New function. Include `"../realmode.S"' and `"../loader.S"'. * loader/multiboot_loader.c: Include `'. Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'. * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386, rely on grub_multiboot2_real_boot() for final boot. 2008-01-22 Robert Millan * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any device that doesn't look like an SD card. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag. * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when found. 2008-01-22 Robert Millan * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to avoid claiming over our own code. 2008-01-22 Bean * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'. (jpeg_mod_SOURCES): New variable. (jpeg_mod_CFLAGS): Likewise. (jpeg_mod_LDFLAGS): Likewise. * video/readers/jpeg.c : New file. 2008-01-22 Bean * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when there are no more items. 2008-01-21 Robert Millan * kern/mm.c (grub_mm_init_region): Improve debug message. 2008-01-21 Robert Millan * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable. (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link address. (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as a C macro. * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro. Indicates start of upper memory. * util/i386/pc/grub-mkimage.c: Include `'. (generate_image): Abort when image size is big enough to corrupt upper memory. * include/grub/i386/pc/vga.h: Include `'. (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'. * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR' instead of hardcoding 0xA0000. * video/i386/pc/vbe.c: Include `'. (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR' instead of hardcoding 0xA0000. 2008-01-21 Robert Millan * disk/memdisk.c (memdisk_size): New variable. (grub_memdisk_open): Replace grub_arch_memdisk_size() call with `memdisk_size'. (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk image to dynamic memory. (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with `memdisk_size'. Free memdisk block. 2008-01-21 Robert Millan Fix detection of very small filesystems (like tar). * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's a problem with this disk). 2008-01-21 Robert Millan * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message on grub_biosdisk_rw_standard() error. 2008-01-21 Robert Millan * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for recent changes. * kern/elf.c: Likewise. * kern/ieee1275/ieee1275.c: Likewise. * kern/powerpc/ieee1275/openfw.c: Likewise. * term/ieee1275/ofconsole.c: Likewise. 2008-01-21 Robert Millan * include/grub/i386/pc/kernel.h: Include `'. * include/grub/kernel.h (grub_arch_memdisk_addr) (grub_arch_memdisk_size): Moved from here ... * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr) (grub_arch_memdisk_size): ... to here. 2008-01-21 Robert Millan Mostly based on bugfix from Bean. * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR' attribute with hook() parameter. (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment() declaration. (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR' attribute with hook() parameter. (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment() declaration. 2008-01-21 Robert Millan * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'. (pkglib_MODULES): Add `memdisk.mod'. (memdisk_mod_SOURCES): New variable. (memdisk_mod_CFLAGS): Likewise. (memdisk_mod_LDFLAGS): Likewise. * disk/memdisk.c: New file. * include/grub/disk.h (grub_disk_dev_id): Add `GRUB_DISK_DEVICE_MEMDISK_ID'. * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro. (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4. (grub_kernel_image_size): New variable declaration. (grub_total_module_size): Likewise. (grub_memdisk_image_size): Likewise. * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro. * include/grub/kernel.h: Include `'. (grub_arch_memdisk_addr): New variable declaration. (grub_arch_memdisk_size): Likewise. * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function. (grub_arch_memdisk_size): Likewise. * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable. (codestart): Replace hardcoded `0x100000' with `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro. * util/i386/pc/grub-mkimage.c: Include `'. (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is not NULL, append the contents of the file it refers to, at the end of the compressed kernel image. Initialize `grub_memdisk_image_size' variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset). (options): Add "memdisk"|'m' option. (main): Parse --memdisk|-m option, and pass user-provided path as parameter to generate_image(). 2008-01-20 Robert Millan * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug grub_dprintf() calls from here ... * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here. 2008-01-20 Robert Millan Fix detection of "real mode" when /options/real-mode? doesn't exist. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable declaration. * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable. (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set `GRUB_IEEE1275_FLAG_REAL_MODE'. (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer property). * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized `grub_ieee1275_mmu' rather than obtaining a handler on every call. 2008-01-19 Robert Millan Get rid of confusing function (superseded by `grub_ieee1275_get_integer_property') * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove prototype. * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove function. * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of grub_ieee1275_decode_int_4(), by obtaining integer properties directly in native endianness from grub_ieee1275_get_integer_property(). 2008-01-19 Robert Millan * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off" command after "shut-down", since implementations differ on which the command for halt is. 2008-01-19 Robert Millan * include/grub/i386/linuxbios/console.h: Add header protection. (grub_keyboard_controller_init): New function prototype. * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro. (KEYBOARD_COMMAND_READ): Likewise. (KEYBOARD_COMMAND_WRITE): Likewise. (KEYBOARD_SCANCODE_SET1): Likewise. (grub_keyboard_controller_write): New function. (grub_keyboard_controller_read): Likewise. (grub_keyboard_controller_init): Likewise. * term/i386/pc/console.c: Include `'. (grub_console_init): On coreboot/LinuxBIOS, call grub_keyboard_controller_init(). 2008-01-19 Robert Millan PowerPC changes provided by Pavel Roskin. * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments. * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn, don't rely on cmain() doing it. * kern/i386/ieee1275/startup.S (_start): Store %eax in grub_ieee1275_entry_fn, don't rely on cmain() doing it. 2008-01-16 Robert Millan * include/grub/i386/linuxbios/memory.h (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro. * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not receive `table_header' as argument. Instead, probe for it in the known memory ranges where it can be present. (grub_available_iterate): Do not pass a fixed `table_header' address to grub_linuxbios_table_iterate(). 2008-01-15 Robert Millan * configure.ac: Add `i386-ieee1275' to the list of supported targets. * conf/i386-ieee1275.rmk: New file. * include/grub/i386/ieee1275/console.h: Likewise. * include/grub/i386/ieee1275/ieee1275.h: Likewise. * include/grub/i386/ieee1275/kernel.h: Likewise. * include/grub/i386/ieee1275/time.h: Likewise. * kern/i386/ieee1275/init.c: Likewise. * kern/i386/ieee1275/startup.S: Likewise. 2008-01-15 Robert Millan * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero when pointers are 32-bit (but still do set it to one when they are 64-bit). 2008-01-15 Robert Millan * include/grub/ieee1275/ieee1275.h (grub_ieee1275_get_integer_property): New function prototype. * kern/ieee1275/ieee1275.c: Include `'. (grub_ieee1275_get_integer_property): New function. Wraps around grub_ieee1275_get_property() to handle endianness. * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace grub_ieee1275_get_property() with grub_ieee1275_get_integer_property() where appropriate. * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise. (grub_map): Likewise. * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise. 2008-01-15 Bean * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable. (grub_script_execute_cmdline): Reset grub_errno. * normal/main.c (read_config_file): Reset grub_errno. * normal/parse.y (script_init): New. (script): Move function and menuentry here. (delimiter): New. (command): Add delimiter at the end of command. (commands): Adjust to match the new command. (commandblock): Remove grub_script_lexer_record_start. (menuentry): Add grub_script_lexer_record_start, use the new commands. (if): Use the new commands. * conf/common.rmk (pkgdata_MODULES): Add echo.mod. 2008-01-15 Robert Millan * normal/menu.c (run_menu): Move timeout message from here ... (print_timeout): ... to here. (run_menu): Use print_timeout() once during initial draw to print the whole message, and again in every clock tick to update only the number of seconds. 2008-01-15 Robert Millan * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain actual size of `available' from grub_ieee1275_get_property(), and restrict parsing to that bound. 2008-01-15 Christian Franke * util/grub-emu.c: Replace by . (argp_program_version): Remove variable. (argp_program_bug_address): Likewise. (options): Convert from struct argp_option to struct option. (struct arguments): Remove. (parse_opt): Remove. (usage): New function. (main): Replace struct args members by simple variables. Replace argp_parse() by getopt_long(). Add switch to evaluate options. Add missing "(...)" around root_dev in prefix string. 2008-01-14 Robert Millan * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper for grub_ieee1275_exit(), in order to improve portability. 2008-01-14 Robert Millan * util/grub.d/10_linux.in (prefix): Define. (exec_prefix): Likewise. Both definitions are later used by `libdir'. 2008-01-13 Pavel Roskin * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use grub_errno if no errors have been detected. 2008-01-12 Robert Millan * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum. (grub_util_get_dev_abstraction): New function prototype. * util/getroot.c: Include `' (grub_util_get_grub_dev): Move detection of abstraction type to ... (grub_util_get_dev_abstraction): ... here (new function). * util/grub-probe.c: Convert PRINT_* to an enum. Add `PRINT_ABSTRACTION'. (probe): Probe for abstraction type when requested. (main): Understand `--target=abstraction'. * util/i386/efi/grub-install.in: Add abstraction module to core image when it is found to be necessary. * util/i386/pc/grub-install.in: Likewise. * util/powerpc/ieee1275/grub-install.in: Likewise. * util/update-grub_lib.in (font_path): Return system path without converting to GRUB path. * util/update-grub.in: Convert system path returned by font_path() to a GRUB path. Use `grub-probe -t abstraction' to determine what abstraction module is needed for loading fonts (if any). Export that as `GRUB_PRELOAD_MODULES'. * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print insmod commands). 2008-01-12 Yoshinori K. Okuji Remove some unused code from reiserfs. * fs/reiserfs.c (struct grub_reiserfs_key) [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type. (struct grub_reiserfs_node_body): Removed. (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise. 2008-01-10 Robert Millan * util/update-grub_lib.in (grub_file_is_not_garbage): New function. Determines if a file is garbage left by packaging systems, etc. * util/update-grub.in: Use grub_file_is_not_garbage() as a condition for processing /etc/grub.d scripts. * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison. * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage() as a condition for processing Linux images. 2008-01-10 Pavel Roskin * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed to compile reiserfs.c on PowerPC. 2008-01-10 Robert Millan * kern/device.c (grub_device_iterate): Do not abort device iteration when one of the devices cannot be opened. * kern/disk.c (grub_disk_open): Do not account previous failures of unrelated functions when grub_errno is checked for. 2008-01-08 Robert Millan * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For `! grub_linux_is_bzimage', change order of address comparison to make it more intuitive, and improve "too big zImage" error message. 2008-01-08 Robert Millan * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and `$(update-grub_DATA)'. (distcheck): Fix race condition when invoking `$(MAKE)' on multiple targets. 2008-01-07 Robert Millan * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating which instruction is modified by grub-setup during installation (since it wasn't obvious by only looking at this file). 2008-01-07 Robert Millan * TODO: Rewrite. Just refer to the wiki and the BTS instead of listing actual TODO items. 2008-01-06 Yoshinori K. Okuji * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness correctly. (grub_reiserfs_get_key_offset): Likewise. (grub_reiserfs_set_key_offset): Likewise. (grub_reiserfs_set_key_type): Likewise. (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0. (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be better to remove the bitfield version completely. 2008-01-06 Yoshinori K. Okuji * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be allocated from the heap, due to the fshelp implementation. (grub_reiserfs_dir): Free NODE, due to the same reason. 2008-01-06 Yoshinori K. Okuji Mostly from Vincent Pelletier: * fs/reiserfs.c: New file. * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod. (reiserfs_mod_SOURCES): New variable. (reiserfs_mod_CFLAGS): Likewise. (reiserfs_mod_LDFLAGS): Likewise. * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c, disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c, include/grub/ntfs.h, include/grub/i386/pc/machine.h, and normal/color.c. 2008-01-06 Robert Millan * normal/color.c: Remove `'. 2008-01-05 Jeroen Dekkers * include/grub/normal.h: Include . 2008-01-05 Robert Millan * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in usage example with `(hd0,1)'. Reported by Samuel Thibault. 2008-01-05 Robert Millan * kern/i386/loader.S (grub_linux_is_bzimage): New variable. (grub_linux_boot_zimage): Rename to ... (grub_linux_boot): ... this. (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'. (grub_linux_boot_zimage): Conditionalize zImage copy. * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype. (grub_linux_boot_bzimage): Remove prototype. (grub_linux_boot_zimage): Rename to ... (grub_linux_boot): ... this. * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'. (grub_linux_boot): Remove function. 2008-01-05 Robert Millan * include/grub/normal.h (grub_env_write_color_normal): New prototype. (grub_env_write_color_highlight): Likewise. (grub_wait_after_message): Likewise. * normal/color.c: New file. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'. (normal_mod_DEPENDENCIES): Likewise. * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'. (normal_mod_DEPENDENCIES): Likewise. * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'. (normal_mod_DEPENDENCIES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'. (normal_mod_DEPENDENCIES): Likewise. * normal/menu_entry.c (run): Rely on grub_wait_after_message() for waiting after a message is printed. * normal/main.c (read_config_file): Likewise. (grub_normal_init): Register grub_env_write_color_normal() and grub_env_write_color_highlight() hooks. Mark `color_normal' and `color_highlight' variables as global. * normal/menu.c (grub_wait_after_message): New function. (grub_color_menu_normal): New variable. Replaces ... (GRUB_COLOR_MENU_NORMAL): ... this macro. (grub_color_menu_highlight): New variable. Replaces ... (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro. (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of `GRUB_TERM_COLOR_STANDARD'. (print_message): Use `grub_setcolorstate' to reload colors. Rename `normal_code' and `highlight_code' to `old_color_normal' and `old_color_highlight', respectively. (grub_menu_init_page): Update colors when drawing the menu, based on `menu_color_normal' and `menu_color_highlight' variables. (grub_menu_run): Rely on grub_wait_after_message() for waiting after a message is printed. 2008-01-05 Robert Millan * kern/env.c (grub_env_context_open): Propagate hooks for global variables to new context. * kern/main.c (grub_set_root_dev): Export `root' variable. 2008-01-05 Robert Millan * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI discs unconditionally, since udev and others have options to provide them. 2008-01-05 Robert Millan * normal/completion.c (iterate_dir): Skip `.' and `..' directories. 2008-01-04 Christian Franke * kern/i386/pc/init.c (grub_machine_init): Fix evaluation of eisa_mmap. 2008-01-03 Pavel Roskin * kern/i386/linuxbios/init.c: Put "void" to all function declarations with no arguments. * kern/powerpc/ieee1275/init.c: Likewise. * term/i386/pc/at_keyboard.c: Likewise. * term/i386/pc/vga_text.c: Likewise. * util/grub-mkdevicemap.c: Likewise. 2008-01-02 Robert Millan * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error message when loaded image is out of bounds. (grub_multiboot_load_elf64): Likewise. 2008-01-02 Pavel Roskin * util/grub.d/10_linux.in: Try version without ".old" when looking for initrd. It's better to use initrd from the newer kernel of the same version than no initrd at all. 2008-01-01 Robert Millan * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs. 2008-01-01 Vesa Jaaskelainen * include/grub/video.h: Added grub_video_unmap_color and grub_video_get_active_render_target. (grub_video_adapter): Added unmap_color and get_active_render_target. * video/video.c: Added grub_video_unmap_color and grub_video_get_active_render_target. (grub_video_get_info): Changed method to accept NULL pointer as an argument to allow detection of active video adapter. * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as grub_video_vbe_unmap_color_int. Added grub_video_vbe_unmap_color and grub_video_vbe_get_active_render_target. (grub_video_vbe_adapter): Added unmap_color and get_active_render_target. * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage with grub_video_vbe_unmap_color_int. * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added. (DEFAULT_NORMAL_COLOR): Likewise. (DEFAULT_HIGHLIGHT_COLOR) Likewise. (DEFAULT_FG_COLOR): Removed. (DEFAULT_BG_COLOR): Likewise. (DEFAULT_CURSOR_COLOR): Changed value. (grub_virtual_screen): Added standard_color_setting, normal_color_setting, highlight_color_setting and term_color. (grub_virtual_screen): Removed fg_color_setting and bg_color_setting. (bitmap_width): Added. (bitmap_height): Likewise. (bitmap): Likewise. (set_term_color): Likewise. (grub_virtual_screen_setup): Changed to use new terminal coloring settings. (grub_gfxterm_init): Added init for bitmap. (grub_gfxterm_fini): Added destroy for bitmap. (redraw_screen_rect): Updated to use background bitmap and new terminal coloring. (scroll_up): Added optimization for case when there is no bitmap. (grub_gfxterm_cls): Fixed to use correct background color. (grub_virtual_screen_setcolorstate): Changed to use new terminal coloring. (grub_virtual_screen_setcolor): Likewise. (grub_virtual_screen_getcolor): Added. (grub_gfxterm_background_image_cmd): Likewise. (grub_video_term): Added setcolor and getcolor. (MOD_INIT): Added registration of background_image command. (MOD_TERM): Added unregistration for background_image command. 2007-12-30 Pavel Roskin * loader/multiboot_loader.c: Fix multiboot command unregistration. Fix all typos in the word "multiboot". 2007-12-29 Pavel Roskin * util/grub.d/10_linux.in: Refactor search for initrd. Add support for initrd names used in Fedora. 2007-12-26 Bean * conf/common.rmk (pkgdata_MODULES): Add cpio.mod. (cpio_mod_SOURCES): New variable. (cpio_mod_CFLAGS): Likewise. (cpio_mod_LDFLAGS): Likewise. * fs/cpio.c: New file. * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c. * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise. * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. 2007-12-25 Robert Millan * include/grub/term.h (struct grub_term): Add `getcolor' function. (grub_getcolor): New function. * kern/term.c (grub_getcolor): New function. * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro. (GRUB_COLOR_MENU_HIGHLIGHT): New macro. (print_entry): Set normal and highlight colors to `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT', respectively, before printing and restore them to old values afterwards. (grub_menu_init_page): Likewise. Fill an additional colored space that would otherwise be left blank. * term/efi/console.c (grub_console_getcolor): New function. (struct grub_console_term.getcolor): New variable. * term/i386/pc/console.c (grub_console_getcolor): New function. (struct grub_console_term.getcolor): New variable. * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function. (struct grub_console_term.getcolor): New variable. * term/i386/pc/serial.c (grub_serial_setcolor): Remove function. (struct grub_console_term.setcolor): Remove variable. * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function. (struct grub_console_term.setcolor): Remove variable. * term/i386/pc/vga.c (grub_vga_setcolor): Remove function. (struct grub_console_term.setcolor): Remove variable. * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function. (struct grub_console_term.setcolor): Remove variable. 2007-12-25 Robert Millan * configure.ac: Search for possible unifont.hex locations, and define UNIFONT_HEX if found. * Makefile.in (UNIFONT_HEX): Define variable. (DATA): Rename to ... (PKGLIB): ... this. Update all users. (PKGDATA): New variable. (pkgdata_IMAGES): Rename to ... (pkglib_IMAGES): ... this. Update all users. (pkgdata_MODULES): Rename to ... (pkglib_MODULES): ... this. Update all users. (pkgdata_PROGRAMS): Rename to ... (pkglib_PROGRAMS): ... this. Update all users. (pkgdata_DATA): Rename to ... (pkglib_DATA): ... this. Update all users. (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'. (unicode.pff, ascii.pff): New rules. (all-local): Add `$(PKGDATA)' dependency. (install-local): Process `$(PKGDATA)'. * util/update-grub_lib.in (font_path): Search for *.pff files in a few more locations, including `${pkgdata}'. 2007-12-23 Robert Millan Patch from Bean : * disk/loopback.c (grub_loopback_read): Add missing bit shift to `size'. 2007-12-21 Bean * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod. (ntfscomp_mod_SOURCES): New variable. (ntfscomp_mod_CFLAGS): Likewise. (ntfscomp_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c. (grub_probe_SOURCES): Likewise. (grub_emu_SOURCES): Likewise. * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c. (grub_emu_SOURCES): Likewise. * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c. (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c. (grub_emu_SOURCES): Likewise. * fs/ntfs.c (grub_ntfscomp_func): New variable. (read_run_list): Renamed to grub_ntfs_read_run_list. (decomp_nextvcn): Moved to ntfscomp.c. (decomp_getch): Likewise. (decomp_get16): Likewise. (decomp_block): Likewise. (read_block): Likewise. (read_data): Partially moved to ntfscomp.c. (fixup): Change unsigned to grub_uint16_t. (read_mft): Change unsigned long to grub_uint32_t. (read_attr): Likewise. (read_data): Likewise. (read_run_data): Likewise. (read_run_list): Likewise. (read_mft): Likewise. * fs/ntfscomp.c: New file. * include/grub/ntfs.h: New file. 2007-12-16 Robert Millan * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for IDE disk check, since Linux is known to support 20 IDE disks. Reported by Colin Watson. 2007-12-15 Bean * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img. (lnxboot_img_SOURCES): New variable. (lnxboot_img_ASFLAGS): Likewise. (lnxboot_img_LDFLAGS): Likewise. * boot/i386/pc/lnxboot.S: New file. 2007-11-24 Pavel Roskin * configure.ac: Test if '--build-id=none' is supported by the linker. If yes, add it to TARGET_LDFLAGS. Build ID causes objcopy to generate incorrect binary files (binutils 2.17.50.0.18-1 as shipped by Fedora 8). * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when linking, so that build ID doesn't break the test. 2007-11-24 Pavel Roskin * include/grub/i386/time.h: use "void" in the argument list of grub_cpu_idle(). * include/grub/powerpc/time.h: Likewise. * include/grub/sparc64/time.h: Likewise. 2007-11-18 Christian Franke * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping, now return control chars instead of GRUB_CONSOLE_KEY_* constants. This fixes the problem that function keys did not work in grub-emu. 2007-11-18 Christian Franke * disk/host.c (grub_host_open): Remove attribute unused from name parameter. Add check for "host". This fixes the problem that grub-emu does not find partitions. 2007-11-18 Christian Franke * util/hostfs.c (is_dir): New function. (grub_hostfs_dir): Handle missing dirent.d_type case. (grub_hostfs_read): Add missing fseek(). (grub_hostfs_label): Clear label pointer. This fixes a crash of grub-emu on "ls (host)". 2007-11-18 Christian Franke * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry): Add attribute packed, gcc 3.4.4 on Cygwin aligns this to 64 bit boundary by default. 2007-11-18 Bean * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod. (hexdump_mod_SOURCES): New variable. (hexdump_mod_CFLAGS): Likewise. (hexdump_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c. * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c. * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c. * include/grub/hexdump.h: New file. * commands/hexdump.c: New file. 2007-11-10 Robert Millan * commands/i386/pc/play.c (beep_off): Switch order of arguments in grub_outb() calls. (beep_on): Likewise. 2007-11-10 Christian Franke * normal/menu.c (run_menu): Check for empty menu to avoid crash. (grub_menu_run): Likewise. 2007-11-10 Robert Millan * include/grub/i386/efi/machine.h: New file. * include/grub/i386/linuxbios/machine.h: Likewise. * include/grub/i386/pc/machine.h: Likewise. * include/grub/powerpc/ieee1275/machine.h: Likewise. * include/grub/sparc64/ieee1275/machine.h: Likewise. * term/i386/pc/serial.c: Include . (serial_hw_io_addr): New variable. (serial_hw_get_port): Obtain port address from `serial_hw_io_addr' instead of `(unsigned short *) 0x400'. 2007-11-10 Bean * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks. 2007-11-10 Vesa Jaaskelainen * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod. (vga_mod_SOURCES): Added. (vga_mod_CFLAGS): Likewise. (vga_mod_LDFLAGS): Likewise. * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in grub_outb() calls. (set_map_mask): Likewise. (set_read_map): Likewise. (set_read_address): Likewise. (vga_font): Removed variable. (get_vga_glyph): Removed function. (invalidate_char): Likewise. (write_char): Changed to use grub_font_get_glyph() for font information. (grub_vga_putchar): Likewise. (grub_vga_getcharwidth): Likewise. 2007-11-10 Vesa Jaaskelainen * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target flags. (pxeboot_img_LDFLAGS): Likewise. (diskboot_img_LDFLAGS): Likewise. (kernel_img_LDFLAGS): Likewise. 2007-11-06 Robert Millan * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments in grub_outb() calls. (serial_hw_init): Likewise. 2007-11-05 Robert Millan * util/update-grub.in: Allow files in ${update_grub_dir} to contain spaces. Skip non-regular files. 2007-11-05 Robert Millan * kern/disk.c (grub_disk_firmware_fini) (grub_disk_firmware_is_tainted): New variables. * include/grub/disk.h (grub_disk_firmware_fini) (grub_disk_firmware_is_tainted): Likewise. * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ... (grub_disk_biosdisk_fini): ... to here. (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini(). (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted' is set. Register grub_disk_biosdisk_fini() in `grub_disk_firmware_fini'. * disk/ata.c: Remove `'. (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call. Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini' to finish existing firmware disk interface. * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'. (ata_mod_SOURCES): New variable. (ata_mod_CFLAGS): Likewise. (ata_mod_LDFLAGS): Likewise. 2007-11-05 Robert Millan * disk/ata.c: Remove `'. Include `'. (grub_ata_wait): Reimplement using grub_millisleep(). * include/grub/misc.h (grub_div_roundup): Fix parenthesization. * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction. 2007-11-03 Marco Gerards * term/i386/pc/vga_text.c: Include . (CRTC_ADDR_PORT): New macro. (CRTC_DATA_PORT): Likewise. (CRTC_CURSOR): Likewise. (CRTC_CURSOR_ADDR_HIGH): Likewise. (CRTC_CURSOR_ADDR_LOW): Likewise. (update_cursor): New function. (grub_console_real_putchar): Call `update_cursor'. (grub_console_gotoxy): Likewise. (grub_console_cls): Set the default color when clearing the screen. (grub_console_setcursor): Implemented. 2007-11-03 Marco Gerards * disk/ata.c (grub_ata_pio_read): Don't wait for the command to become activate. (grub_ata_pio_write): Likewise. (grub_atapi_identify): Wait after issuing an ATA command. (grub_atapi_packet): Likewise. (grub_ata_identify): Likewise. (grub_ata_readwrite): Likewise. 2007-11-03 Marco Gerards * disk/ata.c (grub_ata_pio_read): Detect and return the error code. (grub_ata_pio_write): Likewise. (grub_ata_readwrite): Use `grub_error', instead of returning `grub_errno'. 2007-11-03 Marco Gerards * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and grub_ata_pio_write once for every single sector, instead of for multiple sectors. 2007-10-31 Robert Millan * configure.ac: Add `i386-linuxbios' to the list of supported targets. * conf/i386-linuxbios.rmk: New file. * kern/i386/pc/hardware.c: Likewise. * term/i386/pc/at_keyboard.c: Likewise. * term/i386/pc/vga_text.c: Likewise. * include/grub/i386/linuxbios/boot.h: Likewise. * include/grub/i386/linuxbios/console.h: Likewise. * include/grub/i386/linuxbios/init.h: Likewise. * include/grub/i386/linuxbios/kernel.h: Likewise. * include/grub/i386/linuxbios/loader.h: Likewise. * include/grub/i386/linuxbios/memory.h: Likewise. * include/grub/i386/linuxbios/serial.h: Likewise. * include/grub/i386/linuxbios/time.h: Likewise. * kern/i386/linuxbios/init.c: Likewise. * kern/i386/linuxbios/startup.S: Likewise. * kern/i386/linuxbios/table.c: Likewise. 2007-10-31 Marco Gerards * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'. (ata_mod_SOURCES): New variable. (ata_mod_CFLAGS): Likewise. (ata_mod_LDFLAGS): Likewise. * disk/ata.c: New file. * include/grub/disk.h (grub_disk_dev_id): Add `GRUB_DISK_DEV_ATA_ID'. 2007-10-31 Robert Millan * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ... * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here. * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ... * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here. * include/grub/i386/pc/memory.h: Include `' and `'. * loader/i386/pc/multiboot.c: Include `'. 2007-10-27 Robert Millan * include/grub/types.h (ULONG_MAX): Define macro. 2007-10-22 Robert Millan * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include `"../realmode.S"'. Remove `"kern/i386/loader.S"'. Include `"../loader.S"'. 2007-10-22 Robert Millan * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'. (pkgdata_MODULES): Add `biosdisk.mod'. (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New variables. * disk/i386/pc/biosdisk.c: Include `'. (grub_biosdisk_init): Replace with ... (GRUB_MOD_INIT(biosdisk)): ... this. (grub_biosdisk_fini): Replace with ... (GRUB_MOD_FINI(biosdisk)): ... this. * kern/i386/pc/init.c: Remove `'. (grub_machine_init): Remove call to grub_biosdisk_init(). (grub_machine_fini): Remove call to grub_machine_fini(). * util/i386/pc/grub-install.in (modules): Add `biosdisk'. 2007-10-22 Robert Millan * include/grub/time.h: New file. * include/grub/i386/time.h: Likewise. * include/grub/powerpc/time.h: Likewise. * include/grub/sparc64/time.h: Likewise. * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all instances to ... (KERNEL_MACHINE_TIME_HEADER): ... this. * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all instances to ... (KERNEL_MACHINE_TIME_HEADER): ... this. * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all instances to ... (KERNEL_MACHINE_TIME_HEADER): ... this. * kern/i386/efi/init.c: Include `'. (grub_millisleep): New function. * kern/i386/pc/init.c: Include `'. (grub_millisleep): New function. * kern/powerpc/ieee1275/init.c: Include `'. Remove `grub/machine/time.h' include. (grub_millisleep): New function. * kern/sparc64/ieee1275/init.c: Include `'. Remove `grub/machine/time.h' include. (grub_millisleep): New function. * include/grub/misc.h (grub_div_roundup): New function. * kern/misc.c: Include `'. (grub_millisleep_generic): New function. * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'. Add `time.h'. * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'. Add `time.h'. * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove `machine/time.h'. Add `time.h'. * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise. 2007-10-21 Robert Millan * include/grub/misc.h (grub_max): New function. 2007-10-21 Robert Millan * util/misc.c (grub_util_info): Call fflush() before returning. 2007-10-20 Robert Millan * genmk.rb (Image): Copy `extra_flags' from here ... (PModule): ... to here. Use it in `#{obj}: #{src}' rule. * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused)) to `argc' and `args' arguments. 2007-10-17 Robert Millan * kern/i386/loader.S: New file. * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ... * kern/i386/loader.S (grub_linux_prot_size)... to here. * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ... * kern/i386/loader.S (grub_linux_tmp_addr)... to here. * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ... * kern/i386/loader.S (grub_linux_real_addr)... to here. * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ... * kern/i386/loader.S (grub_linux_boot_zimage)... to here. * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ... * kern/i386/loader.S (grub_linux_boot_bzimage)... to here. * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ... * kern/i386/loader.S (grub_multiboot_real_boot)... to here. * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ... * kern/i386/loader.S (grub_multiboot2_real_boot)... to here. * kern/i386/realmode.S: New file. * kern/i386/pc/startup.S (protstack): Moved from here ... * kern/i386/realmode.S (protstack)... to here. * kern/i386/pc/startup.S (gdt): Moved from here ... * kern/i386/realmode.S (gdt)... to here. * kern/i386/pc/startup.S (prot_to_real): Moved from here ... * kern/i386/realmode.S (prot_to_real)... to here. * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and `kern/i386/realmode.S'. 2007-10-17 Robert Millan * include/grub/i386/loader.h: New file. * include/grub/i386/pc/loader.h (grub_linux_prot_size) (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr) (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage) (grub_multiboot_real_boot, grub_multiboot2_real_boot) (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ... * include/grub/i386/loader.h (grub_linux_prot_size) (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr) (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage) (grub_multiboot_real_boot, grub_multiboot2_real_boot) (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here. * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'. 2007-10-15 Robert Millan * normal/misc.c (grub_normal_print_device_info): Do not probe for filesystem when dev->disk is unset. Do probe for filesystem even when dev->disk->has_partitions is set. In case a filesystem is found, always report it. In case it isn't, if dev->disk->has_partitions is set, report that a partition table was found instead of reporting that no filesystem could be identified. 2007-10-12 Robert Millan * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c. * include/grub/types.h (grub_host_to_target16): New macro. (grub_host_to_target32): Likewise. (grub_host_to_target64): Likewise. (grub_target_to_host16): Likewise. (grub_target_to_host32): Likewise. (grub_target_to_host64): Likewise. * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN): Renamed from to ... (GRUB_MOD_ALIGN): ...this. Update all users. * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with grub_host_to_target32. Replace grub_be_to_cpu32 with grub_target_to_host32. (load_modules): Likewise. (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16. Replace grub_be_to_cpu32 with grub_target_to_host32. Replace grub_cpu_to_be16 with grub_host_to_target16. Replace grub_cpu_to_be32 grub_host_to_target32. 2007-10-12 Robert Millan * util/powerpc/ieee1275/grub-mkimage.c: Moved to ... * util/elf/grub-mkimage.c: ... here. * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove `util/powerpc/ieee1275/grub-mkimage.c'. 2007-10-07 Robert Millan * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR, and make it easier to figure out. Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions. (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter. Do not avoid claiming a region above HEAP_MAX_ADDR if that would leave us with less than HEAP_MIN_SIZE total heap. Avoid our total amount of heap to surpass HEAP_MAX_SIZE. 2007-10-03 Robert Millan * include/grub/i386/io.h: New file. * commands/i386/pc/play.c (inb): Removed. (outb): Removed. Include grub/cpu/io.h. Replace inb() with grub_inb() and outb() with grub_outb(). * term/i386/pc/serial.c (inb): Removed. (outb): Removed. Include grub/cpu/io.h. Replace inb() with grub_inb() and outb() with grub_outb(). * term/i386/pc/vga.c (inb): Removed. (outb): Removed. Include grub/cpu/io.h. Replace inb() with grub_inb() and outb() with grub_outb(). 2007-10-02 Robert Millan * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. Reported by Marcin Kurek. 2007-09-07 Robert Millan * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect SmartFirmware version updates (as released by Sven Luther), and avoid setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is known broken. 2007-09-03 Yoshinori K. Okuji From Hitoshi Ozeki: * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS when merging two regions. 2007-09-03 Yoshinori K. Okuji * kern/rescue.c (grub_enter_rescue_mode): Free ARGS. * normal/completion.c (grub_normal_do_completion): Likewise. Reported by Hitoshi Ozeki. 2007-09-03 Yoshinori K. Okuji Do not use devices at boot in chainloading. * loader/i386/pc/chainloader.c (boot_drive): New variable. (boot_part_addr): Likewise. (grub_chainloader_boot): Simply call grub_chainloader_real_boot with BOOT_DRIVE and BOOT_PART_ADDR. (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR. Reported by Hitoshi Ozeki . 2007-08-29 Robert Millan Patch from Simon Peter : * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets. * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with util/i386/pc/grub-setup.c_DEPENDENCIES. * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with util/grub-probe.c_DEPENDENCIES. * conf/powerpc-ieee1275.rmk: Likewise. 2007-08-28 Robert Millan * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name() to tell grub-mkdevicemap how to name devices. * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a" feature). * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add util/i386/get_disk_name.c. * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add util/ieee1275/get_disk_name.c. * include/grub/util/misc.h: grub_util_get_disk_name() declaration. * DISTLIST: Add util/i386/get_disk_name.c and util/ieee1275/get_disk_name.c. * util/grub-mkdevicemap.c: Replace device naming logic with grub_util_get_disk_name() calls. 2007-08-20 Robert Millan * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds" (so that it works for both plural and singular quantities). 2007-08-05 Robert Millan * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix so that [xz] isn't taken into account when determining order. 2007-08-02 Marco Gerards * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h', `include/multiboot2.h', `include/grub/elfload.h', `include/multiboot.h', `include/grub/multiboot.h', `include/grub/multiboot_loader.h', `include/grub/multiboot2.h', `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h', `kern/elf.c', `loader/multiboot_loader.c', `loader/multiboot_loader_normal.c', `loader/multiboot2.c', `loader/i386/pc/multiboot2.c', `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and `util/i386/pc/grub-mkrescue.in'. Remove `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h', `include/grub/i386/pc/util/biosdisk.h' and `include/grub/powerpc/ieee1275/multiboot.h'. 2007-08-02 Bean * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod. (ntfs_mod_SOURCES): New variable. (ntfs_mod_CFLAGS): Likewise. (ntfs_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c. (grub_probe_SOURCES): Likewise. (grub_emu_SOURCES): Likewise. * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c. (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c. (grub_emu_SOURCES): Likewise. * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug. * fs/ntfs.c: New file. 2007-08-02 Bean * disk.h (grub_disk): Use NESTED_FUNC_ATTR. * file.h (grub_file): Likewise. * fshelp.h (grub_fshelp_read_file): Likewise. * util/i386/pc/grub-setup.c (setup): Likewise. (save_first_sector): Likewise. (save_blocklists): Likewise. * fs/affs.c (grub_affs_read_file): Likewise. * fs/ext2.c (grub_ext2_read_file): Likewise. * fs/fat.c (grub_fat_read_data): Likewise. * fs/fshelp.c (grub_fshelp_read_file): Likewise. * fs/hfs.c (grub_hfs_read_file): Likewise. * fs/hfsplus.c (grub_hfsplus_read_file): Likewise. * fs/jfs.c (grub_jfs_read_file): Likewise. * fs/minix.c (grub_minix_read_file): Likewise. * fs/sfs.c (grub_sfs_read_file): Likewise. * fs/ufs.c (grub_ufs_read_file): Likewise. * fs/xfs.c (grub_xfs_read_file): Likewise. * command/blocklist.c (read_blocklist): Likewise. (print_blocklist): Likewise. 2007-08-02 Marco Gerards * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and `util/hostfs.c'. * disk/host.c: New file. * util/hostfs.c: Likewise. * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk, return `GRUB_ERR_BAD_FS'. * fs/sfs.c (grub_sfs_mount): Likewise. * fs/xfs.c (grub_xfs_mount): Likewise. * include/grub/disk.h (enum grub_disk_dev_id): Add `GRUB_DISK_DEVICE_HOST_ID'. * util/grub-emu.c (main): Initialize and de-initialize hostfs. 2007-07-24 Jerone Young * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot modules for compilation. * conf/powerpc-ieee1275.rmk: Likewise. * include/multiboot.h: Move multiboot definitions to one file. Rename many definitions to not get grub specific. * include/multiboot2.h: Create header with multiboot 2 definitions. * include/grub/multiboot.h: Header for grub specific function prototypes and definitions. * include/grub/multiboot2.h: Likewise. * include/grub/multiboot_loader.h: Likewise. * include/grub/i386/pc/multiboot.h: Removed. * include/grub/powerpc/ieee1275/multiboot.h: Removed. * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1 and 2 to allow for one multiboot and module commands. * loader/multiboot2.c: Add multiboot2 functionality. * loader/i386/pc/multiboot.c: Modify for new multiboot header location and definition names. * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot 2 functions. * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc ieee1275 specific multiboot2 code. * kern/i386/pc/startup.S: Change headers and definition names for multiboot. Add function grub_multiboot2_real_boot for multiboot 2. 2007-07-22 Robert Millan * geninitheader.sh: Process file specified in first parameter rather than hardcoding grub_modules_init.lst. * geninit.sh: Likewise. Also, construct header name dynamically rather than hardcoding grub_modules_init.h. * conf/common.rmk: Rename grub_modules_init.[ch] files associated with grub-emu to grub_emu_init.[ch]. Add rules to build analogous grub_probe_init.[ch] and grub_setup_init.[ch]. * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace grub_modules_init.h with grub_emu_init.h. (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new grub_probe_init.[ch] files. * conf/i386-efi.rmk: Likewise. * conf/i386-pc.rmk: Likewise. (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new grub_setup_init.[ch] files. * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h. * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all() to initialize modules rather than a list of hardcoded functions. * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use grub_init_all() to initialize modules rather than a list of hardcoded functions. 2007-07-22 Robert Millan * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware. 2007-07-22 Robert Millan * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag. * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this flag when running on SmartFirmware. * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT was set. * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname): Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set, rather than decreasing it. * util/i386/pc/grub-setup.c (setup): When embedding is required, but there's not enough space to do it, fail in the same way as when it can't be done because there are no partitions. * util/powerpc/ieee1275/grub-install.in: Improve error message shown when nvsetenv failed. 2007-07-22 Yoshinori K. Okuji * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue, because this rule is automatically generated. (grub-mkrescue): Removed for the same reason as above. 2007-07-22 Yoshinori K. Okuji Migrate to GNU General Public License Version 3. * COPYING: Replaced with the plain text version of GPLv3. * config.guess: Updated from gnulib. * config.sub: Likewise. * geninit.sh: Output a GPLv3 copyright notice. * geninitheader.sh: Likewise. * genmodsrc.sh: Likewise. * gensymlist.sh.in: Likewise. * boot/i386/pc/boot.S: Upgraded to GPLv3. * boot/i386/pc/diskboot.S: Likewise. * boot/i386/pc/pxeboot.S: Likewise. * commands/blocklist.c: Likewise. * commands/boot.c: Likewise. * commands/cat.c: Likewise. * commands/cmp.c: Likewise. * commands/configfile.c: Likewise. * commands/echo.c: Likewise. * commands/help.c: Likewise. * commands/ls.c: Likewise. * commands/search.c: Likewise. * commands/terminal.c: Likewise. * commands/test.c: Likewise. * commands/videotest.c: Likewise. * commands/i386/cpuid.c: Likewise. * commands/i386/pc/halt.c: Likewise. * commands/i386/pc/play.c: Likewise. * commands/i386/pc/reboot.c: Likewise. * commands/i386/pc/vbeinfo.c: Likewise. * commands/i386/pc/vbetest.c: Likewise. * commands/ieee1275/halt.c: Likewise. * commands/ieee1275/reboot.c: Likewise. * commands/ieee1275/suspend.c: Likewise. * disk/loopback.c: Likewise. * disk/lvm.c: Likewise. * disk/raid.c: Likewise. * disk/efi/efidisk.c: Likewise. * disk/i386/pc/biosdisk.c: Likewise. * disk/ieee1275/ofdisk.c: Likewise. * font/manager.c: Likewise. * fs/affs.c: Likewise. * fs/ext2.c: Likewise. * fs/fat.c: Likewise. * fs/fshelp.c: Likewise. * fs/hfs.c: Likewise. * fs/hfsplus.c: Likewise. * fs/iso9660.c: Likewise. * fs/jfs.c: Likewise. * fs/minix.c: Likewise. * fs/sfs.c: Likewise. * fs/ufs.c: Likewise. * fs/xfs.c: Likewise. * hello/hello.c: Likewise. * include/grub/acorn_filecore.h: Likewise. * include/grub/arg.h: Likewise. * include/grub/bitmap.h: Likewise. * include/grub/boot.h: Likewise. * include/grub/cache.h: Likewise. * include/grub/device.h: Likewise. * include/grub/disk.h: Likewise. * include/grub/dl.h: Likewise. * include/grub/elfload.h: Likewise. * include/grub/env.h: Likewise. * include/grub/err.h: Likewise. * include/grub/file.h: Likewise. * include/grub/font.h: Likewise. * include/grub/fs.h: Likewise. * include/grub/fshelp.h: Likewise. * include/grub/gzio.h: Likewise. * include/grub/hfs.h: Likewise. * include/grub/kernel.h: Likewise. * include/grub/loader.h: Likewise. * include/grub/lvm.h: Likewise. * include/grub/misc.h: Likewise. * include/grub/mm.h: Likewise. * include/grub/net.h: Likewise. * include/grub/normal.h: Likewise. * include/grub/parser.h: Likewise. * include/grub/partition.h: Likewise. * include/grub/pc_partition.h: Likewise. * include/grub/raid.h: Likewise. * include/grub/rescue.h: Likewise. * include/grub/script.h: Likewise. * include/grub/setjmp.h: Likewise. * include/grub/symbol.h: Likewise. * include/grub/term.h: Likewise. * include/grub/terminfo.h: Likewise. * include/grub/tparm.h: Likewise. * include/grub/types.h: Likewise. * include/grub/video.h: Likewise. * include/grub/efi/api.h: Likewise. * include/grub/efi/chainloader.h: Likewise. * include/grub/efi/console.h: Likewise. * include/grub/efi/console_control.h: Likewise. * include/grub/efi/disk.h: Likewise. * include/grub/efi/efi.h: Likewise. * include/grub/efi/pe32.h: Likewise. * include/grub/efi/time.h: Likewise. * include/grub/i386/linux.h: Likewise. * include/grub/i386/setjmp.h: Likewise. * include/grub/i386/types.h: Likewise. * include/grub/i386/efi/kernel.h: Likewise. * include/grub/i386/efi/loader.h: Likewise. * include/grub/i386/efi/time.h: Likewise. * include/grub/i386/pc/biosdisk.h: Likewise. * include/grub/i386/pc/boot.h: Likewise. * include/grub/i386/pc/chainloader.h: Likewise. * include/grub/i386/pc/console.h: Likewise. * include/grub/i386/pc/init.h: Likewise. * include/grub/i386/pc/kernel.h: Likewise. * include/grub/i386/pc/loader.h: Likewise. * include/grub/i386/pc/memory.h: Likewise. * include/grub/i386/pc/multiboot.h: Likewise. * include/grub/i386/pc/serial.h: Likewise. * include/grub/i386/pc/time.h: Likewise. * include/grub/i386/pc/vbe.h: Likewise. * include/grub/i386/pc/vbeblit.h: Likewise. * include/grub/i386/pc/vbefill.h: Likewise. * include/grub/i386/pc/vbeutil.h: Likewise. * include/grub/i386/pc/vga.h: Likewise. * include/grub/ieee1275/ieee1275.h: Likewise. * include/grub/ieee1275/ofdisk.h: Likewise. * include/grub/powerpc/libgcc.h: Likewise. * include/grub/powerpc/setjmp.h: Likewise. * include/grub/powerpc/types.h: Likewise. * include/grub/powerpc/ieee1275/biosdisk.h: Likewise. * include/grub/powerpc/ieee1275/console.h: Likewise. * include/grub/powerpc/ieee1275/ieee1275.h: Likewise. * include/grub/powerpc/ieee1275/kernel.h: Likewise. * include/grub/powerpc/ieee1275/loader.h: Likewise. * include/grub/powerpc/ieee1275/multiboot.h: Likewise. * include/grub/powerpc/ieee1275/time.h: Likewise. * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise. * include/grub/sparc64/libgcc.h: Likewise. * include/grub/sparc64/setjmp.h: Likewise. * include/grub/sparc64/types.h: Likewise. * include/grub/sparc64/ieee1275/console.h: Likewise. * include/grub/sparc64/ieee1275/ieee1275.h: Likewise. * include/grub/sparc64/ieee1275/kernel.h: Likewise. * include/grub/sparc64/ieee1275/time.h: Likewise. * include/grub/util/biosdisk.h: Likewise. * include/grub/util/getroot.h: Likewise. * include/grub/util/lvm.h: Likewise. * include/grub/util/misc.h: Likewise. * include/grub/util/raid.h: Likewise. * include/grub/util/resolve.h: Likewise. * io/gzio.c: Likewise. * kern/device.c: Likewise. * kern/disk.c: Likewise. * kern/dl.c: Likewise. * kern/elf.c: Likewise. * kern/env.c: Likewise. * kern/err.c: Likewise. * kern/file.c: Likewise. * kern/fs.c: Likewise. * kern/loader.c: Likewise. * kern/main.c: Likewise. * kern/misc.c: Likewise. * kern/mm.c: Likewise. * kern/parser.c: Likewise. * kern/partition.c: Likewise. * kern/rescue.c: Likewise. * kern/term.c: Likewise. * kern/efi/efi.c: Likewise. * kern/efi/init.c: Likewise. * kern/efi/mm.c: Likewise. * kern/i386/dl.c: Likewise. * kern/i386/efi/init.c: Likewise. * kern/i386/efi/startup.S: Likewise. * kern/i386/pc/init.c: Likewise. * kern/i386/pc/lzo1x.S: Likewise. * kern/i386/pc/startup.S: Likewise. * kern/ieee1275/ieee1275.c: Likewise. * kern/powerpc/cache.S: Likewise. * kern/powerpc/dl.c: Likewise. * kern/powerpc/ieee1275/cmain.c: Likewise. * kern/powerpc/ieee1275/crt0.S: Likewise. * kern/powerpc/ieee1275/init.c: Likewise. * kern/powerpc/ieee1275/openfw.c: Likewise. * kern/sparc64/cache.S: Likewise. * kern/sparc64/dl.c: Likewise. * kern/sparc64/ieee1275/init.c: Likewise. * kern/sparc64/ieee1275/openfw.c: Likewise. * loader/efi/chainloader.c: Likewise. * loader/efi/chainloader_normal.c: Likewise. * loader/i386/efi/linux.c: Likewise. * loader/i386/efi/linux_normal.c: Likewise. * loader/i386/pc/chainloader.c: Likewise. * loader/i386/pc/chainloader_normal.c: Likewise. * loader/i386/pc/linux.c: Likewise. * loader/i386/pc/linux_normal.c: Likewise. * loader/i386/pc/multiboot.c: Likewise. * loader/i386/pc/multiboot_normal.c: Likewise. * loader/powerpc/ieee1275/linux.c: Likewise. * loader/powerpc/ieee1275/linux_normal.c: Likewise. * normal/arg.c: Likewise. * normal/cmdline.c: Likewise. * normal/command.c: Likewise. * normal/completion.c: Likewise. * normal/execute.c: Likewise. * normal/function.c: Likewise. * normal/lexer.c: Likewise. * normal/main.c: Likewise. * normal/menu.c: Likewise. * normal/menu_entry.c: Likewise. * normal/misc.c: Likewise. * normal/parser.y: Likewise. * normal/script.c: Likewise. * normal/i386/setjmp.S: Likewise. * normal/powerpc/setjmp.S: Likewise. * normal/sparc64/setjmp.S: Likewise. * partmap/acorn.c: Likewise. * partmap/amiga.c: Likewise. * partmap/apple.c: Likewise. * partmap/gpt.c: Likewise. * partmap/pc.c: Likewise. * partmap/sun.c: Likewise. * term/gfxterm.c: Likewise. * term/terminfo.c: Likewise. * term/efi/console.c: Likewise. * term/i386/pc/console.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/i386/pc/vesafb.c: Likewise. * term/i386/pc/vga.c: Likewise. * term/ieee1275/ofconsole.c: Likewise. * util/biosdisk.c: Likewise. * util/console.c: Likewise. * util/genmoddep.c: Likewise. * util/getroot.c: Likewise. * util/grub-emu.c: Likewise. * util/grub-mkdevicemap.c: Likewise. * util/grub-probe.c: Likewise. * util/lvm.c: Likewise. * util/misc.c: Likewise. * util/raid.c: Likewise. * util/resolve.c: Likewise. * util/update-grub.in: Likewise. * util/update-grub_lib.in: Likewise. * util/grub.d/00_header.in: Likewise. * util/grub.d/10_hurd.in: Likewise. * util/grub.d/10_linux.in: Likewise. * util/i386/efi/grub-install.in: Likewise. * util/i386/efi/grub-mkimage.c: Likewise. * util/i386/pc/grub-install.in: Likewise. * util/i386/pc/grub-mkimage.c: Likewise. * util/i386/pc/grub-mkrescue.in: Likewise. * util/i386/pc/grub-setup.c: Likewise. * util/i386/pc/misc.c: Likewise. * util/powerpc/ieee1275/grub-install.in: Likewise. * util/powerpc/ieee1275/grub-mkimage.c: Likewise. * util/powerpc/ieee1275/misc.c: Likewise. * video/bitmap.c: Likewise. * video/video.c: Likewise. * video/i386/pc/vbe.c: Likewise. * video/i386/pc/vbeblit.c: Likewise. * video/i386/pc/vbefill.c: Likewise. * video/i386/pc/vbeutil.c: Likewise. * video/readers/tga.c: Likewise. 2007-07-02 Robert Millan * conf/i386-efi.rmk: Replace obsolete reference to util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c with util/getroot.c. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * util/grub-emu.c (main): Fix unchecked pointer handling. 2007-07-02 Robert Millan * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap' invocation to fail, in order to support partition-less media. * util/i386/pc/grub-install.in: Likewise. * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine which fs or partmap modules are needed (akin to its sister scripts). Also use grub-probe to get rid of unportable /proc/mounts check. Print the same informational message that the other scripts do, before exiting. 2007-06-23 Robert Millan * util/update-grub_lib.in (font_path): New function. Determine whether a font file can be found and, if so, echo the GRUB path to it. * util/update-grub.in: Handle multiple terminals depending on user input, platform availability and font file presence. Propagate variables of our findings to /etc/grub.d/ children. * util/grub.d/00_header.in: Handle multiple terminals, based on environment setup by update-grub. 2007-06-23 Robert Millan * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod. 2007-06-21 Robert Millan * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to indicate end of data section in kernel image. * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and GRUB_KERNEL_MACHINE_DATA_END. * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve space for it. * kern/i386/efi/startup.S: Likewise. * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub during image generation. Implement --prefix option to override this patch. * util/i386/efi/grub-mkimage.c: Likewise. * util/update-grub_lib.in (convert_system_path_to_grub_path): Split code to make path relative to its root into a separate function. * util/i386/pc/grub-install.in: Use newly provided make_system_path_relative_to_its_root() to convert ${grubdir}, then pass the result to grub-install --prefix. 2007-06-13 Robert Millan * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and DEFAULT_DEVICE_MAP. * util/grub-emu.c: Use above definitions from misc.h instead of defining them. * util/grub-mkdevicemap.c: Likewise. * util/i386/pc/grub-setup.c: Likewise. * util/grub-probe.c: Likewise. (probe): Abort with grub_util_error() when either grub_guess_root_device or grub_util_get_grub_dev fails. 2007-06-12 Robert Millan * normal/command.c (grub_command_execute): Use NULL rather than 0 for "pager" assignment. * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for "pcdata". * util/grub-probe.c (probe): Likewise for "drive_name". 2007-06-11 Robert Millan * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes, not just the cdrom one. 2007-06-11 Robert Millan * util/i386/pc/grub-mkrescue.in: Add "set -e". Add --pkglibdir=DIR option to override pkglibdir. Mention --image-type=TYPE in help output. Fix --grub-mkimage (it was a no-op). Abort gracefully when no parameter is given. 2007-06-11 Robert Millan * util/i386/pc/grub-mkrescue.in: New file. * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS. * Makefile.in: Handle bin_SCRIPTS. 2007-06-10 Vesa Jaaskelainen * term/gfxterm.c (grub_gfxterm_init): Added support for specifying list of video modes. 2007-06-06 Robert Millan * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if file doesn't exist, or if it is in a filesystem grub can't read. * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do not abort if GRUB_DRIVE could not be defined. Rearrange generated header comment to fit in 80 columns when the variables are resolved. * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE could be identified by update-grub. Remove redundant check for unifont.pff existence (since convert_system_path_to_grub_path now handles that). 2007-06-04 Robert Millan * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c. * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c. 2007-06-04 Robert Millan * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe. * include/grub/partition.h: Declare grub_apple_partition_map_init and grub_apple_partition_map_fini. * util/biosdisk.c (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed to access >2 TiB disks). Print disk->total_sectors with %llu instead of %lu, since this variable is always 64-bit (prevents wrong disk size from being displayed on either >2 TiB disk or big-endian CPU). (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling into a generic case that supports all (sane) partition maps. Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually breaks big-endian. * util/grub-probe.c: Call grub_apple_partition_map_init() before probe() and grub_apple_partition_map_fini() after that. 2007-06-01 Robert Millan * util/update-grub.in: Export GRUB_CMDLINE_LINUX. * util/grub.d/00_header.in: Only enable gfxterm when convert_system_path_to_grub_path() succeeds. 2007-05-20 Robert Millan * util/update-grub_lib.in: New file. * DISTLIST: Add update-grub_lib.in. * conf/common.rmk: Generate update-grub_lib and install it in $(lib_DATA). * Makefile.in: Add install routine for $(lib_DATA). * util/grub.d/00_header.in: Use convert_system_path_to_grub_path() function provided by update-grub_lib to support arbitrary paths of unifont.pff. * util/update-grub.in: Use convert_system_path_to_grub_path() to initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables. 2007-05-19 Robert Millan * commands/i386/cpuid.c: New module. * DISTLIST: Add it. * conf/i386-efi.rmk: Enable cpuid.mod. * conf/i386-pc.rmk: Likewise. 2007-05-18 Jeroen Dekkers * kern/disk.c (grub_disk_read): Check return value of grub_realloc(). 2007-05-18 Jeroen Dekkers * util/getroot.c (grub_util_get_grub_dev): Support partitionable arrays. * disk/raid.c (grub_raid_open): Likewise. 2007-05-17 Jeroen Dekkers * util/biosdisk.c (linux_find_partition): Allocate real_dev on the stack instead of on the heap. * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough before doing a read on it. * configure.ac: Only use -fno-stack-protector for the target environment. 2007-05-17 Jeroen Dekkers * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add __attribute_ ((unused)) to mode_type argument. * util/getroot.c (grub_guess_root_device): Fix #endif. * kern/misc.c (memcmp): Fix prototype. * include/grub/partition.h [GRUB_UTIL] (grub_gpt_partition_map_init): Add prototype. (grub_gpt_partition_map_fini): Likewise. * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed) at the right place. * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U. (grub_fat_read_data): Likewise. (grub_fat_find_dir): Likewise. * font/manager.c (find_glyph): Make table a const. (grub_font_get_glyph): Remove bitmap from if statement. 2007-05-16 Jeroen Dekkers * util/getroot.c (grub_guess_root_device): Remove RAID and LVM code, first search for device in /dev/mapper, then in /dev. (grub_util_get_grub_dev): New function. * include/grub/util/getroot.h (grub_util_get_grub_dev): Add prototype. * util/grub-probe.c (probe): Remove check for RAID, call grub_util_get_grub_dev() instead of grub_util_biosdisk_get_grub_dev(). * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of grub_util_biosdisk_get_grub_dev(). * util/i386/pc/grub-setup.c (main): Likewise. 2007-05-16 Robert Millan * DISTLIST: Update for the latest changes. * conf/i386-pc.rmk: Use the new paths for util/getroot.c, util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c. * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with grub/util/biosdisk.h. * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with grub/util/biosdisk.h. 2007-05-16 Robert Millan * util/grub.d/00_header.in: Set default gfxmode to `640x480'. 2007-05-16 Robert Millan * util/i386/efi/grub-install.in: New. * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the newly added grub-install. * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h include. * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with grub/util/biosdisk.h. * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with grub/util/biosdisk.h. 2007-05-16 Robert Millan * include/grub/i386/pc/util/biosdisk.h: Moved to ... * include/grub/util/biosdisk.h: ... here. * util/i386/pc/biosdisk.c: Moved to ... * util/biosdisk.c: ... here. * util/i386/pc/getroot.c: Moved to ... * util/getroot.c: ... here. * util/i386/pc/grub-mkdevicemap.c: Moved to ... * util/grub-mkdevicemap.c: ... here. * util/i386/pc/grub-probe.c: Moved to ... * util/grub-probe.c: ... here. 2007-05-15 Robert Millan * util/update-grub.in: Remove duplicated line in grub.cfg header message. 2007-05-13 Robert Millan * util/update-grub.in: Fix a few assumptions about the devices holding /, /boot and /boot/grub being the same. * util/grub.d/00_header.in: Likewise. * util/grub.d/10_hurd.in: Likewise. * util/grub.d/10_linux.in: Likewise. * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary patterns. Use that to define the `.old' suffix as older than `'. * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'. * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in the grub.cfg header message. 2007-05-11 Robert Millan * util/update-grub.in: Create device.map if it doesn't already exist, before attempting to run grub-probe. Check for grub-probe and grub-mkdevicemap with the same code grub-install is using. Remove test mode. 2007-05-09 Jeroen Dekkers * Makefile.in: Add the datarootdir autoconf variable. 2007-05-09 Robert Millan * util/i386/pc/grub-probe.c (probe): When detecting partition map, fail gracefully if dev->disk->partition == NULL. 2007-05-07 Robert Millan * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to determine partition map module. * util/i386/pc/grub-install.in: Use this feature to decide which partition module to load, instead of hardcoding pc and gpt. 2007-05-07 Robert Millan * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when source directory differs from build directory. 2007-05-05 Robert Millan * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir initialisation. 2007-05-05 Robert Millan * util/update-grub.in: Create ${grub_prefix} if it doesn't exist. 2007-05-05 Robert Millan * util/grub.d/10_linux.in: Allow the administrator to insert Linux command-line arguments via ${GRUB_CMDLINE_LINUX}. 2007-05-05 Robert Millan * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c. (grub_probe_SOURCES): Likewise. * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect GPT and initialize dos_part and bsd_part accordingly. * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and install_bsd_part. (main): Activate gpt module for use during partition identification, and deactivate it afterwards. * util/i386/pc/grub-install.in: Add gpt module to core.img. * util/i386/pc/grub-probe.c (main): Activate gpt module for use during partition identification, and deactivate it afterwards. 2007-05-05 Robert Millan * term/i386/pc/console.c (grub_console_fini): Call grub_term_set_current() before grub_term_unregister(). 2007-05-04 Robert Millan * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in, util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README. * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS and update-grub_DATA. * conf/common.rmk: Build and install update-grub components. * conf/common.mk: Regenerate. * util/update-grub.in: New. Core of update-grub. * util/grub.d/00_header.in: New. Generates grub.cfg header. * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd. * util/grub.d/10_linux.in: New. Generates boot entries for Linux. * util/grub.d/README: New. Document grub.d directory layout. 2007-05-01 Robert Millan * util/grub-emu.c: Move initialization functions grub_util_biosdisk_init() and grub_init_all() before grub_util_biosdisk_get_grub_dev(), which relies on them. 2007-04-19 Robert Millan * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since it is used later. 2007-04-18 Jerone Young * kernel/elf.c: Add missing parenthesis for conditional statement stanza. 2007-04-10 Jerone Young * util/i386/pc/getroot.c: Update so that if root device is /dev/root , continue on and look for device node with real device name. 2007-04-10 Jerone Young * configure.ac: Add argument for autoconf to use transformation ability. * Makefile.in: Add autoconf package transformation code. * util/i386/pc/grub-install.in: Likewise. * util/powerpc/ieee1275/grub-install.in: Likewise. 2007-03-19 Yoshinori K. Okuji * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro. (EXT2_GOOD_OLD_INODE_SIZE): Likewise. (EXT2_REVISION): Likewise. (EXT2_INODE_SIZE): Likewise. (struct grub_ext2_block_group): Added a missing member "used_dirs". (grub_ext2_read_inode): Divide by the inode size in a superblock instead of 128 to obtain INODES_PER_BLOCK. Use the macro EXT2_INODE_SIZE instead of directly using SBLOCK->INODE_SIZE. 2007-03-18 Yoshinori K. Okuji * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a superblock instead of the structure size to compute an offset. This fixes the problem that GRUB could not read a filesystem when inode size is different from 128-byte. 2007-03-05 Marco Gerards * normal/main.c (read_config_file): When "menu" is not set, create an initial context. 2007-02-21 Hollis Blanchard * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed. (HEAP_LIMIT): New macro. (grub_claim_heap): Claim memory up to `heaplimit'. 2007-02-21 Hollis Blanchard * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB. * kern/powerpc/ieee1275/init.c (_end): Add declaration. (_start): Likewise. (grub_arch_modules_addr): Return address after `_end'. * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h. (load_modules): Use new parameter as `p_paddr' and `p_vaddr'. (add_segments): Calculate `_end' from phdr size and location. (ALIGN_UP): Moved to ... * include/grub/misc.h: here. * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN): New macro. (GRUB_IEEE1275_MODULE_BASE): Removed. 2007-02-20 Hollis Blanchard * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct loop boundary. 2007-02-20 Hollis Blanchard * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t. All users updated. (grub_elf64_load_hook_t): Likewise. * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve debug output. 2007-02-20 Hollis Blanchard * kern/mm.c: Update copyright. (grub_mm_debug): Correct syntax error. (grub_mm_dump_free): New function. (grub_debug_free): Call `grub_free'. * include/grub/mm.h: Update copyright. (grub_mm_dump_free): Add declaration. 2007-02-12 Hollis Blanchard * include/grub/ieee1275/ieee1275.h: Update copyright. * kern/powerpc/ieee1275/init.c: Likewise. * kern/powerpc/ieee1275/openfw.c: Likewise. * loader/powerpc/ieee1275/linux.c: Likewise. * include/grub/elfload.h: Likewise. * kern/elf.c: Likewise. (grub_elf32_load): Pass `base' and `size' parameters. Update all callers. (grub_elf64_load): Likewise. (grub_elf32_load_segment): Move to a nested function. (grub_elf64_load_segment): Likewise. 2007-02-12 Hollis Blanchard * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New prototype. * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed. (grub_heap_len): Likewise. (HEAP_SIZE): New macro. (grub_claim_heap): New function. (grub_machine_init): Don't claim heap directly. Call `grub_claim_heap'. * kern/powerpc/ieee1275/openfw.c: Include alloca.h. (grub_available_iterate): New function. 2007-02-03 Thomas Schwinge * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition. * configure.ac: Use it for testing the HOST and TARGET compilers. 2006-12-13 Thomas Schwinge * Makefile.in (enable_grub_emu): New variable. * configure.ac (--enable-grub-emu): New option. Do the checks for (n)curses only if `--enable-grub-emu' is requested. * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise. 2006-12-12 Marco Gerards * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'. * kern/env.c (grub_env_unset): Don't free the member `value' when the type is GRUB_ENV_VAR_DATA, in this case it's a user defined pointer. * normal/main.c (current_menu): Removed. (free_menu): Unset the `menu' environment variable. (grub_normal_menu_addentry): Make use of the environment variable `menu', instead of using the global `current_menu'. Allocate memory for the sourcecode of this entry. (read_config_file): New argument `nested', changed all callers. Only in the case of a new context, initialize a new menu. Set the `menu' environment variable. (grub_normal_execute): Don't set and unset the environment variable `menu' here anymore. Only free the menu when leaving the context. * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory leak. 2006-12-11 Marco Gerards * normal/menu_entry.c (run): Fix off by one bug so the last line is executed. Move the loader check to outside the loop. 2006-12-08 Hollis Blanchard * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'. 2006-11-25 Yoshinori K. Okuji * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of the number of sectors. Reported by Andrey Shuvikov . 2006-11-11 Jeroen Dekkers * kern/disk.c (grub_disk_read): When there is a read error, always try to read only the necessary data. * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and disk/raid.c. * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New prototype. [GRUB_UTIL] (grub_raid_fini): Likewise. [GRUB_UTIL] (grub_lvm_init): Likewise. [GRUB_UTIL] (grub_lvm_fini): Likewise. * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is RAID device and copy DEVICE_NAME to DRIVE_NAME in that case. (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini() and grub_raid_fini(). 2006-11-09 Jeroen Dekkers * include/grub/types.h (__unused): Rename to UNUSED. * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused. (grub_elf64_size): Likewise. 2006-11-03 Hollis Blanchard * kern/elf.c (grub_elf_file): Call grub_file_seek. Call grub_error_push and grub_error_pop in the error-handling path. (grub_elf32_load_segment): Only call grub_file_read with non-zero length. 2006-11-03 Hollis Blanchard * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. (kernel_elf_SOURCES): Likewise. * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h. * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise. * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise. * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise. * conf/common.rmk (pkgdata_MODULES): Add elf.mod. (elf_mod_SOURCES): New variable. (elf_mod_CFLAGS): Likewise. (elf_mod_LDFLAGS): Likewise. * include/grub/types.h (__unused): New macro. * include/grub/elfload.h: New file. * kern/elf.c: Likewise. * loader/powerpc/ieee1275/linux.c: Include elfload.h. (ELF32_LOADMASK): New macro. (ELF64_LOADMASK): Likewise. (vmlinux): Removed. (grub_linux_load32): New function. (grub_linux_load64): Likewise. (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64. Use grub_elf_t instead of grub_file_t. 2006-11-02 Hollis Blanchard * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add `catch_result' to struct set_color_args. 2006-10-28 Yoshinori K. Okuji * normal/menu.c: Include grub/script.h. * normal/menu_entry.c: Likewise. * include/grub/normal.h: Do not include grub/script.h. 2006-10-27 Hollis Blanchard * kern/disk.c (grub_disk_read): Correct debug printf formatting. 2006-10-27 Hollis Blanchard * kern/disk.c (grub_disk_open): Print debug messages when opening a disk. (grub_disk_close): Print debug messages when closing a disk. (grub_disk_read): Print debug messages when disk read fails. * kern/fs.c (grub_fs_probe): Print debug messages when detecting filesystem type. * kern/partition.c: Include misc.h. (grub_partition_iterate): Print debug messages when detecting partition type. 2006-10-27 Hollis Blanchard * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status' is negative. * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0. 2006-10-26 Hollis Blanchard * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname): Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test. 2006-10-25 Jeroen Dekkers * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes instead of sizeof(lv). Patch by Michael Guntsche. 2006-10-18 Jeroen Dekkers * disk/lvm.c: Rename VGS to VG_LIST. (grub_lvm_iterate): Change VGS->LV to VG-LV. (grub_lvm_open): Likewise. Thanks to Michael Guntsche for finding this bug. 2006-10-15 Yoshinori K. Okuji * configure.ac (AC_INIT): Bumped to 1.95. 2006-10-14 Robert Millan * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev with "/dev/.static/dev/md". 2006-10-14 Yoshinori K. Okuji * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and DRIVE_NAME are always freed. * util/i386/pc/biosdisk.c (make_device_name): Add one into DOS_PART, as a DOS partition is counted from one instead of zero now. Reported by Robert Millan. 2006-10-14 Robert Millan * util/i386/pc/getroot.c (grub_guess_root_device): Stop using grub_util_biosdisk_get_grub_dev to convert system device to GRUB device. * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the string returned by grub_guess_root_device. * util/i386/pc/grub-setup.c: Likewise. * util/i386/pc/grub-probefs.c: Likewise. * util/i386/pc/grub-probefs.c: Rename to ... * util/i386/pc/grub-probe.c: ... this. * DISTLIST: Remove grub-probefs, add grub-probe. * conf/i386-efi.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * util/i386/pc/grub-install.in: Likewise. * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to choose which information we want to print. 2006-10-14 Yoshinori K. Okuji * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c, include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h, include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h, include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c, video/readers/tga.c and video/i386/pc/vbeutil.c. 2006-10-14 Jeroen Dekkers Added support for RAID and LVM. * disk/lvm.c: New file. * disk/raid.c: Likewise. * include/grub/lvm.h: Likewise. * include/grub/raid.h: Likewise. * include/grub/util/lvm.h: Likewise. * include/grub/util/raid.h: Likewise. * util/lvm.c: Likewise. * util/raid.c: Likewise. * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID. (grub_disk_get_size): New prototype. * kern/disk.c (grub_disk_open): Check whether grub_partition_probe() returns a partition. (grub_disk_get_size): New function. * kern/i386/pc/init.c (make_install_device): Copy the prefix verbatim if grub_install_dos_part is -2. * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID and LVM devices. * util/i386/pc/grub-setup.c (setup): New argument MUST_EMBED. Force embedding of GRUB when the argument is true. Close FILE before returning. (main): Add support for RAID and LVM. * conf/common.rmk: Add RAID and LVM modules. * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and util/lvm.c. (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c. * kern/misc.c (grub_strstr): New function. * include/grub/misc.h (grub_strstr): New prototype. 2006-10-10 Tristan Gingold * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant. 2006-10-05 Tristan Gingold * kern/misc.c (grub_strtoull): Guess the base only if not specified. 2006-10-01 Hollis Blanchard * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World PowerMac support. 2006-10-01 Hollis Blanchard * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property): Remove `flags' argument. All callers changed. * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed. (IEEE1275_IHANDLE_INVALID): New variable. (IEEE1275_CELL_INVALID): New variable. (grub_ieee1275_finddevice, grub_ieee1275_get_property, grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path, grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open, grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return codes from Open Firmware. All callers updated. (grub_ieee1275_next_property): Directly return Open Firmware return code. * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Standardize error checking from `grub_ieee1275_get_property'. * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename `devalias' to `aliases'. Correct comments. Consolidate error paths. 2006-10-01 Hollis Blanchard * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename `instance_to_package_args' to `instance_to_path_args'. * kern/powerpc/ieee1275/init.c (grub_machine_init): Use `grub_ieee1275_chosen'. * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call `grub_ieee1275_interpret'. 2006-09-25 Hollis Blanchard * util/powerpc/ieee1275/grub-mkimage.c: Include config.h. 2006-09-25 Hollis Blanchard * include/grub/powerpc/libgcc.h (__floatdisf): New prototype. (__cmpdi): Likewise. * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type `grub_ssize_t'. * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h. * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual' to type `grub_ssize_t'. (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'. 2006-09-22 Marco Gerards * normal/script.c (grub_script_create_cmdmenu): Skip leading newlines. 2006-09-22 Marco Gerards * commands/echo.c: New file. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'. * conf/common.rmk (echo_mod_SOURCES): New variable. (echo_mod_CFLAGS): Likewise. (echo_mod_LDFLAGS): Likewise. 2006-09-22 Marco Gerards * normal/main.c (get_line): Malloc memory instead of using preallocated memory. Removed the arguments `cmdline' and `max_len'. Updated all callers. 2006-09-22 Marco Gerards * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable. (normal_mod_DEPENDENCIES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise. (normal_mod_DEPENDENCIES): Likewise. * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise. 2006-09-22 Johan Rydberg * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and programs. * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare. (normal_mod_DEPENDENCIES): Likewise. * conf/i386-pc.mk: Regenerate. * conf/i386-efi.mk: Likewise * conf/common.mk: Likewise. * conf/powerpc-ieee1275.mk: Likewise. * conf/sparc64-ieee1275.mk: Likewise. 2006-09-22 Robert Millan Sync with i386 version. * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage. * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu. 2006-09-21 Robert Millan Import from GRUB Legacy (lib/device.c): * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function. (init_device_map) [__linux__]: Add support for I2O devices. 2006-09-14 Marco Gerards * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of `-melf_i386'. 2006-09-14 Robert Millan * util/i386/pc/grub-install.in: Skip menu.lst when removing /boot/grub/*.lst. * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static"). * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists before adding it to device.map. 2006-08-15 Johan Rydberg * genmk.rb: Let GCC generate dependencies the first time it compiles a file; using the -MD option. * conf/common.mk: Regenerate. * conf/i386-pc.mk: Likewise. * conf/i386-efi.mk: Likewise. * conf/powerpc-ieee1275.mk: Likewise. * conf/sparc64-ieee1275.mk: Likewise. 2006-08-04 Yoshinori K. Okuji Move the prototypes of grub_setjmp and grub_longjmp to cpu/setjmp.h, so that each architecture may specify different attributes. * include/grub/i386/setjmp.h (grub_setjmp): New prototype. (grub_longjmp): Likewise. * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.. (grub_longjmp): Likewise. * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise.. (grub_longjmp): Likewise. * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed. [!GRUB_UTIL] (grub_longjmp): Removed. 2006-08-01 Pelletier Vincent * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275 "color!" method does not return any value. 2006-07-29 Vesa Jaaskelainen * include/grub/bitmap.h: New file. * include/grub/i386/pc/vbeutil.h: Likewise. * video/bitmap.c: Likewise. * video/readers/tga.c: Likewise. * video/i386/pc/vbeutil.c: Likewise. * commands/videotest.c: Code cleanup and updated to reflect to new video API. * term/gfxterm.c: Likewise. * video/video.c: Likewise. * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod. (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c. (bitmap_mod_SOURCES): New entry. (bitmap_mod_CFLAGS): Likewise. (bitmap_mod_LDFLAGS): Likewise. (tga_mod_SOURCES): Likewise. (tga_mod_CFLAGS): Likewise. (tga_mod_LDFLAGS): Likewise. * include/grub/video.h (grub_video_blit_operators): New enum type. (grub_video_render_target): Changed as forward declaration and moved actual definition to be video driver specific. (grub_video_adapter.blit_bitmap): Added blitting operator. (grub_video_adapter.blit_render_target): Likewise. (grub_video_blit_bitmap): Likewise. (grub_video_blit_render_target): Likewise. * include/grub/i386/pc/vbe.h (grub_video_render_target): Added driver specific render target definition. (grub_video_vbe_map_rgba): Added driver internal helper. (grub_video_vbe_unmap_color): Updated to use grub_video_i386_vbeblit_info. (grub_video_vbe_get_video_ptr): Likewise. * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use grub_video_i386_vbeblit_info. (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise. (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise. (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8): Likewise. (grub_video_i386_vbeblit_index_index): Likewise. (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function. (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise. (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise. (grub_video_i386_vbeblit_blend): Added generic blitter for blend operator. (grub_video_i386_vbeblit_replace): Added generic blitter for replace operator. * video/i386/pc/vbeblit.c: Updated to reflect changes on include/grub/i386/pc/vbeblit.h. * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8): Updated to use grub_video_i386_vbeblit_info. (grub_video_i386_vbefill_R8G8B8): Likewise. (grub_video_i386_vbefill_index): Likewise. (grub_video_i386_vbefill): Added generic filler. * video/i386/pc/vbefill.c: Updated to reflect changes on include/grub/i386/pc/vbefill.h. * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use grub_video_i386_vbeblit_info. (grub_video_vbe_unmap_color): Likewise. (grub_video_vbe_blit_glyph): Likewise. (grub_video_vbe_scroll): Likewise. (grub_video_vbe_draw_pixel): Removed function. (grub_video_vbe_get_pixel): Likewise. (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and updated code to use it. (common_blitter): Added common blitter for render target and bitmap. (grub_video_vbe_blit_bitmap): Updated to use common_blitter. (grub_video_vbe_blit_render_target): Likewise. 2006-07-30 Johan Rydberg * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already is in text mode if there is no console control protocol instance available. 2006-07-29 Vesa Jaaskelainen * include/grub/video.h: Code cleanup. * include/grub/i386/pc/vbe.h: Likewise. * video/i386/pc/vbe.c: Likewise. * video/i386/pc/vbeblit.c: Likewise. * video/i386/pc/vbefill.c: Likewise. * video/video.c: Likewise. Also added more comments. 2006-07-29 Vesa Jaaskelainen * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ... (struct grub_biosdisk_dap): Likewise. * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected linkage settings for all functions. 2006-07-12 Marco Gerards * configure.ac (--enable-mm-debug): Fix typo. * genkernsyms.sh.in: Use proper quoting for `CC'. 2006-07-02 Jeroen Dekkers * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32". (normal_mod_ASFLAGS): Remove "-m32". 2006-06-14 Yoshinori K. Okuji * util/misc.c: Include config.h. [!HAVE_MEMALIGN]: Do not include malloc.h. (grub_memalign): Use posix_memalign, if present. Then, use memalign, if present. Otherwise, emit an error. * util/grub-emu.c: Do not include malloc.h. * include/grub/util/misc.h: Include unistd.h. This is required for FreeBSD, because off_t is defined in unistd.h. Reported by Harley D. Eades III . * configure.ac (AC_GNU_SOURCE): Added. (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host type. 2006-06-09 Yoshinori K. Okuji * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS. 2006-06-07 Jeroen Dekkers * include/grub/types.h (grub_host_addr_t): Rename to grub_target_addr_t. (grub_host_off_t): Rename to grub_target_off_t. (grub_host_size_t): Rename to grub_target_size_t. (grub_host_ssize_t): Rename to grub_target_ssize_t. Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables. * include/grub/kernel.h (struct grub_module_header): Change type of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t. (grub_module_info): Likewise. 2006-06-05 Yoshinori K. Okuji * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional of checking LINUX_MEM_SIZE was reverse. Reported by Jesus Velazquez . 2006-06-05 Yoshinori K. Okuji Count partitions from 1 instead of 0 in the string representation of partitions. Still use 0-based internally. * partmap/sun.c (grub_sun_is_valid): A cosmetic change. (sun_partition_map_iterate): Use grub_partition_t instead of struct grub_partition *. Cast DESC->START_CYLINDER to grub_uint64_t after converting the endian. (sun_partition_map_probe): Subtract 1 for PARTNUM. (sun_partition_map_get_name): Add 1 to P->INDEX. * partmap/pc.c (grub_partition_parse): Subtract 1 for PCDATA->DOS_PART. (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART. * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to zero instead of one. (gpt_partition_map_probe): Subtract 1 for PARTNUM. (gpt_partition_map_get_name): Add 1 into P->INDEX. * partmap/apple.c (apple_partition_map_iterate): Change the type of POS to unsigned. (apple_partition_map_probe): Subtract 1 for PARTNUM. (apple_partition_map_get_name): Add 1 into P->INDEX. * partmap/amiga.c (amiga_partition_map_iterate): Change the type of POS to unsigned. (amiga_partition_map_iterate): Cast NEXT to grub_off_t to calculate the offset of a partition. (amiga_partition_map_probe): Subtract 1 for PARTNUM. (amiga_partition_map_get_name): Add 1 into P->INDEX. * partmap/acorn.c (acorn_partition_map_find): Change the type of SECTOR to grub_disk_addr_t. (acorn_partition_map_iterate): Likewise. (acorn_partition_map_probe): Subtract 1 for PARTNUM. Change the type of SECTOR to grub_disk_addr_t. Declare P on the top. (acorn_partition_map_get_name): Add 1 into P->INDEX. * kern/i386/pc/init.c (make_install_device): Add 1 into GRUB_INSTALL_DOS_PART. * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed conditional. 2006-06-04 Yoshinori K. Okuji Clean up the code to support 64-bit addressing in disks and files. This change is not enough for filesystems yet. * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the type of "start" to grub_uint64_t. (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in save_first_sector and save_blocklists. Use grub_le_to_cpu64 to convert addresses. * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR to grub_disk_addr_t. * partmap/gpt.c (gpt_partition_map_iterate): Fix the format string. * partmap/pc.c (pc_partition_map_iterate): Likewise. * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC to char *. * normal/script.c (grub_script_parse): Remove unused MEMFREE. * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro. * normal/lexer.c (grub_script_yyerror): Specify unused to LEX. * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1 to grub_off_t, to detect an error from grub_file_seek. (grub_multiboot_load_elf32): Likewise. * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the maximum unsigned long value when an overflow is detected. (grub_strtoull): New function. (grub_divmod64): Likewise. (grub_lltoa): use grub_divmod64. * kern/fs.c (struct grub_fs_block): Change the type of "offset" to grub_disk_addr_t. (grub_fs_blocklist_open): Increase P if P is not NULL to advance the pointer to next character. Use grub_strtoull instead of grub_strtoul. (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and SIZE to grub_disk_addr_t, grub_off_t and grub_size_t, respectively. * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the return value is signed. (grub_file_seek): Change the type of OLD to grub_off_t. Do not test if OFFSET is less than zero, as OFFSET is unsigned now. * kern/disk.c (struct grub_disk_cache): Change the type of "sector" to grub_disk_addr_t. (grub_disk_cache_get_index): Change the type of SECTOR to grub_disk_addr_t. Calculate the hash with SECTOR casted to unsigned after shifting. (grub_disk_cache_invalidate): Change the type of SECTOR to grub_disk_addr_t. (grub_disk_cache_unlock): Likewise. (grub_disk_cache_store): Likewise. (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE, START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t, grub_disk_addr_t and grub_uint64_t, respectively. (grub_disk_read): Use an unsigned variable REAL_OFFSET for the body, as the value of OFFSET is tweaked by grub_disk_check_range. Change the types of START_SECTOR, LEN and POS to grub_disk_addr_t, grub_size_t and grub_size_t, respectively. (grub_disk_write): Use an unsigned variable REAL_OFFSET for the body, as the value of OFFSET is tweaked by grub_disk_check_range. Change the types of LEN and N to grub_size_t. * io/gzio.c (struct grub_gzio): Change the types of "data_offset" and "saved_offset" to grub_off_t. (test_header): Cast BUF to char *. (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF to char *. (grub_gzio_read): Change the types of OFFSET and SIZE to grub_off_t and grub_size_t, respectively. * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA): Removed. (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c. (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40. (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42. (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e. (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12. * include/grub/types.h (grub_off_t): Unconditionally set to grub_uint64_t. (grub_disk_addr_t): Changed to grub_uint64_t. * include/grub/partition.h (struct grub_partition): Change the types of "start", "len" and "offset" to grub_disk_addr_t, grub_uint64_t and grub_disk_addr_t, respectively. (grub_partition_get_start): Return grub_disk_addr_t. (grub_partition_get_len): Return grub_uint64_t. * include/grub/misc.h (grub_strtoull): New prototype. (grub_divmod64): Likewise. * include/grub/fshelp.h (grub_fshelp_read_file): Change the types of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and grub_off_t, respectively. All callers and references changed. * include/grub/fs.h (struct grub_fs): Change the type of LEN to grub_size_t in "read". All callers and references changed. * include/grub/file.h (struct grub_file): Change the types of "offset" and "size" to grub_off_t and grub_off_t, respectively. Change the type of SECTOR to grub_disk_addr_t in "read_hook". (grub_file_read): Change the type of LEN to grub_size_t. (grub_file_seek): Return grub_off_t. Change the type of OFFSET to grub_off_t. (grub_file_size): Return grub_off_t. (grub_file_tell): Likewise. All callers and references changed. * include/grub/disk.h (struct grub_disk_dev): Change the types of SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and "write". (struct grub_disk): Change the type of "total_sectors" to grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in "read_hook". (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to grub_disk_addr_t, grub_off_t and grub_size_t, respectively. (grub_disk_write): Likewise. All callers and references changed. * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to char * for grub_strncmp to silence gcc. (grub_iso9660_mount): Likewise. (grub_iso9660_mount): Likewise. (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense return statement. (grub_iso9660_iterate_dir): Likewise. (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *. * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and LEN to grub_disk_addr_t and grub_size_t, respectively. * fs/hfsplus.c (grub_hfsplus_read_file): Likewise. * fs/jfs.c (grub_jfs_read_file): Likewise. * fs/minix.c (grub_jfs_read_file): Likewise. * fs/sfs.c (grub_jfs_read_file): Likewise. * fs/ufs.c (grub_jfs_read_file): Likewise. * fs/xfs.c (grub_jfs_read_file): Likewise. * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t, respectively. * fs/ext2.c (grub_ext2_read_block): When an error happens, set BLKNR to -1 instead of returning GRUB_ERRNO. (grub_ext2_read_file): Change the types of SECTOR and LEN to grub_disk_addr_t and grub_size_t, respectively. * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and LEN to grub_disk_addr_t and grub_size_t, respectively. * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for grub_file_read. * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format string. Do not cast SECTOR explicitly. * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS. (grub_biosdisk_rw): Change the types of SECTOR and SIZE to grub_disk_addr_t and grub_size_t, respectively. If the sector is over 2TB and LBA mode is not supported, raise an error. (get_safe_sectors): New function. (grub_biosdisk_read): Use get_safe_sectors. (grub_biosdisk_write): Likewise. * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string. (grub_efidisk_write): Likewise. * disk/loopback.c (delete_loopback): Cosmetic changes. (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME correctly. (grub_loopback_open): Likewise. (grub_loopback_read): Likewise. Also, change the type of POS to grub_off_t, and fix the usage of grub_memset. * commands/i386/pc/play.c: Include grub/machine/time.h. * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to print FILE->SIZE. * commands/configfile.c: Include grub/env.h. * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use GRUB_ERRNO directly instead. Change the type of POS to grub_off_t. Follow the coding standard. * commands/blocklist.c: Include grub/partition.h. (grub_cmd_blocklist): Return an error if the underlying device is not a disk. Take the starting sector of a partition into account, if a partition is used. * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of a length field. (lba_mode): Support 64-bit addresses. (chs_mode): Likewise. (copy_buffer): Adapted to the new offsets of a length field and a segment field. (blocklist_default_start): Allocate 64-bit space. * boot/i386/pc/boot.S (force_lba): Removed. (boot_drive): Moved to under KERNEL_SECTOR. (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit space. (real_start): Set %si earlier. Remove code for FORCE_LBA, since it is useless. (lba_mode): Refactored to support a 64-bit address. More size optimization. (setup_sectors): Likewise. 2006-06-04 Yoshinori K. Okuji * DISTLIST: Added include/grub/i386/linux.h. Removed include/grub/i386/pc/linux.h * configure.ac (AC_INIT): Bumped to 1.94. * config.guess: Updated from gnulib. * config.sub: Likewise. * install-sh: Likewise. * mkinstalldirs: Likewise. 2006-06-02 Yoshinori K. Okuji * conf/common.rmk (grub_modules_init.lst): Depended on grub_emu_SOURCES, excluding grub_emu_init.c, instead of MODSRCFILES. * genmk.rb (PModule::rule): Reverted the previous change. 2006-06-02 Yoshinori K. Okuji * conf/common.rmk (grub_modules_init.lst): Depends on $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure that the target does not exist before producing. (grub_modules_init.h): Remove the target before generating. (grub_emu_init.c): Likewise. * genmk.rb (PModule::rule): Add source files into MODSRCFILES. 2006-05-31 Jeroen Dekkers * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS for the target-specific tests. Make sure that we also have the up-to-date target variables for those tests. 2006-05-31 Yoshinori K. Okuji * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_. (PModule::rule): Likewise. 2006-05-31 Yoshinori K. Okuji * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why target-specific flags should be prefixed. (PModule::rule): Likewise. 2006-05-30 Yoshinori K. Okuji * configure.ac (CMP): Check if cmp is available explicitly. 2006-05-29 Yoshinori K. Okuji * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed. (target_cpu): New variable. (pkglibdir): Use target_cpu instead of host_cpu. * util/i386/pc/grub-install.in (host_cpu): Removed. (target_cpu): New variable. (pkglibdir): Use target_cpu instead of host_cpu. * util/genmoddep.c: Removed. * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P. * kern/dl.c: Likewise. * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to ... (GRUB_TARGET_SIZEOF_VOID_P): ... this. (GRUB_HOST_SIZEOF_LONG): Renamed to ... (GRUB_TARGET_SIZEOF_LONG): ... this. (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ... (GRUB_TARGET_WORDS_BIGENDIAN): ... this. * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to ... (GRUB_TARGET_SIZEOF_VOID_P): ... this. (GRUB_HOST_SIZEOF_LONG): Renamed to ... (GRUB_TARGET_SIZEOF_LONG): ... this. (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ... (GRUB_TARGET_WORDS_BIGENDIAN): ... this. * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to ... (GRUB_TARGET_SIZEOF_VOID_P): ... this. (GRUB_HOST_SIZEOF_LONG): Renamed to ... (GRUB_TARGET_SIZEOF_LONG): ... this. (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ... (GRUB_TARGET_WORDS_BIGENDIAN): ... this. * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P. [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG instead of GRUB_HOST_SIZEOF_LONG. [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of GRUB_HOST_WORDS_BIGENDIAN to define or undefine GRUB_CPU_WORDS_BIGENDIAN. Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to define grub_host_addr_t, grub_host_off_t, grub_host_size_t and grub_host_ssize_t. * conf/i386-efi.rmk (noinst_UTILITIES): Removed. (genmoddep_SOURCES): Likewise. * conf/i386-pc.rmk (noinst_UTILITIES): Likewise. (genmoddep_SOURCES): Likewise. * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise. (genmoddep_SOURCES): Likewise. * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES): Likewise. (genmoddep_SOURCES): Likewise. * genmoddep.awk: New file. * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS, TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC, CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively. (PModule::rule): Likewise. (Program::rule): Likewise. (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS, respectively. * configure.ac: Rewritten intensively to use host and target instead of build and host, respectively. * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu. (host_cpu): Removed. (target_cpu): New variable. (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\". (BUILD_CC): Removed. (BUILD_CFLAGS): Likewise. (BUILD_CPPFLAGS): Likewise. (TARGET_CC): New variable. (TARGET_CFLAGS): Likewise. (TARGET_CPPFLAGS): Likewise. (TARGET_LDFLAGS): Likewise. (AWK): Likewise. (include): Use target_cpu instead of host_cpu. (moddep.lst:): Use genmoddep.awk instead of genmoddep. * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c. 2006-05-29 Vesa Jaaskelainen * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed field 'false' to 'exec_on_false'. (grub_script_create_cmdif): Renamed argument names to reflect above changes. * normal/execute.c (grub_script_execute_cmdif): Likewise. * normal/script.c (grub_script_create_cmdif): Likewise. 2006-05-28 Yoshinori K. Okuji * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the top. (grub_hfsplus_btree_recptr): Likewise. (grub_hfsplus_find_block): Do not take RETRY any longer. Use FILEBLOCK both to pass a block number and store next block number. (grub_hfsplus_read_block): Rewritten heavily to support an extent overflow file correctly. Specify errors appropriately, because fshelp expects that GRUB_ERRNO is set when fails. Reuse grub_hfsplus_btree_recptr to get the pointer to a found key. (grub_hfsplus_btree_search): Return 1 instead of 0 when no match is found. * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and linux.mod. (_linux_mod_SOURCES): New variable. (_linux_mod_CFLAGS): Likewise. (_linux_mod_LDFLAGS): Likewise. (linux_mod_SOURCES): Likewise. (linux_mod_CFLAGS): Likewise. (linux_mod_LDFLAGS): Likewise. * DISTLIST: Added loader/i386/efi/linux.c, loader/i386/efi/linux_normal.c and include/grub/i386/efi/loader.h. * loader/i386/efi/linux.c: New file. * loader/i386/efi/linux_normal.c: Likewise. * include/grub/i386/efi/loader.h: Likewise. 2006-05-27 Yoshinori K. Okuji * commands/blocklist.c: New file. * DISTLIST: Added commands/blocklist.c. * term/efi/console.c (grub_console_highlight_color): Use a lighter color for the background, and a darker color for the foreground. (grub_console_checkkey): Return READ_KEY. (grub_console_cls): Set the background to GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen. * kern/efi/efi.c (grub_efi_exit_boot_services): New function. * include/grub/i386/linux.h (struct linux_kernel_params): Fixed the size of "padding5", "hd0_drive_info" and "hd1_drive_info". * include/grub/efi/efi.h (grub_efi_exit_boot_services): New prototype. * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift BG. The spec is wrong again. * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New prototype. [GRUB_UTIL] (grub_blocklist_fini): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/blocklist.c. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod. (blocklist_mod_SOURCES): New variable. (blocklist_mod_CFLAGS): Likewise. (blocklist_mod_LDFLAGS): Likewise. 2006-05-20 Yoshinori K. Okuji * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate duplication. (lba_mode): Use %eax more intensively to reduce the code size. 2006-05-20 Marco Gerards * normal/lexer.c (grub_script_yylex): Don't filter out newlines. * normal/parser.y (commandblock): Defined as . A subroutine for `menuentry'. (script): Accept leading newlines. (newlines): New rule to describe 0 or more newlines. (commands): Accept `command' with trailing newline. Fixed the order in which arguments were passed to `grub_script_add_cmd'. Accept commands separated by newlines. (function): Changed to accept newlines. (menuentry) Rewritten. * normal/script.c (grub_script_create_cmdmenu): Add new entries in front of the list, instead of to the end. 2006-05-19 Yoshinori K. Okuji * util/i386/pc/grub-install.in (bindir): New variable. (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee Shaver . 2006-05-14 Yoshinori K. Okuji * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of grub/machine/linux.h * loader/i386/pc/linux.c: Likewise. * include/grub/i386/pc/linux.h: Moved to ... * include/grub/i386/linux.h: ... here. * include/grub/i386/linux.h (struct linux_kernel_params): New struct. 2006-05-09 Vesa Jaaskelainen * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds checking. (grub_video_vbe_blit_glyph): Likewise. (grub_video_vbe_blit_bitmap): Likewise. (grub_video_vbe_blit_render_target): Likewise. 2006-05-09 Yoshinori K. Okuji * configure.ac (--with-platform): Properly quote the square brackets. 2006-05-08 Marco Gerards * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from this... (kernel_elf_HEADERS): ...to this. Updated all users. (grubof_symlist.c): Renamed from this... (kernel_elf_symlist.c): ...to this. Updated all users. (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'. (grubof_SOURCES): Renamed from this... (kernel_elf_SOURCES): ...to this. (grubof_HEADERS): Renamed from this... (kernel_elf_HEADERS): ...to this. (grubof_CFLAGS): Renamed from this... (kernel_elf_CFLAGS): ...to this. (grubof_ASFLAGS): Renamed from this... (kernel_elf_ASFLAGS): ...to this. (grubof_LDFLAGS): Renamed from this... (kernel_elf_LDFLAGS): ...to this. * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from this... (kernel_elf_HEADERS): ...to this. Updated all users. (grubof_symlist.c): Renamed from this... (kernel_elf_symlist.c): ...to this. Updated all users. (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'. (grubof_SOURCES): Renamed from this... (kernel_elf_SOURCES): ...to this. (grubof_HEADERS): Renamed from this... (kernel_elf_HEADERS): ...to this. (grubof_CFLAGS): Renamed from this... (kernel_elf_CFLAGS): ...to this. (grubof_ASFLAGS): Renamed from this... (kernel_elf_ASFLAGS): ...to this. (grubof_LDFLAGS): Renamed from this... (kernel_elf_LDFLAGS): ...to this. * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use `kernel.elf' instead of `grubof'. 2006-05-08 Yoshinori K. Okuji Add --with-platform to configure. Use pkglibdir instead of pkgdatadir. This is reported by Roger Leigh. * util/powerpc/ieee1275/grub-install.in (datadir): Removed. (host_vendor): Likewise. (host_os): Likewise. (pkgdatadir): Likewise. (platform): New variable. (pkglibdir): Likewise. Use PKGLIBDIR instead of PKGDATADIR. * util/i386/pc/grub-install.in (datadir): Removed. (host_vendor): Likewise. (host_os): Likewise. (pkgdatadir): Likewise. (platform): New variable. (pkglibdir): Likewise. Use PKGLIBDIR instead of PKGDATADIR. * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR instead of GRUB_DATADIR. (main): Likewise. * util/i386/pc/grub-mkimage.c (usage): Likewise. (main): Likewise. * util/i386/efi/grub-mkimage.c (usage): Likewise. (main): Likewise. * configure.ac (--with-platform): New option. Use PLATFORM instead of HOST_VENDOR to specify a platform. * Makefile.in: Include a makefile based on PLATFORM instead of HOST_VENDOR. (pkgdatadir): Not appended by the machine type. (pkglibdir): Appended by the machine type. (host_vendor): Removed. (platform): New variable. (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR. (install-local): Use PKGLIBDIR instead of PKGDATADIR. (uninstall): Likewise. 2006-05-07 Yoshinori K. Okuji Use the environment context in the menu. Remove the commands "default" and "timeout", and use variables instead. * normal/menu.c: Include grub/env.h. (print_entry): Cast TITLE to silence gcc. (get_timeout): New function. (set_timeout): Likewise. (get_entry_number): Likewise. (run_menu): Use a default entry, a fallback entry and a timeout in the environment variables "default", "fallback" and "timeout". Also, tweak the default entry if it is not within the current menu entries. (grub_menu_run): Use a fallback entry in the environment variable "fallback". * normal/main.c (read_config_file): Do not initialize NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or NEWMENU->TIMEOUT. (grub_normal_execute): Use a data slot to store the menu. * include/grub/normal.h (struct grub_menu): Removed default_entry, fallback_entry and timeout. (struct grub_menu_list): Removed. (grub_menu_list_t): Likewise. (struct grub_context): Likewise. (grub_context_t): Likewise. (grub_context_get): Likewise. (grub_context_get_current_menu): Likewise. (grub_context_push_menu): Likewise. (grub_context_pop_menu): Likewise. (grub_default_init): Likewise. (grub_default_fini): Likewise. (grub_timeout_init): Likewise. (grub_timeout_fini): Likewise. * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod and timeout.mod. (normal_mod_SOURCES): Removed normal/context.c. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed commands/default.c, commands/timeout.c and normal/context.c. (normal_mod_SOURCES): Removed normal/context.c. * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c, commands/timeout.c and normal/context.c. (normal_mod_SOURCES): Removed normal/context.c. * conf/i386-efi.rmk (grub_emu_SOURCES): Removed commands/default.c, commands/timeout.c and normal/context.c. (normal_mod_SOURCES): Removed normal/context.c. * conf/common.rmk (pkgdata_MODULES): Removed default.mod and timeout.mod. (default_mod_SOURCES): Removed. (default_mod_CFLAGS): Likewise. (default_mod_LDFLAGS): Likewise. (timeout_mod_SOURCES): Removed. (timeout_mod_CFLAGS): Likewise. (timeout_mod_LDFLAGS): Likewise. * DISTLIST: Removed commands/default.c, commands/timeout.c and normal/context.c. * commands/default.c: Removed. * commands/timeout.c: Likewise. * normal/context.c: Likewise. 2006-05-07 Vesa Jaaskelainen * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag. 2006-05-02 Yoshinori K. Okuji * kern/env.c (struct grub_env_context): Removed "sorted". Renamed "next" to "prev" for readability. (struct grub_env_sorted_var): New struct. (grub_env_context): Renamed to ... (initial_context): ... this. (grub_env_var_context): Renamed to ... (current_context): ... this. (grub_env_find): Look only at CURRENT_CONTEXT. (grub_env_context_open): Rewritten to copy exported variables from previous context. (grub_env_context_close): Rewritten according to the new scheme. Also, add an assertion to prevent the initial context from removed. (grub_env_insert): Removed the code for the sorted list. (grub_env_remove): Likewise. (grub_env_export): Simply mark the variable with GRUB_ENV_VAR_GLOBAL. (grub_env_set): A cosmetic change for naming consistency. (grub_env_get): Likewise. (grub_env_unset): Likewise. (grub_env_iterate): Rewritten to sort variables within this function. (grub_register_variable_hook): Fixed for naming consistency. Call grub_env_find again, only if NAME is not found at the first time. (mangle_data_slot_name): New function. (grub_env_set_data_slot): Likewise. (grub_env_get_data_slot): Likewise. (grub_env_unset_data_slot): Likewise. * include/grub/env.h (grub_env_var_type): New enum. (GRUB_ENV_VAR_LOCAL): New constant. (GRUB_ENV_VAR_GLOBAL): Likewise. (GRUB_ENV_VAR_DATA): Likewise. (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added "type". (grub_env_set): Replace VAR with NAME for consistency. (grub_register_variable_hook): Likewise. (grub_env_export): Specify the name of the argument. (grub_env_set_data_slot): New prototype. (grub_env_get_data_slot): Likewise. (grub_env_unset_data_slot): Likewise. 2006-04-30 Yoshinori K. Okuji Extend the loader so that GRUB can accept a loader which comes back to GRUB when a loaded image exits. Also, this change adds support for a chainloader on EFI. * term/efi/console.c: Include grub/misc.h. (grub_console_checkkey): Display a scan code on the top for debugging. This will be removed once the EFI port gets stable. Correct the scan code mapping. * kern/efi/mm.c (sort_memory_map): Sort in a descending order to allocate memory from larger regions, in order to reduce the number of allocated regions. Otherwise, the MacOSX loader panics. (filter_memory_map): Avoid less than 1MB for compatibility with other loaders. (add_memory_regions): Allocate from the tail of a region, if possible, to avoid allocating a region near to 1MB, for the MacOSX loader. * kern/efi/init.c (grub_efi_set_prefix): Specify GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image. * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new argument IMAGE_HANDLE and specify it to get a loaded image. (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image. (grub_efi_get_filename): Divide the length by the size of grub_efi_char16_t. (grub_efi_get_device_path): New function. (grub_efi_print_device_path): Print End Device Path nodes. Divide the length by the size of grub_efi_char16_t for a file path device path node. * kern/loader.c (grub_loader_noreturn): New variable. (grub_loader_set): Accept a new argument NORETURN. Set GRUB_LOADER_NORETURN to NORETURN. All callers changed. (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call grub_machine_fini. * include/grub/efi/efi.h (grub_efi_get_device_path): New prototype. (grub_efi_get_loaded_image): Take an argument to specify an image handle. * include/grub/loader.h (grub_loader_set): Added one more argument NORETURN. * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path instead of grub_efi_open_protocol. (grub_efidisk_get_device_name): Likewise. (grub_efidisk_close): Print a newline. (grub_efidisk_get_device_handle): Fixed to use GRUB_EFI_DEVICE_PATH_SUBTYPE instead of GRUB_EFI_DEVICE_PATH_TYPE. * disk/efi/efidisk.c (device_path_guid): Moved to ... * kern/efi/efi.c (device_path_guid): ... here. * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and chain.mod. (kernel_mod_HEADERS): Added efi/disk.h. (_chain_mod_SOURCES): New variable. (_chain_mod_CFLAGS): Likewise. (_chain_mod_LDFLAGS): Likewise. (chain_mod_SOURCES): Likewise. (chain_mod_CFLAGS): Likewise. (chain_mod_LDFLAGS): Likewise. * DISTLIST: Added include/grub/efi/chainloader.h, loader/efi/chainloader.c and loader/efi/chainloader_normal.c. * include/grub/efi/chainloader.h: New file. * loader/efi/chainloader.c: Likewise. * loader/efi/chainloader_normal.c: Likewise. 2006-04-30 Marco Gerards * commands/configfile.c (grub_cmd_source): New function. (GRUB_MOD_INIT): Register the commands `source' and `.'. (GRUB_MOD_FINI): De-register the commands `source' and `.'. 2006-04-30 Marco Gerards * normal/execute.c (grub_script_execute_cmd): Change the return type to `grub_err_t'. Correctly return the error. (grub_script_execute_cmdline): In case a command line is not a command or a function, try to interpret it as an assignment. 2006-04-30 Yoshinori K. Okuji * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak. (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also, skip a node whose name is obviously invalid as UTF-16, i.e. contains a NUL character. Stop the iteration when the last directory entry is found. Instead of using the return value of grub_hfsplus_btree_iterate_node, store the value in RET and use it, because the iterator can be stopped by the last directory entry. 2006-04-30 Marco Gerards * include/grub/env.h (grub_env_export): New prototype. Reported by Jan C. Kleinsorge . 2006-04-30 Marco Gerards * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the size of the extents in a catalog file record. 2006-04-29 Marco Gerards * commands/configfile.c (grub_cmd_configfile): Execute the configfile within its own context. * include/grub/env.h (grub_env_context_open): New prototype. (grub_env_context_close): Likewise. * kern/env.c (grub_env): Removed. (grub_env_sorted): Likewise. (grub_env_context): New variable. (grub_env_var_context): Likewise. (grub_env_find): Search both the active context and the global context. (grub_env_context_open): New function. (grub_env_context_close): Likewise. (grub_env_insert): Likewise. (grub_env_remove): Likewise. (grub_env_export): Likewise. (grub_env_set): Changed to use helper functions to avoid code duplication. (grub_env_iterate): Rewritten so both the current context and the global context are being used. * normal/command.c (export_command): New function. (grub_command_init): Register the `export' function. 2006-04-26 Yoshinori K. Okuji * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments explicitly to suppress gcc's warnings. * fs/fat.c (grub_fat_find_dir): Likewise. (grub_fat_label): Likewise. * fs/xfs.c (grub_xfs_read_inode): Likewise. (grub_xfs_mount): Likewise. (grub_xfs_label): Likewise. * fs/affs.c (grub_affs_mount): Likewise. (grub_affs_label): Likewise. (grub_affs_iterate_dir): Likewise. * fs/sfs.c (grub_sfs_mount): Likewise. (grub_sfs_iterate_dir): Likewise. * fs/ufs.c (grub_ufs_lookup_symlink): Likewise. * fs/hfs.c (grub_hfs_mount): Likewise. (grub_hfs_cmp_catkeys): Likewise. (grub_hfs_find_dir): Likewise. (grub_hfs_dir): Likewise. (grub_hfs_label): Likewise. * fs/jfs.c (grub_jfs_mount): Likewise. (grub_jfs_opendir): Likewise. (grub_jfs_getent): Likewise. (grub_jfs_lookup_symlink): Likewise. (grub_jfs_label): Likewise. * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise. (grub_hfsplus_iterate_dir): Likewise. (grub_hfsplus_btree_iterate_node): Made static. * util/grub-emu.c (prefix): New variable. (grub_machine_set_prefix): New function. (main): Do not set the environment variable "prefix" here. Only set PREFIX, which is used later by grub_machine_set_prefix. * include/grub/video.h: Do not include grub/symbol.h. (grub_video_register): Not exported. This symbol is not defined in the kernel. (grub_video_unregister): Likewise. (grub_video_iterate): Likewise. (grub_video_setup): Likewise. (grub_video_restore): Likewise. (grub_video_get_info): Likewise. (grub_video_get_blit_format): Likewise. (grub_video_set_palette): Likewise. (grub_video_get_palette): Likewise. (grub_video_set_viewport): Likewise. (grub_video_get_viewport): Likewise. (grub_video_map_color): Likewise. (grub_video_map_rgb): Likewise. (grub_video_map_rgba): Likewise. (grub_video_fill_rect): Likewise. (grub_video_blit_glyph): Likewise. (grub_video_blit_bitmap): Likewise. (grub_video_blit_render_target): Likewise. (grub_video_scroll): Likewise. (grub_video_swap_buffers): Likewise. (grub_video_create_render_target): Likewise. (grub_video_delete_render_target): Likewise. (grub_video_set_active_render_target): Likewise. * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC): Undefined. [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise. * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh. (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh instead of $(srcdir)/genkernsyms.sh. * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh. (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh instead of $(srcdir)/genkernsyms.sh. * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh. (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh instead of $(srcdir)/genkernsyms.sh. * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh. (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh instead of $(srcdir)/genkernsyms.sh. * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and genkernsyms.sh. * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and genkernsyms.sh. (gensymlist.sh): New target. (genkernsyms.sh): Likewise. * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added genkernsyms.sh.in and gensymlist.sh.in. * genkernsyms.sh: Removed. * gensymlist.sh: Likewise. * genkernsyms.sh.in: New file. * gensymlist.sh.in: Likewise. 2006-04-25 Hollis Blanchard * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not clobber "prefix", since we may have already set it manually. 2006-04-25 Hollis Blanchard * kern/misc.c (abort): New alias for grub_abort. 2006-04-25 Yoshinori K. Okuji A new machine-specific function "grub_machine_set_prefix" is defined. This is called after loading modules, so that a prefix initialization can use modules. Also, this change adds an intensive debugging feature for the memory manager via the configure option "--enable-mm-debug". * partmap/gpt.c (gpt_partition_map_iterate): Add one more into PART.LEN. * kern/sparc64/ieee1275/init.c (abort): Removed. (grub_stop): Likewise. (grub_exit): New function. (grub_set_prefix): Renamed to ... (grub_machine_set_prefix): ... this. (grub_machine_init): Do not call grub_set_prefix. * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ... (grub_machine_set_prefix): ... this. (grub_machine_init): Do not call grub_set_prefix. * kern/i386/pc/init.c (grub_machine_set_prefix): New function. (grub_machine_init): Do not set the prefix here. * kern/i386/efi/init.c (grub_machine_set_prefix): New function. * kern/efi/init.c: Include grub/mm.h. (grub_efi_set_prefix): New function. * kern/efi/efi.c (grub_exit): Call grub_efi_fini. (grub_efi_get_filename): New function. (grub_print_device_path): Renamed to ... (grub_efi_print_device_path): ... this. * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined. [MM_DEBUG] (grub_realloc): Likewise. [MM_DEBUG] (grub_free): Likewise. [MM_DEBUG] (grub_memalign): Likewise. [MM_DEBUG] (grub_mm_debug): New variable. [MM_DEBUG] (grub_debug_malloc): New function. [MM_DEBUG] (grub_debug_free): New function. [MM_DEBUG] (grub_debug_realloc): New function. [MM_DEBUG] (grub_debug_memalign): New function. * kern/misc.c (grub_abort): Print a newline to distinguish the message. * kern/main.c (grub_main): Call grub_machine_set_prefix and grub_set_root_dev after loading modules. This is necessary when setting a prefix depends on modules. * include/grub/efi/efi.h (grub_print_device_path): Renamed to ... (grub_efi_print_device_path): ... this. (grub_efi_get_filename): New prototype. (grub_efi_set_prefix): Likewise. * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h and grub/disk.h. (grub_efidisk_get_device_handle): New prototype. (grub_efidisk_get_device_name): Likewise. * include/grub/mm.h: Include config.h. (MM_DEBUG): Removed. [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype. [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro. [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise. [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise. [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise. [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype. [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype. [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype. [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype. * include/grub/kernel.h (grub_machine_set_prefix): New prototype. * disk/efi/efidisk.c: Include grub/partition.h. (iterate_child_devices): New function. (add_device): First, compare only last device path nodes, so that devices are sorted by the types. (grub_efidisk_get_device_handle): New function. (grub_efidisk_get_device_name): Likewise. * configure.ac (--enable-mm-debug): New option to enable the memory manager debugging feature. This makes the binary much bigger, so is disabled by default. 2006-04-23 Yoshinori K. Okuji Use grub_abort instead of grub_stop, and grub_exit must be define in each architecture now. Also, this change adds support for EFI disks. * util/i386/pc/grub-probefs.c: Include grub/term.h. (grub_getkey): New function. (grub_term_get_current): Likewise. * util/i386/pc/grub-setup.c: Include grub/term.h. (grub_getkey): New function. (grub_term_get_current): Likewise. * util/misc.c (grub_stop): Renamed to ... (grub_exit): ... this. * kern/powerpc/ieee1275/init.c (abort): Renamed to ... (grub_exit): ... this. (grub_machine_init): Use grub_abort instead of abort. (grub_stop): Removed. * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of abort. * kern/i386/pc/startup.S (grub_exit): New function. (cold_reboot): New label. * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h. (grub_efi_init): Call grub_efidisk_init. (grub_efi_fini): Call grub_efidisk_fini. * kern/efi/efi.c: Include grub/mm.h. (grub_efi_console_control_guid): Renamed to ... (console_control_guid): ... this. (grub_efi_loaded_image_guid): Renamed to ... (loaded_image_guid): ... this. (grub_efi_locate_handle): New function. (grub_efi_open_protocol): Likewise. (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of GRUB_EFI_CONSOLE_CONTROL_GUID. (grub_efi_exit): Removed. (grub_stop): Likewise. (grub_efi_get_loaded_image): Use grub_efi_open_protocol. (grub_exit): New function. (grub_print_device_path): Likewise. * kern/rescue.c (grub_rescue_cmd_exit): New function. (grub_enter_rescue_mode): Register "exit". * kern/misc.c (grub_real_dprintf): A cosmetic change. (grub_abort): New function. * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop. * include/grub/sparc64/ieee1275/kernel.h (abort): Removed. * include/grub/powerpc/ieee1275/kernel.h (abort): Removed. * include/grub/efi/efi.h (grub_efi_exit): Removed. (grub_print_device_path): New prototype. (grub_efi_locate_handle): Likewise. (grub_efi_open_protocol): Likewise. * include/grub/efi/disk.h (grub_efidisk_fini): New file. * disk/efi/efidisk.c: Likewise. * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h. * include/grub/efi/console_control.h (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes. * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the last 8 bytes as an array. (GRUB_EFI_DISK_IO_GUID): New macro. (GRUB_EFI_BLOCK_IO_GUID): Likewise. (GRUB_EFI_DEVICE_PATH_GUID): Likewise. (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from grub_uint8_t. (struct grub_efi_guid): Use an array to specify the last 8 bytes. (struct grub_efi_device_path): Rename the member "sub_type" to "subtype". (GRUB_EFI_DEVICE_PATH_TYPE): New macro. (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise. (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise. (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise. (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise. (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise. (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise. (GRUB_EFI_NEXT_DEVICE_PATH): Likewise. (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise. (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise. (struct grub_efi_pci_device_path): New structure. (grub_efi_pci_device_path_t): New type. (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_pccard_device_path): New structure. (grub_efi_pccard_device_path_t): New type. (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_memory_mapped_device_path): New structure. (grub_efi_memory_mapped_device_path_t): New type. (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_vendor_device_path): New structure. (grub_efi_vendor_device_path_t): New type. (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_controller_device_path): New structure. (grub_efi_controller_device_path_t): New type. (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro. (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise. (struct grub_efi_acpi_device_path): New structure. (grub_efi_acpi_device_path_t): New type. (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_expanded_acpi_device_path): New structure. (grub_efi_expanded_acpi_device_path_t): New type. (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro. (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise. (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise. (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise. (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise. (struct grub_efi_atapi_device_path): New structure. (grub_efi_atapi_device_path_t): New type. (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_fibre_channel_device_path): New structure. (grub_efi_fibre_channel_device_path_t): New type. (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_1394_device_path): New structure. (grub_efi_1394_device_path_t): New type. (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_usb_device_path): New structure. (grub_efi_usb_device_path_t): New type. (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_usb_class_device_path): New structure. (grub_efi_usb_class_device_path_t): New type. (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_i2o_device_path): New structure. (grub_efi_i2o_device_path_t): New type. (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_mac_address_device_path): New structure. (grub_efi_mac_address_device_path_t): New type. (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_ipv4_device_path): New structure. (grub_efi_ipv4_device_path_t): New type. (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_ipv6_device_path): New structure. (grub_efi_ipv6_device_path_t): New type. (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_infiniband_device_path): New structure. (grub_efi_infiniband_device_path_t): New type. (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_uart_device_path): New structure. (grub_efi_uart_device_path_t): New type. (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_vendor_messaging_device_path): New structure. (grub_efi_vendor_messaging_device_path_t): New type. (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro. (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise. (struct grub_efi_hard_drive_device_path): New structure. (grub_efi_hard_drive_device_path_t): New type. (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_cdrom_device_path): New structure. (grub_efi_cdrom_device_path_t): New type. (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_vendor_media_device_path): New structure. (grub_efi_vendor_media_device_path_t): New type. (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_file_path_device_path): New structure. (grub_efi_file_path_device_path_t): New type. (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro. (struct grub_efi_protocol_device_path): New structure. (grub_efi_protocol_device_path_t): New type. (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro. (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise. (struct grub_efi_bios_device_path): New structure. (grub_efi_bios_device_path_t): New type. (struct grub_efi_disk_io): New structure. (grub_efi_disk_io_t): New type. (struct grub_efi_block_io_media): New structure. (grub_efi_block_io_media_t): New type. (struct grub_efi_block_io): New structure. (grub_efi_block_io_t): New type. * include/grub/misc.h (grub_stop): Removed. (grub_exit): New prototype. (grub_abort): Likewise. * include/grub/disk.h (enum grub_disk_dev_id): Added GRUB_DISK_DEVICE_EFIDISK_ID. * conf/i386-efi.rmk (kernel_mod_SOURCES): Added disk/efi/efidisk.c. (kernel_syms.lst): Remove the target if an error occurs. 2006-04-22 Yoshinori K. Okuji * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part, as it was simply too buggy. 2006-04-21 Yoshinori K. Okuji * kern/misc.c (grub_lltoa): New function. (grub_vsprintf): Added support for the long long suffix, i.e. "ll". 2006-04-20 Hollis Blanchard * Makefile.in (LDFLAGS): Add variable. (LD): Remove variable. * configure.ac: Add -m32 to LDFLAGS. * genmk.rb (PModule#rule): Use $(CC) instead of $(LD). * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable. (grubof_LDFLAGS): Use $(COMMON_LDFLAGS). (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS, suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New variables. * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib. * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib. * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib. 2006-04-20 Vesa Jaaskelainen * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character length for unknown glyph. 2006-04-20 Yoshinori K. Okuji Add support for pre-loaded modules into the EFI port. * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten completely. Accept one more argument DIR. The caller has changed. * kern/i386/efi/init.c (grub_arch_modules_addr): Removed. * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h. (grub_efi_loaded_image_guid): New variable. (grub_efi_get_loaded_image): New function. (grub_arch_modules_addr): Likewise. * include/grub/efi/efi.h (grub_efi_get_loaded_image): New prototype. * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro. (struct grub_efi_loaded_image): New structure. (grub_efi_loaded_image_t): New type. 2006-04-20 Yoshinori K. Okuji * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file size with GRUB_OS_AREA_SIZE as grub_size_t instead of grub_ssize_t. Reported by Jeff Chua . 2006-04-19 Roger Leigh * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'. 2006-04-19 Yoshinori K. Okuji * DISTLIST: Added include/grub/efi/console.h, include/grub/efi/time.h, include/grub/i386/efi/kernel.h, kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c. * include/grub/efi/console.h: New file. * include/grub/efi/time.h: Likewise. * include/grub/i386/efi/kernel.h: Likewise. * kern/efi/init.c: Likewise. * kern/efi/mm.c: Likewise. * term/efi/console.c: Likewise. * kern/i386/efi/init.c: Do not include grub/machine/time.h. (grub_stop): Removed. (grub_get_rtc): Likewise. (grub_machine_init): Simply call grub_efi_init. (grub_machine_fini): Call grub_efi_fini. * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h. (grub_efi_output_string): Removed. (grub_efi_stall): New function. (grub_stop): Likewise. (grub_get_rtc): Likewise. * include/grub/efi/efi.h (grub_efi_output_string): Removed. (grub_efi_stall): New prototype. (grub_efi_allocate_pages): Likewise. (grub_efi_free_pages): Likewise. (grub_efi_get_memory_map): Likewise. (grub_efi_mm_init): Likewise. (grub_efi_mm_fini): Likewise. (grub_efi_init): Likewise. (grub_efi_fini): Likewise. * include/grub/i386/efi/time.h: Do not include grub/symbol.h. Include grub/efi/time.h. (GRUB_TICKS_PER_SECOND): Removed. (grub_get_rtc): Likewise. * include/grub/efi/api.h (struct grub_efi_memory_descriptor): Added padding. The EFI spec is buggy. (GRUB_EFI_BLACK): New macro. (GRUB_EFI_BLUE): Likewise. (GRUB_EFI_GREEN): Likewise. (GRUB_EFI_CYAN): Likewise. (GRUB_EFI_RED): Likewise. (GRUB_EFI_MAGENTA): Likewise. (GRUB_EFI_BROWN): Likewise. (GRUB_EFI_LIGHTGRAY): Likewise. (GRUB_EFI_BRIGHT): Likewise. (GRUB_EFI_DARKGRAY): Likewise. (GRUB_EFI_LIGHTBLUE): Likewise. (GRUB_EFI_LIGHTGREEN): Likewise. (GRUB_EFI_LIGHTCYAN): Likewise. (GRUB_EFI_LIGHTRED): Likewise. (GRUB_EFI_LIGHTMAGENTA): Likewise. (GRUB_EFI_YELLOW): Likewise. (GRUB_EFI_WHITE): Likewise. (GRUB_EFI_BACKGROUND_BLACK): Likewise. (GRUB_EFI_BACKGROUND_BLUE): Likewise. (GRUB_EFI_BACKGROUND_GREEN): Likewise. (GRUB_EFI_BACKGROUND_CYAN): Likewise. (GRUB_EFI_BACKGROUND_RED): Likewise. (GRUB_EFI_BACKGROUND_MAGENTA): Likewise. (GRUB_EFI_BACKGROUND_BROWN): Likewise. (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise. (GRUB_EFI_TEXT_ATTR): Likewise. * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c, kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c. (kernel_mod_HEADERS): Added efi/time.h. 2006-04-18 Yoshinori K. Okuji * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk, include/grub/efi/api.h, include/grub/efi/console_control.h, include/grub/efi/efi.h, include/grub/efi/pe32.h, include/grub/i386/efi/time.h, kern/efi/efi.c, kern/i386/efi/init.c, kern/i386/efi/startup.S, and util/i386/efi/grub-mkimage.c. * Makefile.in (RMKFILES): Added i386-efi.rmk. * genmk.rb (PModule#rule): Do not export symbols if #{prefix}_EXPORTS is set to "no". * conf/i386-efi.mk: New file. * conf/i386-efi.rmk: Likewise. * include/grub/efi/api.h: Likewise. * include/grub/efi/console_control.h: Likewise. * include/grub/efi/efi.h: Likewise. * include/grub/efi/pe32.h: Likewise. * include/grub/i386/efi/time.h: Likewise. * kern/efi/efi.c: Likewise. * kern/i386/efi/init.c: Likewise. * kern/i386/efi/startup.S: Likewise. * util/i386/efi/grub-mkimage.c: Likewise. 2006-04-17 Marco Gerards * include/grub/script.h: Include and "grub_script.tab.h". (struct grub_lexer_param): New struct. (struct grub_parser_param): Likewise. (grub_script_create_arglist): Pass the state in an argument. (grub_script_add_arglist): Likewise. (grub_script_create_cmdline): Likewise. (grub_script_create_cmdblock): Likewise. (grub_script_create_cmdif): Likewise. (grub_script_create_cmdmenu): Likewise. (grub_script_add_cmd): Likewise. (grub_script_arg_add): Likewise. (grub_script_lexer_ref): Likewise. (grub_script_lexer_deref): Likewise. (grub_script_lexer_record_start): Likewise. (grub_script_lexer_record_stop): Likewise. (grub_script_mem_record): Likewise. (grub_script_mem_record_stop): Likewise. (grub_script_malloc): Likewise. (grub_script_yylex): Likewise. (grub_script_yyparse): Likewise. (grub_script_yyerror): Likewise. (grub_script_yylex): Likewise. (grub_script_lexer_init): Return the state. * normal/lexer.c (grub_script_lexer_state): Removed variable. (grub_script_lexer_done): Likewise. (grub_script_lexer_getline): Likewise. (grub_script_lexer_refs): Likewise. (script): Likewise. (newscript): Likewise. (record): Likewise. (recording): Likewise. (recordpos): Likewise. (recordlen): Likewise. (grub_script_lexer_init): Return the state instead of setting global variables. (grub_script_lexer_ref): Use the newly added argument for state instead of globals. (grub_script_lexer_deref): Likewise. (grub_script_lexer_record_start): Likewise. (grub_script_lexer_record_stop): Likewise. (recordchar): Likewise. (nextchar): Likewise. (grub_script_yylex2): Likewise. (grub_script_yylex): Likewise. (grub_script_yyerror): Likewise. * normal/parser.y (func_mem): Removed variable. (menu_entry): Likewise. (err): Likewise. (%lex-param): New parser option. (%parse-param): Likewise. (script): Always return the AST. (argument): Pass the state around. (arguments): Likewise. (grubcmd): Likewise. (commands): Likewise. (function): Likewise. (menuentry): Likewise. (if_statement): Likewise. (if): Likewise. * normal/script.c (grub_script_memused): Removed variable. (grub_script_parsed): Likewise. (grub_script_malloc): Added a state argument. Use that instead of global variables. (grub_script_mem_record): Likewise. (grub_script_mem_record_stop): Likewise. (grub_script_arg_add): Likewise. (grub_script_add_arglist): Likewise. (grub_script_create_cmdline): Likewise. (grub_script_create_cmdif): Likewise. (grub_script_create_cmdmenu): Likewise. (grub_script_add_cmd): Likewise. (grub_script_parse): Setup the state before calling the parser. 2006-04-16 Marco Gerards * normal/command.c (grub_command_init): Remove the title command. * normal/lexer.c (grub_script_yylex): Renamed from this... (grub_script_yylex2): ... to this. (grub_script_yylex): New function. Temporary introduced to filter some tokens. (grub_script_yyerror): Print a newline. * normal/main.c (read_config_file): Output information about the lines that contain errors. Wait for a key after all lines have been processed. Don't return an empty menu. * normal/parser.y (func_mem): Don't initialize. (menu_entry): Likewise. (err): New variable. (script): Don't return anything when an error was encountered. (ws, returns): Removed rules. (argument): Disabled concatenated variable support. (arguments): Remove explicit separators. (grubcmd): Likewise. (function): Likewise. (menuentry): Likewise. (if): Likewise. (commands): Likewise. Add error handling. * normal/script.c (grub_script_create_cmdline): If `grub_script_parsed' is 0, assume the parser encountered an error. 2006-04-02 Yoshinori K. Okuji * configure.ac: Add support for EFI. Fix the typo BUILD_LDDFLAGS. Restore the LDFLAGS after testing. 2006-04-01 Vesa Jaaskelainen * util/unifont2pff.rb: Removed unnecessary byte ordering. Now foreign multibyte characters should be shown correctly. 2006-04-01 Vesa Jaaskelainen * normal/main.c (grub_normal_menu_addentry): Fixed menu size calculation. (read_config_file): Made it to close file before returning. 2006-03-31 Vesa Jaaskelainen * DISTLIST: Added include/grub/i386/pc/vbeblit.h, include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c, video/i386/pc/vbefill.c. * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c, video/i386/pc/vbefill.c. * include/grub/video.h (grub_video_blit_format): New enum. (grub_video_mode_info): Added new member blit_format. (grub_video_get_blit_format): New function prototype. * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New function prototype. (grub_video_vbe_map_rgb): Likewise. (grub_video_vbe_unmap_color): Likewise. * include/grub/i386/pc/vbeblit.h: New file. * include/grub/i386/pc/vbefill.h: New file. * video/video.c (grub_video_get_blit_format): New function. (grub_video_vbe_get_video_ptr): Re-declared as non-static. (grub_video_vbe_map_rgb): Likewise. (grub_video_vbe_unmap_color): Likewise. * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more optimized fills. (grub_video_vbe_blit_render_target): Changed to use more optimized blits. (grub_video_vbe_setup): Added detection for optimized settings. (grub_video_vbe_create_render_target): Likewise. * video/i386/pc/vbeblit.c: New file. * video/i386/pc/vbefill.c: New file. 2006-03-30 Vesa Jaaskelainen * font/manager.c (grub_font_get_glyph): Removed font fixup from here... * util/unifont2pff.rb: ... and moved it to here. Improved argument parsing to support both hex and dec ranges. If filename was missing show usage information. 2006-03-14 Vesa Jaaskelainen * DISTLIST: Added include/grub/video.h, term/gfxterm.c, video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c. * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod, gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod. (video_mod_SOURCES): Added. (video_mod_CFLAGS): Likewise. (video_mod_LDFLAGS): Likewise. (gfxterm_mod_SOURCES): Likewise. (gfxterm_mod_CFLAGS): Likewise. (gfxterm_mod_LDFLAGS): Likewise. (videotest_mod_SOURCES): Likewise. (videotest_mod_CFLAGS): Likewise. (videotest_mod_LDFLAGS): Likewise. (vesafb_mod_SOURCES): Removed. (vesafb_mod_CFLAGS): Likewise. (vesafb_mod_LDFLAGS): Likewise. (vga_mod_SOURCES): Likewise. (vga_mod_CFLAGS): Likewise. (vga_mod_LDFLAGS): Likewise. * commands/videotest.c: New file. * font/manager.c (fill_with_default_glyph): Modified to use grub_font_glyph. (grub_font_get_glyph): Likewise. (fontmanager): Renamed from this... (font_manager): ... to this. * include/grub/font.h (grub_font_glyph): Added new structure. (grub_font_get_glyph): Modified to use grub_font_glyph. * include/grub/misc.h (grub_abs): Added as inline function. * include/grub/video.h: New file. * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro. (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise. (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise. (grub_vbe_get_controller_info): Renamed from this... (grub_vbe_bios_get_controller_info): ... to this. (grub_vbe_get_mode_info): Renamed from this... (grub_vbe_bios_get_mode_info): ... to this. (grub_vbe_set_mode): Renamed from this... (grub_vbe_bios_set_mode): ... to this. (grub_vbe_get_mode): Renamed from this... (grub_vbe_bios_get_mode): ... to this. (grub_vbe_set_memory_window): Renamed from this... (grub_vbe_bios_set_memory_window): ... to this. (grub_vbe_get_memory_window): Renamed from this... (grub_vbe_bios_get_memory_window): ... to this. (grub_vbe_set_scanline_length): Renamed from this... (grub_vbe_set_scanline_length): ... to this. (grub_vbe_get_scanline_length): Renamed from this... (grub_vbe_bios_get_scanline_length): ... to this. (grub_vbe_set_display_start): Renamed from this... (grub_vbe_bios_set_display_start): ... to this. (grub_vbe_get_display_start): Renamed from this... (grub_vbe_bios_get_display_start): ... to this. (grub_vbe_set_palette_data): Renamed from this... (grub_vbe_bios_set_palette_data): ... to this. (grub_vbe_set_pixel_rgb): Removed. (grub_vbe_set_pixel_index): Likewise. * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed from this... (grub_vbe_bios_get_controller_info): ... to this. (grub_vbe_get_mode_info): Renamed from this... (grub_vbe_bios_get_mode_info): ... to this. (grub_vbe_set_mode): Renamed from this... (grub_vbe_bios_set_mode): ... to this. (grub_vbe_get_mode): Renamed from this... (grub_vbe_bios_get_mode): ... to this. (grub_vbe_set_memory_window): Renamed from this... (grub_vbe_bios_set_memory_window): ... to this. (grub_vbe_get_memory_window): Renamed from this... (grub_vbe_bios_get_memory_window): ... to this. (grub_vbe_set_scanline_length): Renamed from this... (grub_vbe_set_scanline_length): ... to this. (grub_vbe_get_scanline_length): Renamed from this... (grub_vbe_bios_get_scanline_length): ... to this. (grub_vbe_set_display_start): Renamed from this... (grub_vbe_bios_set_display_start): ... to this. (grub_vbe_get_display_start): Renamed from this... (grub_vbe_bios_get_display_start): ... to this. (grub_vbe_set_palette_data): Renamed from this... (grub_vbe_bios_set_palette_data): ... to this. (grub_vbe_bios_get_controller_info): Fixed problem with registers getting corrupted after calling it. Added more pushes and pops. (grub_vbe_bios_set_mode): Likewise. (grub_vbe_bios_get_mode): Likewise. (grub_vbe_bios_get_memory_window): Likewise. (grub_vbe_bios_set_scanline_length): Likewise. (grub_vbe_bios_get_scanline_length): Likewise. (grub_vbe_bios_get_display_start): Likewise. (grub_vbe_bios_set_palette_data): Likewise. * normal/cmdline.c (cl_set_pos): Refresh the screen. (cl_insert): Likewise. (cl_delete): Likewise. * term/gfxterm.c: New file. * term/i386/pc/vesafb.c: Removed file. * video/video.c: New file. * video/i386/pc/vbe.c (real2pm): Added new function. (grub_video_vbe_draw_pixel): Likewise. (grub_video_vbe_get_video_ptr): Likewise. (grub_video_vbe_get_pixel): Likewise (grub_video_vbe_init): Likewise. (grub_video_vbe_fini): Likewise. (grub_video_vbe_setup): Likewise. (grub_video_vbe_get_info): Likewise. (grub_video_vbe_set_palette): Likewise. (grub_video_vbe_get_palette): Likewise. (grub_video_vbe_set_viewport): Likewise. (grub_video_vbe_get_viewport): Likewise. (grub_video_vbe_map_color): Likewise. (grub_video_vbe_map_rgb): Likewise. (grub_video_vbe_map_rgba): Likewise. (grub_video_vbe_unmap_color): Likewise. (grub_video_vbe_fill_rect): Likewise. (grub_video_vbe_blit_glyph): Likewise. (grub_video_vbe_blit_bitmap): Likewise. (grub_video_vbe_blit_render_target): Likewise. (grub_video_vbe_scroll): Likewise. (grub_video_vbe_swap_buffers): Likewise. (grub_video_vbe_create_render_target): Likewise. (grub_video_vbe_delete_render_target): Likewise. (grub_video_vbe_set_active_render_target): Likewise. (grub_vbe_set_pixel_rgb): Remove function. (grub_vbe_set_pixel_index): Likewise. (index_color_mode): Remove static variable. (active_mode): Likewise. (framebuffer): Likewise. (bytes_per_scan_line): Likewise. (grub_video_vbe_adapter): Added new static variable. (framebuffer): Likewise. (render_target): Likewise. (initial_mode): Likewise. (mode_in_use): Likewise. (mode_list): Likewise. 2006-03-10 Marco Gerards * configure.ac (AC_INIT): Bumped to 1.93. * DISTLIST: Added `include/grub/hfs.h'. 2006-02-01 Yoshinori K. Okuji * boot/i386/pc/boot.S (general_error): Before looping, try INT 18H, which might help the BIOS falling back to next boot media. 2006-01-25 Yoshinori K. Okuji * util/i386/pc/grub-install.in: Escape a backslash. Reported by Poe Chen . 2006-01-17 Marco Gerards * include/grub/normal.h: Include . (grub_command_list): Removed struct. (grub_command_list_t): Removed type. (grub_menu_entry): Remove members `num' and `command_list'. Add members `commands' and `sourcecode'. * include/grub/script.h: Add inclusion guards. (grub_script_cmd_menuentry): New struct. (grub_script_execute_menuentry): New prototype. (grub_script_lexer_record_start): Likewise. (grub_script_lexer_record_stop): Likewise. * normal/execute.c (grub_script_execute_menuentry): New function. * normal/lexer.c (record, recording, recordpos, recordlen): New variables. (grub_script_lexer_record_start): New function. (grub_script_lexer_record_stop): Likewise. (recordchar): Likewise. (nextchar): Likewise. (grub_script_yylex): Use `nextchar' to fetch new characters. Use 2048 as the buffer size. Add the tokens `menuentry' and `@'. * normal/main.c: Include and (current_menu): New variable. (free_menu): Mainly rewritten. (grub_normal_menu_addentry): New function. (read_config_file): Rewritten. * normal/menu.c (run_menu_entry): Mainly rewritten. * normal/menu_entry.c (make_screen): Rewritten the code to insert the menu entry. (run): Mainly rewritten. * normal/parser.y (menu_entry): New variable. (GRUB_PARSER_TOKEN_MENUENTRY): New token. (menuentry): New rule. (command): Add `menuentry'. (if_statement): Allow additional returns before `fi'. * normal/script.c (grub_script_create_cmdmenu): New function. 2006-01-03 Marco Gerards * INSTALL: GNU Bison is required. * configure.ac: Rewritten the test to detect Bison. * Makefile.in (YACC): New variable. Reported by Xun Sun . 2006-01-03 Marco Gerards * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of the HFS+ filesystem to filesystem blocks. (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a GCC warning is silenced. 2006-01-03 Marco Gerards * partmap/apple.c (apple_partition_map_iterate): Convert the data read from disk from big endian to host byte order. 2006-01-03 Hollis Blanchard * fs/hfs.c: Include . Added reference to the official documentation. (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro. (grub_hfs_mount): Grammar fix in error. Make sure this is not an embedded HFS+ filesystem. (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t) (grub_hfs_sblock): Move from here... * include/grub/hfs.h: To here... New file. * fs/hfsplus.c: Include . Added reference to the official documentation. (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK): New macros. (grub_hfsplus_volheader): Change type of member `magic' to `grub_uint16_t'. (grub_hfsplus_data): Add new member `embedded_offset'. (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the returned block. (grub_hfsplus_mount): Read the HFS+ wrapper if it exists. Calculate the offset. 2005-12-25 Yoshinori K. Okuji * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR): Removed. (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise. 2005-12-25 Yoshinori K. Okuji * kern/env.c (grub_env_set): Check if ENV->VALUE instead of ENV->NAME is NULL after allocating ENV->VALUE. 2005-12-25 Marco Gerards * kern/env.c (grub_env_set): Rewritten the error handling code. 2005-12-25 Yoshinori K. Okuji * geninit.sh: Made more robust, and more portable. 2005-12-25 Marco Gerards Add support for Apple HFS+ filesystems. * fs/hfsplus.c: New file. * DISTLIST: Added `fs/hfsplus.c'. * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'. (hfsplus_mod_SOURCES): New variable. (hfsplus_mod_CFLAGS): Likewise. (hfsplus_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'. (grub_setup_SOURCES): Likewise. (grub_mkdevicemap_SOURCES): Likewise. (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. * fs/fshelp.c (grub_fshelp_log2blksize): New function. * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype. 2005-12-25 Yoshinori K. Okuji * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c, commands/i386/pc/play.c, conf/common.mk, conf/common.rmk, include/grub/parser.h, include/grub/script.h, kern/parser.c, kern/sparc64/cache.S, normal/execute.c, normal/function.c, normal/lexer.c, normal/parser.y, normal/script.c, and partmap/gpt.c. Removed kern/sparc64/cache.c. * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c, grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c. * configure.ac (AC_INIT): Bumped to 1.92. 2005-12-24 Vesa Jaaskelainen * kern/err.c (grub_error_push): Added new function to support error stacks. (grub_error_pop): Likewise. (grub_error_stack_items): New local variable to support error stacks. (grub_error_stack_pos): Likewise. (grub_error_stack_assert): Likewise. (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error stack depth. (grub_print_error): Added support to print errors from error stack. * include/grub/err.h (grub_error_push): Added function prototype. (grub_error_pop): Likewise. 2005-12-09 Hollis Blanchard * configure.ac: Accept `powerpc64' as host_cpu. (amd64): Rename to `biarch32'. * kern/powerpc/cache.S (grub_arch_sync_caches): Handle non-cacheline-aligned addresses. * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages. (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches' if `size' is non-zero. 2005-12-03 Marco Gerards * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"' and `cd' to make sure the filename is not prefixed with a directory name. (pkgdata_MODULES): Add `gpt.mod'. (gpt_mod_SOURCES): New variable. (gpt_mod_CFLAGS): Likewise. (gpt_mod_LDFLAGS): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'. * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK): New macro. * partmap/gpt.c: New file. * partmap/pc.c (pc_partition_map_iterate): Don't continue when a GPT partition map is detected. 2005-12-03 Vincent Pelletier * commands/i386/pc/play.c: New file. * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod. (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New macros. 2005-11-27 Marco Gerards * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__ ((unused))' to silence gcc warning. 2005-11-26 Hollis Blanchard * configure.ac: Correct `AC_PROG_YACC' test. 2005-11-22 Hollis Blanchard * util/powerpc/ieee1275/grub-install.in: Run the mount point check before installing files. 2005-11-22 Mike Small * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition number regex so multidigit numbers are recognized correctly. 2005-11-22 Mike Small * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a debugging message before attempting to claim memory. (grub_rescue_cmd_initrd): Add a claim debugging message and try multiple addresses in case of failure. 2005-11-22 Hollis Blanchard * term/tparm.c (get_space): Remove empty `if' statement. * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'. * kern/parser.c (check_varstate): Rename `state' to 's'. 2005-11-22 Hollis Blanchard * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all variable definitions to the beginning of each function. Sort stack variables by size. (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read' `buf' argument to `char *'. 2005-11-22 Hollis Blanchard * conf/powerpc-ieee1275.rmk: Include conf/common.mk. (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod, minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod, hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod, help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod, sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod, configfile.mod, search.mod, gzio.mod and test.mod. (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst) (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c) (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS) (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS) (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS) (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS) (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS) (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES) (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES) (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES) (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES) (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES) (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES) (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES) (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES) (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES) (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS) (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS) (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS) (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS) (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS) (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS) (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed. * conf/common.mk (grub_modules_init.lst): Use `find' instead of `grep --include'. (pkgdata_MODULES): Add test.mod. 2005-11-18 Timothy Baldwin * genmk.rb: Fixed list rules moved to Makefile.in. Recognise appending to variables with "+=". (PModule): Use full pathname to generate *.lst filenames. * Makefile.in: Fixed list rules moved from genmk.rb. (.DELETE_ON_ERROR): New special target. (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk. * conf/i386-pc.rmk: Include conf/common.mk. (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod, minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod, hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod, help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod, sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod, configfile.mod, search.mod, gzio.mod and test.mod. (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst) (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c) (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS) (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS) (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS) (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS) (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS) (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES) (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES) (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES) (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES) (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES) (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES) (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES) (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES) (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES) (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS) (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS) (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS) (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS) (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS) (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS) (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from here... * conf/common.rmk: ... to here. New file. * conf/common.mk: New file. 2005-11-18 Yoshinori K. Okuji * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ... (grub_script.tab.c): ... here. * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ... (grub_script.tab.c): ... here. * conf/i386-pc.rmk (grub_script.tab.h): Unified to ... (grub_script.tab.c): ... here. * normal/command.c (grub_command_find): Fixed a memory leak of MODULE_NAME. Reported by Mike Small . 2005-11-13 Timothy Baldwin * include/grub/symbol.h: (FUNCTION): Use double quotes instead of "@" which marks the start of a comment on ARM. (VARIABLE): Likewise. 2005-11-13 Timothy Baldwin Add support for Linux/ADFS partition tables. * partmap/acorn.c: New file. * include/grub/acorn_filecore.h: Likewise. * DISTLIST: Added `partmap/acorn.c' and `include/grub/acorn_filecore.h'. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'. (pkgdata_MODULES): Add `acorn.mod'. (acorn_mod_SOURCES): New variable. (acorn_mod_CFLAGS): Likewise. * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'. (pkgdata_MODULES): Add `acorn.mod'. (acorn_mod_SOURCES): New variable. (acorn_mod_CFLAGS): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'. (pkgdata_MODULES): Add `acorn.mod'. (acorn_mod_SOURCES): New variable. (acorn_mod_CFLAGS): Likewise. (acorn_mod_LDFLAGS): Likewise. * include/types.h (grub_disk_addr_t): New typedef. 2005-11-13 Marco Gerards * geninit.sh: New file. * geninitheader.sh: Likewise. * commands/boot.c (grub_boot_init, grub_boot_fini): Removed. * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise. * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise. * commands/configfile.c (grub_configfile_init) (grub_configfile_fini): Likewise. * commands/default.c (grub_default_init, grub_default_fini): Likewise. * commands/help.c (grub_help_init, grub_help_fini): Likewise. * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise. * commands/search.c (grub_search_init, grub_search_fini): Likewise. * commands/terminal.c (grub_terminal_init, grub_terminal_fini): Likewise. * commands/test.c (grub_test_init, grub_test_fini): Likewise. * commands/timeout.c (grub_timeout_init, grub_timeout_fini): Likewise. * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise. * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini): Likewise. * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini): Likewise. * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini): Likewise. * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise. * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise. * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise. * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise. * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise. * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise. * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise. * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise. * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise. * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise. * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise. * normal/main.c (grub_normal_init, grub_normal_fini): Likewise. * partmap/amiga.c (grub_amiga_partition_map_init) (grub_amiga_partition_map_fini): Likewise. * partmap/apple.c (grub_apple_partition_map_init) (grub_apple_partition_map_fini): Likewise. * partmap/pc.c (grub_pc_partition_map_init) (grub_pc_partition_map_fini): Likewise. * partmap/sun.c (grub_sun_partition_map_init, grub_sun_partition_map_fini): Likewise. * term/terminfo.c (grub_terminal_init, grub_terminal_fini): Likewise. * util/grub-emu.c: Include . (main): Don't initialize and de-initialize any modules directly, use `grub_init_all' and `grub_fini_all' instead. * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to `grub_vesafb_mod_init'. (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated all users. * term/i386/pc/vga.c (grub_vga_init): Renamed to `grub_vga_mod_init'. Updated all users. (grub_vga_fini): Renamed to `grub_vga_mod_fini'. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'. (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New rules. * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'. Generate a function to initialize the module in utilities. Updated all callers. (GRUB_MOD_FINI): Add argument `name'. Generate a function to initialize the module in utilities. Updated all callers. 2005-11-09 Hollis Blanchard * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI escape sequence and a literal ^L to clear the screen. * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen when returning from Open Firmware. 2005-11-09 Hollis Blanchard * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable. (grub_ofconsole_height): Likewise. (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width, manually insert a '\n'. (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and `grub_ofconsole_height'. Return early if these are already set. 2005-11-07 Vincent Pelletier * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c', `normal/execute.c', `normal/lexer.c', `io/gzio.c', `kern/parser.c', `grub_script.tab.c', `normal/function.c' and `normal/script.c'. (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c', `grub_script.tab.c', `normal/function.c' and `normal/script.c'. (test_mod_SOURCES): New variable. (test_mod_CFLAGS): Likewise. (test_mod_LDFLAGS): Likewise. (pkgdata_MODULES): Add `test.mod'. (grub_script.tab.c): New rule. (grub_script.tab.h): Likewise. 2005-11-07 Marco Gerards * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `commands/test.c', `normal/execute.c', `normal/lexer.c', `grub_script.tab.c', `normal/function.c' and `normal/script.c'. (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c', `grub_script.tab.c', `normal/function.c' and `normal/script.c'. (test_mod_SOURCES): New variable. (test_mod_CFLAGS): Likewise. (pkgdata_MODULES): Add `test.mod'. (grub_script.tab.c): New rule. (grub_script.tab.h): Likewise. 2005-11-06 Marco Gerards Add initial scripting support. * commands/test.c: New file. * include/grub/script.h: Likewise. * normal/execute.c: Likewise. * normal/function.c: Likewise. * normal/lexer.c: Likewise. * normal/parser.y: Likewise. * normal/script.c: Likewise. * configure.ac: Add `AC_PROG_YACC' test. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c', `normal/execute.c', `normal/lexer.c', `grub_script.tab.c', `normal/function.c' and `normal/script.c'. (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c', `grub_script.tab.c', `normal/function.c' and `normal/script.c'. (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New variables. (pkgdata_MODULES): Add `test.mod'. (grub_script.tab.c): New rule. (grub_script.tab.h): Likewise. * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'. * include/grub/normal.h (grub_test_init): New prototype. (grub_test_fini): Likewise. * normal/command.c: Include . (grub_command_execute): Rewritten. * util/grub-emu.c (main): Call `grub_test_init' and `grub_test_fini'. 2005-11-03 Hollis Blanchard * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs' to 0. * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if there are no pending characters. 2005-11-03 Hollis Blanchard * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use `grub_strndup' to drop device arguments. Replace unnecessary `grub_strndup' with `grub_strdup'. 2005-11-03 Hollis Blanchard * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the `debug' environment variable has been set. 2005-11-02 Hollis Blanchard * Makefile.in (install-local): Use $(DATA). (uninstall): Likewise. * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage... (sbin_UTILITIES): ... to here. (sbin_SCRIPTS): New variable. (grub_install_SOURCES): New variable. * util/powerpc/ieee1275/grub-install.in: New file. * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove variable. (add_segments): Call `grub_util_get_path'. 2005-10-28 Yoshinori K. Okuji From Timothy Baldwin: * commands/ls.c (grub_ls_list_files): Close FILE with grub_file_close. * kern/misc.c (grub_vsprintf): Terminate the string S with NUL. 2005-10-24 Marco Gerards * include/grub/parser.h: New file. * kern/parser.c: Likewise. * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'. (grub_setup_SOURCES): Likewise. (grub_probefs_SOURCES): Likewise. (grub_emu_SOURCES): Likewise. (kernel_img_HEADERS): Add `parser.h'. * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'. (grub_emu_SOURCES): Add `kern/parser.c'. (grubof_SOURCES): Likewise. * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'. (grubof_SOURCES): Add `kern/parser.c'. * include/grub/misc.h (grub_split_cmdline): Removed prototype. * kern/misc.c (grub_split_cmdline): Removed function. * kern/rescue.c: Include . (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead of `grub_split_cmdline'. * normal/command.c: Include . (grub_command_execute): Use `grub_parser_split_cmdline' instead of `grub_split_cmdline'. * normal/completion.c: Include . (cmdline_state): New variable. (iterate_dir): End the filename with a quote depending on the command line state. (get_state): new function. (grub_normal_do_completion): Use `grub_parser_split_cmdline' to split the arguments and determine the current argument. When the argument string is not quoted, escape all spaces. 2005-10-23 Vincent Pelletier * normal/sparc64/setjmp.S: New file. 2005-10-23 Vincent Pelletier * include/grub/sparc64/libgcc.h: New file. * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9. (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of normal/sparc64/setjmp.c. 2005-10-23 Vincent Pelletier * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF. * kern/sparc64/cache.S: New file. * kern/sparc64/cache.c: Removed. * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9. (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and -mtune=ultrasparc. (COMMON_LDFLAGS): Add -melf64_sparc. (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h. (grubof_SOURCES): Use cache.S instead of cache.c. (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc". (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod commented though. (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c. (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES) (linux_mod_CFLAGS): Commented out. (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented out because module isn't built. (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS) (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS) (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS) (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS) (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS) (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS) (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS) (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS) (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS) (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES) (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES) (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES) (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES) (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro. 2005-10-20 Yoshinori K. Okuji * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any longer, because HFS should not be used on PC. 2005-10-20 Timothy Baldwin * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET consistently within the loop. 2005-10-15 Marco Gerards * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a directory can not be read. 2005-10-15 Yoshinori K. Okuji * configure.ac (AC_INIT): Increase the version number to 1.91. * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h, include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and term/i386/pc/serial.c. 2005-10-15 Yoshinori K. Okuji * kern/file.c (grub_file_seek): Seeking to an offset equal to a file size must be permitted. * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake between %ah and %al. 2005-10-15 Yoshinori K. Okuji * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to grub_uint64_t. Call the hook with a NUL-terminated filename. (grub_xfs_mount): Use grub_be_to_cpu32 instead of grub_cpu_to_be32. * kern/term.c (cursor_state): New variable. (grub_term_set_current): Reset the cursor state on a new terminal. (grub_setcursor): Rewritten to use CURSOR_STATE. (grub_getcursor): New function. * include/grub/term.h (grub_getcursor): New prototype. * io/gzio.c (test_header): Align BUF for accessing it as 32-bit integers on ARM. Reported by Timothy Baldwin . 2005-10-11 Marco Gerards * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not allocated. (grub_sfs_dir): Likewise. 2005-10-09 Marco Gerards Add support for the SFS filesystem. * fs/sfs.c: New file. * DISTLIST: Added `fs/sfs.c'. * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'. (grub_probefs_SOURCES): Likewise. (grub_emu_SOURCES): Likewise. (pkgdata_MODULES): Add `sfs.mod'. (sfs_mod_SOURCES): New variable. (sfs_mod_CFLAGS): Likewise. (sfs_mod_LDFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'. (pkgdata_MODULES): Add `sfs.mod'. (sfs_mod_SOURCES): New variable. (sfs_mod_CFLAGS): Likewise. * util/grub-emu.c (main): Call `grub_sfs_init' and `grub_sfs_fini'. * include/grub/fs.h (grub_sfs_init): New prototype. (grub_sfs_fini): Likewise. 2005-10-07 Marco Gerards Add support for the AFFS filesystem. * fs/affs.c: New file. * DISTLIST: Added `fs/affs.c'. * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'. (grub_probefs_SOURCES): Likewise. (grub_emu_SOURCES): Likewise. (pkgdata_MODULES): Add `affs.mod'. (affs_mod_SOURCES): New variable. (affs_mod_CFLAGS): Likewise. (affs_mod_LDFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'. (pkgdata_MODULES): Add `affs.mod'. (affs_mod_SOURCES): New variable. (affs_mod_CFLAGS): Likewise. * util/grub-emu.c (main): Call `grub_affs_init' and `grub_affs_fini'. * include/grub/fs.h (grub_affs_init): New prototype. (grub_affs_fini): Likewise. 2005-10-01 Marco Gerards * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses. 2005-10-01 Marco Gerards * configure.ac: Accept `x86_64' as host_cpu. In that case add `-m32' to CFLAGS. * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when linking. * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'. (COMMON_LDFLAGS): New variable. (kernel_img_LDFLAGS): Include `COMMON_FLAGS'. (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS) (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS) (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS) (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS) (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS) (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS) (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS) (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS) (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS) (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS) (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS) (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS) (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS) (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New variables. (normal_mod_ASFLAGS): Add `-m32'. * include/grub/types.h (grub_host_addr_t, grub_host_off_t) (grub_host_size_t, grub_host_ssize_t): New types. (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on `GRUB_HOST_SIZEOF_VOID_P'. * include/grub/kernel.h (struct grub_module_header): Type of member offset changed to `grub_host_off_t'. Type of member size changed to `grub_host_size_t'. (struct grub_module_info): Type of member offset changed to `grub_host_off_t'. Type of member size changed to `grub_host_size_t'. 2005-09-29 Yoshinori K. Okuji Make GRUB's kernel compliant to Multiboot Specification. * kern/i386/pc/startup.S (multiboot_header): New label. (multiboot_entry): Likewise. (multiboot_trampoline): Likewise. * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Increased to 0x4A0. * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not put parentheses after a question mark. [!GRUB_UTIL] (my_mod): New variable. * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini. 2005-09-28 Marco Gerards Adds support for the XFS filesystem. Btrees are not supported yet. * fs/xfs.c: New file. * DISTLIST: Added `fs/xfs.c'. * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'. (grub_probefs_SOURCES): Likewise. (grub_emu_SOURCES): Likewise. (pkgdata_MODULES): Add `xfs.mod'. (xfs_mod_SOURCES): New variable. (xfs_mod_CFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'. (pkgdata_MODULES): Add `xfs.mod'. (xfs_mod_SOURCES): New variable. (xfs_mod_CFLAGS): Likewise. * util/grub-emu.c (main): Call `grub_xfs_init' and `grub_xfs_fini'. * include/grub/fs.h (grub_xfs_init): New prototype. (grub_xfs_fini): Likewise. 2005-09-18 Vesa Jaaskelainen * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed color modes, allow greater than 16 colors to be configured as a default palette. 2005-09-03 Yoshinori K. Okuji * normal/completion.c (complete_arguments): Add the qualifier const into OPTIONS. From Omniflux : * include/grub/terminfo.h: New file. * include/grub/tparm.h: Likewise. * include/grub/i386/pc/serial.h: Likewise. * term/terminfo.c: Likewise. * term/tparm.c: Likewise. * term/i386/pc/serial.c: Likewise. * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and serial.mod. (terminfo_mod_SOURCES): New variable. (terminfo_mod_CFLAGS): Likewise. (serial_mod_SOURCES): Likewise. (serial_mod_CFLAGS): Likewise. 2005-08-31 Yoshinori K. Okuji * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c, respectively. * boot/powerpc/ieee1275/crt0.S: Moved to ... * kern/powerpc/ieee1275/crt0.S: ... here. * boot/powerpc/ieee1275/cmain.c: Moved to ... * kern/powerpc/ieee1275/cmain.c: ... here. * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c instead of boot/powerpc/ieee1275/crt0.S and boot/powerpc/ieee1275/cmain.c, respectively. * boot/i386/pc/boot.S (lba_mode): Do not store the total number of sectors. It was not used anyway. 2005-08-30 Hollis Blanchard * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix `unused parameter' warning. 2005-08-30 Hollis Blanchard * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New function. (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as getcharwidth. 2005-08-28 Marco Gerards * include/grub/normal.h (enum grub_completion_type): Added `GRUB_COMPLETION_TYPE_ARGUMENT'. * normal/cmdline.c (print_completion): Handle the `GRUB_COMPLETION_TYPE_ARGUMENT' type. * normal/menu_entry.c (store_completion): Likewise. * normal/completion.c (complete_arguments): New function. (grub_normal_do_completion): Call `complete_arguments' when the current words start with a dash. 2005-08-27 Marco Gerards * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use `gzio.mod' instead of `io.mod'). 2005-08-22 Yoshinori K. Okuji * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh. (DISTDIRS): Added io and video. Rewrite the search routine to make an output consistently. * DISTLIST: Added conf/sparc64-ieee1275.mk, conf/sparc64-ieee1275.rmk, include/grub/gzio.h, include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h, io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c, kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and util/powerpc/ieee1275/misc.c. * include/grub/gzio.h: New file. * io/gzio.c: Likewise. * kern/file.c (grub_file_close): Call grub_device_close only if FILE->DEVICE is not NULL. * include/grub/mm.h [!NULL] (NULL): New macro. * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c. (pkgdata_MODULES): Added gzio.mod. (gzio_mod_SOURCES): New variable. (gzio_mod_CFLAGS): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c. (pkgdata_MODULES): Added gzio.mod. (gzio_mod_SOURCES): New variable. (gzio_mod_CFLAGS): Likewise. * commands/cat.c: Include grub/gzio.h. (grub_cmd_cat): Use grub_gzfile_open instead of grub_file_open. * commands/cmp.c: Include grub/gzio.h. (grub_cmd_cmp): Use grub_gzfile_open instead of grub_file_open. * loader/i386/pc/multiboot.c: Include grub/gzio.h. (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of grub_file_open. (grub_rescue_cmd_module): Likewise. 2005-08-21 Vincent Pelletier * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be kern/sparc64/ieee1275/init.c because it contains _start. * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk. 2005-08-21 Vincent Pelletier * configure.ac: Add support for sparc64 host with ieee1275 firmware. * configure: Generated from configure.ac. * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t instead of int. (grub_ofdisk_read): Likewise. (grub_ofdisk_open): Use %p to print pointer values, and cast the pointers as (void *) to remove a warning. (grub_ofdisk_close): Likewise. (grub_ofdisk_read): Likewise. * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never returns, so make it return void to remove a warning. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit): Corresponding prototype change. * kern/mm.c (grub_mm_init_region): Use %p to print pointer values, and cast the pointers as (void *) to remove a warning. (grub_mm_dump): Likewise. * conf/sparc64-ieee1275.mk: New file. * conf/sparc64-ieee1275.rmk: Likewise. * include/grub/sparc64/setjmp.h: Likewise. * include/grub/sparc64/types.h: Likewise. * include/grub/sparc64/ieee1275/console.h: Likewise. * include/grub/sparc64/ieee1275/ieee1275.h: Likewise. * include/grub/sparc64/ieee1275/kernel.h: Likewise. * include/grub/sparc64/ieee1275/time.h: Likewise. * kern/sparc64/cache.c: Likewise. * kern/sparc64/dl.c: Likewise. * kern/sparc64/ieee1275/init.c: Likewise. * kern/sparc64/ieee1275/openfw.c: Likewise. 2005-08-21 Yoshinori K. Okuji * util/console.c (grub_ncurses_putchar): If C is greater than 0x7f, set C to a question mark. (grub_ncurses_getcharwidth): New function. (grub_ncurses_term): Specify grub_ncurses_getcharwidth as getcharwidth. * normal/menu.c (print_entry): Made aware of Unicode. First, convert TITLE to UCS-4, and predict the cursor position by grub_getcharwidth. * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier const to SRC. * kern/misc.c (grub_utf16_to_utf8): Likewise. 2005-08-20 Yoshinori K. Okuji * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of grub_strcat. * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of grub_strcpy and grub_strlen. Take it into account that a space character is inserted as a delimiter. 2005-08-20 Yoshinori K. Okuji * partmap/pc.c (pc_partition_map_iterate): Include the value of an invalid magic in the error. * commands/search.c: New file. * util/grub-emu.c (main): Call grub_search_init and grub_search_fini. * kern/rescue.c (grub_rescue_print_disks): Removed. (grub_rescue_print_devices): New function. (grub_rescue_cmd_ls): Use grub_device_iterate with grub_rescue_print_devices instead of grub_disk_dev_iterate with grub_rescue_print_disks. * kern/partition.c (grub_partition_iterate): Return the result of PARTMAP->ITERATE instead of GRUB_ERRNO. * kern/device.c: Include grub/partition.h. (grub_device_iterate): New function. * include/grub/partition.h (grub_partition_iterate): Return int instead of grub_err_t. * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New prototype. [GRUB_UTIL] (grub_search_fini): Likewise. * include/grub/device.h (grub_device_iterate): New prototype. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added commands/search.c. (pkgdata_MODULES): Added search.mod. (search_mod_SOURCES): New variable. (search_mod_CFLAGS): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c. (pkgdata_MODULES): Added search.mod. (search_mod_SOURCES): New variable. (search_mod_CFLAGS): Likewise. * commands/ls.c (grub_ls_list_disks): Renamed to ... (grub_ls_list_devices): ... this, and use grub_device_iterate. All callers changed. * DISTLIST: Added commands/search.c. 2005-08-20 Yoshinori K. Okuji * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the conversion. (grub_getcharwidth): New function. * kern/misc.c (grub_utf8_to_ucs4): New function. * include/grub/term.h (struct grub_term): Added a new member "getcharwidth". (grub_getcharwidth): New prototype. * include/grub/misc.h (grub_utf8_to_ucs4): New prototype. * term/i386/pc/console.c (map_char): New function. Segregated from grub_console_putchar. (grub_console_putchar): Use map_char. (grub_console_getcharwidth): New function. (grub_console_term): Specified grub_console_getcharwidth as getcharwidth. * term/i386/pc/vga.c (grub_vga_getcharwidth): New function. (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth. * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return GRUB_ERRNO. (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely on grub_strtoul completely. (write_char): Declare local variables in the beginning of the function. (grub_vesafb_getcharwidth): New function. (grub_vesafb_term): Specified grub_vesafb_getcharwidth as getcharwidth. 2005-08-19 Yoshinori K. Okuji * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and commands/i386/pc/vbetest.c. * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL, call grub_vbe_get_controller_info again, because the returned information is volatile. (grub_vbe_set_video_mode): Mostly rewritten. (grub_vbe_get_video_mode): Use grub_vbe_probe and use grub_vbe_status_t correctly. (grub_vbe_get_video_mode_info): Likewise. (grub_vbe_set_pixel_rgb): Use a switch statement rather than several if statements. * commands/i386/pc/vbe_list_modes.c: Renamed to ... * commands/i386/pc/vbeinfo.c: ... this. * commands/i386/pc/vbe_test.c: Renamed to ... * commands/i386/pc/vbetest.c: ... this. * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to ... (grub_cmd_vbeinfo): ... this. Save video modes before iterating. Skip a video mode, if it is not available, not enough information is given or it is monochrome. Show the memory model. Leave the interpretation of MODEVAR to grub_strtoul completely. (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo. (GRUB_MOD_FINI): Likewise. * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ... (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a duplicated grub_env_get. Leave the interpretation of MODEVAR to grub_strtoul completely. (real2pm): Removed. (GRUB_MOD_INIT): Rename vbe_test to vbetest. (GRUB_MOD_FINI): Likewise. * normal/misc.c: Include grub/mm.h. * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and vbe_list_modes with vbetest.mod and vbeinfo.mod. (vbe_list_modes_mod_SOURCES): Removed. (vbe_list_modes_mod_CFLAGS): Likewise. (vbe_test_mod_SOURCES): Likewise. (vbe_test_mod_CFLAGS): Likewise. (vbeinfo_mod_SOURCES): New variable. (vbeinfo_mod_CFLAGS): Likewise. (vbetest_mod_SOURCES): Likewise. (vbetest_mod_CFLAGS): Likewise. 2005-08-18 Yoshinori K. Okuji * normal/misc.c: New file. * DISTLIST: Added normal/misc.c. * partmap/amiga.c (amiga_partition_map_iterate): Add an argument DISK to HOOK. Call HOOK with DISK. * partmap/apple.c (apple_partition_map_iterate): Likewise. * partmap/pc.c (pc_partition_map_iterate): Likewise. * partmap/sun.c (sun_partition_map_iterate): Likewise. * normal/menu_entry.c (struct screen): Added a new member "completion_shown". (completion_buffer): New global variable. (make_screen): Set SCREEN->COMPLETION_SHOWN to zero. (store_completion): New function. (complete): Likewise. (clear_completions): Likewise. (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero, call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is a tab, call complete. * normal/completion.c (disk_dev): Removed. (print_simple_completion): Likewise. (print_partition_completion): Likewise. (print_func): New global variable. (add_completion): Do not take the arguments WHAT or PRINT any longer. Added a new argument TYPE. Instead of printing directly, call PRINT_FUNC if not NULL. All callers changed. (complete_device): Use a local variable DEV instead of DISK_DEV. Do not move CURRENT_WORD to the end of a device name. (grub_normal_do_completion): Take a new argument HOOK. Do not initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an empty string, return NULL instead. All callers changed. * normal/cmdline.c (print_completion): New function. * kern/partition.c (grub_partition_iterate): Add an argument DISK to HOOK. All callers changed. * kern/disk.c (grub_print_partinfo): Removed. * include/grub/partition.h (struct grub_partition_map): Add a new argument DISK into HOOK of ITERATE. (grub_partition_iterate): Add a new argument DISK to HOOK. * include/grub/normal.h (enum grub_completion_type): New enum. (grub_completion_type_t): New type. (GRUB_COMPLETION_TYPE_COMMAND): New constant. (GRUB_COMPLETION_TYPE_DEVICE): Likewise. (GRUB_COMPLETION_TYPE_PARTITION): Likewise. (GRUB_COMPLETION_TYPE_FILE): Likewise. (grub_normal_do_completion): Added a new argument HOOK. (grub_normal_print_device_info): New prototype. * include/grub/disk.h (grub_print_partinfo): Removed. * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c. (normal_mod_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. * commands/ls.c (grub_ls_list_disks): Use grub_normal_print_device_info instead of grub_print_partinfo. Free PNAME. (grub_ls_list_files): Use grub_normal_print_device_info instead of duplicating the code. 2005-08-16 Vesa Jaaskelainen * commands/i386/pc/vbe_list_modes.c: Update source formatting to follow GCS more precisely. * commands/i386/pc/vbe_test.c: Likewise. * include/grub/i386/pc/vbe.h: Likewise. * term/i386/pc/vesafb.c: Likewise. * video/i386/pc/vbe.c: Likewise. 2005-08-16 Vesa Jaaskelainen * DISTLIST: Added term/i386/pc/vesafb.c DISTLIST: Added video/i386/pc/vbe.c DISTLIST: Added commands/i386/pc/vbe_list_modes.c. DISTLIST: Added commands/i386/pc/vbe_test.c. * commands/i386/pc/vbe_list_modes.c: New file. * commands/i386/pc/vbe_test.c: Likewise. * term/i386/pc/vesafb.c: Likewise. * video/i386/pc/vbe.c: Likewise. * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define. (grub_vbe_probe) Added prototype. (grub_vbe_set_video_mode) Likewise. (grub_vbe_get_video_mode) Likewise. (grub_vbe_get_video_mode_info) Likewise. (grub_vbe_set_pixel_rgb) Likewise. (grub_vbe_set_pixel_index) Likewise. * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod. (pkgdata_MODULES): Added vesafb.mod. (pkgdata_MODULES): Added vbe_list_modes.mod. (pkgdata_MODULES): Added vbe_test.mod. (vbe_mod_SOURCES): Added. (vbe_mod_CFLAGS): Likewise. (vesafb_mod_SOURCES): Likewise. (vesafb_mod_CFLAGS): Likewise. (vbe_list_modes_mod_SOURCES): Likewise. (vbe_list_modes_mod_CFLAGS): Likewise. (vbe_test_mod_SOURCES): Likewise. (vbe_test_mod_CFLAGS): Likewise. 2005-08-14 Yoshinori K. Okuji * normal/command.c (grub_command_execute): If INTERACTIVE is false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print CMDLINE. Disable the pager if INTERACTIVE is true. All callers are changed. * normal/main.c (grub_normal_execute): Read command.lst and fs.lst before reading a config file. * normal/main.c (read_config_file): Even if a command is not found, register it if it is within an entry. * util/grub-emu.c: Include sys/types.h and unistd.h. (options): Added --hold. (struct arguments): Added a new member "hold". (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is missing. (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is cleared by a debugger, if it is not zero. * include/grub/normal.h (grub_command_execute): Add an argument INTERACTIVE. 2005-08-14 Vesa Jaaskelainen * DISTLIST: Added include/grub/i386/pc/vbe.h. 2005-08-13 Yoshinori K. Okuji * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test program with another one, because the old one didn't detect a bug in gcc-3.4. Always use regparm 2, because the new test is still not enough for gcc-4.0. Someone must investigate a simple test case which detects a bug in gcc-4.0. 2005-08-12 Yoshinori K. Okuji * DISTLIST: Added normal/completion.c. * normal/completion.c: New file. * term/i386/pc/console.c (grub_console_getwh): New function. (grub_console_term): Assign grub_console_getwh to getwh. * normal/cmdline.c (grub_tab_complete): Removed. Now the same function is defined in normal/completion.c as grub_normal_do_completion. (grub_cmdline_get): Use grub_normal_do_completion instead of grub_tab_complete. * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK returns non-zero, otherwise return 0. (grub_partition_iterate): First, probe the partition map. Then, call ITERATE only for this partition map. * kern/misc.c (grub_strncmp): Rewritten. * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE returns non-zero. Otherwise return 0. * include/grub/partition.h (grub_partition_map_iterate): Return int instead of void. * include/grub/normal.h (grub_normal_do_completion): New prototype. * include/grub/misc.h (grub_strncmp): Change the type of N to grub_size_t. * include/grub/disk.h (grub_disk_dev_iterate): Return int instead of void. * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to unsigned explicitly before comparing it with I. * kern/main.c (grub_env_write_root): Add the attribute unused into VAR. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added normal/completion.c. (normal_mod_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. * normal/command.c (grub_iterate_commands): If ITERATE returns non-zero, return one immediately. 2005-08-09 Vesa Jaaskelainen * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h. * kern/i386/pc/startup.S: Updated Global Descriptor table's descriptions. (grub_vbe_get_controller_info): New function. (grub_vbe_get_mode_info): Likewise. (grub_vbe_set_mode): Likewise. (grub_vbe_get_mode): Likewise. (grub_vbe_set_memory_window): Likewise. (grub_vbe_get_memory_window): Likewise. (grub_vbe_set_scanline_length): Likewise. (grub_vbe_get_scanline_length): Likewise. (grub_vbe_set_display_start): Likewise. (grub_vbe_get_display_start): Likewise. (grub_vbe_set_palette_data): Likewise. * include/grub/i386/pc/vbe.h: New file. 2005-08-08 Hollis Blanchard * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced kern/ieee1275/of.c with kern/ieee1275/ieee1275.c. * DISTLIST: Likewise. * kern/ieee1275/of.c: Moved to ... * kern/ieee1275/ieee1275.c: ... here. 2005-08-08 Hollis Blanchard * term/ieee1275/ofconsole.c: Include . (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t. Pass 0 as `end' parameter to grub_strtoul(). 2005-08-08 Hollis Blanchard * include/grub/powerpc/ieee1275/console.h: Do not include . Do not include . Remove ASM_FILE ifdef. (grub_console_cur_color): Remove i386-specific prototype. (grub_console_real_putchar): Likewise. (grub_console_checkkey): Likewise. (grub_console_getkey): Likewise. (grub_console_getxy): Likewise. (grub_console_gotoxy): Likewise. (grub_console_cls): Likewise. (grub_console_setcursor): Likewise. * kern/powerpc/ieee1275/init.c: Don't include . Include . * term/ieee1275/ofconsole.c: Likewise. 2005-08-08 Yoshinori K. Okuji * Makefile.in (LIBLZO): New variable. * configure.ac: Check for LZO version 2. * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include lzo/lzo1x.h instead of lzo1x.h. * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead of -llzo. * util/i386/pc/grub-setup.c (main): Do not free PREFIX twice. Reported by Vladimir Serbinenko . * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after copying the data from PARTITION to P. 2005-08-07 Yoshinori K. Okuji * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is negative, unload the module. * util/i386/pc/grub-setup.c (setup): The name of the PC partition map is "pc_partition_map" but not "pc". (usage): Fix the description. The options are --boot-image and --core-image but not --boot-file or --core-file. (main): If not specified explicitly, make BOOT_FILE and CORE_FILE based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or DEFAULT_DIRECTORY. * util/i386/pc/grub-install.in: Do not specify --boot-file or --core-file. Specify INSTALL_DEVICE as an argument. * util/console.c: Include config.h. [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h. [HAVE_NCURSES_H]: Include ncurses.h. [HAVE_CURSES_H]: Include curses.h. [!A_NORMAL] (A_NORMAL): Defined as zero. [!A_STANDOUT] (A_STANDOUT): Likewise. * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of -lncurses. * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise. * configure.ac: Check for curses libraries and headers. * Makefile.in (LIBCURSES): New variable. * genmk.rb (Script::rule): Set the executable bits. * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The name of the PC partition map is "pc_partition_map" but not "pc". 2005-08-07 Yoshinori K. Okuji * util/i386/pc/grub-install.in (grub_probefs): New variable. (modules): Likewise. (usage): Added descriptions for --modules and --grub-probefs. Handle --modules and --grub-probefs. Save the arguments in MODULES and GRUB_PROBEFS, respectively. Auto-detect a filesystem module against GRUBDIR. If the result is empty and modules are not specified explicitly, abort the installation. Add the result to MODULES. * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c, disk/powerpc/ieee1275/ofdisk.c, include/grub/powerpc/ieee1275/init.h and term/powerpc/ieee1275/ofconsole.c. Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and term/ieee1275/ofconsole.c. * include/grub/powerpc/ieee1275/console.h: Resurrected. * COPYING: Upgraded to the latest version. Only the address of the FSF office has changed. 2005-08-07 Yoshinori K. Okuji * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced kern/ieee1275.c with kern/ieee1275/of.c. * kern/ieee1275.c: Moved to ... * kern/ieee1275/of.c: ... here. 2005-08-06 Yoshinori K. Okuji * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for readability. * config.guess: Updated to the latest version from gnulib. * config.sub: Likewise. * install.sh: Likewise. * mkinstalldirs: Likewise. * include/grub/console.h: Removed. This file is arch-specific. Do not put this in include/grub. * include/grub/i386/pc/console.h: Resurrected. * util/console.c: Include grub/machine/console.h instead of grub/console.h. * util/grub-emu.c: Likewise. 2005-08-04 Marco Gerards * kern/term.c (grub_putcode): Use `grub_getwh' instead of hardcoded value. From Vincent Pelletier * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT): Redefined to use grub_getwh. (grub_term): New member named getwh. (grub_getwh): New prototype. * kern/term.c (grub_getwh): New function. * term/i386/pc/console.c (grub_console_getwh): New function. (grub_console_term): New member `getwh'. * term/i386/pc/vga.c (grub_vga_getwh): New function. (grub_vga_term): New member `getwh'. * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use grub_ssize_t. (grub_ofconsole_getw): New function. (grub_ofconsole_init): Use grub_ssize_t and unsigned char. (grub_ofconsole_term): New field named getwh and new initial value. 2005-08-03 Hollis Blanchard * include/grub/powerpc/ieee1275/ieee1275.h: Move ... * include/grub/ieee1275/ieee1275.h: ... to here. All users updated. Move `abort', `grub_reboot', and `grub_halt' prototypes ... * include/grub/powerpc/ieee1275/kernel.h: ... to here. * commands/ieee1275/halt.c: Include instead of . * commands/ieee1275/reboot.c: Likewise. * boot/powerpc/ieee1275/ieee1275.c: Move ... * kern/ieee1275.c: ... to here. All users updated. Change all parameter structs to use new type `grub_ieee1275_cell_t'. * term/powerpc/ieee1275/ofconsole.c: Move ... * term/ieee1275/ofconsole.c: ... to here. All users updated. * disk/powerpc/ieee1275/ofdisk.c: Move ... * disk/ieee1275/ofdisk.c: ... to here. All users updated. * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type to return int. * include/grub/i386/pc/console.h: Move to include/grub/console.h. Remove unused prototypes. All users updated. * include/grub/powerpc/ieee1275/console.h: Removed. * include/grub/powerpc/ieee1275/ieee1275.h: Define `grub_ieee1275_cell_t'. * kern/powerpc/ieee1275/openfw.c: Include . Cast comparisons with -1 to the correct type. * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter type to match `grub_ieee1275_entry_fn'. 2005-08-01 Yoshinori K. Okuji * DISTLIST: Added util/i386/pc/grub-probefs.c. * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs. (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and partmap/sun.c. (grub_probefs_SOURCES): New variable. * util/i386/pc/grub-probefs.c: New file. * util/i386/pc/grub-setup.c (main): Call grub_pc_partition_map_init, grub_ufs_init, grub_minix_init, grub_hfs_init and grub_jfs_init to initialize the system. Call grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and grub_pc_partition_map_fini to finish the system. 2005-07-31 Yoshinori K. Okuji * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New function. (grub_multiboot_load_elf32): Likewise. (grub_multiboot_is_elf64): Likewise. (grub_multiboot_load_elf64): Likewise. (grub_multiboot_load_elf): Likewise. (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load an ELF32 or ELF64 file. This is based on a patch from Ruslan Nikolaev . From Serbinenko Vladimir : * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not NULL before calling FS->LABEL. * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL. * commands/ls.c (grub_ls_list_files): Show labels, if possible. (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL before calling FS->LABEL. 2005-07-26 Yoshinori K. Okuji * util/i386/pc/grub-install.in (datadir): New variable. (libdir): Removed. (pkgdatadir): New variable. (pkglibdir): Removed. 2005-07-24 Yoshinori K. Okuji * DISTLIST: Added util/i386/pc/grub-install.in. * util/i386/pc/grub-install.in: New file. * conf/i386-pc.rmk (sbin_SCRIPTS): New variable. (grub_install_SOURCES): Likewise. * genmk.rb: Added support for scripts. (Script): New class. (scripts): New variable. * Makefile.in (install-local): Install sbin_SCRIPTS by INSTALL_SCRIPT. (uninstall): Remove sbin_SCRIPTS. * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB device, try to get a GRUB device by grub_util_biosdisk_get_grub_dev. Free DEST_DEV. * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated description for --device-map. 2005-07-20 Yoshinori K. Okuji Change the semantics of variable hooks. They now return strings instead of error values. * util/i386/pc/grub-setup.c: Include grub/env.h. (setup): Use grub_device_set_root instead of grub_env_set. * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and grub_env_get instead of grub_device_set_root and grub_device_get_root, respectively. * kern/main.c (grub_env_write_root): New function. (grub_set_root_dev): Register grub_env_write_hook for "root". Use grub_env_set instead of grub_device_set_root. * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need many variables. (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK rather than calling ENV->WRITE_HOOK afterwards. (grub_env_get): Return the result of ENV->READ_HOOK rather than passing a pointer of a pointer. (grub_register_variable_hook): Change the types of "read_hook" and "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t, respectively. Allocate the default empty string on the heap, because this string may be freed later. * kern/device.c: Include grub/env.h. (grub_device_set_root): Removed. (grub_device_get_root): Likewise. (grub_device_open): Use grub_env_get instead of grub_device_get_root. * include/grub/env.h (grub_env_read_hook_t): New type. (grub_env_write_hook_t): Likewise. (grub_env_var): Change the types of "read_hook" and "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t, respectively. (grub_register_variable_hook): Likewise. * include/grub/device.h (grub_device_set_root): Removed. (grub_device_set_root): Likewise. * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and make sure that DIRNAME terminates with '/', so that grub_fat_find_dir will fail if PATH is not a directory. * commands/ls.c (grub_ls_list_files): Remove the qualifier const from DIRNAME. Use the qualifier auto for print_files and print_files_long. If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME as a regular file. Put a newline only if there is no error. (grub_cmd_ls): Remove grub_ls_print_files, because this is not used. 2005-07-20 Yoshinori K. Okuji * kern/partition.c (grub_partition_probe): Initialize PART to NULL. Otherwise, when no partition map is registered, this returns a garbage. 2005-07-19 Yoshinori K. Okuji * partmap/apple.c (apple_partition_map_iterate): Check if POS equals GRUB_DISK_SECTOR_SIZE to see if the partition table is valid. 2005-07-18 Yoshinori K. Okuji * commands/ls.c (grub_ls_list_disks): Print the filesystem information on each device, if it does not have partitions. Print "Device" instead of "Disk", because this function is not specific to disk devices. * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG static to ensure that it is put on the memory rather than a register. 2005-07-17 Yoshinori Okuji * commands/cat.c (GRUB_MOD_INIT): Use better documentation. (grub_cat_init): Likewise. * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise. (options): Likewise. * commands/configfile.c (GRUB_MOD_INIT): Likewise. (grub_configfile_init): Likewise. * font/manager.c (GRUB_MOD_INIT): Likewise. * commands/help.c (GRUB_MOD_INIT): Likewise. (grub_help_init): Likewise. * normal/command.c (grub_command_init): Likewise. * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise. * disk/loopback.c (grub_loop_init): Likewise. (GRUB_MOD_INIT): Likewise. * commands/ls.c (grub_ls_init): Likewise. (GRUB_MOD_INIT): Likewise. (options): Likewise. * commands/boot.c (grub_boot_init): Likewise. (GRUB_MOD_INIT): Likewise. * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise. * commands/i386/pc/reboot.c (grub_reboot_init): Likewise. (GRUB_MOD_INIT): Likewise. * commands/cmp.c (grub_cmp_init): Likewise. (GRUB_MOD_INIT): Likewise. * normal/arg.c: Use <> instead of "" to include header files. (SHORT_ARG_HELP): New macro. (SHORT_ARG_USAGE): Likewise. (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead of 'h' and 'u' for help and usage, respectively. Use more GNU-like descriptions. (find_short): Check if C is 'h' or 'u' explicitly. (grub_arg_show_help): Use space characters instead of tabs. Treat SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u are shown with --help and --usage only if they are not used for the command itself. (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of 'h' and 'u'. * include/grub/arg.h (struct grub_arg_option): Add the qualifier const into "longarg". Change the type of "shortarg" to int. 2005-07-17 Yoshinori Okuji * boot/i386/pc/boot.S (boot_drive_check): New label. * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New macro. * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes which do not pass a boot drive correctly. Copied from GRUB Legacy. 2005-07-17 Yoshinori Okuji * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a): When turning off Gate A20, skip the check and return immediately, because this is not fatal usually. 2005-07-17 Yoshinori Okuji * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should be 0x7C00 instead of 0x8000. * boot/i386/pc/pxeboot.S: Rewritten. * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify EXT_C. (gate_a20_check_state): Read a byte from 0x108000. Invert the result. 2005-07-16 Yoshinori K. Okuji * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for robustness. This routine now supports a BIOS call and System Control Port A to modify the gate A20. * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Increased to 0x440. 2005-07-12 Hollis Blanchard * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the device path and resulting ihandle. (grub_ofdisk_close): dprintf the ihandle being closed. (grub_ofdisk_read): dprintf function parameters. * kern/mm.c (grub_mm_init_region): Likewise. * loader/powerpc/ieee1275/linux.c: Remove extra whitespace. (grub_linux_boot): dprintf the Linux entry point, initrd address and size, and boot arguments. (grub_rescue_cmd_linux): dprintf each ELF segment's address and size before loading into memory. (grub_rescue_cmd_initrd): dprintf the initrd's address and size before loading into memory. 2005-07-12 Yoshinori K. Okuji * kern/mm.c: Added much documentation. (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is 8, set to 5 instead of 8. 2005-07-10 Yoshinori Okuji * DISTLIST: Added util/i386/pc/grub-mkimage.c. * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap. (grub_mkdevicemap_SOURCES): New variable. * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from lib/device.c of GRUB Legacy. 2005-07-10 Yoshinori Okuji * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL instead of PATH is NULL. 2005-07-09 Vincent Pelletier * commands/cmp.c (BUFFER_SIZE): New macro. (grub_cmd_cmp): Close the right file at the right time. Compare only data just read. Don't report files of different size as identical. Dynamically allocate buffers. Move variable declarations at the beginning of function. 2005-07-09 Yoshinori Okuji * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was reverse. 2004-07-04 Vincent Pelletier * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d when backspace is pressed at beginning of line. 2005-07-03 Yoshinori Okuji * DISTLIST: Added genfslist.sh. * normal/main.c (fs_module_list): New variable. (autoload_fs_module): New function. (read_fs_list): Likewise. (grub_normal_execute): Call read_fs_list. * kern/fs.c (grub_fs_autoload_hook): New variable. (grub_fs_probe): Added support for auto-loading. * include/grub/normal.h (struct grub_fs_module_list): New struct. (grub_fs_module_list_t): New type. * include/grub/fs.h (grub_fs_autoload_hook_t): New type. (grub_fs_autoload_hook): New prototype. * genfslist.sh: New file. * genmk.rb: Added a rule to generate a filesystem list. 2005-06-30 Marco Gerards * configure.ac: Fix the test for cross-compiling. * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't define GRUB_UTIL anymore. * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes so this function works on other systems than just big endian. (load_modules): Likewise. (add_segments): Likewise. 2005-06-23 Hollis Blanchard * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string contains `l' modifier, get a long from va_arg(). 2005-06-23 Yoshinori K. Okuji * kern/mm.c (grub_free): If the next free block which is being merged is the first free block, set the first block to the block being freed. Reported by Vincent Guffens . 2005-05-08 Hollis Blanchard * boot/powerpc/ieee1275/cmain.c (cmain): Initialize `grub_ieee1275_chosen'. 2005-05-08 Hollis Blanchard * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition. (grub_ieee1275_chosen): New variable. (cmain): Initialize and use `grub_ieee1275_chosen' instead of `chosen'. * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space. * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property): Rename first argument to `phandle' for consistency. (grub_ieee1275_get_property_length): Likewise. (grub_ieee1275_next_property): Likewise. Change type of first argument to grub_ieee1275_phandle_t. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn): Move export next to declaration. (grub_ieee1275_chosen): New variable. * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE): Correct cosmetic typo. * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use `grub_ieee1275_chosen'. * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise. * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise. (grub_rescue_cmd_linux): Set `initrd_addr' to 0. * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use `grub_ieee1275_chosen'. 2005-05-10 Hollis Blanchard * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse /chosen/bootargs. * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse /chosen/bootargs as "variable=value" pairs. 2005-05-08 Vincent Pelletier * include/grub/misc.h (grub_dprintf): New macro. (grub_real_dprintf): New prototype. (grub_strword): Likewise. (grub_iswordseparator): Likewise. * kern/misc.c (grub_real_dprintf): New function. (grub_strword): Likewise. (grub_iswordseparator): Likewise. 2005-04-30 Hollis Blanchard * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h. (roundup): Remove macro. (grub_ieee1275_flags): Make static. (grub_ieee1275_realmode): Remove. (grub_ieee1275_test_flag): New function. (grub_ieee1275_set_flag): Likewise. (find_options): Rename to `grub_ieee1275_find_options'; update callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS. (cmain): New prototype. (cmain): Use `grub_ieee1275_set_flag' instead of accessing `grub_ieee1275_flags' directly. * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove machine/biosdisk.h. * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h. Don't include grub/machine/init.h. (grub_ofdisk_open): Call `grub_ieee1275_test_flag'. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags): Remove prototype. (grub_ieee1275_realmode): Likewise. (grub_ieee1275_flag): New enum. (grub_ieee1275_test_flag): New prototype. (grub_ieee1275_set_flag): New prototype. * include/grub/powerpc/ieee1275/init.h: Remove file. * include/grub/powerpc/ieee1275/ofdisk.h: New file. * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h. Include grub/machine/console.h. Include grub/machine/ofdisk.h. (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove comment. * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call `grub_ieee1275_test_flag'. (grub_ieee1275_encode_devname): Likewise. 2005-04-21 Hollis Blanchard * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_encode_devname): New prototype. (grub_ieee1275_get_filename): Likewise. * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New function. (grub_set_prefix): Likewise. (grub_machine_init): Call grub_set_prefix. * kern/powerpc/ieee1275/openfw.c: Fix typos. (grub_parse_type): New enum. (grub_ieee1275_get_devargs): New function. (grub_ieee1275_get_devname): Likewise. (grub_ieee1275_parse_args): Likewise. (grub_ieee1275_get_filename): Likewise. (grub_ieee1275_encode_devname): Likewise. 2005-03-30 Marco Gerards * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call `grub_loader_unset'. 2005-03-26 Hollis Blanchard * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt instead of grub_ieee1275_interpret. (grub_halt_init): New function. (grub_halt_fini): Likewise. (GRUB_MOD_INIT): Correct message grammar. * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot instead of grub_ieee1275_interpret. (grub_reboot_init): New function. (grub_reboot_fini): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and util/i386/pc/misc.c with commands/ieee1275/halt.c, commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c. * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New function. * include/grub/powerpc/ieee1275/console.h (grub_console_fini): Add prototype. * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add prototype. (grub_halt): Likewise. * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment. (cmain): Remove __attribute__((unused)). * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable. (grub_heap_len): Likewise. (grub_machine_fini): New function. * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function. (grub_halt): Likewise. * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New function. * util/powerpc/ieee1275/misc.c: New file. 2005-03-19 Yoshinori K. Okuji * DISTLIST: New file. * gendistlist.sh: Likewise. * Makefile.in (COMMON_DISTFILES): Removed. (BOOT_DISTFILES): Likewise. (CONF_DISTFILES): Likewise. (DISK_DISTFILES): Likewise. (FS_DISTFILES): Likewise. (INCLUDE_DISTFILES): Likewise. (KERN_DISTFILES): Likewise. (LOADER_DISTFILES): Likewise. (TERM_DISTFILES): Likewise. (UTIL_DISTFILES): Likewise. (DISTFILES): Likewise. (uninstall): Uninstall files in $(pkgdata_DATA). (DISTLIST): New target. (distdir): Use the contents of the file DISTLIST to get a list of distributed files. 2005-03-18 Yoshinori K. Okuji * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media descriptor. This is ported from GRUB Legacy. * gencmdlist.sh: Added an extra semicolon to make it work with old sed versions. Reported by Robert Bihlmeyer . 2005-03-08 Yoshinori Okuji Automatic loading of commands is supported. * normal/main.c (read_command_list): New function. (grub_normal_execute): Call read_command_list. * normal/command.c (grub_register_command): Return zero or CMD. Allocate CMD->NAME from the heap. Initialize CMD->MODULE_NAME to zero. Find the same name as well. If the same command is found and it is a dummy command, overwrite members. If it is not a dummy command, return zero. (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME. (grub_command_find): If a dummy command is found, load a module and retry to find a command only once. * normal/cmdline.c (grub_tab_complete): Call grub_command_find to make sure that each command is loaded. * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New macro. (struct grub_command): Remove const from the member `name'. Add a new member `module_name'. (grub_register_command): Return grub_command_t. * commands/help.c (grub_cmd_help): Call grub_command_find to make sure that each command is loaded. * genmk.rb (PModule::rule): Specify a module name without the suffix ".mod" to gencmdlist.sh. 2005-03-02 Yoshinori K. Okuji * gencmdlist.sh: New file. * genmk.rb (PModule::rule): Generate a rule for a command list. Clean command.lst. Generate command.lst from $(COMMANDFILES). * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh. (DATA): Added $(pkgdata_DATA). (install-local): Install files in $(pkgdata_DATA). 2005-03-02 Yoshinori K. Okuji * term/i386/pc/vga.c (debug_command): Removed. (GRUB_MOD_INIT): Do not register the command "debug". From Hollis Blanchard: * commands/configfile.c: New file. * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/configfile.c. (pkgdata_MODULES): Added configfile.mod. (configfile_mod_SOURCES): New variable. (configfile_mod_CFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added commands/configfile.c. (pkgdata_MODULES): Added configfile.mod. (configfile_mod_SOURCES): New variable. (configfile_mod_CFLAGS): Likewise. * util/grub-emu.c (main): Call grub_configfile_init and grub_configfile_fini. * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New prototype. [GRUB_UTIL] (grub_configfile_fini): Likewise. 2005-02-27 Yoshinori K. Okuji * normal/arg.c (grub_arg_show_help): Do not show the bug report address. * commands/help.c (grub_cmd_help): Do not print newlines after the last command in print_command_help. 2005-02-27 Yoshinori K. Okuji * commands/default.h: New file. * commands/timeout.h: Likewise. * normal/context.c: Likewise. * util/misc.c: Do not include sys/times.h. Include sys/time.h and grub/machine/time.h. (grub_get_rtc): Rewritten with gettimeofday. * util/grub-emu.c (main): Call grub_default_init and grub_timeout_init before grub_normal_init, and call grub_timeout_fini and grub_default_fini after grub_main. * util/console.c (grub_ncurses_checkkey): Return the read character or -1. * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it timeouts. * normal/main.c (read_config_file): Push MENU. If this fails, print an error and wait for a user input. Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE. If a menu is empty or an error occurs, pop MENU. (grub_normal_execute): Pop and free MENU after grub_menu_run returns. * kern/loader.c (grub_loader_boot): Call grub_machine_fini. * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not include time.h. [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as without GRUB_UTIL. * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include time.h. [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as without GRUB_UTIL. * include/grub/normal.h (struct grub_menu_list): New struct. (grub_menu_list_t): New type. (struct grub_context): New struct. (grub_context_t): New type. (grub_register_command): Got rid of EXPORT_FUNC. (grub_unregister_command): Likewise. (grub_context_get): New prototype. (grub_context_get_current_menu): Likewise. (grub_context_push_menu): Likewise. (grub_context_pop_menu): Likewise. [GRUB_UTIL] (grub_default_init): Likewise. [GRUB_UTIL] (grub_default_fini): Likewise. [GRUB_UTIL] (grub_timeout_init): Likewise. [GRUB_UTIL] (grub_timeout_fini): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c, commands/timeout.c and normal/context.c. (pkgdata_MODULES): Added default.mod and timeout.mod. (normal_mod_SOURCES): Added normal/context.c. (default_mod_SOURCES): New variable. (default_mod_CFLAGS): Likewise. (timeout_mod_SOURCES): Likewise. (timeout_mod_CFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from conf/i386-pc.rmk. (pkgdata_MODULES): Added default.mod and timeout.mod. (normal_mod_SOURCES): Added normal/context.c. (default_mod_SOURCES): New variable. (default_mod_CFLAGS): Likewise. (timeout_mod_SOURCES): Likewise. (timeout_mod_CFLAGS): Likewise. * Makefile.in (all-local): Added $(MKFILES). 2005-02-21 Vincent Pelletier * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'. (grub_emu_SOURCES): Likewise. (pkgdata_MODULES): Add `sun.mod'. (sun_mod_SOURCES, sun_mod_CFLAGS): New variables. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `partmap/sun.c'. (pkgdata_MODULES): Add `sun.mod'. (sun_mod_SOURCES, sun_mod_CFLAGS): New variables. * include/grub/partition.h (grub_sun_partition_map_init): New prototype. (grub_sun_partition_map_fini): Likewise. * partmap/sun.c: New file. * util/grub-emu.c (main): Initialize and de-initialize the sun partitionmap support. 2005-02-19 Yoshinori K. Okuji This implements an Emacs-like menu entry editor. * normal/menu_entry.c: New file. * util/console.c (grub_ncurses_putchar): Translate some Unicode characters to ASCII. (saved_char): New variable. (grub_ncurses_checkkey): Rewritten completely. (grub_ncurses_getkey): Likewise. (grub_ncurses_init): Call raw instead of cbreak. * normal/menu.c (print_entry): Do not put a space. (init_page): Renamed to ... (grub_menu_init_page): ... this. All callers changed. (edit_menu_entry): Removed. (run_menu): Call grub_menu_entry_run instead of edit_menu_entry. * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor. * kern/misc.c (grub_vprintf): Call grub_refresh. * normal/menu.c (DISP_LEFT): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this. * normal/menu.c (DISP_UP): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_UP): ... this. * normal/menu.c (DISP_RIGHT): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this. * normal/menu.c (DISP_DOWN): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this. * normal/menu.c (DISP_HLINE): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this. * normal/menu.c (DISP_VLINE): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this. * normal/menu.c (DISP_UL): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_UL): ... this. * normal/menu.c (DISP_UR): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_UR): ... this. * normal/menu.c (DISP_LL): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_LL): ... this. * normal/menu.c (DISP_LR): Renamed to ... * include/grub/term.h (GRUB_TERM_DISP_LR): ... this. * normal/menu.c (TERM_WIDTH): Renamed to ... * include/grub/term.h (GRUB_TERM_WIDTH): ... this. * normal/menu.c (TERM_HEIGHT): Renamed to ... * include/grub/term.h (GRUB_TERM_HEIGHT): ... this. * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ... * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this. * normal/menu.c (TERM_MARGIN): Renamed to ... * include/grub/term.h (GRUB_TERM_MARGIN): ... this. * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ... * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this. * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ... * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this. * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ... * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this. * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ... * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this. * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ... * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this. * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ... * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this. * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ... * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this. * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ... * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this. * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ... * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this. * normal/menu.c (TERM_CURSOR_X): Renamed to ... * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this. All callers changed. * include/grub/normal.h: New prototype. * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/menu_entry.c. (normal_mod_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. (normal_mod_SOURCES): Likewise. 2005-02-15 Yoshinori K. Okuji * include/grub/normal.h (grub_halt_init): New prototype. (grub_halt_fini): Likewise. (grub_reboot_init): Likewise. (grub_reboot_fini): Likewise. * util/grub-emu.c: Include signal.h. (main_env): New global variable. (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot catch C-c. (grub_machine_fini): New function. (main): Call grub_halt_init and grub_reboot_init before grub_main, and grub_reboot_fini and grub_halt_fini after it. Call setjmp with MAIN_ENV to go back afterwards. Call grub_machine_fini right before return. * include/grub/util/misc.h: Include setjmp.h. (main_env): New prototype. * include/grub/kernel.h (grub_machine_fini): New prototype. * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise. * include/grub/i386/pc/console.h (grub_console_fini): Likewise. * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function. * kern/i386/pc/init.c (grub_machine_fini): Likewise. * term/i386/pc/console.c (grub_console_fini): Likewise. * util/i386/pc/misc.c: New file. * conf/i386-pc.rmk (grub_emu_SOURCES): Added util/i386/pc/misc.c, commands/i386/pc/halt.c and commands/i386/pc/reboot.c. 2005-02-14 Guillem Jover * include/grub/dl.h (grub_dl_check_header): New prototype. (grub_arch_dl_check_header): Change return type to grub_err_t, remove size parameter and export function. Update all callers. * kern/dl.c (grub_dl_check_header): New function. (grub_dl_load_core): Use `grub_dl_check_header' instead of `grub_arch_dl_check_header'. Check ELF type. Check if sections are inside the core. * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch independent ELF header checks. * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise. * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use `grub_dl_check_header' instead of explicit checks. Check for the ELF type. * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use `grub_dl_check_header' instead of explicit checks. Remove arch specific ELF header checks. * util/grub-emu.c (grub_arch_dl_check_header): Remove the argument SIZE. 2005-02-13 Hollis Blanchard * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod. * include/grub/powerpc/libgcc.h (__mulsf3): New prototype. 2005-02-12 Hollis Blanchard * kern/partition.c (grub_partition_probe): Clear `grub_errno' and return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE. (part_map_iterate): Clear `grub_errno' and return 0 if `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE. * partmap/amiga.c (amiga_partition_map_iterate): Return GRUB_ERR_BAD_PART_TABLE if no partition map magic is found. * partmap/apple.c (apple_partition_map_iterate): Likewise. 2005-02-01 Guillem Jover * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module help info. 2005-01-31 Marco Gerards * include/grub/powerpc/ieee1275/loader.h (grub_load_linux): Removed prototype. (grub_rescue_cmd_linux): New prototype. (grub_rescue_cmd_initrd): Likewise. * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct `bi_rec'. (grub_linux_release_mem): Release the memory for the initrd. (grub_load_linux): Renamed from this... (grub_rescue_cmd_linux): ...To this. Changed all callers. Changed `entry' not to be static. Loop over memory regions to find another one when the default fails. (grub_rescue_cmd_initrd): New function. (grub_linux_init): Remove function. (grub_linux_fini): Likewise. (GRUB_MOD_INIT): Register `initrd'. (GRUB_MOD_FINI): Unregister `initrd'. * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init): Function removed. (grub_linux_normal_fini): Likewise. (GRUB_MOD_INIT): Register `initrd'. (GRUB_MOD_FINI): Unregister `initrd'. 2005-01-31 Marco Gerards * commands/help.c: New file. * normal/arg.c (show_help): Renamed to... (grub_arg_show_help): ... this. * commands/i386/pc/halt.c: New file. * commands/i386/pc/reboot.c: Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'. (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'. (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES) (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New variables. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `commands/help.c'. (pkgdata_MODULES): Add `help.mod'. (help_mod_SOURCES, help_mod_CFLAGS): New variables. * grub/i386/pc/init.h (grub_reboot): New prototype. (grub_halt): Likewise. * include/grub/normal.h (grub_arg_show_help): New prototype. (grub_help_init): Likewise. (grub_help_fini): Likewise. * util/grub-emu.c (main): Initialize and deinitialize the help command. * normal/cmdline.c (grub_cmdline_get): Doc fix. * normal/command.c (grub_command_init): Fixed the description of the `set' and `unset' commands. 2005-01-31 Marco Gerards * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New function. * commands/ieee1275/halt.c: New file. * commands/ieee1275/reboot.c: Likewise. * commands/ieee1275/suspend.c (grub_cmd_suspend): Use `__attribute__ ((unused))'. Some GCS related fixed. (grub_suspend_init) [GRUB_UTIL]: Function removed. (grub_suspend_fini): Likewise. * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod' and `halt.mod'. (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES) (halt_mod_CFLAGS): New variables. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_interpret): New prototype. 2005-01-29 Yoshinori K. Okuji * include/grub/misc.h (memmove): New prototype. (memcpy): Likewise. 2005-01-22 Hollis Blanchard * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'. 2005-01-22 Marco Gerards * kern/misc.c (grub_strndup): Function rewritten. 2005-01-22 Vincent Pelletier * normal/menu.c (TERM_WIDTH): Macro redefined. (TERM_TOP_BORDER_Y): Likewise. (draw_border): Replaced while-loop by a for-loop. Make the number of lines consistent with the number of lines displayed in print_entries. Added a margin below the rectangle. (print_entry): Make the entry fit in the rectangle. (print_entries): Display the scroll arrows next to the right border. 2005-01-21 Marco Gerards * fs/minix.c (grub_minix_find_file): Reserve more space for `fpath' so the \0 can be stored. Use `grub_strcpy' instead of `grub_strncpy' to copy `path' into it. 2005-01-21 Marco Gerards Add the loopback device, a device via which files can be accessed as devices. * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'. (pkgdata_MODULES): Add loopback.mod. (loopback_mod_SOURCES): New variable. (loopback_mod_CFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `disk/loopback.c'. (pkgdata_MODULES): Add loopback.mod. (loopback_mod_SOURCES): New variable. (loopback_mod_CFLAGS): Likewise. * disk/loopback.c: new file. * include/grub/normal.h (grub_loop_init): New prototype. (grub_loop_fini): New prototype. * util/grub-emu.c (main): Initialize and de-initialize loopback support. * include/grub/disk.h (grub_disk_dev_id): Add `GRUB_DISK_DEVICE_LOOPBACK_ID'. 2005-01-20 Hollis Blanchard * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New function. * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod. (suspend_mod_SOURCES): New variable. (suspend_mod_CFLAGS): Likewise. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter): New prototype. * commands/ieee1275/suspend.c: New file. 2005-01-20 Timothy Baldwin * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__ ((unused))' to `__attribute__ ((used))'. (GRUB_MOD_FINI): Likewise. * kern/dl.c (grub_dl_load_file): Fix null pointer dereference. * genmk.rb (PModule): Assign space to common symbols when linking modules. 2005-01-20 Marco Gerards * include/grub/mm.h (grub_mm_init_region): Change the type of the `unsigned' arguments to `grub_size_t'. (grub_malloc): Likewise. (grub_realloc): Likewise. (grub_memalign): Likewise. * kern/i386/dl.c (grub_arch_dl_check_header): Likewise. * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise. * util/misc.c (grub_malloc): Likewise. (grub_realloc): Likewise. * kern/mm.c (get_header_from_pointer): Change the casts to `unsigned' into a cast to `grub_size_t'. * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always point to `currnode' when `currnode' is changed. * util/grub-emu.c (main): Initialize `progname'. Reported by Nico Schottelius . 2005-01-09 Hollis Blanchard * util/powerpc/ieee1275/grub-mkimage.c: Include . (note_path): Remove variable. (GRUB_IEEE1275_NOTE_NAME): New macro. (GRUB_IEEE1275_NOTE_TYPE): Likewise. (grub_ieee1275_note_hdr): New structure. (grub_ieee1275_note_desc): Likewise. (grub_ieee1275_note): Likewise. (load_note): Remove `dir' argument. All callers updated. Remove `note_img' and `path'. Do not load a file from `note_path'. Initialize a struct grub_ieee1275_note and write that to `out'. Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE. 2005-01-05 Marco Gerards * util/misc.c (grub_util_read_image): Revert last change. It called `grub_util_read_at', which seeks from the beginning of the file. 2005-01-04 Hollis Blanchard * TODO: Add note about endianness in grub-mkimage. * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note section. * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage. (grub_mkimage_SOURCES): New target. * include/grub/kernel.h (grub_start_addr): Remove variable. (grub_end_addr): Likewise. (grub_total_module_size): Likewise. (grub_kernel_image_size): Likewise. (GRUB_MODULE_MAGIC): New constant. (grub_module_info): New structure. (grub_arch_modules_addr): New prototype. (grub_get_end_addr): Remove prototype. * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype. * include/grub/powerpc/ieee1275/kernel.h: New file. * include/grub/util/misc.h (grub_util_get_fp_size): New prototype. (grub_util_read_at): Likewise. (grub_util_write_image_at): Likewise. * kern/main.c (grub_get_end_addr): Remove function. (grub_load_modules): Call grub_arch_modules_addr instead of using grub_end_addr. Look for a grub_module_info struct in memory. Use the grub_module_info fields instead of calling grub_get_end_addr as loop conditions. Move grub_add_unused_region code here. (grub_add_unused_region): Remove function. * kern/i386/pc/init.c: Include grub/cache.h. (grub_machine_init): Remove call to grub_get_end_addr. Remove one call to add_mem_region. (grub_arch_modules_addr): New function. * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable. (grub_total_module_size): Likewise. Include grub/machine/kernel.h. (grub_arch_modules_addr): New function. * util/grub-emu.c (grub_end_addr): Remove variable. (grub_total_module_size): Likewise. (grub_arch_modules_addr): New function. * util/misc.c: Include unistd.h. (grub_util_get_fp_size): New function. (grub_util_read_at): Likewise. (grub_util_write_image_at): Likewise. (grub_util_read_image): Call grub_util_read_at. (grub_util_write_image): Call grub_util_write_image_at. * util/i386/pc/grub-mkimage.c (generate_image): Allocate additional memory in kernel_img for a struct grub_module_info. Fill in that grub_module_info. * util/powerpc/ieee1275/grub-mkimage.c: New file. 2005-01-03 Hollis Blanchard * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds): New function. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_milliseconds): New prototype. * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND): Change to 1000. * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call grub_ieee1275_milliseconds. 2005-01-03 Hollis Blanchard * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New variable. (find_options): New function. (cmain): Call find_options. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_realmode): New extern variable. * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call grub_map if grub_ieee1275_realmode is false. 2004-12-29 Marco Gerards * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty lines are inserted and make it work like readline. Reported by Vincent Pelletier . 2004-12-28 Marco Gerards * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove `kern/powerpc/cache.S'. 2004-12-27 Marco Gerards * genmk.rb: Handle the `Program' class in the main loop. Written by Johan Rydberg . (Program): New class. (programs): New variable. * boot/powerpc/ieee1275/cmain.c: Include instead of "grub/machine/ieee1275.h". Include instead of "grub/kernel.h". Include . (help_arch): Function removed. * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `powerpc/libgcc.h' and `loader.h'. (pkgdata_PROGRAMS): New variable. (sbin_UTILITIES): Variable removed. (grub_emu_SOURCES): Added kern/powerpc/cache.S. (grubof_SOURCES): Variable re-defined so it only includes the core functionality. (grubof_CFLAGS): Remove `-DGRUBOF'. (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS, (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES) (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS) (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES) (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS) (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES) (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS) (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS) (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES) (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS) (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS) (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES) (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS) (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES) (pc_mod_CFLAGS): New variables. * disk/powerpc/ieee1275/ofdisk.c: Include . (grub_ofdisk_iterate): Add a prototype for `dev_iterate'. * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype. * include/grub/loader.h (grub_os_area_addr, grub_os_area_size): Moved from here... * include/grub/i386/pc/init.h (grub_os_area_addr) (rub_os_area_size): ... to here. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn): Export symbol. * include/grub/powerpc/ieee1275/init.h: New file. * include/grub/powerpc/libgcc.h: Likewise. * include/grub/cache.h: Likewise. * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard . * kern/dl.c: Include . (grub_dl_flush_cache): New function. (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache for this module. * kern/powerpc/ieee1275/init.c (grub_ofdisk_init) (grub_console_init): Removed prototypes. (grub_machine_init): Don't initialize the modules anymore. * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function static. * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN): Macro undef removed. (GRUB_HOST_WORDS_BIGENDIAN): New macro. * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add relocation `R_PPC_REL32'. Return an error when the relocation is unknown. * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'. * kern/i386/pc/init.c (grub_arch_sync_caches): New function. * util/misc.c (grub_arch_sync_caches): Likewise. 2004-12-19 Marco Gerards * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove `symlist.c', add `grubof_symlist.c'. (symlist.c): Variable removed. (grubof_HEADERS): Variable added. (grubof_symlist.c): New target. (kernel_syms.lst): Use `grubof_HEADERS' instead of `kernel_img_HEADERS'. (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'. * kern/powerpc/dl.c: New file. * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header): Function removed. (grub_arch_dl_relocate_symbols): Likewise. (grub_register_exported_symbols): Likewise. 2004-12-13 Marco Gerards * fs/ext2.c (grub_ext2_open): Don't use data after freeing it. (grub_ext2_dir): Likewise. Don't return in case of an error, jump to fail instead. Reported by Vincent Pelletier . * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when it is not allocated. Reported by Vincent Pelletier . * normal/cmdline.c (grub_tab_complete): Add a blank line to the output so the output looks better. 2004-12-04 Marco Gerards Modulize the partition map support and add support for the amiga partition map. * commands/ls.c: Include instead of . * kern/disk.c: Likewise. * kern/rescue.c: Likewise. * loader/i386/pc/chainloader.c: Likewise. * normal/cmdline.c: Likewise. * kern/powerpc/ieee1275/init.c: Likewise. (grub_machine_init): Call `grub_pc_partition_map_init', `grub_amiga_partition_map_init' and `grub_apple_partition_map_init'. * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/partition.c'. Add `kern/partition.c'. (kernel_img_HEADERS): Remove `machine/partition.h'. Add `partition.h' and `pc_partition.h'. (grub_setup_SOURCES): Remove `disk/i386/pc/partition.c'. Add `kern/partition.c', `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'. (grub_emu_SOURCES): Likewise. (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'. (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES) (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c', `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'. (grubof_SOURCES): Likewise. * disk/i386/pc/partition.c: File removed. * disk/powerpc/ieee1275/partition.c: Likewise. * include/grub/powerpc/ieee1275/partition.h: Likewise. * include/grub/i386/pc/partition.h: Likewise. * kern/partition.c: New file. * partmap/amiga.c: Likewise. * partmap/apple.c: Likewise. * partmap/pc.c: Likewise. * include/grub/partition.h: Likewise.. * include/grub/pc_partition.h: Likewise. * util/grub-emu.c: Include instead of . (main): Call `grub_pc_partition_map_init', `grub_amiga_partition_map_init' and `grub_apple_partition_map_init' and deinitialize afterwards. * util/i386/pc/biosdisk.c: Include `#include ' and `include ' instead of `'. * util/i386/pc/grub-setup.c: Likewise. * util/i386/pc/biosdisk.c: Likewise. (grub_util_biosdisk_get_grub_dev): Only access the PC specific partition information in case of a PC partition. * util/i386/pc/grub-setup.c: Include `#include ' and `include ' instead of `'. (setup): Only access the PC specific partition information in case of a PC partition. 2004-11-17 Hollis Blanchard * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function. (grub_longjmp): Likewise. * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to 20. * normal/powerpc/setjmp.S: New file. * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add `normal/powerpc/setjmp.S'. (grubof_CFLAGS): Add `-DGRUBOF'. * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to [GRUB_UTIL && !GRUBOF]. 2004-11-16 Marco Gerards * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any property named `name'. Correctly handle the error returned by `grub_ieee1275_finddevice' if a device can not be opened. 2004-11-02 Hollis Blanchard * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test `actual' for negativity. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove kern/fshelp.c. 2004-11-01 Marco Gerards * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350. (PAGE_OFFSET): New macro. (CRTC_ADDR_PORT): Likewise. (CRTC_DATA_PORT): Likewise. (START_ADDR_HIGH_REGISTER): Likewise. (START_ADDR_LOW_REGISTER): Likewise. (GRAPHICS_ADDR_PORT): Likewise. (GRAPHICS_DATA_PORT): Likewise. (READ_MAP_REGISTER): Likewise. (INPUT_STATUS1_REGISTER): Likewise. (INPUT_STATUS1_VERTR_BIT): Likewise. (page): New variable. (wait_vretrace): New function. (set_read_map): Likewise. (set_start_address): Likewise. (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to the right page. (check_vga_mem): Take the page into account. (write_char): Likewise. (write_cursor): Likewise. (scroll_up): Likewise. Copy the page to the page that is not shown and switch between both pages. (grub_vga_putchar): Fix off by one error. (grub_vga_cls): Wait for the vertical retrace. Take the page into account. 2004-11-01 Marco Gerards Add support for iso9660 (including rockridge). * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c. (iso9660_mod_SOURCES): New variable. (iso9660_mod_CFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c. * include/grub/fs.h (grub_iso9660_init): New prototype. * util/grub-emu.c (main): Call `grub_iso9660_init'. * fs/iso9660.c: New file. * include/grub/misc.h (grub_strncat): New prototype. * kern/misc.c (grub_strncat): New function. * fs/hfs.c (grub_hfs_mount): Translate the error `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'. * fs/jfs.c (grub_jfs_mount): Likewise. * fs/ufs.c (grub_ufs_mount): Likewise. 2004-10-28 Hollis Blanchard * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements which initialized BAT registers. * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN, grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON): Move from here... * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN, grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON): ... to here. * kern/powerpc/ieee1275/openfw.c (grub_map): New function. (grub_mapclaim): Likewise. * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by hand. 2004-10-19 Hollis Blanchard * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin. (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add -ffreestanding and -msoft-float. 2004-10-15 Hollis Blanchard * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is set in grub_ieee1275_flags. 2004-10-14 Hollis Blanchard * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function prototype. * kern/powerpc/ieee1275/init.c (grub_machine_init): Call grub_console_init first. Change the memory range used for grub_ieee1275_claim and grub_mm_init_region. Print an error message if the claim fails. Include . 2004-10-13 Hollis Blanchard * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate): Call grub_children_iterate for device nodes of type `scsi', `ide', or `ata'. (grub_ofdisk_open): Remove manual device alias resolution. Fix memory leak when device cannot be opened. * include/grub/powerpc/ieee1275/ieee1275.h (grub_children_iterate): New prototype. * kern/powerpc/ieee1275/openfw.c (grub_children_iterate): New function. * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property): Return -1 if args.size was -1. 2004-10-11 Hollis Blanchard * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global. (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim Open Firmware's memory for it; claim memory from _start to _end. * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern. (_end): New extern. (_start): Zero BSS from __bss_start to _end. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags): New extern. (GRUB_IEEE1275_NO_PARTITION_0): New #define. 2004-10-11 Hollis Blanchard * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return -1 if args.base was -1. 2004-10-08 Hollis Blanchard * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI escape sequence instead of a literal ^L. Also call grub_ofconsole_gotoxy. 2004-10-03 Hollis Blanchard * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change void * arguments to grub_addr_t. All callers updated. Also make the `result' argument optional. (grub_ieee1275_release): change void * arguments to grub_addr_t. All callers updated. 2004-09-22 Hollis Blanchard * commands/ls.c (grub_ls_list_files): Use the string following the initial ')', if present, as the filesystem path. * kern/rescue.c (grub_rescue_cmd_ls): Likewise. * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first. 2004-09-18 Yoshinori K. Okuji Make the source code of the menu interface more readable. * normal/menu.c: Include grub/mm.h. (TERM_WIDTH): New macro. (TERM_HEIGHT): Likewise. (TERM_INFO_HEIGHT): Likewise. (TERM_MARGIN): Likewise. (TERM_SCROLL_WIDTH): Likewise. (TERM_TOP_BORDER_Y): Likewise. (TERM_LEFT_BORDER_X): Likewise. (TERM_BORDER_WIDTH): Likewise. (TERM_MESSAGE_HEIGHT): Likewise. (TERM_BORDER_HEIGHT): Likewise. (TERM_NUM_ENTRIES): Likewise. (TERM_FIRST_ENTRY_Y): Likewise. (TERM_ENTRY_WIDTH): Likewise. (TERM_CURSOR_X): Likewise. (draw_border): Use macros instead of magic numbers. (print_entry): Likewise. (print_entries): Likewise. (run_menu): Likewise. Also, handle the key 'e'. (run_menu_entry): Ignore empty command lines. (print_message): Added a new argument EDIT. If EDIT is true, print a different message. (init_page): Likewise. (edit_menu_entry): New function. Not implemented yet. 2004-09-17 Marco Gerards Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels can be loaded from normal mode. * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and `multiboot.mod'. (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES) (multiboot_mod_CFLAGS): New variables. * loader/i386/pc/linux_normal.c: New file. * loader/i386/pc/multiboot_normal.c: Likewise. * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the attribute `unused'. * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use `fdiro' to read the mode information from instead of `diro'. * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after looking up a symlink. * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New macro. * normal/command.c (grub_command_execute): Don't parse the arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the flags of the command. * normal/menu.c (grub_menu_run): Fix typo. 2004-09-14 Hollis Blanchard * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware. * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use `y + 1' instead of `y - 1'. * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'. 2004-09-14 Yoshinori K. Okuji From Hollis Blanchard : * kern/misc.c (memmove): New alias for grub_memmove. (memcmp): New alias for grub_memcmp. (memset): New alias for grub_memset. * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property): Change "int handle" to "grub_ieee1275_phandle_t handle". * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_get_property): Likewise. 2004-09-12 Tomas Ebenlendr Added normal mode command `chainloader' as module chain.mod, which depends on normal.mod and _chain.mod. * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'. (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added. * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader): Deleted prototype. * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All but arguments parsing moved to ... (grub_chainloader_cmd): ... here. New function. * include/grub/i386/pc/chainloader.h: New file. * loader/i386/pc/chainloader_normal.c: Likewise. 2004-09-11 Marco Gerards * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c. (grub_mkimage_LDFLAGS): Likewise. (grub_emu_SOURCES): Likewise. (kernel_img_HEADERS): Added fshelp.h. * fs/ext2.c: Include . (FILETYPE_REG): New macro. (FILETYPE_INO_REG): Likewise. (grub_ext_sblock): Renamed to `grub_ext2_sblock'. Changed all users. (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed all users. (grub_fshelp_node): New struct. (grub_ext2_data): Added member `diropen'. Changed member `inode' to a pointer. (grub_ext2_get_file_block): Removed function. (grub_ext2_read_block): New function. (grub_ext2_read_file): Replaced parameter `data' by `node'. This function was written. (grub_ext2_mount): Read the root inode. Create a diropen struct. (grub_ext2_find_file): Removed function. (grub_ext2_read_symlink): New function. (grub_ext2_iterate_dir): Likewise. (grub_ext2_open): Rewritten. (grub_ext2_dir): Rewritten. * include/grub/fshelp.h: New file. * fs/fshelp.c: Likewise. 2004-09-10 Yoshinori K. Okuji * normal/menu.c: Include grub/loader.h and grub/machine/time.h. (print_message): Add a missing newline. (run_menu): Added timeout support. (run_menu_entry): New local function. (grub_menu_run): Added support for booting. * kern/loader.c (grub_loader_is_loaded): New function. * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h. (grub_get_rtc): Exported. * include/grub/i386/pc/time.h: Include grub/symbol.h. (grub_get_rtc): Exported. * include/grub/normal.h (struct grub_command_list): Remove constant from the member `command'. * include/grub/loader.h (grub_loader_is_loaded): Declared. * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant. * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h. 2004-08-28 Marco Gerards Add support for the JFS filesystem. * fs/jfs.c: New file. * include/grub/fs.h (grub_jfs_init): New prototype. (grub_jfs_fini): New prototype. * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c. (grub_emu_SOURCES): Likewise. (pkgdata_MODULES): Add jfs.mod. (jfs_mod_SOURCES): New variable. (jfs_mod_CFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c. (grubof_SOURCES): Likewise. * util/grub-emu.c (main): Initialize and deinitialize JFS support. * fs/fat.c (grub_fat_find_dir): Convert the filename little endian to the host endian. (grub_fat_utf16_to_utf8): Move function from there... * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert the endianness of the source string anymore. * include/grub/misc.h (grub_utf16_to_utf8): New prototype. 2004-08-24 Marco Gerards * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional. (grub_boot_fini) [GRUB_UTIL]: Likewise. (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise. (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise. * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'. (grub_hfs_iterate_dir): Make the function static. Add prototypes for `node_found' and `it_dir'. (grub_hfs_dir): Add prototype for `dir_hook'. * fs/minix.c (grub_minix_get_file_block): Add prototype for `grub_get_indir'. Rename `indir' in two blocks to `indir16' and `indir32' to silence a gcc warning. * include/grub/fs.h (grub_hfs_init): New prototype. (grub_hfs_fini): Likewise. 2004-08-21 Yoshinori K. Okuji Each disk device has its own id now. This is useful to make use of multiple disk devices. * include/grub/disk.h (grub_disk_dev_id): New enum. (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant. (GRUB_DISK_DEVICE_OFDISK_ID): Likewise. * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify GRUB_DISK_DEVICE_BIOSDISK_ID as an id. * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify GRUB_DISK_DEVICE_OFDISK_ID as an id. * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify GRUB_DISK_DEVICE_BIOSDISK_ID as an id. * include/grub/disk.h (struct grub_disk_dev): Added a new member "id" which is used by the cache manager. * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead of just "GRUB". 2004-08-18 Marco Gerards * fs/hfs.c: New file. * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c. (grub_emu_SOURCES): Likewise. (pkgdata_MODULES): Add hfs.mod. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c. (grubof_SOURCES): Likewise. * util/grub-emu.c (main): Initialize and deinitialize HFS support. * include/grub/misc.h (grub_strncasecmp): Add prototype. * kern/misc.c (grub_strncasecmp): Add function. 2004-08-14 Marco Gerards * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro with parentheses. * fs/ext2.c (FILETYPE_UNKNOWN): New macro. (grub_ext2_dir): In case the directory entry type is unknown, read it from the inode. 2004-08-02 Peter Bruin * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass grub_load_linux instead of grub_rescue_cmd_linux as second argument of grub_rescue_register_command. * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk. 2004-07-27 Marco Gerards * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New function. * commands/boot.c: Remove the check for `GRUB_UTIL'. * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add `loader/powerpc/ieee1275/linux.c', `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'. * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_release): New prototype. * include/grub/powerpc/ieee1275/loader.h: Rewritten. * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize normal, boot, linux and linux_normal. * loader/powerpc/ieee1275/linux.c: New file. * loader/powerpc/ieee1275/linux_normal.c: Likewise. 2004-07-12 Marco Gerards * normal/arg.c (grub_arg_parse): Correct error handling after reallocating the argumentlist (check if `argl' is not null instead of checking if `args' is not null). * kern/mm.c (grub_realloc): Return the same pointer when using the same region, instead of returning the header address. 2004-07-11 Marco Gerards * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip one block instead of two when looking for the initial partition. (grub_partition_probe): Initialize the local variable `p' with 0. Use base 10 for the grub_strtoul call. * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the need for one local variable. (grub_strtoul): Don't add the new value to `num', instead of that just assign it. 2004-07-11 Marco Gerards * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img. (pxeboot_img_SOURCES): New variable. (pxeboot_img_ASFLAGS): Likewise. (pxeboot_img_LDFLAGS): Likewise. * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy . 2004-06-27 Tomas Ebenlendr * kern/rescue.c (grub_enter_rescue_mode): Don't continue when there was no input. 2004-06-27 Tomas Ebenlendr * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed the history buffer logic. 2004-06-27 Tomas Ebenlendr * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY) (FILETYPE_INO_SYMLINK): New macros. (grub_ext2_find_file): Check if the node is a directory using the inode stat information instead of using the filetype in the dirent. Exclude the first character of an absolute symlink. (grub_ext2_dir): Mask out the filetype part of the mode member of the inode. 2004-05-24 Marco Gerards Add support for UFS version 1 and 2. Add support for the minix filesystem version 1 and 2, both the variants with 14 and 30 long filenames. * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and fs/minix.c. (grub_emu_SOURCES): Likewise. (pkgdata_MODULES): Add ufs.mod and minix.mod. (ufs_mod_SOURCES): New variable. (ufs_mod_CFLAGS): Likewise. (minix_mod_SOURCES): Likewise. (minix_mod_CFLAGS): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and fs/minix.c. (grubof_SOURCES): Likewise. * fs/ufs.c: New file. * fs/minix.c: New file. * include/grub/fs.h (grub_ufs_init): New prototype. (grub_ufs_fini): Likewise. (grub_minix_init): Likewise. (grub_minix_fini): Likewise. * util/grub-emu.c (main): Initialize and deinitialize UFS and minix fs. 2004-04-30 Jeroen Dekkers * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c, commands/ls.c, commands/terminal.c, commands/boot.c, commands/cmp.c and commands/cat.c. (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc. * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of "env.h" 2004-04-04 Yoshinori K. Okuji All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_ and grub_, respectively. Because the conversion is trivial and mechanical, I omit the details here. Please refer to the CVS if you need more information. 2004-04-04 Yoshinori K. Okuji * include/pupa: Renamed to ... * include/grub: ... this. * util/i386/pc/pupa-mkimage.c: Renamed to ... * util/i386/pc/grub-mkimage.c: ... this. * util/i386/pc/pupa-setup.c: Renamed to ... * util/i386/pc/grub-setup.c: ... this. * util/pupa-emu.c: Renamed to ... * util/grub-emu.c: ... this. 2004-03-29 Marco Gerards Add support for the newworld apple macintosh (PPC). This has been tested on the powerbook 2000 only. It only adds support for generic ieee1275 functions, console and disk support. This should be easy to port to other architectures with support for Open Firmware. * configure.ac: Accept the powerpc as host_cpu. In the case of the powerpc cpu set the host_vendor to ieee1275. Make sure the i386 specific tests are only executed while building for the i386. Inverse test for crosscompile. * genmk.rb (Utility): Allow assembler files. * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno. * conf/powerpc-ieee1275.rmk: New file. * disk/powerpc/ieee1275/ofdisk.c: Likewise. * disk/powerpc/ieee1275/partition.c: Likewise. * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise. * include/pupa/powerpc/ieee1275/console.h: Likewise. * include/pupa/powerpc/ieee1275/partition.h: Likewise. * include/pupa/powerpc/ieee1275/time.h: Likewise. * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise. * include/pupa/powerpc/ieee1275/multiboot.h: Likewise. * include/pupa/powerpc/ieee1275/loader.h * include/pupa/powerpc/setjmp.h: Likewise. * include/pupa/powerpc/types.h: Likewise. * kern/powerpc/ieee1275/init.c: Likewise. * kern/powerpc/ieee1275/openfw.c: Likewise. * term/powerpc/ieee1275/ofconsole.c: Likewise. These files were written by Johan Rydberg (jrydberg@night.trouble.net) and I only modified them slightly. * boot/powerpc/ieee1275/cmain.c: New file. * boot/powerpc/ieee1275/crt0.S: Likewise. * boot/powerpc/ieee1275/ieee1275.c: Likewise. * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise. 2004-03-14 Jeroen Dekkers * Makefile.in: Update copyright. * genmodsrc.sh: Likewise. * gensymlist.sh: Likewise. * term/i386/pc/vga.c: Indent correctly. * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as bugreporting address. * util/i386/pc/pupa-setup.c (usage): Likewise, (main): Call pupa_ext2_init and pupa_ext2_fini. * fs/fat.c (log2): Renamed to ... (fat_log2): ... this. All callers changed. * kern/misc.c (memcpy): Alias to pupa_memmove. * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix lvalue cast. * util/console.c (pupa_ncurses_fini): Return 0. * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]: Move fail label here. [__GNU__]: Don't warn when using stat. (open_device)[!__linux__]: Check if FD < 0 instead of !FD. (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to long int. Use strtol instead of strtoul. 2004-03-14 Marco Gerards * commands/boot.c: New file. * commands/cat.c: Likewise. * commands/cmp.c: Likewise. * commands/ls.c: Likewise. * commands/terminal.c: Likewise. * normal/command.c: Include and . (pupa_register_command): Changed interface to match the new argument parser. (pupa_command_execute): Changed (almost rewritten) so it uses pupa_split_command. Added support for setting variables using the syntax `foo=bar'. (rescue_command): Changed to work with the new argument parser. (terminal_command): Moved from here to commands/terminal.c. (set_command): New function. (unset_command): New function. (insmod_command): New function. (rmmod_command): New function. (lsmod_command): New function. (pupa_command_init): Don't initialize the command terminal anymore. Initialize the commands set, unset, insmod, rmmod and lsmod. * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c. (kernel_img_HEADERS): Add arg.h and env.h. (pupa_mkimage_LDFLAGS): Add kern/env.c. (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c, commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c, normal/arg.c. (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and terminal.mod. (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c. (boot_mod_SOURCES): New variable. (terminal_mod_SOURCES): Likewise. (ls_mod_SOURCES): Likewise. (cmp_mod_SOURCES): Likewise. (cat_mod_SOURCES): Likewise. * normal/arg.c: New file. * kern/env.c: Likewise. * include/pupa/arg.h: Likewise. * include/pupa/env.h: Likewise. * font/manager.c (font_command): Changed to match argument parsing interface changes. (PUPA_MOD_INIT): Likewise. * hello/hello.c (pupa_cmd_hello): Likewise. (PUPA_MOD_INIT): Likewise. * include/pupa/disk.h: Include . (pupa_print_partinfo): New prototype. * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed. (pupa_dl_get_prefix): Likewise. * include/pupa/misc.h: Include . (pupa_isgraph): New prototype. (pupa_isdigit): Likewise. (pupa_split_cmdline): Likewise. * include/pupa/normal.h: Include . (pupa_command): Changed the prototype of the member `func' to match the argument parsing interface. Added member `options'. (pupa_register_command): Updated to match function. (pupa_arg_parse): New prototype. (pupa_hello_init) [PUPA_UTIL]: New prototype. (pupa_hello_fini) [PUPA_UTIL]: Likewise. (pupa_ls_init) [PUPA_UTIL]: Likewise. (pupa_ls_fini) [PUPA_UTIL]: Likewise. (pupa_cat_init) [PUPA_UTIL]: Likewise. (pupa_cat_fini) [PUPA_UTIL]: Likewise. (pupa_boot_init) [PUPA_UTIL]: Likewise. (pupa_boot_fini) [PUPA_UTIL]: Likewise. (pupa_cmp_init) [PUPA_UTIL]: Likewise. (pupa_cmp_fini) [PUPA_UTIL]: Likewise. (pupa_terminal_init) [PUPA_UTIL]: Likewise. (pupa_terminal_fini) [PUPA_UTIL]: Likewise. * kern/disk.c: Include . (pupa_print_partinfo): New function. * kern/dl.c: Include . (pupa_dl_dir): Variable removed. (pupa_dl_load): Use the environment variable `prefix' instead of the variable pupa_dl_dir. (pupa_dl_set_prefix): Function removed. (pupa_dl_get_prefix): Likewise. * kern/i386/pc/init.c: Include . (pupa_machine_init): Use the environment variable `prefix' instead of using pupa_dl_set_prefix to set the prefix. * kern/main.c: Include . (pupa_set_root_dev): Use the environment variable `prefix' instead of using pupa_dl_get_prefix to get the prefix. * kern/misc.c: Include . (pupa_isdigit): New function. (pupa_isgraph): Likewise. (pupa_ftoa): Likewise. (pupa_vsprintf): Added support for printing values of the type `double'. Make it possible to format variable output when using formatting like `%1.2%f'. (pupa_split_cmdline): New function. * kern/rescue.c: Include . (next_word): Removed function. (pupa_rescue_cmd_prefix): Likewise. (pupa_rescue_cmd_set): New function. (pupa_rescue_cmd_unset): New function. (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to split the command line instead of splitting it here. Added support for setting variables using the syntax `foo=bar'. Don't initialize the prefix command anymore. Initialized the set and unset commands. * normal/cmdline.c: Include . (pupa_tab_complete): Added prototypes for print_simple_completion, print_partition_completion, add_completion, iterate_commands, iterate_dev, iterate_part and iterate_dir. Moved code to print partition information from here to kern/disk.c. (pupa_cmdline_run): Don't check if the function exists anymore. * normal/main.c: Include . (pupa_rescue_cmd_normal): Use the environment variable `prefix' instead of using pupa_dl_get_prefix to get the prefix. * term/i386/pc/vga.c: Include . (check_vga_mem): Cast pointers to `void *' to silence a gcc warning. (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case. (pupa_vga_setcolor): Declare unused variables with `__attribute__ ((unused))' to silence a gcc warning. (pupa_vga_setcolor): Likewise. (debug_command): Changed to match argument parsing interface changes. * util/pupa-emu.c: Include . (options): Added 0's for unused fields to silence a gcc warning. (argp): Likewise. (main): Use the environment variable `prefix' instead of using pupa_dl_set_prefix to set the prefix. Initialize the commands ls, boot, cmp, cat and terminal. Finish the commands boot, cmp, cat and terminal. * util/i386/pc/getroot.c: Include . * util/misc.c: Include . (pupa_malloc): Rewritten so errors are correctly reported. (pupa_realloc): Likewise. (pupa_memalign): Likewise. (pupa_mm_init_region): Declare unused variables with `__attribute__ ((unused))' to silence a gcc warning. * normal/i386/setjmp.S: Remove tab at the end of the file to silence a gcc warning. * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused variables with `__attribute__ ((unused))' to silence a gcc warning. * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the local variable i unsigned to silence a gcc warning. * kern/term.c: Include . (pupa_more_lines): New variable. (pupa_more): Likewise. (pupa_putcode): When the pager is active pause at the end of every screen. (pupa_set_more): New function. * include/pupa/term.h (pupa_set_more): New prototype. 2004-03-07 Yoshinori K. Okuji Now this project is GRUB 2 rather than PUPA. The location of the CVS repository was moved to GRUB's. * configure.ac: Use bug-grub as the reporting address. Use GRUB instead of PUPA. Change the version number to 1.90. 2004-02-24 Yoshinori K. Okuji * genkernsyms.sh: Updated copyright information. * genmk.rb: Likewise. * genmodsrc.sh: Likewise. * gensymlist.sh: Likewise. * boot/i386/pc/boot.S: Likewise. * boot/i386/pc/diskboot.S: Likewise. * disk/i386/pc/biosdisk.c: Likewise. * disk/i386/pc/partition.c: Likewise. * font/manager.c: Likewise. * fs/ext2.c: Likewise. * fs/fat.c: Likewise. * include/pupa/boot.h: Likewise. * include/pupa/device.h: Likewise. * include/pupa/disk.h: Likewise. * include/pupa/dl.h: Likewise. * include/pupa/elf.h: Likewise. * include/pupa/err.h: Likewise. * include/pupa/file.h: Likewise. * include/pupa/font.h: Likewise. * include/pupa/fs.h: Likewise. * include/pupa/kernel.h: Likewise. * include/pupa/loader.h: Likewise. * include/pupa/misc.h: Likewise. * include/pupa/mm.h: Likewise. * include/pupa/net.h: Likewise. * include/pupa/normal.h: Likewise. * include/pupa/rescue.h: Likewise. * include/pupa/setjmp.h: Likewise. * include/pupa/symbol.h: Likewise. * include/pupa/term.h: Likewise. * include/pupa/types.h: Likewise. * include/pupa/i386/setjmp.h: Likewise. * include/pupa/i386/types.h: Likewise. * include/pupa/i386/pc/biosdisk.h: Likewise. * include/pupa/i386/pc/boot.h: Likewise. * include/pupa/i386/pc/console.h: Likewise. * include/pupa/i386/pc/init.h: Likewise. * include/pupa/i386/pc/kernel.h: Likewise. * include/pupa/i386/pc/linux.h: Likewise. * include/pupa/i386/pc/loader.h: Likewise. * include/pupa/i386/pc/memory.h: Likewise. * include/pupa/i386/pc/multiboot.h: Likewise. * include/pupa/i386/pc/partition.h: Likewise. * include/pupa/i386/pc/time.h: Likewise. * include/pupa/i386/pc/vga.h: Likewise. * include/pupa/i386/pc/util/biosdisk.h: Likewise. * include/pupa/util/getroot.h: Likewise. * include/pupa/util/misc.h: Likewise. * include/pupa/util/resolve.h: Likewise. * kern/device.c: Likewise. * kern/disk.c: Likewise. * kern/dl.c: Likewise. * kern/err.c: Likewise. * kern/file.c: Likewise. * kern/fs.c: Likewise. * kern/loader.c: Likewise. * kern/main.c: Likewise. * kern/misc.c: Likewise. * kern/mm.c: Likewise. * kern/rescue.c: Likewise. * kern/term.c: Likewise. * kern/i386/dl.c: Likewise. * kern/i386/pc/init.c: Likewise. * kern/i386/pc/lzo1x.S: Likewise. * kern/i386/pc/startup.S: Likewise. * loader/i386/pc/chainloader.c: Likewise. * loader/i386/pc/linux.c: Likewise. * loader/i386/pc/multiboot.c: Likewise. * normal/cmdline.c: Likewise. * normal/command.c: Likewise. * normal/main.c: Likewise. * normal/menu.c: Likewise. * normal/i386/setjmp.S: Likewise. * term/i386/pc/console.c: Likewise. * term/i386/pc/vga.c: Likewise. * util/console.c: Likewise. * util/genmoddep.c: Likewise. * util/misc.c: Likewise. * util/pupa-emu.c: Likewise. * util/resolve.c: Likewise. * util/unifont2pff.rb: Likewise. * util/i386/pc/biosdisk.c: Likewise. * util/i386/pc/getroot.c: Likewise. * util/i386/pc/pupa-mkimage.c: Likewise. * util/i386/pc/pupa-setup.c: Likewise. 2004-02-15 Jeroen Dekkers * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before reading and reset it after reading. (pupa_ext2_close): Return PUPA_ERR_NONE. * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS): Correct value. (struct linux_kernel_header): Add kernel_version and initrd_addr_max. * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether pupa_file_read succeeds. (pupa_rescue_cmd_initrd): Implement. 2003-12-03 Marco Gerards * fs/ext2.c (pupa_ext2_label): New function. (pupa_ext2_fs): Added label. * fs/fat.c (pupa_fat_label): New function. (pupa_fat_fs): Added label. * include/pupa/fs.h (struct pupa_fs): Added prototype label. * kern/misc.c (pupa_strndup): New function. * include/pupa/misc.h (pupa_strndup): New prototype. * include/pupa/normal.h: Include . (pupa_set_history): New prototype. (pupa_iterate_commands): New prototype. * normal/cmdline.c: Include , , . (hist_size): New variable. (hist_lines): Likewise. (hist_end): Likewise. (hist_used): Likewise. (pupa_set_history): New function. (pupa_history_get): Likewise. (pupa_history_add): Likewise. (pupa_history_replace): Likewise. (pupa_tab_complete): Likewise. (pupa_cmdline_run): Added tab completion and history buffer. Tab completion shows partitionnames while completing partitions, this feature was suggested by Jeff Bailey. * normal/command.c (pupa_iterate_commands): New function. * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro. (pupa_normal_init): Initialize history buffer. (PUPA_MOD_INIT): Likewise. (pupa_normal_fini): Free the history buffer. (PUPA_MOD_FINI): Likewise. * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace key. * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN. * configure.ac [i386]: Check for regparam bug. (NESTED_FUNC_ATTR) [! i386]: Defined. 2003-11-17 Marco Gerards * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu. (pupa_setup_SOURCES): Added util/i386/pc/getroot.c. (pupa_emu_SOURCES): New variable. (pupa_emu_LDFLAGS): Likewise. * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype. (pupa_ext2_fini) [PUPA_UTIL]: Likewise. * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise. (pupa_normal_fini) [PUPA_UTIL]: Likewise. * include/pupa/setjmp.h [PUPA_UTIL]: Include . (pupa_jmp_buf): New typedef. (pupa_setjmp) [PUPA_UTIL]: New macro. (pupa_longjmp) [PUPA_UTIL]: Likewise. * include/pupa/term.h (struct pupa_term): New member `refresh'. (pupa_refresh): New prototype. * include/pupa/util/getroot.h: New file. * kern/misc.c (pupa_vsprintf): Refresh the screen after updating it. * kern/rescue.c (pupa_rescue_get_command_line): Likewise. (pupa_rescue_cmd_cat): Likewise. (pupa_rescue_cmd_ls): Likewise. (pupa_rescue_cmd_testload): Likewise. (pupa_rescue_cmd_lsmod): Likewise. * normal/cmdline.c (pupa_cmdline_get): Likewise. * normal/menu.c (run_menu): Likewise. * kern/term.c (pupa_cls): Likewise. (pupa_refresh): New function. * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function. (pupa_normal_fini) [PUPA_UTIL]: Likewise. * util/console.c: New file. * util/i386/pc/getroot.c: New file. * util/i386/pc/pupa-setup.c: Include . (pupa_putchar): New function. (pupa_refresh): Likewise. (xgetcwd): Function moved to ... (strip_extra_slashes): Likewise. (get_prefix): Likewise. * util/i386/pc/getroot.c: ... here. (find_root_device): Function moved and renamed to... * util/i386/pc/getroot.c (pupa_find_root_device): ... here. Changed all callers. * util/i386/pc/pupa-setup.c (guess_root_device): Function moved and renamed to... * util/i386/pc/getroot.c (pupa_guess_root_device): ... here. Changed all callers. * util/misc.c (pupa_memalign): New function. (pupa_mm_init_region): Likewise. (pupa_register_exported_symbols): Likewise. (pupa_putchar): Function removed. * util/pupa-emu.c: New file. 2003-11-16 Jeroen Dekkers * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod. (_multiboot_mod_SOURCES): New variable. (_multiboot_mod_CFLAGS): Likewise. * loader/i386/pc/multiboot.c: New file. * include/pupa/i386/pc/multiboot.h: Likewise. * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h. (pupa_multiboot_real_boot): New function. * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h. (pupa_multiboot_real_boot): New prototype. (pupa_rescue_cmd_multiboot): Likewise (pupa_rescue_cmd_module): Likewise. * kern/loader.c (pupa_loader_set): Continue when pupa_loader_unload_func() fails. (pupa_loader_unset): New function. * include/pupa/loader.h (pupa_loader_unset): New prototype. * kern/misc.c (pupa_stpcpy): New function. * include/pupa/misc.h (pupa_stpcpy): New prototype. 2003-11-12 Marco Gerards * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check for available extensions. * include/pupa/i386/pc/time.h: New file. * kern/disk.c: Include . (PUPA_CACHE_TIMEOUT): New macro. (pupa_last_time): New variable. (pupa_disk_open): Flush the cache when there was a timeout. (pupa_disk_close): Reset the timer. * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from pupa_currticks. * util/misc.c: Include (pupa_get_rtc): New function. 2003-11-09 Jeroen Dekkers * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks as blocks. (pupa_ext2_get_file_block): Use blocks member. * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the first block. Return -1 instead of pupa_errno on error. 2003-10-27 Marco Gerards * README: In the pupa-mkimage example use _chain instead of chain and ext2 instead of fat. * TODO: Replace ext2fs with jfs as an example. Add an item for adding journal playback for ext2fs. * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c. (pkgdata_MODULES): Added ext2.mod. (ext2_mod_SOURCES): New variable. (ext2_mod_CFLAGS): Likewise. * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP. * include/pupa/misc.h (pupa_strncpy): New prototype. (pupa_strcat): Likewise. (pupa_strncmp): Likewise. * kern/misc.c (pupa_strcat): Enable function. (pupa_strncpy): New function. (pupa_strncmp): Likewise. * fs/ext2.c: New file. * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE when the read failed before retrying. * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed. (_FILE_OFFSET_BITS): Likewise. * configure.ac: Added AC_SYS_LARGEFILE. 2003-09-25 Yoshinori K. Okuji * genmk.rb (PModule#rule): Make sure to get only symbol names from the output of nm. Reported by Robert Millan . 2003-09-25 Yoshinori K. Okuji I forgot to check in these changes for a long time. This adds incomplete support for VGA console, and this is still very buggy. Also, a lot of consideration is required for I18N, UNICODE, and VGA font issues. Therefore, assume that this is such that "better than nothing". * font/manager.c: New file. * include/pupa/font.h: Likewise. * include/pupa/i386/pc/vga.h: Likewise. * term/i386/pc/vga.c: Likewise. * util/unifont2pff.rb: Likewise. * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h. (pkgdata_MODULES): Added vga.mod and font.mod. (vga_mod_SOURCES): New variables. (vga_mod_CFLAGS): Likewise. (font_mod_SOURCES): Likewise. (font_mod_CFLAGS): Likewise. * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant. * include/pupa/term.h: Include pupa/err.h. (struct pupa_term): Added init and fini. Changed the argument of putchar to pupa_uint32_t. * include/pupa/i386/pc/console.h: Include pupa/symbol.h. (pupa_console_real_putchar): New prototype. (pupa_console_putchar): Removed. (pupa_console_checkkey): Exported. (pupa_console_getkey): Likewise. * kern/misc.c (pupa_vsprintf): Add support for UNICODE characters. * kern/term.c (pupa_term_set_current): Rewritten. (pupa_putchar): Likewise. (pupa_putcode): New function. * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ... (pupa_console_real_putchar): ... this. (pupa_vga_set_mode): New function. (pupa_vga_get_font): Likewise. * normal/command.c: Include pupa/term.h. (terminal_command): New function. (pupa_command_init): Register the command "terminal". * normal/menu.c (DISP_LEFT): Changed to a UNICODE value. (DISP_UP): Likewise. (DISP_RIGHT): Likewise. (DISP_DOWN): Likewise. (DISP_HLINE): Likewise. (DISP_VLINE): Likewise. (DISP_UL): Likewise. (DISP_UR): Likewise. (DISP_LL): Likewise. (DISP_LR): Likewise. * term/i386/pc/console.c (pupa_console_putchar): New function. 2003-02-08 NIIBE Yutaka * util/resolve.c (pupa_util_resolve_dependencies): BUG FIX. Reverse the path_list. * include/pupa/normal.h: Export pupa_register_command and pupa_unregister_command. * hello/hello.c (pupa_cmd_hello): New module. * conf/i386-pc.rmk: Added hello.mod. 2003-01-31 Yoshinori K. Okuji * kern/i386/pc/lzo1x.S: New file. * util/i386/pc/pupa-mkimage.c: Include lzo1x.h. (compress_kernel): New variable. (generate_image): Heavily modified to support compressing a large part of the core image. * util/misc.c (pupa_util_read_image): Fix a file descriptor leak. (pupa_util_load_image): New function. * kern/i386/pc/startup.S: Include pupa/machine/kernel.h. (pupa_compressed_size): New variable. (codestart): Enable Gate A20 here. Decompress the compressed part of the core image. Rearrange the code to put functions and variables which are required for initialization in the non-compressed part. Include lzo1x.S. * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20 here. * include/pupa/util/misc.h (pupa_util_write_image): Declared. * include/pupa/i386/pc/kernel.h (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro. (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4. (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise. (PUPA_KERNEL_MACHINE_PREFIX): Likewise. (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro. * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable. * genmk.rb (Image#rule): Put LDFLAGS at the end of a line. (Utility#rule): Likewise. * configure.ac: Check if LZO is available. 2003-01-20 Yoshinori K. Okuji * include/pupa/normal.h: New file. * include/pupa/setjmp.h: Likewise. * include/pupa/i386/setjmp.h: Likewise. * normal/cmdline.c: Likewise. * normal/command.c: Likewise. * normal/main.c: Likewise. * normal/menu.c: Likewise. * normal/i386/setjmp.S: Likewise. * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global. (pupa_rescue_cmd_initrd): Likewise. * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader): Likewise. * kern/i386/pc/startup.S (translation_table): New variable. (translate_keycode): New function. (pupa_console_getkey): Call translate_keycode. * kern/rescue.c (attempt_normal_mode): New function. (pupa_enter_rescue_mode): Attempt to execute the normal mode. If it failed, print a message. * kern/mm.c (pupa_real_malloc): Print more information when a free magic is broken. (pupa_free): If the first free header is not free actually, set it to P. * kern/main.c (pupa_load_normal_mode): Just load the module "normal". (pupa_main): Don't print the message "Entering into rescue mode..." here. * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd): Declared. (pupa_rescue_cmd_initrd): Likewise. (pupa_rescue_cmd_initrd): Likewise. * include/pupa/symbol.h (FUNCTION): Specify the type. (VARIABLE): Likewise. * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_UNKNOWN_COMMAND. * include/pupa/dl.h (pupa_dl_set_prefix): Exported. (pupa_dl_get_prefix): Likewise. * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod. Added _chain.mod and _linux.mod instead of chain.mod and linux.mod. (chain_mod_SOURCES): Renamed to ... (_chain_mod_SOURCES): ... this. (chain_mod_CFLAGS): Renamed to ... (_chain_mod_CFLAGS): ... this. (linux_mod_SOURCES): Renamed to ... (_linux_mod_SOURCES): ... this. (linux_mod_CFLAGS): Renamed to ... (_linux_mod_CFLAGS): ... this. (normal_mod_SOURCES): New variable. (normal_mod_CFLAGS): Likewise. (normal_mod_ASFLAGS): Likewise. 2003-01-18 Yoshinori K. Okuji * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if possible. * kern/dl.c (pupa_dl_ref): Refer depending modules recursively. (pupa_dl_unref): Unrefer depending modules recursively. Don't call pupa_dl_unload implicitly, because PUPA can crash if a module is unloaded before one depending on that module is unloaded. (pupa_dl_unload): Unload depending modules explicitly, if possible. 2003-01-17 Yoshinori K. Okuji * include/pupa/i386/pc/linux.h: New file. * loader/i386/pc/linux.c: Likewise. * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector): Removed. (pupa_chainloader_unload): Return PUPA_ERR_NONE. (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead of PUPA_CHAINLOADER_BOOT_SECTOR. * kern/i386/pc/startup.S: Include pupa/machine/linux.h. (pupa_linux_prot_size): New variable. (pupa_linux_tmp_addr): Likewise. (pupa_linux_real_addr): Likewise. (pupa_linux_boot_zimage): New function. (pupa_linux_boot_bzimage): Likewise. * kern/i386/pc/init.c (struct mem_region): New structure. (MAX_REGIONS): New macro. (mem_regions): New variable. (num_regions): Likewise. (pupa_os_area_addr): Likewise. (pupa_os_area_size): Likewise. (pupa_lower_mem): Likewise. (pupa_upper_mem): Likewise. (add_mem_region): New function. (compact_mem_regions): Likewise. (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to the size of the conventional memory and that of so-called upper memory (before the first memory hole). Instead of adding each found region to free memory, use add_mem_region and add them after removing overlaps. Also, add only 1/4 of the upper memory to free memory. The rest is used for loading OS images. Maybe this is ad hoc, but this makes it much easier to relocate OS images when booting. * kern/rescue.c (pupa_rescue_cmd_module): Removed. (pupa_enter_rescue_mode): Don't register initrd and module. * kern/mm.c: Include pupa/dl.h. * kern/main.c: Include pupa/file.h and pupa/device.h. * kern/loader.c (pupa_loader_load_module_func): Removed. (pupa_loader_load_module): Likewise. * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of ``.o''. * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared. (pupa_linux_tmp_addr): Likewise. (pupa_linux_real_addr): Likewise. (pupa_linux_boot_zimage): Likewise. (pupa_linux_boot_bzimage): Likewise. * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared. (pupa_upper_mem): Likewise. (pupa_gate_a20): Don't export, because turning off Gate A20 in a module is too dangerous. * include/pupa/loader.h (pupa_os_area_addr): Declared. (pupa_os_area_size): Likewise. (pupa_loader_set): Remove the first argument. Loader doesn't manage modules or initrd any longer. (pupa_loader_load_module): Removed. * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod. (linux_mod_SOURCES): New variable. (linux_mod_CFLAGS): Likewise. 2003-01-07 Yoshinori K. Okuji * util/i386/pc/pupa-setup.c (setup): Convert the endianness of the length of a blocklist correctly. * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]: Use ioctl only if the OS file is a block device. (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is not very useful for normal files. * kern/main.c (pupa_set_root_dev): New function. (pupa_load_normal_mode): Likewise. (pupa_main): Call those above. * include/pupa/types.h (pupa_swap_bytes16): Cast the result to pupa_uint16_t. * include/pupa/kernel.h (pupa_enter_normal_mode): Removed. 2003-01-06 Yoshinori K. Okuji * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h. (setup): Configure the installed partition information and the dl prefix. * loader/i386/pc/chainloader.c (my_mod): New variable. (pupa_chainloader_unload): New function. (pupa_rescue_cmd_chainloader): Refer itself. (PUPA_MOD_INIT): Save its own module in MY_MOD. * kern/i386/pc/startup.S (install_partition): Removed. (version_string): Likewise. (config_file): Likewise. (pupa_install_dos_part): New variable. (pupa_install_bsd_part): Likewise. (pupa_prefix): Likewise. (pupa_chainloader_real_boot): Call pupa_dl_unload_all. * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h and pupa/misc.h. (make_install_device): New function. (pupa_machine_init): Set the dl prefix. * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h. (buf): Renamed to ... (linebuf): ... this. (pupa_rescue_cmd_prefix): New function. (pupa_rescue_cmd_insmod): Likewise. (pupa_rescue_cmd_rmmod): Likewise. (pupa_rescue_cmd_lsmod): Likewise. (pupa_enter_rescue_mode): Register new commands: prefix, insmod, rmmod and lsmod. * kern/mm.c (pupa_memalign): If failed even after invalidating disk caches, unload unneeded modules and retry. * kern/misc.c (pupa_memmove): New function. (pupa_memcpy): Removed. (pupa_strcpy): New function. (pupa_itoa): Made static. * kern/dl.c (pupa_dl_iterate): New function. (pupa_dl_ref): Likewise. (pupa_dl_unref): Likewise. (pupa_dl_unload): Return if succeeded or not. (pupa_dl_unload_unneeded): New function. (pupa_dl_unload_all): Likewise. (pupa_dl_init): Renamed to ... (pupa_dl_set_prefix): ... this. (pupa_dl_get_prefix): New function. * include/pupa/i386/pc/kernel.h: Include pupa/types.h. (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro. (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise. (PUPA_KERNEL_MACHINE_PREFIX): Likewise. (pupa_install_dos_part): Declared. (pupa_install_bsd_part): Likewise. (pupa_prefix): Likewise. (pupa_boot_drive): Likewise. * include/pupa/types.h: Fix a typo. * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to pupa_memmove. (pupa_memmove): Declared. (pupa_strcpy): Likewise. * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now pupa_mod_init takes one argument, its own module. (pupa_dl_unload_unneeded): Declared. (pupa_dl_unload_all): Likewise. (pupa_dl_ref): Likewise. (pupa_dl_unref): Likewise. (pupa_dl_iterate): Likewise. (pupa_dl_init): Renamed to ... (pupa_dl_set_prefix): ... this. (pupa_dl_get_prefix): Declared. * fs/fat.c [!PUPA_UTIL] (my_mod): New variable. (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being unloaded. (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded. (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself. * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith, -Wmissing-prototypes, -Wundef and -Wstrict-prototypes. 2003-01-03 Yoshinori K. Okuji * util/i386/pc/pupa-setup.c (setup): Define the internal function find_first_partition_start at the top level, because GCC 3.0.x cannot compile internal functions in deeper scopes correctly. (find_root_device): Use lstat instead of stat. Don't follow symbolic links. Fix the path-constructing code. * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro. (pupa_util_biosdisk_open) [__linux__]: Get the size of a device by a BLKGETSIZE ioctl first, because block devices don't fill the member st_mode of the structure stat on Linux. [__linux__] (linux_find_partition): Use a temporary buffer REAL_DEV for the working space. Copy it to DEV before returning. (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the buffer cache consistent. (get_os_disk) [__linux__]: Use the length 5 instead of 4 for strncmp. The previous value was merely wrong. (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat. * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the FAT size is 12. The previous value was merely wrong. * kern/main.c (pupa_main): Don't split the starting message from newlines. * kern/term.c (pupa_putchar): Put CR after LF instead of before LF, because BIOS goes crazy about character attributes in this case. 2003-01-03 Yoshinori K. Okuji * include/i386/pc/util/biosdisk.h: New file. * util/i386/pc/biosdisk.c: Likewise. * util/i386/pc/pupa-setup.c: Likewise. * Makefile.in (INCLUDE_DISTFILES): Added include/pupa/i386/pc/util/biosdisk.h. (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the directory util/i386/pc. (install-local): Added a rule for sbin_UTILITIES. (uninstall): Likewise. * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc. * util/misc.c (xrealloc): New function. (pupa_malloc): Likewise. (pupa_free): Likewise. (pupa_realloc): Likewise. (pupa_stop): Likewise. (pupa_putchar): Likewise. * kern/disk.c (pupa_disk_read): Prevent L from underflowing. * include/pupa/util/misc.h (xrealloc): Declared. * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New macro. (PUPA_BOOT_MACHINE_BPBEND): Renamed to ... (PUPA_BOOT_MACHINE_BPB_END): ... this. * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared. [PUPA_UTIL] (pupa_fat_fini): Likewise. * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better way should be implemented. [PUPA_UTIL] (pupa_fat_fini): Likewise. * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase the size of NAME for safety. (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of 0x88. * conf/i386-pc.rmk (sbin_UTILITIES): New variable. (pupa_setup_SOURCES): Likewise. * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules. 2002-12-28 Yoshinori K. Okuji * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a bunch of pushl's from pusha, because this destroys the return value. 2002-12-28 Yoshinori K. Okuji Use -mrtd and -mregparm=3 to reduce the generated code sizes. This means that any missing prototypes could be fatal. Also, you must take care when writing assembly code. See the comments at the beginning of startup.S, for more details. * kern/i386/pc/startup.S (pupa_halt): Modified for the new compilation mechanism. (pupa_chainloader_real_boot): Likewise. (pupa_biosdisk_rw_int13_extensions): Likewise. (pupa_biosdisk_rw_standard): Likewise. (pupa_biosdisk_check_int13_extensions): Likewise. (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise. (pupa_biosdisk_get_diskinfo_standard): Likewise. (pupa_get_memsize): Likewise. (pupa_get_mmap_entry): Likewise. (pupa_console_putchar): Likewise. (pupa_console_setcursor): Likewise. (pupa_getrtsecs): Use pushl instead of push. * kern/i386/pc/init.c (pupa_machine_init): Use the scratch memory instead of the stack for a mmap entry, because some BIOSes may ignore the maximum size and overflow. * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3. * genmk.rb (PModule#rule): Compile automatically generated sources with module-specific CFLAGS as well as other sources. 2002-12-27 Yoshinori K. Okuji * configure.ac: Check ld. Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS respectively, before checking endianness and sizes. * Makefile.in (LD): New variable. 2002-12-27 Yoshinori K. Okuji * Makefile.in (BUILD_CC): CC -> BUILD_CC. 2002-12-27 Yoshinori K. Okuji * Changelog: New file.