Commit graph

2203 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
b045f00a84 2009-12-18 Vladimir Serbinenko <phcoder@gmail.com>
Fix potential EfiEmu double prepare.

	* efiemu/main.c (prepared): New variable
	(grub_efiemu_unload): Set prepare to '0'.
	(grub_efiemu_prepare): Return if already prepared. Set prepared.

	set_virtual_address_map support.

	* include/grub/efi/efi.h (grub_efi_set_virtual_address_map): New
	prototype.
	* include/grub/efiemu/efiemu.h (grub_efiemu_write_sym_markers): New
	prototype.
	(grub_efiemu_crc32): Likewise.
	(grub_efiemu_crc64): Likewise.
	(grub_efiemu_set_virtual_address_map): Likewise.
	* include/grub/autoefi.h (grub_autoefi_exit_boot_services):
	New definition.
	(grub_autoefi_set_virtual_address_map): Likewise.
	* kern/efi/efi.c (grub_efi_set_virtual_address_map): New function.
	* loader/i386/xnu.c (grub_xnu_boot): Call set_virtual_address_map.
	Restructure flow to accomodate it.
	* efiemu/prepare.c (grub_efiemu_prepare): Support set_virtual_address_map.
	(grub_efiemu_crc): Recompute CRC32.
	* efiemu/runtime/efiemu.c (ptv_relocated): Renamed to ...
	(efiemu_ptv_relocated): ... this. Made global. All users updated.
	* efiemu/symbols.c (relocated_handle): New variable.
	(grub_efiemu_free_syms): Free relocated_handle.
	(grub_efiemu_alloc_syms): Allocate relocated_handle.
	(grub_efiemu_write_sym_markers): New function.
	(grub_efiemu_set_virtual_address_map): Likewise.

	Newer XNU parameters.

	* include/grub/i386/xnu.h (GRUB_XNU_BOOTARGS_VERMINOR): Change to 5.
	* include/grub/xnu.h (grub_xnu_extheader): Add nameaddr and namesize.
	(grub_xnu_fill_devicetree): New prototype.
	(grub_xnu_heap_real_start): New variable.
	* loader/xnu.c (get_name_ptr): New function.
	(grub_xnu_load_driver): Fill namelen and name.

	64-bit xnu support.

	* conf/i386-efi.rmk (xnu_mod_SOURCES): Add 'loader/macho32.c'
	and 'loader/macho64.c'.
	* conf/i386-pc.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.
	* include/grub/i386/macho.h (grub_macho_thread64): New structure.
	* include/grub/xnu.h (grub_xnu_is_64bit): New variable.
	* include/grub/macho.h (grub_macho_segment64): New structure.
	* include/grub/machoload.h (grub_macho32_size): Renamed from ...
	(grub_macho_size32): ... to this.
	(grub_macho32_get_entry_point): Renamed from ...
	(grub_macho_get_entry_point32): ... to this.
	(grub_macho_contains_macho64): New prototype.
	(grub_macho_size64): Likewise.
	(grub_macho_get_entry_point64): Likewise.
	(grub_macho32_load): Renamed from ...
	(grub_macho_load32): ... to this.
	(grub_macho32_filesize): Renamed from ...
	(grub_macho_filesize32): ... to this.
	(grub_macho32_readfile): Renamed from ...
	(grub_macho_readfile32): ... to this.
	(grub_macho_filesize64): New prototype.
	(grub_macho_readfile64): Likewise.
	(grub_macho_parse32): Likewise.
	(grub_macho_parse64): Likewise.
	* loader/macho.c: Split into ...
	* loader/machoXX.c: ... and this. Replace 32 with XX.
	* loader/macho32.c: New file.
	* loader/macho64.c: Likewise.
	* loader/xnu.c (grub_xnu_is_64bit): New variable.
	(grub_cmd_xnu_kernel): Make 32-bit only.
	(grub_cmd_xnu_kernel64): New function.
	(grub_xnu_load_driver): Support Mach-O 64.
	(grub_cmd_xnu_mkext): Likewise.
	* util/grub.d/30_os-prober.in (osx_entry): New function.
	Generate entries for 64-bit boot too.

	Eliminate ad-hoc tree format in XNU and EfiEmu.

	* efiemu/main.c (grub_efiemu_prepare): Update comment.
	* efiemu/pnvram.c: Rewritten to use environment variables.
	All users updated.

	Inline utf16_to_utf8.

	* kern/misc.c (grub_utf16_to_utf8): Move from here ...
	* include/grub/charset.h (grub_utf16_to_utf8): ... to here. Inlined.
	All users updated.
	* include/grub/misc.h (grub_utf16_to_utf8): Removed.

	* bus/usb/usb.c (grub_usb_get_string): Move from here ...
	* commands/usbtest.c (grub_usb_get_string): ... move here.
	(usb_print_str): Fix error handling.
	* include/grub/usb.h (grub_usb_get_string): Remove.

	UTF-8 to UTF-16 transformation.

	* conf/common.rmk (pkglib_MODULES): Add charset.mod
	(charset_mod_SOURCES): New variable.
	(charset_mod_CFLAGS): Likewise.
	(charset_mod_LDFLAGS): Likewise.
	* include/grub/utf.h: New file.
	* lib/utf.c: New file. (Based on grub_utf8_to_ucs4 from kern/misc.c)

	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 15:20:21 +01:00
Vladimir 'phcoder' Serbinenko
8463a018b2 ChangeLog 2009-12-18 04:58:00 +01:00
Vladimir 'phcoder' Serbinenko
68693c0743 Reimpliment grub-dumpdevtree 2009-12-18 04:57:29 +01:00
Vladimir 'phcoder' Serbinenko
889a4cbaaa Eliminate empty line 2009-12-18 04:56:55 +01:00
Vladimir 'phcoder' Serbinenko
52d1a0fd1a Remove unwantred commits 2009-12-18 04:56:03 +01:00
Vladimir 'phcoder' Serbinenko
7ea73643f5 merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
Vladimir 'phcoder' Serbinenko
2cd7057fc8 30_os-prober update 2009-12-18 03:33:24 +01:00
Vladimir 'phcoder' Serbinenko
86cd6ff556 2009-12-18 Vladimir Serbinenko <phcoder@gmail.com>
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-18 02:35:15 +01:00
Vladimir 'phcoder' Serbinenko
0945f1816d Changelog 2009-12-18 02:21:37 +01:00
Vladimir 'phcoder' Serbinenko
5b4f655bad cleaned ATI fixes 2009-12-18 02:11:26 +01:00
Vladimir 'phcoder' Serbinenko
b73d4bab7e Merge trunk into ati 2009-12-18 02:04:10 +01:00
Felix Zielcke
0297aafb9f 2009-12-17 Felix Zielcke <fzielcke@z-51.de>
* gendistlist.sh: Use POSIX compliant `!' instead of `-not' in
	the `find' command.
2009-12-17 11:19:12 +01:00
Vladimir 'phcoder' Serbinenko
db846aed9a minimalising ATI impact 2009-12-16 16:53:01 +01:00
Vladimir 'phcoder' Serbinenko
c179ebe4ee 2009-12-16 Vladimir Serbinenko <phcoder@gmail.com>
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-16 15:40:31 +01:00
Vladimir 'phcoder' Serbinenko
8a40612b2c fix ofconsole palette 2009-12-15 19:57:23 +01:00
Vladimir 'phcoder' Serbinenko
7ca3f5c2d9 one more possible fix 2009-12-14 18:16:32 +01:00
Felix Zielcke
574cce0cfa 2009-12-14 Felix Zielcke <fzielcke@z-51.de>
Fix a segfault with parsing unknown long options.

	* util/grub-mkrelpath.c (options): Zero terminate it.
2009-12-14 11:06:24 +01:00
Carles Pina i Estany
c4a3e41a72 2009-12-13 Carles Pina i Estany <carles@pina.cat>
* include/grub/misc.h (grub_puts): New declaration.
	(grub_puts_): Likewise.
	* kern/mis.c (grub_puts): New definition.
	(grub_puts_): Likewise.
2009-12-13 19:51:08 +00:00
Robert Millan
2e8a760287 2009-12-13 Robert Millan <rmh.grub@aybabtu.com>
* util/grub-probe.c (probe): Improve error message.
2009-12-13 19:46:59 +00:00
Robert Millan
b50b77b9a8 Merge relocator branch 2009-12-13 18:37:44 +00:00
Robert Millan
616da3a154 2009-12-13 Robert Millan <rmh.grub@aybabtu.com>
* loader/i386/multiboot_elfxx.c
        (CONCAT(grub_multiboot_load_elf, XX)): Fix `grub_multiboot_payload_eip'
        initialization.
2009-12-13 18:29:15 +00:00
Vladimir 'phcoder' Serbinenko
29eb90c620 2009-12-13 Vladimir Serbinenko <phcoder@gmail.com>
* kern/i386/pc/startup.S (multiboot_entry): Setup stack before calling
	anything.
2009-12-13 18:32:06 +01:00
Vladimir 'phcoder' Serbinenko
3e8c081543 legacy-like stack handling 2009-12-13 18:10:53 +01:00
Vladimir 'phcoder' Serbinenko
5a0e0cc6bd Fix XNU resume. 2009-12-13 18:07:01 +01:00
Vladimir 'phcoder' Serbinenko
087793c68e Cleanup address expressions for readability and using only unsigned arithmetics 2009-12-13 18:03:46 +01:00
Carles Pina i Estany
3102743011 2009-12-13 Carles Pina i Estany <carles@pina.cat>
* script/execute.c (grub_script_execute_cmdline): Set grub_errno to
	GRUB_ERR_NONE before calling grub_env_set.
2009-12-13 12:35:20 +00:00
Robert Millan
dc0c71d974 2009-12-12 Robert Millan <rmh@aybabtu.com>
* 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-12 00:43:32 +00:00
Robert Millan
03157a273d util/sparc64/ieee1275/grub-install.in was meant to be removed 2009-12-12 00:10:38 +00:00
Robert Millan
37ba589a4e Merge from trunk 2009-12-12 00:07:45 +00:00
Robert Millan
cb0573b750 Merge from trunk 2009-12-11 23:11:58 +00:00
Robert Millan
cbf73baaae Indentation fix & missing copyright year. 2009-12-11 23:10:57 +00:00
Robert Millan
2a4bfcf0da 2009-12-11 Robert Millan <rmh.grub@aybabtu.com>
* THANKS: Add David Miller.
2009-12-11 22:44:47 +00:00
Robert Millan
dfec2d96f9 Merge from trunk 2009-12-11 21:20:00 +00:00
Robert Millan
2a3aa4d570 Merge pciaccess branch 2009-12-11 21:12:57 +00:00
Felix Zielcke
8d0502d9b2 2009-12-11 Felix Zielcke <fzielcke@z-51.de>
* util/misc.c: Don't include <errno.h> twice.
2009-12-11 11:11:34 +01:00
Felix Zielcke
0d56ed64d2 2009-12-10 Felix Zielcke <fzielcke@z-51.de>
* disk/i386/pc/biosdisk.c (grub_biosdisk_open): Show the disk
	name in an error message.
	(grub_biosdisk_rw): Likewise.
2009-12-10 19:15:20 +01:00
Vladimir 'phcoder' Serbinenko
2e59983c82 2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>
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 14:45:00 +01:00
Vladimir 'phcoder' Serbinenko
71ee178adb 2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>
Eliminate grub-fstest 4Gib barrier.

	* util/grub-fstest.c (skip, leng): Use grub_disk_addr_t.
	(read_file): Fix error reporting.
2009-12-10 14:39:54 +01:00
Vladimir 'phcoder' Serbinenko
2520d4b815 2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>
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 14:37:42 +01:00
Vladimir 'phcoder' Serbinenko
e1f270654e 2009-12-10 Vladimir Serbinenko <phcoder@gmail.com>
* kern/device.c (grub_device_iterate): Ignore errors during first scan.
	Fixes amarsh bug.
2009-12-10 13:26:22 +01:00
Robert Millan
1a0f7f4553 2009-12-09 Bruce Dubbs <bruce.dubbs@gmail.com>
Remove miscellaneous files in distclean target.

        * Makefile.in: Remove docs/{grub.info,version.texi,stamp-vti}
2009-12-09 21:43:05 +00:00
Colin Watson
c631d9fb17 2009-12-09 Colin Watson <cjwatson@ubuntu.com>
* 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-09 16:20:17 +00:00
Robert Millan
7c7b610626 2009-12-08 Robert Millan <rmh.grub@aybabtu.com>
* 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 16:00:52 +00:00
Carles Pina i Estany
e3069ec1a5 2009-12-08 Carles Pina i Estany <carles@pina.cat>
* 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-08 00:08:52 +00:00
Colin Watson
d6ceebf1d9 2009-12-07 Colin Watson <cjwatson@ubuntu.com>
* 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-07 16:46:24 +00:00
David S. Miller
de6daa8b56 2009-12-06 David S. Miller <davem@sunset.davemloft.net>
* disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Recognize
	anything even prefixed with 'cdrom' as a cdrom.
2009-12-07 11:54:25 +01:00
Felix Zielcke
df91e67900 2009-12-06 Felix Zielcke <fzielcke@z-51.de>
* util/misc.c (make_system_path_relative_to_its_root): Correctly cope with
	mount points.
2009-12-06 10:20:01 +01:00
Carles Pina i Estany
98d3dc02fe 2009-12-05 Carles Pina i Estany <carles@pina.cat>
* gettext/gettext.c: Include `<grub/list.h>'. 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 19:03:27 +00:00
Vladimir 'phcoder' Serbinenko
b283f10857 2009-12-05 Vladimir Serbinenko <phcoder@gmail.com>
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 17:10:36 +01:00
Carles Pina i Estany
69055f8a2f 2009-12-05 Carles Pina i Estany <carles@pina.cat>
* 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 11:25:07 +00:00