Commit graph

405 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
e7573c5ce2 lib/relocator 2009-08-03 12:48:25 +02:00
bean
f45d6cfc48 2009-07-31 Bean <bean123ch@gmail.com>
* 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 <grub/raid.h>.
	(fstest): Replace grub_raid_rescan with module fini function followed
	by init function.

	* util/grub-probe.c: Add include file <grub/raid.h>.
	(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 14:25:19 +00:00
proski
48904cd1a9 2009-07-23 Pavel Roskin <proski@gnu.org>
* 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-23 16:41:29 +00:00
proski
f76ce8896a 2009-07-21 Pavel Roskin <proski@gnu.org>
* kern/dl.c (grub_dl_check_header): Make static.
2009-07-21 20:18:44 +00:00
proski
5680109e00 2009-07-19 Pavel Roskin <proski@gnu.org>
* 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 20:23:33 +00:00
phcoder
ac70fa32dd 2009-07-19 Vladimir Serbinenko <phcoder@gmail.com>
* 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-19 13:59:21 +00:00
proski
eab58da22c 2009-07-16 Pavel Roskin <proski@gnu.org>
* 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 22:14:09 +00:00
phcoder
ee293aee1b 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
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 15:36:43 +00:00
phcoder
a58da8c77b 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
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 22:04:41 +00:00
proski
560ca572fa 2009-07-15 Pavel Roskin <proski@gnu.org>
* include/grub/disk.h (struct grub_disk_dev): Use enum for id.
	* kern/disk.c (struct grub_disk_cache): Likewise.
2009-07-15 19:45:44 +00:00
proski
fde24e10a8 2009-07-15 Pavel Roskin <proski@gnu.org>
* 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 <yves.grub-devel@zetam.org>
2009-07-15 15:06:12 +00:00
proski
40b132c562 2009-07-15 Pavel Roskin <proski@gnu.org>
* boot/i386/pc/boot.S (boot_version): Remove.
	* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_VER_MAJ):
	Remove.
2009-07-15 14:55:24 +00:00
proski
2059157753 2009-07-15 Pavel Roskin <proski@gnu.org>
* 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-15 14:54:18 +00:00
proski
44b5d87973 2009-07-13 Pavel Roskin <proski@gnu.org>
* 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.
2009-07-13 23:57:11 +00:00
proski
25f9a05a03 2009-07-07 Pavel Roskin <proski@gnu.org>
* include/grub/util/console.h: New file.
	* util/console.c: Use it instead of grub/machine/console.h.
	* util/grub-emu.c: Likewise.
2009-07-07 20:03:03 +00:00
proski
bab7495862 2009-07-05 Pavel Roskin <proski@gnu.org>
* include/grub/i386/linux.h (struct linux_kernel_params):
	Restore padding3, it's still needed.
2009-07-06 02:10:57 +00:00
robertmh
2da9229550 2009-07-04 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/linux.h (struct linux_kernel_params): Add
        `capabilities' member.
2009-07-04 16:29:01 +00:00
proski
c94b18a9e5 2009-07-01 Pavel Roskin <proski@gnu.org>
* include/grub/types.h: Define GRUB_LONG_MAX and GRUB_LONG_MIN
	using signed long int constants.
2009-07-01 23:38:40 +00:00
proski
c8d229882a 2009-07-01 Pavel Roskin <proski@gnu.org>
* kern/dl.c (grub_dl_resolve_symbol): Make static.
	* include/grub/dl.h: Remove grub_dl_resolve_symbol().
2009-07-01 16:00:34 +00:00
proski
1b96e95249 2009-07-01 Pavel Roskin <proski@gnu.org>
* 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.
2009-07-01 15:59:05 +00:00
proski
3262295617 2009-07-01 Pavel Roskin <proski@gnu.org>
* 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 14:49:22 +00:00
robertmh
a337130b25 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/linux.h (linux_kernel_params): Change `mmap_size'
        type to `grub_uint8_t', and adjust `padding9' accordingly.
2009-07-01 01:04:12 +00:00
robertmh
b09db61ddd 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
* 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 17:19:35 +00:00
robertmh
28333ad04f 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
* 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 appropiately.
2009-06-29 12:20:56 +00:00
robertmh
8231fb77c6 2009-06-27 Pavel Roskin <proski@gnu.org>
2009-06-27  Robert Millan  <rmh.grub@aybabtu.com>

        * 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 11:18:10 +00:00
proski
c402ab1734 2009-06-26 Pavel Roskin <proski@gnu.org>
* 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-27 03:01:42 +00:00
robertmh
a42ce6e962 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/kernel.h: Include `<grub/machine/machine.h>'.
        [! GRUB_MACHINE_IEEE1275]: Set `GRUB_MOD_ALIGN' to 0x1.
2009-06-22 20:40:28 +00:00
phcoder
3f3ec72b38 2009-06-21 Vladimir Serbinenko <phcoder@gmail.com>
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 15:48:10 +00:00
robertmh
cd7310d5d5 2009-06-20 Robert Millan <rmh.grub@aybabtu.com>
* 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 14:11:45 +00:00
proski
e14cd81437 2009-06-18 Pavel Roskin <proski@gnu.org>
* 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 20:00:34 +00:00
proski
d363867871 2009-06-17 Pavel Roskin <proski@gnu.org>
* include/grub/i386/coreboot/console.h: Don't use the i386-pc
	version, use declarations needed to use vga_text as the startup
	console.
2009-06-17 19:42:06 +00:00
phcoder
cf24ed9e2a 2009-06-17 Vladimir Serbinenko <phcoder@gmail.com>
Fix newline handling

	* include/grub/script_sh.h (grub_lexer_param): new field was_newline
	* script/sh/lexer.c (grub_script_lexer_init): initilaise was_newline
	(grub_script_yylex): don't segfault on unterminated script
	newline terminates command and variable
2009-06-17 13:47:37 +00:00
proski
3ef17a2ebf 2009-06-16 Pavel Roskin <proski@gnu.org>
* 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-15 23:25:38 +00:00
phcoder
693fe63766 2009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
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-15 22:57:39 +00:00
phcoder
63963d17d0 2009-06-11 Vladimir Serbinenko <phcoder@gmail.com>
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-11 16:13:39 +00:00
proski
5c5215d5e2 2009-06-10 Pavel Roskin <proski@gnu.org>
* kern/file.c (grub_file_read): Use void pointer for the buffer.
	Adjust all callers.
2009-06-10 23:47:49 +00:00
proski
27d5fef717 2009-06-10 Pavel Roskin <proski@gnu.org>
* kern/ieee1275/openfw.c: Remove libc includes.
	* kern/ieee1275/cmain.c: Likewise.
	* include/grub/ieee1275/ieee1275.h: Likewise.
2009-06-10 23:25:10 +00:00
fzielcke
b39f9d20a9 remove all trailing whitespace 2009-06-10 21:04:23 +00:00
proski
2763ac183d 2009-06-10 Pavel Roskin <proski@gnu.org>
* 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.
2009-06-10 20:11:12 +00:00
proski
06a6836c58 2009-06-10 Pavel Roskin <proski@gnu.org>
* 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.
2009-06-10 18:26:50 +00:00
phcoder
9e7100fb5c 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
* include/grub/term.h (GRUB_TERM_BACKSPACE): explicitely define as 8
	instead of '\b'
2009-06-04 21:42:58 +00:00
phcoder
ede21d7148 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
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 21:38:17 +00:00
phcoder
6c68847712 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
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 conditionaly 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 21:17:05 +00:00
phcoder
d119a20ce5 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
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 20:40:51 +00:00
phcoder
cc6c3ac1bf 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
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 20:10:51 +00:00
phcoder
5389763d12 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
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 19:28:02 +00:00
phcoder
3eb5ed4ec0 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
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 18:22:45 +00:00
phcoder
fda6cb987f 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
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): initilaize 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 16:18:35 +00:00
cbennett
230c0ad633 2009-05-23 Colin D Bennett <colin@gibibit.com>
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-24 08:39:29 +00:00
proski
96b1619a75 2009-05-22 Pavel Roskin <proski@gnu.org>
* 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-22 19:52:43 +00:00