Commit graph

4370 commits

Author SHA1 Message Date
Szymon Janc
a17792c324 * grub-core/lib/posix_wrap/sys/types.h (bool): Transform into an enum.
(uint8_t): New type.
	(uint16_t): Likewise.
	(uint32_t): Likewise.
	(uint64_t): Likewise.
2010-09-05 14:24:39 +02:00
Szymon Janc
b81e40a379 * include/grub/crypto.h (GRUB_MD_CRC32): New definition. 2010-09-05 14:18:31 +02:00
Vladimir 'phcoder' Serbinenko
fc2ef1172c * grub-core/io/gzio.c (grub_gzio_open): Removed "transparent" parameter.
Made static.
	(grub_gzfile_open): Removed. All users updated.
	(GRUB_MOD_INIT): New function.
	(GRUB_MOD_FINI): Likewise.
	* grub-core/kern/file.c (grub_file_filters_all): New variable.
	(grub_file_filters_enabled): Likewise.
	(grub_file_open): Handle filters.
	* grub-core/loader/i386/bsd.c (GRUB_MOD_INIT): Load gzio.
	* grub-core/normal/main.c (GRUB_MOD_INIT): Likewise.
	* include/grub/file.h (grub_file_filter_id_t): New type.
	(grub_file_filter_t): Likewise.
	(grub_file_filters_all): New extern variable.
	(grub_file_filters_enabled): Likewise.
	(grub_file_filter_register): New inline function.
	(grub_file_filter_unregister): Likewise.
	(grub_file_filter_disable): Likewise.
	(grub_file_filter_disable_compression): Likewise.
	* include/grub/gzio.h: Removed.
2010-09-05 13:05:36 +02:00
BVK Chaitanya
1bce65c7b1 not command (!) support 2010-09-05 14:57:28 +05:30
BVK Chaitanya
35ee15e09a Filename expansion support for wildcards in GRUB script.
* tests/grub_script_expansion.in: New test.
	* Makefile.util.def: Rule for new test.

	* grub-core/commands/wildcard.c: New file, implements filename
	expansion support for GRUB script.
	* grub-core/Makefile.core.def: Rule update for regexp.mod.
	* grub-core/script/argv.c: Cosmetic changes.
	* grub-core/script/execute.c (grub_script_arglist_to_argv):
	Refactored to perform wildcard expansion on arguments.
	* include/grub/script_sh.h (grub_script_wildcard_translator): New
	struct.

	* tests/util/grub-shell.in: Fix quoting for read input.
2010-09-04 22:45:34 +05:30
BVK Chaitanya
ee14ec9935 merge with mainline 2010-09-04 22:34:32 +05:30
BVK Chaitanya
5f0c4acaca Support for updating environment variables with matched substrings
of regexp.

	* tests/grub_cmd_regexp.in: New test.
	* Makefile.util.def: Rule for new test.

	* grub-core/commands/regexp.c: New option -s to update environment
	variables with regexp matches.
2010-09-04 22:19:58 +05:30
BVK Chaitanya
a431c98a52 merge with mainline 2010-09-04 22:13:45 +05:30
Szymon Janc
3759a35f75 * include/grub/file.h (grub_file): New member not_easly_seekable.
(grub_file_seekable): New inline function.
	* grub-core/io/gzio.c (test_header): Don't test end magic if file isn't
	easily seekable.
	(grub_gzio_open): Set not_easly_seekable.
	* grub-core/fs/i386/pc/pxe.c (grub_pxefs_open): Set not_easily_seekable.
	* grub-core/io/bufio.c (grub_bufio_open): Propagate not_easily_seekable.
2010-09-04 18:28:42 +02:00
BVK Chaitanya
ed8c6dec96 Support for options to appear multiple times on cmdline.
* include/grub/lib/arg.h (grub_arg_list_alloc): New prototype.
	* grub-core/commands/extcmd.c: Support for repeatable option.
	* grub-core/lib/arg.c (grub_arg_list_alloc): New function for
	repeatable option support.

	Refactor menuentry into a regular command.

	* grub-core/commands/menuentry.c: New file, menuentry command
	implementation.
	* grub-core/Makefile.core.def: Rule update for normal.mod.
	* grub-core/normal/main.c: Moved menuentry creation to
	grub-core/commands/menuentry.c.
	* grub-core/normal/menu.c (grub_menu_execute_entry): Removed.
	(grub_menu_execute_entry_real): Removed.
	* grub-core/script/execute.c (grub_script_execute_sourcecode): New
	function.
	(grub_script_execute_menuentry): Removed.
	* grub-core/script/parser.y (menuentry): Removed.
	* grub-core/script/script.c (grub_script_create_cmdmenu): Removed.
	* grub-core/script/yylex.l (menuentry): Removed.
	* include/grub/menu.h (grub_menu_init): New prototype.
	(grub_menu_fini): New prototype.
	* include/grub/normal.h (grub_normal_add_menu_entry): Removed.
	* include/grub/script_sh.h (grub_script_cmd_menuentry): Removed.
	(grub_script_execute_sourcecode): New prototype.
2010-09-04 21:43:54 +05:30
BVK Chaitanya
9fcd1ee541 merge with mainline 2010-09-04 21:02:48 +05:30
BVK Chaitanya
dacd0cf07a "return" command for GRUB script functions.
* tests/grub_script_return.in: New test.
	* Makefile.util.def: Rules for new test.

	* grub-core/script/execute.c (grub_script_return): New function.
	* grub-core/script/main.c: Register/unregister return commaond.
	* include/grub/script_sh.h (grub_script_return): New prototype.
2010-09-04 20:53:09 +05:30
BVK Chaitanya
165bfce138 merge with mainline 2010-09-04 20:44:44 +05:30
BVK Chaitanya
52e72f9d46 "setparams" command to update positional parameters.
* tests/grub_script_setparams.in: New test.
	* Makefile.util.def: Rules for new test.

	* grub-core/script/argv.c (grub_script_argv_make): New function.
	* grub-core/script/execute.c (replace_scope): New function.
	(grub_script_setparams): New function.
	* grub-core/script/lexer.c: Remove unused variables.
	* grub-core/script/main.c: Register/unregister setparams command.
	* include/grub/script_sh.h (grub_script_argv_make): New prototype.
	(grub_script_setparams): New prototype.
2010-09-04 20:27:48 +05:30
BVK Chaitanya
cd652829a1 merge with mainline 2010-09-04 14:41:08 +05:30
BVK Chaitanya
49649ac85d review comments 2010-09-04 14:32:59 +05:30
BVK Chaitanya
965e0faac8 merge with mainline 2010-09-04 14:30:12 +05:30
BVK Chaitanya
854bd47cb8 fix memory leak and out-of-range writes 2010-09-04 14:22:51 +05:30
BVK Chaitanya
e77cc389d5 merge with mainline 2010-09-04 14:21:56 +05:30
BVK Chaitanya
25b60c913b * grub-core/normal/completion.c (grub_normal_do_completion): Fix
grub_free order.
2010-09-04 14:19:04 +05:30
BVK Chaitanya
6d7c073bc8 merge with mainline 2010-09-04 11:49:02 +05:30
BVK Chaitanya
7af6505ba1 merge with mainline 2010-09-04 11:37:59 +05:30
BVK Chaitanya
312e3e3668 merge with mainline 2010-09-04 11:28:45 +05:30
BVK Chaitanya
227cab7c79 merge with mainline 2010-09-04 10:56:23 +05:30
BVK Chaitanya
37e7bf68c5 Support for passing block of commands as an argument to
extcmds.

	* Makefile.util.def: Rules for new test.
	* tests/grub_script_blockarg.in: New test.
	* grub-core/tests/test_blockarg.c: New file, block argument
	command used in the test.

	* include/grub/extcmd.h (grub_extcmd_context): New struct.
	(grub_register_extcmd_prio): New function prototype.
	(grub_extcmd_dispatcher): New function prototype.
	* include/grub/command.h (GRUB_COMMAND_FLAG_BLOCKS): New command
	type.
	* include/grub/script_sh.h (struct grub_script): New members
	`children', `next_siblings' and `refcnt' for block arguments and
	reference counting.
	(GRUB_SCRIPT_ARG_TYPE_BLOCK): New argument type.
	(grub_script_arg): New member `script' for block argument.
	(grub_script_argv): New member `script' for block argument.
	(grub_parser_param): New member `scripts' for block argument.
	(grub_script_mem_free): New extern function prototype.
	(grub_script_ref): New function prototype.
	(grub_script_unref): New function prototype.

	* grub-core/normal/dyncmd.c (grub_dyncmd_dispatcher): Moved to
	extcmd form to support block arguments.
	* grub-core/script/argv.c: Block arguments support.
	* grub-core/script/execute.c: Likewise.
	* grub-core/script/lexer.c: Likewise.
	* grub-core/script/main.c: Likewise.
	* grub-core/script/script.c: Likewise.
	* grub-core/script/parser.y: Likewise.  New `block' and `block0'
	non-terminals.

	* grub-core/commands/acpi.c: Update extcmd implementations with
	grub_extcmd_context_t.
	* grub-core/commands/cat.c: Likewise.
	* grub-core/commands/echo.c: Likewise.
	* grub-core/commands/extcmd.c: Likewise.
	* grub-core/commands/hashsum.c: Likewise.
	* grub-core/commands/hdparm.c: Likewise.
	* grub-core/commands/help.c: Likewise.
	* grub-core/commands/hexdump.c: Likewise.
	* grub-core/commands/i386/cpuid.c: Likewise.
	* grub-core/commands/i386/pc/drivemap.c: Likewise.
	* grub-core/commands/i386/pc/halt.c: Likewise.
	* grub-core/commands/i386/pc/sendkey.c: Likewise.
	* grub-core/commands/iorw.c: Likewise.
	* grub-core/commands/keystatus.c: Likewise.
	* grub-core/commands/loadenv.c: Likewise.
	* grub-core/commands/ls.c: Likewise.
	* grub-core/commands/lspci.c: Likewise.
	* grub-core/commands/memrw.c: Likewise.
	* grub-core/commands/probe.c: Likewise.
	* grub-core/commands/search_wrap.c: Likewise.
	* grub-core/commands/setpci.c: Likewise.
	* grub-core/commands/sleep.c: Likewise.
	* grub-core/disk/loopback.c: Likewise.
	* grub-core/hello/hello.c: Likewise.
	* grub-core/loader/i386/bsd.c: Likewise.
	* grub-core/loader/xnu.c: Likewise.
	* grub-core/term/gfxterm.c: Likewise.
	* grub-core/term/serial.c: Likewise.
	* grub-core/tests/lib/functional_test.c: Likewise.
2010-09-04 09:13:30 +05:30
BVK Chaitanya
e5a73c4247 merge with mainline 2010-09-04 09:05:21 +05:30
BVK Chaitanya
888d1500b2 Multi-line quoted strings support.
* grub-core/script/lexer.c (append_newline): Removed.
	(grub_script_lexer_yywrap): Refactored.
	(grub_script_lexer_init): Refactored.
	* grub-core/script/yylex.l (yywrap): New function.
	(grub_lexer_resplit): New function.
	(grub_lexer_unput): New function.
	* include/grub/script_sh.h (grub_lexer_param): New members, unput
	and resplit.
	* tests/grub_script_echo1.in: Added few more testcases.
2010-09-04 08:43:35 +05:30
BVK Chaitanya
adcf5a8e30 merge with mainline 2010-09-04 08:33:42 +05:30
BVK Chaitanya
80f5b97cdc --source option for menuentry 2010-09-04 08:14:50 +05:30
Vladimir 'phcoder' Serbinenko
dda060dd0f * grub-core/kern/misc.c: Don't add abort alias in utils.
Reported by: echoline.
2010-09-04 02:18:48 +02:00
BVK Chaitanya
e89f9ec539 add setparams prefix 2010-09-03 22:28:16 +05:30
BVK Chaitanya
6556eba9c6 Add missing files into "make dist" tarball for other platforms.
* gentpl.py (script): Use dist_noinst_DATA instead of EXTRA_DIST.
	* conf/Makefile.common (dist_noinst_DATA): New variable.
	* conf/Makefile.extra-dist: Added missing make dist files.
	* grub-core/Makefile.core.def: Likewise.
2010-09-03 21:23:00 +05:30
BVK Chaitanya
9284756e17 merge menuentry.mod into normal.mod 2010-09-03 21:08:12 +05:30
BVK Chaitanya
78780e7005 fix hotkey handling 2010-09-03 20:53:38 +05:30
BVK Chaitanya
cc7b1ab4d6 review comments 2010-09-03 20:35:23 +05:30
BVK Chaitanya
0dfb7ba053 merge with mainline 2010-09-03 20:06:57 +05:30
Vladimir 'phcoder' Serbinenko
c8e7bf5ff7 Compress grub_prefix.
* grub-core/boot/i386/pc/lnxboot.S: Use
	GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE.
	* grub-core/kern/i386/pc/startup.S: Move grub_prefix to compressed part.
	* include/grub/offsets.h: Rename GRUB_MACHINE_DATA_END to
	GRUB_MACHINE_PREFIX_END. All users updated.
	(GRUB_KERNEL_I386_PC_PREFIX): Set to GRUB_KERNEL_I386_PC_RAW_SIZE.
	(GRUB_KERNEL_I386_PC_PREFIX_END): Set to GRUB_KERNEL_I386_PC_PREFIX
	+ 0x40.
	(GRUB_KERNEL_I386_PC_RAW_SIZE): Decrease.
	* util/grub-mkimage.c (image_target_desc): Change data_end to
	prefix_end. All users updated.
2010-09-03 14:54:04 +02:00
Vladimir 'phcoder' Serbinenko
a7c00cdb94 * grub-core/loader/i386/bsd.c (grub_freebsd_boot): Set %ebp to sane
value.
	(grub_openbsd_boot): Likewise.
	(grub_netbsd_boot): Likewise.
	* grub-core/loader/i386/xnu.c (grub_xnu_boot_resume): Likewise.
	(grub_xnu_boot): Likewise.
2010-09-03 14:05:19 +02:00
Vladimir 'phcoder' Serbinenko
9f915872ef * configure.ac: Clean LIBS variable after tests. 2010-09-03 03:26:22 +02:00
Colin Watson
efa1bee7a1 * INSTALL: Document that libdevmapper needs to be 1.02.34 or later. 2010-09-02 23:57:21 +01:00
Vladimir 'phcoder' Serbinenko
61d720e535 * configure.ac: Check for dm_log_with_errno_init in libdevmapper and
echo if libdevmapper will be used.
2010-09-03 00:53:41 +02:00
Ian Turner
ef8e0ec8ed * grub-core/fs/i386/pc/pxe.c (grub_pxefs_read): Keep the blocksize
constant for the same file.
2010-09-02 23:59:27 +02:00
Vladimir 'phcoder' Serbinenko
03e261d84c * grub-core/kern/i386/multiboot_mmap.c: Remove leftover include. 2010-09-02 23:50:07 +02:00
Colin Watson
c2a4eba698 * .bzrignore: Add *.pp, **/.dirstamp, grub-core/*.module, and
grub-core/*.pp.
2010-09-02 22:42:36 +01:00
Colin Watson
9056cbf38e Zero %ebp and %edi when entering Linux's 32-bit entry point, as
required by the boot protocol.
* include/grub/i386/relocator.h (struct grub_relocator32_state): Add
ebp and edi members.
* grub-core/lib/i386/relocator.c (grub_relocator_boot): Handle
state.ebp and state.edi.
* grub-core/lib/i386/relocator32.S (grub_relocator32_start): Set
%ebp and %edi according to grub_relocator32_ebp and
grub_relocator32_edi respectively.
* grub-core/loader/i386/linux.c (grub_linux_boot): Zero state.ebp
and state.edi.
2010-09-02 22:36:09 +01:00
Vladimir 'phcoder' Serbinenko
529cc99acf Add i386-pc-pxe image target.
* util/grub-mkimage.c (image_target_desc): New enum value
	IMAGE_I386_PC_PXE.
	(image_targets): New target i386-pc-pxe.
	(generate_image): Handle i386-pc-pxe image.
2010-09-02 16:07:52 +02:00
Vladimir 'phcoder' Serbinenko
9a09392057 Fix grub_pxe_scan.
* grub-core/fs/i386/pc/pxe.c (grub_pxe_pxenv): Put correct type bangpxe.
	(grub_pxe_scan): Fix types and pxe_rm_entry computation.
	All users updated.
	* include/grub/i386/pc/pxe.h (grub_pxe_bangpxe): New struct.
	(grub_pxe_pxenv): Correct type.
2010-09-02 15:47:03 +02:00
Colin Watson
f9cefc4eb3 * NEWS: Document most of the important changes since 1.98. 2010-09-01 18:15:46 +01:00
Colin Watson
4066f57f19 * util/grub-mkrescue.in (usage): Tidy up usage output (and hence
generated manual page) a little.
2010-09-01 10:32:34 +01:00
Colin Watson
da2891f962 * docs/grub.texi: Add myself as an author. 2010-09-01 10:29:30 +01:00