No description
Find a file
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
boot 2009-08-14 Pavel Roskin <proski@gnu.org> 2009-08-14 04:12:22 +00:00
bus merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
commands merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
conf merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
disk Merge pciaccess branch 2009-12-11 21:12:57 +00:00
docs 2009-10-26 Robert Millan <rmh.grub@aybabtu.com> 2009-10-26 00:38:38 +00:00
efiemu Eliminate empty line 2009-12-18 04:56:55 +01:00
font 2009-07-20 Vladimir Serbinenko <phcoder@gmail.com> 2009-07-20 17:37:37 +00:00
fs Remove unwantred commits 2009-12-18 04:56:03 +01:00
gettext 2009-12-05 Carles Pina i Estany <carles@pina.cat> 2009-12-05 19:03:27 +00:00
gnulib Merge my gettext branch (gettext support in build system for GRUB utilities) 2009-11-17 20:23:06 +00:00
hello 2009-05-03 Pavel Roskin <proski@gnu.org> 2009-05-04 03:49:08 +00:00
hook 2009-05-03 Pavel Roskin <proski@gnu.org> 2009-05-04 03:49:08 +00:00
include merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
io 2009-06-10 Pavel Roskin <proski@gnu.org> 2009-06-11 01:06:39 +00:00
kern merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
lib merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
loader merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
mmap 2009-09-16 Vladimir Serbinenko <phcoder@gmail.com> 2009-09-17 11:38:50 +00:00
normal 2009-12-08 Carles Pina i Estany <carles@pina.cat> 2009-12-08 00:08:52 +00:00
partmap 2009-09-16 Robert Millan <rmh.grub@aybabtu.com> 2009-09-16 19:23:33 +00:00
parttool 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com> 2009-08-24 13:34:03 +00:00
po 2009-12-05 Carles Pina i Estany <carles@pina.cat> 2009-12-05 11:25:07 +00:00
script 2009-12-13 Carles Pina i Estany <carles@pina.cat> 2009-12-13 12:35:20 +00:00
term Cheery-pick grub-emu split from experimental (rev 1361) 2009-11-23 15:31:54 +00:00
util Reimpliment grub-dumpdevtree 2009-12-18 04:57:29 +01:00
video cleaned ATI fixes 2009-12-18 02:11:26 +01:00
.bzrignore 2009-11-24 Robert Millan <rmh.grub@aybabtu.com> 2009-11-24 18:51:35 +00:00
acinclude.m4 2009-11-16 Robert Millan <rmh.grub@aybabtu.com> 2009-11-16 19:31:29 +00:00
AUTHORS 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org> 2005-09-03 16:54:27 +00:00
autogen.sh 2009-11-24 Robert Millan <rmh.grub@aybabtu.com> 2009-11-24 18:51:35 +00:00
ChangeLog 2009-12-18 Vladimir Serbinenko <phcoder@gmail.com> 2009-12-18 15:20:21 +01:00
configure.ac Merge pciaccess branch 2009-12-11 21:12:57 +00:00
COPYING 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org> 2007-07-21 23:32:33 +00:00
gencmdlist.sh 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com> 2009-06-04 19:39:51 +00:00
gendistlist.sh merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
genfslist.sh 2009-01-10 Robert Millan <rmh@aybabtu.com> 2009-01-10 13:07:44 +00:00
genhandlerlist.sh 2009-04-14 Bean <bean123ch@gmail.com> 2009-04-14 18:12:14 +00:00
geninit.sh 2007-07-22 Robert Millan <rmh@aybabtu.com> 2007-07-22 19:17:27 +00:00
geninitheader.sh 2007-07-22 Robert Millan <rmh@aybabtu.com> 2007-07-22 19:17:27 +00:00
genkernsyms.sh.in Cheery-pick grub-emu split from experimental (rev 1361) 2009-11-23 15:31:54 +00:00
genmk.rb 2009-12-12 Robert Millan <rmh@aybabtu.com> 2009-12-12 00:43:32 +00:00
genmoddep.awk remove all trailing whitespace 2009-06-10 21:04:23 +00:00
genmodsrc.sh 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org> 2007-07-21 23:32:33 +00:00
genpartmaplist.sh 2008-08-22 Bean <bean123ch@gmail.com> 2008-08-23 14:20:45 +00:00
genparttoollist.sh 2009-07-02 Pavel Roskin <proski@gnu.org> 2009-07-02 04:12:23 +00:00
gensymlist.sh.in Cheery-pick grub-emu split from experimental (rev 1361) 2009-11-23 15:31:54 +00:00
genvideolist.sh 2009-12-12 Robert Millan <rmh@aybabtu.com> 2009-12-12 00:43:32 +00:00
INSTALL 2009-11-25 Felix Zielcke <fzielcke@z-51.de> 2009-11-25 18:37:04 +01:00
Makefile.in 2009-12-12 Robert Millan <rmh@aybabtu.com> 2009-12-12 00:43:32 +00:00
mkinstalldirs 2006-06-04 Yoshinori K. Okuji <okuji@enbug.org> 2006-06-04 12:59:19 +00:00
NEWS Adds gettext note in NEWS. 2009-11-23 20:47:25 +00:00
README Update the URL of the wiki. 2006-04-02 08:59:23 +00:00
THANKS 2009-12-11 Robert Millan <rmh.grub@aybabtu.com> 2009-12-11 22:44:47 +00:00
TODO 2008-01-07 Robert Millan <rmh@aybabtu.com> 2008-01-07 19:21:34 +00:00

This is GRUB 2, the second version of the GRand Unified Bootloader.
GRUB 2 is rewritten from scratch to make GNU GRUB cleaner, safer, more
robust, more powerful, and more portable.

See the file NEWS for a description of recent changes to GRUB 2.

See the file INSTALL for instructions on how to build and install the
GRUB 2 data and program files.

Please visit the official web page of GRUB 2, for more information.
The URL is <http://www.gnu.org/software/grub/grub.html>.

For now, there is not much documentation yet. Please look at the GRUB
Wiki <http://grub.enbug.org> for testing procedures.