Commit graph

3114 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
af09641e2b * loader/i386/multiboot_mbi2.c (retrieve_video_parameters): Fix compilation on coreboot and qemu 2010-03-30 11:18:29 +02:00
Vladimir 'phcoder' Serbinenko
66bf23d2e7 Use posix wrappers in lexer 2010-03-28 22:20:32 +02:00
Vladimir 'phcoder' Serbinenko
74f34747b1 Fix path to regex.h 2010-03-28 22:19:06 +02:00
Vladimir 'phcoder' Serbinenko
a64b15feed resynced with gnulib. Cleaned up wrapping layer 2010-03-28 21:43:42 +02:00
Vladimir 'phcoder' Serbinenko
bbdb72a1f4 merged mainline into regexp 2010-03-28 18:31:40 +02:00
Vladimir 'phcoder' Serbinenko
016883a55c * include/multiboot2.h: Resync with spec. 2010-03-28 14:19:41 +02:00
Vladimir 'phcoder' Serbinenko
f97e1f7d0a 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-28 13:53:23 +02:00
Vladimir 'phcoder' Serbinenko
f5d5c327e3 Remove VBE multiboot support 2010-03-28 13:46:42 +02:00
Vladimir 'phcoder' Serbinenko
fe9381dd00 Resync changelog 2010-03-27 22:42:02 +01:00
Vladimir 'phcoder' Serbinenko
3a7c36977a Fix compilation problem 2010-03-27 22:40:49 +01:00
Vladimir 'phcoder' Serbinenko
df32be8cc1 Merge mainline into mbtag 2010-03-27 22:14:41 +01:00
Vladimir 'phcoder' Serbinenko
46960ff9ec Resynced with multiboot2 spec 2010-03-27 21:50:57 +01:00
Vladimir 'phcoder' Serbinenko
3506b90b0d 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 12:53:40 +01:00
Grégoire Sutre
394a3120a7 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 12:19:32 +01:00
Vladimir 'phcoder' Serbinenko
969d1c782d 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-27 00:04:14 +01:00
BVK Chaitanya
8d2977bb7a fix for final semicolon bug 2010-03-26 23:57:06 +05:30
BVK Chaitanya
dae0d05f2d merged with mainline 2010-03-26 23:49:49 +05:30
BVK Chaitanya
a7bd6915e1 testcase for blank lines in grub script 2010-03-26 23:41:46 +05:30
BVK Chaitanya
03efaf45b2 merged with mainline 2010-03-26 23:36:14 +05:30
Vladimir 'phcoder' Serbinenko
e4ff66281a Merge grub-file into mainline 2010-03-26 17:11:52 +01:00
Vladimir 'phcoder' Serbinenko
0790690196 merge mainline into grub-file 2010-03-26 17:06:36 +01:00
BVK Chaitanya
baae00df35 merged with mainline 2010-03-26 21:13:06 +05:30
Vladimir 'phcoder' Serbinenko
6a5cf6b696 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 16:40:41 +01:00
Vladimir 'phcoder' Serbinenko
bb8eacef88 Merge mainline into sunpc 2010-03-26 16:35:12 +01:00
BVK Chaitanya
746d90457a 2010-01-12 BVK Chaitanya <bvk.groups@gmail.com>
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.
2010-03-26 21:00:15 +05:30
BVK Chaitanya
c299f3d6fb merged with mainline 2010-03-26 20:55:07 +05:30
Vladimir 'phcoder' Serbinenko
18486b18cd 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-26 15:55:50 +01:00
Vladimir 'phcoder' Serbinenko
c9ea504d25 merge mainline into nestpart 2010-03-26 15:44:13 +01:00
Adrian Glaubitz
a3940f8874 * kern/dl.c (grub_dl_resolve_symbols): Improve error message
grammar.
2010-03-24 12:54:39 +00:00
21b9992685 * .bzrignore: Add grub-bin2h, grub-reboot, and grub-set-default. 2010-03-24 12:50:15 +00:00
BVK Chaitanya
a7447ca6e1 fix for grub_script_final_semicolon test 2010-03-22 14:03:20 +05:30
BVK Chaitanya
3e6b777ba7 testcase for the last semicolon behavior 2010-03-22 14:02:48 +05:30
BVK Chaitanya
8507a6ccdf testcase for blanklines in grub script 2010-03-22 13:54:45 +05:30
BVK Chaitanya
ba4be5af25 fixed help message for grub-script-check 2010-03-22 13:25:09 +05:30
Colin Watson
bed1d3524e * 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-21 23:04:02 +00:00
BVK Chaitanya
dd6fee39fa merged mainline 2010-03-21 11:03:41 +05:30
BVK Chaitanya
0f3a3e3ece added elif patch from Deepak Vankadaru 2010-03-21 10:27:21 +05:30
BVK Chaitanya
8c85123cd5 merged for-loop branch 2010-03-21 09:59:43 +05:30
Colin Watson
c9f5842752 * .bzrignore: Add gentrigtables, grub-script-check,
grub_script_check_init.c, grub_script_check_init.h, and
trigtables.c.
2010-03-19 11:28:05 +00:00
Vladimir 'phcoder' Serbinenko
f84afb2775 * kern/parser.c: Indented. 2010-03-18 00:19:30 +01:00
Vladimir 'phcoder' Serbinenko
ed0e3d30cd * term/i386/pc/vesafb.c: Removed (orphaned, deprecated and broken). 2010-03-17 08:22:45 +01:00
Vladimir 'phcoder' Serbinenko
0ea81d9845 * video/fb/fbblit.c (grub_video_fbblit_blend_XXXA8888_1bit): Handle
alpha_mask_size == 0 case.
2010-03-17 00:16:11 +01:00
BVK Chaitanya
8a99e92a69 merge in mainline 2010-03-16 17:42:27 +05:30
BVK Chaitanya
0cdc2a095b 2010-03-14 BVK Chaitanya <bvk.groups@gmail.com>
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 22:37:17 +05:30
BVK Chaitanya
8622549153 merged in mainline 2010-03-14 22:20:55 +05:30
Vladimir 'phcoder' Serbinenko
1d63a066e2 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 17:17:49 +01:00
Vladimir 'phcoder' Serbinenko
8d7f2981d0 Remove leftover date*.mo on sparc64 2010-03-14 16:55:51 +01:00
Colin King
463ac55fac 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.

	Also-By: Colin Watson <cjwatson@ubuntu.com>
2010-03-14 15:47:05 +00:00
Vladimir 'phcoder' Serbinenko
120cc3eebc Merge mainline into cleanbuild 2010-03-14 16:41:57 +01:00
Colin Watson
08e46ededa 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 15:39:14 +00:00