Commit graph

3243 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
2ecf0c7ea4 Discard brightness bit 2009-12-18 17:19:12 +01:00
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
e6d8d32a94 fix efi video drivers for video API change 2009-12-16 19:03:56 +01:00
Vladimir 'phcoder' Serbinenko
45da21ff5a merge mainline into videomask 2009-12-16 17:52:17 +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
Robert Millan
ffb2403f5f Undo DEFAULT_VIDEO_MODE kludge (correct solution is in gfxmenu branch) 2009-12-15 21:06:04 +00: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
Felix Zielcke
7cba88bbde Include <grub/cmos.h> instead of <grub/i386/cmos.h> in kern/i386/qemu/mmap.c to fix a compiler warning 2009-12-13 21:03:47 +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
648fb15b29 Merge from trunk 2009-12-13 18:41:21 +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
Vladimir 'phcoder' Serbinenko
4d902d3715 merge from trunk 2009-12-12 02:38:30 +01:00
Vladimir 'phcoder' Serbinenko
b66948bd88 setjmp on mips 2009-12-12 02:33:41 +01:00
Vladimir 'phcoder' Serbinenko
5417641c66 Fix loading of modules of size not divisible by 4 2009-12-12 02:33:15 +01: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
838114b687 Merge from trunk 2009-12-11 21:15:58 +00:00
Vladimir 'phcoder' Serbinenko
d4af2a73dc datetime for yeeloong 2009-12-11 22:14:09 +01: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
Robert Millan
febfc12c6e 2009-12-10 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/mips/libgcc.h: Only export symbols for functions
        that libgcc provides.
2009-12-10 22:38:54 +00: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