Commit graph

2435 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
3a37e3226b Use FOR_* macros instead of *_iterate whenever possible.
* commands/handler.c: Removed.
	* commands/help.c (grub_cmd_help): Use FOR_COMMANDS.
	* commands/minicmd.c (grub_mini_cmd_lsmod): Use FOR_DL_MODULES.
	* conf/any-emu.rmk (kernel_img_SOURCES): Remove kern/handler.c.
	* conf/common.rmk (script/lexer.c_DEPENDENCIES): Add grub_script.yy.h.
	(grub_probe_SOURCES): Remove kern/parser.c.
	(util/grub-script-check.c_DEPENDENCIES): Removed.
	(grub_script_check_SOURCES): Remove kern/handler.c, kern/parser.c
	and grub_script_check_init.c.
	(grub_script_check_init.lst): Removed.
	(grub_script_check_init.h): Likewise.
	(grub_script_check_init.c): Likewise.
	(pkglib_MODULES): Remove handler.mod and sh.mod.
	(handler_mod_SOURCES): Removed.
	(handler_mod_CFLAGS): Likewise.
	(handler_mod_LDFLAGS): Likewise.
	(normal_mod_SOURCES): Remove normal/handler.c.
	Add script/main.c, script/script.c, script/execute.c,
	script/function.c, script/lexer.c, grub_script.tab.c
	and grub_script.yy.c.
	* conf/i386-coreboot.rmk (kernel_img_SOURCES): Remove kern/handler.c.
	* conf/i386-ieee1275.rmk (kernel_img_SOURCES): Likewise.
	* conf/i386-pc.rmk (kernel_img_SOURCES): Likewise.
	(grub_setup_SOURCES): Remove kern/parser.c.
	* conf/i386-qemu.rmk (kernel_img_SOURCES): Remove kern/handler.c.
	* conf/mips-qemu-mips.rmk (kernel_img_SOURCES): Likewise.
	* conf/mips-yeeloong.rmk (kernel_img_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (kernel_img_SOURCES): Likewise.
	(grub_setup_SOURCES): Remove kern/parser.c.
	* conf/x86-efi.rmk (kernel_img_SOURCES): Remove kern/handler.c.
	* gettext/gettext.c (grub_gettext_delete_list): Don't use grub_list_pop.
	* include/grub/command.h (grub_command_iterate): Removed.
	(FOR_COMMANDS): New macro.
	* include/grub/dl.h (grub_dl): New member next.
	(grub_dl_iterate): Removed.
	(grub_dl_head): New variable declaration.
	(FOR_DL_MODULES): New macro.
	* include/grub/fs.h: Include list.h.
	(grub_fs): Make next first element.
	(grub_fs_list): New variable declaration.
	(grub_fs_register): Make inline.
	(grub_fs_unregister): Likewise.
	(grub_fs_iterate): Removed.
	(FOR_FILESYSTEMS): New macro.
	* include/grub/handler.h: Removed.
	* include/grub/list.h (grub_list_hook_t): Removed.
	(grub_list_test_t): Likewise.
	(grub_list_pop): Likewise.
	(grub_list_iterate): Likewise.
	(grub_list_insert): Likewise.
	(FOR_LIST_ELEMENTS): New macro.
	* include/grub/parser.h (grub_parser_class): Removed.
	(grub_parser_register): Likewise.
	(grub_parser_unregister): Likewise.
	(grub_parser_get_current): Likewise.
	(grub_parser_set_current): Likewise.
	(grub_register_rescue_parser): Likewise.
	(grub_rescue_parse_line): New function.
	* include/grub/partition.h (FOR_PARTITION_MAPS): Use FOR_LIST_ELEMENTS.
	* include/grub/script_sh.h (grub_script_function_list): New variable
	declaration.
	(FOR_SCRIPT_FUNCTIONS): New macro.
	(grub_script_function_iterate): Removed.
	(grub_normal_parse_line): New prototype.
	* include/grub/term.h (FOR_ACTIVE_TERM_INPUTS): Use FOR_LIST_ELEMENTS.
	(FOR_DISABLED_TERM_INPUTS): Likewise.
	(FOR_ACTIVE_TERM_OUTPUTS): Likewise.
	(FOR_DISABLED_TERM_OUTPUTS): Likewise.
	* include/grub/video.h (grub_video_adapter): Move 'next' to first
	element.
	(grub_video_register): Inline.
	(grub_video_unregister): Likewise.
	(grub_video_adapter_list): New variable declaration.
	(grub_video_iterate): Removed.
	(FOR_VIDEO_ADAPTERS): New macro.
	* kern/dl.c (grub_dl_list): Removed. All users updated.
	(grub_dl_iterate): Removed.
	* kern/fs.c (grub_fs_list): Make global.
	(grub_fs_register): Removed.
	(grub_fs_unregister): Likewise.
	(grub_fs_iterate): Likewise.
	* kern/handler.c: Removed.
	* kern/list.c (grub_list_pop): Removed.
	(grub_list_iterate): Likewise.
	(grub_list_insert): Likewise.
	(grub_named_list_find): Use FOR_LIST_ELEMENTS.
	(grub_prio_list_insert): Don't use grub_list_insert.
	* kern/main.c (grub_register_rescue_parser): Don't call
	grub_register_rescue_parser.
	* kern/parser.c (grub_parser_class): Removed.
	(grub_parser_execute): Use grub_rescue_parse_line.
	* kern/rescue_parser.c (grub_rescue_parse_line): Make global.
	(grub_rescue_parser): Removed.
	(grub_register_rescue_parser): Likewise.
	* kern/rescue_reader.c (grub_rescue_run): Use grub_rescue_parse_line.
	* normal/auth.c (is_authenticated): Use FOR_LIST_ELEMENTS.
	(grub_auth_check_authentication): Likewise.
	* normal/completion.c (iterate_command): Removed.
	(grub_normal_do_completion): Use FOR_COMMANDS.
	* normal/handler.c: Removed.
	* normal/main.c (read_config_file): Remove parser changing.
	(grub_normal_execute): Don't call read_handler_list.
	(grub_normal_read_line_real): Statically allocate prompt.
	(grub_cmdline_run): Use grub_normal_parse_line.
	(GRUB_MOD_FINI): Don't call free_handler_list.
	* normal/menu_entry.c (run): Likewise.
	* script/function.c (grub_script_function_list): Make global.
	(grub_script_function_iterate): Removed.
	* script/main.c (grub_normal_parse_line): Make global.
	(grub_sh_parser): Removed.
	(GRUB_MOD_INIT): Likewise.
	(GRUB_MOD_FINI): Likewise.
	* tests/lib/functional_test.c (grub_functional_test): Use
	FOR_LIST_ELEMENTS.
	* tests/lib/test.c (free_failures): Don't use grub_list_pop.
	(grub_test_run): Use FOR_LIST_ELEMENTS.
	* tests/lib/unit_test.c (main): Likewise.
	* util/deviceiter.c (grub_util_iterate_devices): Don't use
	grub_list_pop.
	* util/grub-fstest.c (grub_term_input_class): Removed.
	(grub_term_output_class): Likewise.
	* util/grub-probe.c: Likewise.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/sparc64/ieee1275/grub-setup.c: Likewise.
	* util/grub-script-check.c (main): Don't call grub_init_all and
	grub_fini_all.
	* video/video.c (grub_video_adapter_list): Make global.
	(grub_video_register): Removed.
	(grub_video_unregister): Likewise.
	(grub_video_iterate): Likewise.
2010-06-11 22:31:16 +02:00
Vladimir 'phcoder' Serbinenko
6289c3a715 * docs/grub.texi (Vendor power-on button): Add Asus EeePC 1005PE as
reported by Henrique Ferreiro.
2010-06-09 22:24:12 +02:00
Robert Millan
9146024736 2010-06-09 Robert Millan <rmh@gnu.org>
* util/grub.d/10_linux.in: Prefer compressed images over non-compressed
	ones, when both are available.
2010-06-09 20:43:25 +02:00
Grégoire Sutre
0ea7c4f93c Make --version uniform and avoid hard-coded program name. 2010-06-08 12:52:42 +02:00
Grégoire Sutre
e8a6f3b6a5 Use absolute offsets for start of embedding area. 2010-06-08 12:23:30 +02:00
Grégoire Sutre
f4d095d77d Add . to the directories searched for unifont. 2010-06-08 12:09:34 +02:00
Colin Watson
50e532ca1a * .bzrignore: Add ascii.bitmaps, ascii.h, grub_script.yy.c, and
grub_script.yy.h.
2010-06-08 10:37:16 +01:00
Colin Watson
d39f3dec5f * docs/grub.texi (History): Expand to cover GRUB 2.
(Serial terminal): Refer to `terminal_input' and `terminal_output'
commands, not `terminal'.
(serial): Likewise.
(terminal_input): New section.
(terminal_output): New section.
(uppermem): New section (stub).
(Obtaining and Building GRUB): Refer to Bazaar, not Subversion.
2010-06-08 10:29:25 +01:00
Colin Watson
6ef0ddb476 * docs/grub.texi (Security): Menu entries are unrestricted by
default, not restricted to superusers as I had previously thought.
Reword to account for this.
2010-06-08 10:18:53 +01:00
Colin Watson
e0f4c43882 * kern/emu/misc.c (device_mapper_null_log): New function.
(grub_device_mapper_supported): New function.
* include/grub/emu/misc.h (grub_device_mapper_supported): Add
prototype.
* kern/emu/hostdisk.c (find_partition_start): Check whether
device-mapper is supported before trying to use it.
* util/deviceiter.c (grub_util_iterate_devices): Likewise.
2010-06-07 22:41:55 +01:00
Colin Watson
da90820083 * docs/grub.texi (Naming convention): Use GRUB 2 syntax.
(File name syntax): Likewise.
(help): --all is no longer supported in GRUB 2.  Be more precise
about pattern matching.
2010-06-07 22:18:00 +01:00
Colin Watson
fb55c3acf9 * normal/completion.c (grub_normal_do_completion): When completing
arguments to "set" and the current word contains an equals sign,
skip to after the equals sign before starting completion.
2010-06-07 22:13:26 +01:00
Colin Watson
258c2573a6 * fs/i386/pc/pxe.c (grub_pxe_open): Fix parsing of gateway_ip. 2010-06-07 21:29:25 +01:00
Colin Watson
ee75515e69 * docs/grub.texi (Network): New section.
(Device syntax): The network device is called `(pxe)' in GRUB 2, not
`(nd)' as in GRUB Legacy.
(pxe_unload): New section.
2010-06-07 21:26:30 +01:00
Colin Watson
a6a700aa52 * docs/grub.texi (Troubleshooting): `echo' is not usually available
in the rescue shell, so recommend using `set' instead.  Thanks,
Jordan Uggla.
2010-06-07 21:10:29 +01:00
Colin Watson
4003dd38df * docs/grub.texi (Filesystem): Refer to search' instead of find'.
(password): New section.
(password_pbkdf2): New section.
(search): New section.
(Security): New section.
(Troubleshooting): New section, currently very incomplete.
(Invoking grub-mkpasswd-pbkdf2): New section.
(Internals): New section, currently very incomplete.
2010-06-07 14:32:12 +01:00
Colin Watson
e1cbcc40a4 * util/grub.d/00_header.in: Add some more quoting (of
"${prev_saved_entry}" and "${boot_once}") needed to make savedefault
work again.
Reported by: Mario 'BitKoenig' Holbe (Debian bug #584812).
2010-06-07 14:22:40 +01:00
Colin Watson
db8fa1ad87 * util/grub-mkpasswd-pbkdf2.c (main): Rename top-level `c' variable
to `count', fixing variable shadowing that broke the -c option.
2010-06-07 14:15:57 +01:00
Colin Watson
71c3809882 * util/grub.d/00_header.in: Quote values assigned to `saved_entry',
in case they contain spaces.
2010-06-05 20:44:44 +01:00
Colin Watson
f28a9212b4 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Prepend
"part_" to partmap module names, in line with grub-install.
Reported by: Jindřich Makovička (Debian bug #584426).
2010-06-04 13:53:30 +01:00
Colin Watson
9cdfe32f09 * util/grub-mkimage.c: Make target-related error messages slightly
more helpful; -O talks about "format".  Explicitly point to the use
of -O if no target is specified.
Reported by: Didier Raboud (Debian bug #584415).
2010-06-04 13:38:10 +01:00
Colin Watson
795b593a47 * INSTALL: Document several build requirements for optional features
(libdevmapper, ncurses, libusb, SDL, FreeType, GNU Unifont).
2010-06-03 09:48:23 +01:00
Grégoire Sutre
9d9b583350 Handle all possible disk device names for NetBSD. 2010-06-03 00:47:22 +02:00
Colin Watson
0819fec8a1 * docs/grub.texi (Simple configuration): Fix copy-and-paste typo.
Thanks to Jordan Uggla for spotting this.
2010-06-02 22:48:13 +01:00
Aleš Nesrsta
1515ec8684 2010-06-02 Aleš Nesrsta <starous@volny.cz>
Finally make USB usable.

	* bus/usb/ohci.c (grub_ohci_reg_t): Add missing values.
	(GRUB_OHCI_RHUB_PORT_POWER_MASK): New macro.
	(GRUB_OHCI_RHUB_PORT_ALL_POWERED): Likewise.
	(GRUB_OHCI_REG_FRAME_INTERVAL_FSMPS_MASK): Likewise.
	(GRUB_OHCI_REG_FRAME_INTERVAL_FSMPS_SHIFT): Likewise.
	(GRUB_OHCI_REG_FRAME_INTERVAL_FI_SHIFT): Likewise.
	(GRUB_OHCI_FSMPS): Likewise.
	(GRUB_OHCI_PERIODIC_START): Likewise.
	(GRUB_OHCI_FRAME_INTERVAL): Likewise.
	(GRUB_OHCI_SET_PORT_ENABLE): Likewise.
	(GRUB_OHCI_CLEAR_PORT_ENABLE): Likewise.
	(GRUB_OHCI_SET_PORT_RESET): Likewise.
	(GRUB_OHCI_SET_PORT_RESET_STATUS_CHANGE): Likewise.
	* bus/usb/ohci.c (grub_ohci_pci_iter): Various important fixups.
	(grub_ohci_transaction): Likewise.
	(grub_ohci_transfer): Improve condition detection algorithms.
	Handle toggle property. Program the transactions correctly.
	Improve error handling. Various important fixups.
	(grub_ohci_portstatus): Put register writes in right order.
	* bus/usb/uhci.c (grub_free_queue): Compute last_trans.
	(grub_uhci_transfer): Don't show "failed" message on success.
	* bus/usb/usb.c (grub_usb_set_configuration): Zero-fill whole "toggle"
	array.
	(grub_usb_device_initialize): Read first 8 bytes of descriptor to
	determine its size.
	* bus/usb/usbtrans.c (grub_usb_control_msg): Use descdev.maxsize0 even
	before initialization is completed. Use IN direction for empty
	transfers. Use last_trans and compute toggle.
	* include/grub/usbtrans.h (grub_usb_transfer): New field last_trans.
	(GRUB_USB_FEATURE_ENDP_HALT): Correct the value.
	(GRUB_USB_FEATURE_DEV_REMOTE_WU): Likewise.
	(GRUB_USB_FEATURE_TEST_MODE): Likewise.
	* include/grub/usb.h (grub_usb_err_t): New value GRUB_USB_ERR_UNRECOVERABLE.
	(grub_usb_device): Increase toggle to 256.
	(grub_usbms_subclass_t): New values GRUB_USBMS_SUBCLASS_RBC,
	GRUB_USBMS_SUBCLASS_MMC2, GRUB_USBMS_SUBCLASS_UFI and
	GRUB_USBMS_SUBCLASS_SFF8070.
	* include/grub/scsicmd.h (grub_scsi_test_unit_ready): New structure.
	(grub_scsi_inquiry): New member page and alloc_length.
	(grub_scsi_request_sense): New structure.
	(grub_scsi_request_sense_data): Likewise.
	(grub_scsi_read_capacity): New fields logical_block_addr, PMI and
	control.
	* disk/scsi.c (grub_scsi_request_sense): New function.
	(grub_scsi_test_unit_ready): Likewise.
	(grub_scsi_inquiry): Fill new fields.
	(grub_scsi_read_capacity): Likewise.
	(grub_scsi_read10): Add request sense at the end.
	(grub_scsi_read12): Likewise.
	(grub_scsi_write10): Likewise.
	(grub_scsi_write12): Likewise.
	(grub_scsi_open): Add Test Unit Ready.
	* disk/usbms.c (grub_usbms_finddevs): Check configcnt.
	Support additional subclasses. Con't clear halt yet. Activate the
	proper config. Calculate LUNs correctly.
	(grub_usbms_transfer): Various important fixups.

2010-06-02  Vladimir Serbinenko  <phcoder@gmail.com>

	* bus/pci.c (grub_pci_iterate) [GRUB_MACHINE_MIPS_YEELOONG]: Skip ghosts.
	* bus/usb/ohci.c (grub_ohci_portstatus): Handle R/WC correctly.
	(grub_ohci_fini_hw): New function.
	(grub_ohci_restore_hw): Likewise.
	(GRUB_MOD_INIT(ohci)): Register preboot hook.
	(GRUB_MOD_FINI(ohci)): Shutdown OHCI.
	* term/usb_keyboard.c: Remove include of grub/machine/console.h.

2010-06-02  Vladimir Serbinenko  <phcoder@gmail.com>

	Dedicated DMA allocations.

	* bus/pci.c (grub_memalign_dma32): New function
	(grub_dma_free): Likewise.
	(grub_dma_get_virt): Likewise.
	(grub_dma_get_phys): Likewise.
	* bus/usb/ohci.c (grub_ohci): New members hcca_addr and hcca_chunk.
	(grub_ohci_pci_iter): Use dma32_alloc.
	(grub_ohci_transfer): Likewise.
	* bus/usb/usbtrans.c (grub_usb_control_msg): Likewise.
	(grub_usb_bulk_readwrite): Likewise.
	* include/grub/pci.h: Add declarations.

2010-06-02  Vladimir Serbinenko  <phcoder@gmail.com>

	CS5536 support.

	* bus/cs5536.c: New file.
	* bus/usb/ohci.c (grub_ohci_pci_iter): Check for CS5536.
	* conf/i386.rmk (pkglib_MODULES): Add cs5536.mod.
	(cs5536_mod_SOURCES): New variable.
	(cs5536_mod_CFLAGS): Likewise.
	(cs5536_mod_LDFLAGS): Likewise.
	* conf/mips-yeeloong.rmk (kernel_img_HEADERS): Add cs5536.h and
	machine/pci.h.
	(kernel_img_SOURCES): Add bus/cs5536.c.
	(pkglib_MODULES): Add usb.mod, usbtest.mod, ohci.mod, usbms.mod and
	usb_keyboard.mod.
	(usb_mod_SOURCES): New variable.
	(usb_mod_CFLAGS): New variable.
	(usb_mod_LDFLAGS): New variable.
	(usbtest_mod_SOURCES): New variable.
	(usbtest_mod_CFLAGS): New variable.
	(usbtest_mod_LDFLAGS): New variable.
	(ohci_mod_SOURCES): New variable.
	(ohci_mod_CFLAGS): New variable.
	(ohci_mod_LDFLAGS): New variable.
	(usbms_mod_SOURCES): New variable.
	(usbms_mod_CFLAGS): New variable.
	(usbms_mod_LDFLAGS): New variable.
	(usb_keyboard_mod_SOURCES): New variable.
	(usb_keyboard_mod_CFLAGS): New variable.
	(usb_keyboard_mod_LDFLAGS): New variable.
	* include/grub/smbus.h: New file.
	* include/grub/cs5536.h: New file.

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-06-02 17:16:20 +02:00
Vladimir 'phcoder' Serbinenko
49396b4f61 Add ChangeLog 2010-06-02 16:52:16 +02:00
Colin Watson
0b35b2a921 * util/grub.d/00_header.in: Add safety check to make sure that
${locale_dir} exists before trying to probe it.
2010-06-02 13:57:13 +01:00
Colin Watson
ca0afd5bab * docs/grub.texi (SCO UnixWare): Remove, at Vladimir's request and
per the GNU Coding Standards; this is now too obscure to be worth
documenting.
(QNX): Likewise.
(chainloader): Remove cross-reference to `SCO UnixWare'.
2010-06-02 13:11:33 +01:00
Colin Watson
1c41aa7883 * docs/grub.texi (Chain-loading): New section.
(DOS/Windows): New section, borrowed from GRUB Legacy with details
adjusted for GRUB 2.
(SCO UnixWare): Likewise.
(QNX): Likewise.
(chainloader): Add reference to `Block list syntax'.
(drivemap): New section.
(parttool): New section.
2010-06-02 12:47:11 +01:00
Colin Watson
bb8ea0f5c3 * docs/grub.texi (GNU GRUB manual): Remove reference to `Invoking
the grub shell'.
(Installation): Add reference to `Making a GRUB bootable CD-ROM'.
(Installing GRUB using grub-install): Remove reference to the grub
shell; mention `grub-mkimage' and `grub-setup' instead.
(Invoking grub-install): Likewise.
(Interface): Add reference to `Menu entry editor'.
(serial): Remove `--device' option.
2010-06-02 11:26:28 +01:00
Colin Watson
288dd6ed3d * docs/grub.texi (Configuration): New section, documenting
configuration file generation using grub-mkconfig.  I've left a slot
for documenting the full shell scripting format but have not yet
started on writing that up.
(Invoking grub-mkconfig): New section.
2010-06-02 11:14:02 +01:00
Colin Watson
34c9f0e949 * docs/grub.texi (direntry): Remove grub-terminfo reference.
(GNU GRUB manual): Likewise.
(General commands): Update description of `terminfo' for GRUB 2.
2010-06-02 02:50:04 +01:00
Colin Watson
9121567e16 * commands/gptsync.c (grub_cmd_gptsync): Fix typos.
(GRUB_MOD_INIT): Fix capitalisation.
* docs/grub.texi (Command-line and menu entry commands): Document
gettext and gptsync commands.
2010-06-02 02:37:55 +01:00
Colin Watson
ab6316112c * conf/any-emu.rmk (kernel_img_SOURCES) [!x86]: Include
kern/$(target_cpu)/cache.S even if TARGET_NO_MODULES = yes.
2010-06-02 01:23:34 +01:00
Colin Watson
bde4a9ac1d Add btrfs probing support, currently only in the single-device case.
* kern/emu/getroot.c (find_root_device_from_mountinfo): New
function.
(grub_guess_root_device): Call find_root_device_from_mountinfo
before looking in /dev.
2010-06-01 18:30:20 +01:00
Vladimir 'phcoder' Serbinenko
b1d17e10e0 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Use
GRUB_DISK_SIZE_UNKNOWN.
	* disk/ieee1275/ofdisk.c (grub_ofdisk_open): Likewise.
2010-05-31 21:01:01 +02:00
Jiro SEKIBA
dfbfe00473 * include/grub/disk.h (GRUB_DISK_SIZE_UNKNOWN): New macro.
* fs/nilfs.c: Support 2nd super block in case 1st one is accidently
	corrupted or not synced properly.
2010-05-31 20:49:42 +02:00
Vladimir 'phcoder' Serbinenko
c2ffc8e956 * normal/main.c (grub_normal_add_menu_entry): Avoid going out of args.
Reported by: Seth Goldberg.
2010-05-31 20:46:16 +02:00
Vladimir 'phcoder' Serbinenko
5629316656 * loader/multiboot_mbi2.c (grub_multiboot_make_mbi): Fix incorrect
addition of dest.
	Reported by: Seth Goldberg.
2010-05-31 20:43:28 +02:00
Vladimir 'phcoder' Serbinenko
7620e7debd * commands/setpci.c (grub_setpci_iter): Fix an incorrect function check.
Reported by: Seth Goldberg.
2010-05-31 20:40:42 +02:00
Vladimir 'phcoder' Serbinenko
c837af3f38 * loader/multiboot_elfxx.c (grub_multiboot_load_elfXX) [__mips]: Check
64-bit address as signed on MIPS.
2010-05-31 20:23:51 +02:00
Colin Watson
c7c75cf4cb * configure.ac: AC_PROG_LEX sets LEX to ":" if lex is missing, not
to the empty string.
2010-05-28 18:13:48 +01:00
BVK Chaitanya
fa4b84900a Fix grub-emu issues on NetBSD, with gcc 4.1.3.
* conf/any-emu.rmk: Remove unnecessary COMMON_CFLAGS.
	* include/grub/emu/misc.h (canonicalize_file_name): New Prototype.
	* kern/misc.c (__enable_execute_stack): Disable on
	GRUB_MACHINE_EMU.
2010-05-28 19:18:45 +05:30
Colin Watson
a33075b941 Make grub-probe work with symbolic links under /dev/mapper as well
as with real block devices.  The Linux world seems to be (at best)
in transition here, and GRUB shouldn't get caught in the middle.
* kern/emu/getroot.c (find_root_device): Follow symbolic links under
/dev/mapper.
2010-05-28 13:21:30 +01:00
Colin Watson
d870813427 * util/grub-script-check.c (main): Ensure defined behaviour on empty
input files (in which case exit zero).
2010-05-27 15:54:18 +01:00
Colin Watson
db2102a046 * kern/emu/misc.c (canonicalize_file_name): realpath can still
return NULL for various reasons even if it has a maximum-length
buffer: for example, there might be a symlink loop, or the path
might exceed PATH_MAX.  If this happens, return NULL.
2010-05-27 15:45:41 +01:00
Robert Millan
5fdba519bb 2010-05-27 Robert Millan <rmh@gnu.org>
* util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Insert
	partmap module to handle cross-partmap setups.
	Reported by Orestes Mas.  Gràcies!
2010-05-27 16:38:16 +02:00
Colin Watson
d1d368e426 * util/grub-mkrescue.in: Initialise override_dir rather than
assuming that it's unset or empty in the environment.
2010-05-27 12:43:22 +01:00
Grégoire Sutre
95ac3c730c Fix -Wshadow warning with emu build on NetBSD. 2010-05-26 23:49:52 +02:00
BVK Chaitanya
7d8c021353 * INSTALL: Added flex >= 2.5.35 requirement. 2010-05-25 18:24:46 +05:30
Vladimir 'phcoder' Serbinenko
db4d5813e3 * commands/usbtest.c (grub_usb_get_string): Properly support UTF-16. 2010-05-23 14:37:28 +02:00
Vladimir 'phcoder' Serbinenko
f24f430030 cmostest support.
* commands/i386/cmostest.c: New file.
	* conf/i386-coreboot.rmk (pkglib_MODULES): Add cmostest.mod.
	(cmostest_mod_SOURCES): New variable.
	(cmostest_mod_CFLAGS): Likewise.
	(cmostest_mod_LDFLAGS): Likewise.
	* conf/i386-pc.rmk: Likewise.
	* docs/grub.texi (Vendor power-on keys): New section.
	* util/grub-mkconfig.in: export GRUB_DEFAULT_BUTTON,
	GRUB_HIDDEN_TIMEOUT_BUTTON, GRUB_TIMEOUT_BUTTON
	and GRUB_BUTTON_CMOS_ADDRESS.
	* util/grub.d/00_header.in: Handle powering-on by separate button.
2010-05-23 14:16:17 +02:00
Vladimir 'phcoder' Serbinenko
ad603f61a5 * gfxmenu/gui_list.c (draw_menu): Don't add scrollbar width to padding.
Removed drawing_scrollbar argument. All users updated
	Fixes #29792.
	Reported by Jo Shields
2010-05-23 13:59:50 +02:00
Vladimir 'phcoder' Serbinenko
3ecb080a33 * gfxmenu/view.c (grub_gfxmenu_draw_terminal_box): Apply only to current
buffer since gfxterm handles double repaint.
2010-05-23 13:43:38 +02:00
Vladimir 'phcoder' Serbinenko
5f2316c1fe * gfxmenu/gfxmenu.c (grub_gfxmenu_try): Change viewport on both buffers.
* term/gfxterm.c (real_scroll): Likewise.
2010-05-23 13:42:16 +02:00
Vladimir 'phcoder' Serbinenko
9a25f885d3 * kern/i386/pc/mmap.c (grub_machine_mmap_iterate): Zero-fill entry
before calling BIOS.
2010-05-21 20:22:29 +02:00
Vladimir 'phcoder' Serbinenko
39fbb79aa1 * include/grub/i18n.h: Always enable grub_gettext. 2010-05-21 20:12:41 +02:00
Vladimir 'phcoder' Serbinenko
228cfa97ca * kern/i386/pc/init.c (make_install_device): Fix a leftover usage of old
partition naming style.
2010-05-21 20:08:48 +02:00
Colin Watson
21717c8fca * util/grub-mkconfig.in: Fix handling of -o so that it works when
not the first option.
2010-05-21 14:17:15 +01:00
Colin Watson
c0f48e654d * util/grub-mkrelpath.c (usage): Remove excess apostrophe. 2010-05-20 23:27:15 +01:00
Colin Watson
96779aec8e * util/misc.c: Move inclusion of <limits.h> to ...
* kern/emu/misc.c: ... here.  Needed for canonicalize_file_name.
2010-05-20 23:16:10 +01:00
Grégoire Sutre
fa9d256ee4 Fix merge error in NetBSD code. 2010-05-20 02:05:43 +02:00
BVK Chaitanya
123b7a8571 Fix grub-mkrescue usage unit testing.
* tests/util/grub-shell.in: Use --grub-mkimage with grub-mkrescue.
2010-05-19 14:31:43 +05:30
Christian Franke
74276c0df7 * util/grub.d/10_windows.in: Use path names instead of
drive letters to prevent warning from Cygwin 1.7.
	Add drivemap command to menuentry if needed.
2010-05-18 21:58:49 +02:00
Samuel Thibault
c4f7b52359 2010-05-18 Justus Winter <4winter@informatik.uni-hamburg.de>
* util/grub.d/10_hurd.in: Include all gnumach* kernels, not only
	gnumach and gnumach.gz.
2010-05-18 20:10:37 +02:00
Vladimir 'phcoder' Serbinenko
95b97950e2 * include/grub/i18n.h (gettext): Inline instead of using #define.
(grub_gettext): Likewise.
	(_): Likewise.
2010-05-18 14:00:51 +02:00
Vladimir 'phcoder' Serbinenko
01b8d2d787 * Makefile.in (CPPFLAGS): Replace -DGRUB_LIBDIR with
-DGRUB_PKGLIBROOTDIR= and prepend @PACKAGE_TARNAME@. All users updated.
	* util/grub-mkimage.c (image_targets): Add i386-multiboot.
	(main): Add a slash after pkglibdirroot.
2010-05-18 13:55:26 +02:00
Vladimir 'phcoder' Serbinenko
654e1d1e0e * util/grub-install.in: Add missing "in" keyword. 2010-05-18 13:45:25 +02:00
Vladimir 'phcoder' Serbinenko
26966aeba7 2010-05-18 Vladimir Serbinenko <phcoder@gmail.com>
* util/grub-mkrescue.in: Remove -O i386-pc duplication.
	Reported by: Seth Goldberg.
2010-05-18 14:21:15 +02:00
Vladimir 'phcoder' Serbinenko
7500674773 * po/POTFILES: Rename util/grub-mkrawimage.c to util/grub-mkimage.c. 2010-05-18 14:20:00 +02:00
Colin Watson
74cbf5bdcb * configure.ac: Check for Linux device-mapper support.
* util/hostdisk.c (device_is_mapped): New function.
(find_partition_start): New function, partly broken out from
linux_find_partition and grub_util_biosdisk_get_grub_dev but with
device-mapper support added.
(linux_find_partition): Use find_partition_start.
(convert_system_partition_to_system_disk): Add `st' argument.
Support Linux /dev/mapper/* devices if device-mapper support is
available; only DM-RAID devices are understood at present.
(find_system_device): Add `st' argument.  Pass it to
convert_system_partition_to_system_disk.
(grub_util_biosdisk_get_grub_dev): Pass stat result to
find_system_device and convert_system_partition_to_system_disk.  Use
find_partition_start.
* conf/common.rmk (grub_mkdevicemap_SOURCES): Add kern/env.c,
kern/err.c, kern/list.c, kern/misc.c, and kern/emu/mm.c.
* util/deviceiter.c [__linux__]: Define MINOR.
(grub_util_iterate_devices): Add support for DM-RAID disk devices.
* util/mkdevicemap.c (grub_putchar): New function.
(grub_getkey): New function.
(grub_refresh): New function.
(main): Set debug=all if -v -v is used.
2010-05-18 12:33:35 +01:00
Colin Watson
355b51e9b5 Fix build with non-GNU libcs.
* util/misc.c (canonicalize_file_name): Move to ...
* kern/emu/misc.c (canonicalize_file_name): ... here.  Needed by
grub_make_system_path_relative_to_its_root.
2010-05-18 11:57:31 +01:00
Colin Watson
7fb5c25fd0 * util/grub-mkrescue.in: Sync up with grub-install in terms of how
we handle finding grub-mkimage.  Default to finding grub-mkimage in
${bindir} with program_transform_name applied, and provide a
--grub-mkimage option to override this.
2010-05-18 11:51:37 +01:00
Vladimir 'phcoder' Serbinenko
1d3293d67d Remove grub-mkisofs.
* conf/common.rmk (bin_UTILITIES): Remove grub-mkisofs.
	(grub_mkisofs_SOURCES): Removed.
	(grub_mkisofs_CFLAGS): Removed.
	* util/mkisofs/defaults.h: Removed.
	* util/mkisofs/eltorito.c: Likewise.
	* util/mkisofs/exclude.h: Likewise.
	* util/mkisofs/hash.c: Likewise.
	* util/mkisofs/include/: Likewise.
	* util/mkisofs/include/fctldefs.h: Likewise.
	* util/mkisofs/include/mconfig.h: Likewise.
	* util/mkisofs/include/prototyp.h: Likewise.
	* util/mkisofs/include/statdefs.h: Likewise.
	* util/mkisofs/iso9660.h: Likewise.
	* util/mkisofs/joliet.c: Likewise.
	* util/mkisofs/match.c: Likewise.
	* util/mkisofs/match.h: Likewise.
	* util/mkisofs/mkisofs.c: Likewise.
	* util/mkisofs/mkisofs.h: Likewise.
	* util/mkisofs/msdos_partition.h: Likewise.
	* util/mkisofs/multi.c: Likewise.
	* util/mkisofs/name.c: Likewise.
	* util/mkisofs/rock.c: Likewise.
	* util/mkisofs/tree.c: Likewise.
	* util/mkisofs/write.c: Likewise.
2010-05-17 23:33:03 +02:00
Vladimir 'phcoder' Serbinenko
5dde9afe82 Unify grub-mkimage accross platforms.
* Makefile.in (CPPFLAGS): Set GRUB_LIBDIR to $(libdir).
	* conf/common.rmk (bin_UTILITIES): Removed grub-mkelfimage.
	(grub_mkelfimage_SOURCES): Removed.
	(util/elf/grub-mkimage.c_DEPENDENCIES): Renamed to ..
	(util/grub-mkimage.c_DEPENDENCIES): .. this.
	(bin_UTILITIES): Add grub-mkimage.
	(grub_mkimage_SOURCES): New variable.
	(kernel_img_HEADERS): Remove machine/kernel.h.
	* conf/i386-pc.rmk (pkglib_IMAGES): Remove kernel.img.
	(pkglib_PROGRAMS): Add kernel.img.
	(kernel_img_HEADERS): Add machine/kernel.h.
	(kernel_img_FORMAT): Removed.
	(bin_UTILITIES): Remove grub-mkimage.
	(grub_mkimage_SOURCES): Removed.
	(grub_mkimage_CFLAGS): Likewise.
	(util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
	* conf/i386-qemu.rmk (pkglib_IMAGES): Remove kernel.img.
	(pkglib_PROGRAMS): Add kernel.img.
	(bin_UTILITIES): Remove grub-mkimage.
	(grub_mkimage_SOURCES): Removed.
	(grub_mkimage_CFLAGS): Likewise.
	(util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
	* conf/mips-qemu-mips.rmk (pkglib_IMAGES): Remove kernel.img.
	(pkglib_PROGRAMS): Add kernel.img.
	* conf/mips-yeeloong.rmk (pkglib_IMAGES): Remove kernel.img.
	(pkglib_PROGRAMS): Add kernel.img.
	* conf/mips.rmk (bin_UTILITIES): Remove grub-mkimage.
	(grub_mkimage_SOURCES): Removed.
	(grub_mkimage_CFLAGS): Likewise.
	(util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
	* conf/sparc64-ieee1275.rmk (pkglib_IMAGES): Remove kernel.img.
	(pkglib_PROGRAMS): Add kernel.img.
	(bin_UTILITIES): Remove grub-mkimage.
	(grub_mkimage_SOURCES): Removed.
	(grub_mkimage_CFLAGS): Likewise.
	(util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
	* conf/x86-efi.rmk (bin_UTILITIES): Remove grub-mkimage.
	(grub_mkimage_SOURCES): Removed.
	(grub_mkimage_CFLAGS): Likewise.
	(util/grub-mkrawimage.c_DEPENDENCIES): Likewise.
	* configure.ac (machine_CFLAGS): Add "-DMACHINE".
	* include/grub/efi/pe32.h (grub_pe32_optional_header): Split into ...
	(grub_pe32_optional_header): ... this.
	(grub_pe64_optional_header): ... and this. All users updated.
	(GRUB_PE32_PE32_MAGIC): Split into ..
	(GRUB_PE32_PE32_MAGIC): .. this.
	(GRUB_PE32_PE64_MAGIC): .. and this.
	(GRUB_PE32_SIGNATURE_SIZE): New definition.
	* include/grub/elf.h (PT_GNU_STACK): New definition.
	* include/grub/i386/coreboot/kernel.h: Merged into include/grub/offsets.h. All users updated.
	* include/grub/i386/efi/kernel.h: Likewise.
	* include/grub/i386/kernel.h: Likewise.
	* include/grub/i386/pc/kernel.h: Likewise.
	* include/grub/i386/qemu/boot.h: Likewise.
	* include/grub/mips/kernel.h: Likewise.
	* include/grub/mips/qemu-mips/kernel.h: Likewise.
	* include/grub/powerpc/ieee1275/kernel.h: Likewise.
	* include/grub/powerpc/kernel.h: Likewise.
	* include/grub/sparc64/ieee1275/boot.h: Likewise.
	* include/grub/sparc64/ieee1275/kernel.h: Likewise.
	* include/grub/sparc64/kernel.h: Likewise.
	* include/grub/x86_64/efi/kernel.h: Likewise.
	* include/grub/x86_64/kernel.h: Likewise.
	* include/grub/offsets.h: New file.
	* include/grub/kernel.h (grub_module_info): Split into ...
	(grub_module_info32): ... this.
	(grub_module_info64): ... and this.
	* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_KERNEL_SEG): Moved from here ...
	* include/grub/offsets.h (GRUB_BOOT_I386_PC_KERNEL_SEG): ... here.
	(grub_boot_blocklist): Moved from here ...
	* include/grub/offsets.h (grub_pc_bios_boot_blocklist): ... here.
	* include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): Moved from here.
	* include/grub/offsets.h (GRUB_MEMORY_I386_PC_UPPER): .. here.
	* include/grub/types.h (grub_target_to_host16): Removed.
	(grub_target_to_host32): Likewise.
	(grub_target_to_host64): Likewise.
	(grub_host_to_target16): Likewise.
	(grub_host_to_target32): Likewise.
	(grub_host_to_target64): Likewise.
	(grub_host_to_target_addr): Likewise.

	Support grub-mkrescue for efi, coreboot and qemu.

	* conf/x86-efi.rmk (bin_SCRIPTS): Add grub-mkrescue.
	* kern/efi/init.c (grub_efi_set_prefix): Handle baked in prefix.
	* util/elf/grub-mkimage.c: Merged into util/grub-mkimage.c.
	* util/grub-mkrawimage.c: Moved from here ...
	* util/grub-mkimage.c: ... here. All users updated.
	(ALIGN_ADDR): Use image_target.
	(TARGET_NO_FIELD): New const.
	(image_target_desc): New type.
	(image_targets): New array.
	(grub_target_to_host64): Use image_target.
	(grub_target_to_host32): Likewise.
	(grub_target_to_host16): Likewise.
	(grub_host_to_target64): Likewise.
	(grub_host_to_target32): Likewise.
	(grub_host_to_target16): Likewise.
	(grub_host_to_target_addr): Likewise.
	(generate_image): Handle multiimage.
	(main): Require -O parameter. All users updated.
	* util/grub-mkimagexx.c: New file. Based on util/grub-mkrawimage.c and
	util/efi/grub-mkimage.c
	* util/grub-mkrescue.in: Handle coreboot, efi and qemu.
	New option --rom-directory.
	Use xorriso.
	* util/i386/efi/grub-mkimage.c: Removed.
	* util/i386/pc/grub-setup.c (grub_target_to_host16): New definition.
	(grub_target_to_host32): Likewise.
	(grub_target_to_host64): Likewise.
	(grub_host_to_target16): Likewise.
	(grub_host_to_target32): Likewise.
	(grub_host_to_target64): Likewise.
	* util/sparc64/ieee1275/grub-setup.c (grub_target_to_host16): New definition.
	(grub_target_to_host32): Likewise.
	(grub_target_to_host64): Likewise.
	(grub_host_to_target16): Likewise.
	(grub_host_to_target32): Likewise.
	(grub_host_to_target64): Likewise.
2010-05-17 23:04:10 +02:00
BVK Chaitanya
f4fc97d02a source tree reorg for emu platform 2010-05-17 21:10:53 +05:30
Vladimir 'phcoder' Serbinenko
cced9145fc Fix gfxmenu crash.
Reported by: Thorsten Grützmacher.

	* gfxmenu/gui_circular_progress.c (circprog_destroy): Unregister
	timeout hook.
	(circprog_set_property): Register and unregister timeout hook.
	* gfxmenu/gui_label.c (grub_gui_label): New fields template and value.
	(label_destroy): Free template. and unregister hook.
	(label_set_state): New function.
	(label_set_property): Handle templates and hooks.
	* gfxmenu/gui_progress_bar.c (progress_bar_destroy): Unregister
	timeout hook.
	(progress_bar_set_property): Register and unregister timeout hook.
	* gfxmenu/view.c (TIMEOUT_COMPONENT_ID): Move from here ...
	* include/grub/gui.h (GRUB_GFXMENU_TIMEOUT_COMPONENT_ID): ...to here
	* gfxmenu/view.c (grub_gfxmenu_timeout_notifications): New variable.
	(update_timeout_visit): Removed.
	(update_timeouts): New function.
	(redraw_timeouts): Likewise.
	(grub_gfxmenu_print_timeout): Use update_timeouts and redraw_timeouts.
	(grub_gfxmenu_clear_timeout): Likewise.
	* include/grub/gui.h (grub_gfxmenu_set_state_t): New type.
	(grub_gfxmenu_timeout_notify): Likewise.
	(grub_gfxmenu_timeout_notifications): New external variable.
	(grub_gfxmenu_timeout_register): New function.
	(grub_gfxmenu_timeout_unregister): Likewise.
2010-05-13 03:56:14 +02:00
Vladimir 'phcoder' Serbinenko
c6e5caab1d Transform (broken) vga terminal into (working) vga video driver.
* conf/i386-pc.rmk (vga_mod_SOURCES): Change term/i386/pc/vga.c to
	video/i386/pc/vga.c.
	* include/grub/video.h (grub_video_driver_id):
	Add GRUB_VIDEO_DRIVER_VGA.
	* term/i386/pc/vga.c: Renamed to ...
	* video/i386/pc/vga.c: ...this
	(DEBUG_VGA): Removed.
	(CHAR_WIDTH): Likewise.
	(CHAR_HEIGHT): Likewise.
	(TEXT_WIDTH): Likewise.
	(TEXT_HEIGHT): Likewise.
	(DEFAULT_FG_COLOR): Likewise.
	(DEFAULT_BG_COLOR): Likewise.
	(colored_char): Likewise.
	(xpos): Likewise.
	(ypos): Likewise.
	(cursor_state): Likewise.
	(fg_color): Likewise.
	(bg_color): Likewise.
	(text_buf): Likewise.
	(page): Likewise.
	(font): Likewise.
	(framebuffer): New variable.
	(set_read_map): Disabled.
	(setup): New variable.
	(is_target): Likewise.
	(grub_vga_mod_init): Likewise.
	(grub_vga_mod_fini): Likewise.
	(check_vga_mem): Likewise.
	(write_char): Likewise.
	(write_cursor): Likewise.
	(scroll_up): Likewise.
	(grub_vga_putchar): Likewise.
	(grub_vga_getcharwidth): Likewise.
	(grub_vga_getwh): Likewise.
	(grub_vga_getxy): Likewise.
	(grub_vga_gotoxy): Likewise.
	(grub_vga_cls): Likewise.
	(grub_vga_setcolorstate): Likewise.
	(grub_vga_setcursor): Likewise.
	(grub_video_vga_init): New function.
	(grub_video_vga_setup): Likewise.
	(grub_video_vga_fini): Likewise.
	(update_target): Likewise.
	(grub_video_vga_blit_bitmap): Likewise.
	(grub_video_vga_blit_render_target): Likewise.
	(grub_video_vga_set_active_render_target): Likewise.
	(grub_video_vga_get_active_render_target): Likewise.
	(grub_video_vga_swap_buffers): Likewise.
	(grub_video_vga_set_palette): Likewise.
	(grub_video_vga_get_info_and_fini): Likewise.
	(grub_vga_term): Removed.
	(grub_video_vga_adapter): New variable.
	(GRUB_MOD_INIT): Register a video driver instead of terminal.
	(GRUB_MOD_FINI): Unrefister a video driver instead of terminal.
2010-05-09 11:00:21 +02:00
Vladimir 'phcoder' Serbinenko
2bf61a980b * video/readers/jpeg.c: Indented. 2010-05-05 21:19:55 +02:00
Vladimir 'phcoder' Serbinenko
09ddcd11fb Various jpeg cleanups.
* video/readers/jpeg.c (grub_jpeg_get_huff_code): Use ARRAY_SIZE.
	(grub_jpeg_decode_quan_table): Use sizeof.
	(grub_jpeg_decode_du): Use ARRAY_SIZE.
2010-05-05 21:18:10 +02:00
Peter Hurley
e550750546 * video/readers/jpeg.c (grub_jpeg_decode_huff_table): Loop over all
tables. Ignore non-last ac bit.
	(grub_jpeg_decode_quan_table): Likewise.
2010-05-05 21:03:59 +02:00
Vladimir 'phcoder' Serbinenko
7e720a9bc1 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New value
GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM.
	* kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM on qemu.
	* kern/ieee1275/init.c (grub_claim_heap): Don0t allocate below
	1.5MiB if GRUB_IEEE1275_FLAG_NO_PRE1_5M_CLAIM is set.
2010-05-05 18:52:13 +02:00
Vladimir 'phcoder' Serbinenko
a7fc080b56 * term/ieee1275/ofconsole.c (grub_ofconsole_getkey): Fix off-by-one
error.
2010-05-05 18:44:02 +02:00
Vladimir 'phcoder' Serbinenko
2bf6012d7f * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Support C0 code. 2010-05-05 18:42:33 +02:00
Vladimir 'phcoder' Serbinenko
265d68cd10 * commands/parttool.c (grub_cmd_parttool): Fix #if !GRUB_NO_MODULES
condition.
2010-05-03 13:17:12 +02:00
Vladimir 'phcoder' Serbinenko
7dd5a111ba * kern/mm.c (grub_real_malloc): Put magic and size assignment in common
part.
2010-05-03 13:12:55 +02:00
Vladimir 'phcoder' Serbinenko
9b058d5291 * kern/mm.c (grub_mm_init_region): Check for region size after aligning
pointers.
2010-05-03 13:07:31 +02:00
Vladimir 'phcoder' Serbinenko
2589383147 * kern/mm.c (grub_real_malloc): Fix size calculation when extra == 0. 2010-05-03 12:53:32 +02:00
Christian Franke
d1b61374ed * util/grub-mkconfig_lib.in (make_system_path_relative_to_its_root):
Remove broken Cygwin path conversion.
	* util/misc.c: [__CYGWIN__] Add include and define.
	[__CYGWIN__] (get_win32_path): Copy function from getroot.c, modify
	for Cygwin 1.7.
	(make_system_path_relative_to_its_root): Simplify loop, replace early
	return by break.
	[__CYGWIN__] Add conversion to win32 path.
	Include "/" case in trailing slash removal.
2010-05-01 21:39:32 +02:00
Vladimir 'phcoder' Serbinenko
3558c6e93c * kern/main.c (grub_load_config): Fix copy-pasted comment.
Reported by: Seth Goldberg
2010-05-01 21:32:23 +02:00
Vladimir 'phcoder' Serbinenko
f5f3ff9326 * commands/help.c (grub_cmd_help): Fix a typo.
Reported by: Seth Goldberg
2010-05-01 21:31:45 +02:00
Vladimir 'phcoder' Serbinenko
d8b5cd4011 * commands/hashsum.c (GRUB_MOD_INIT): Remove duplication of command
name and add N_.
	* commands/i386/pc/drivemap.c (GRUB_MOD_INIT): Likewise.
	* commands/iorw.c (GRUB_MOD_INIT): Likewise.
	* commands/password_pbkdf2.c (GRUB_MOD_INIT): Likewise.
	* commands/regexp.c (GRUB_MOD_INIT): Likewise.
	* commands/setpci.c (GRUB_MOD_INIT): Likewise.
	* commands/terminal.c (GRUB_MOD_INIT): Likewise.
	* efiemu/main.c (GRUB_MOD_INIT): Likewise.
	* font/font_cmd.c (GRUB_MOD_INIT): Likewise.
	* kern/corecmd.c (GRUB_MOD_INIT): Likewise.
	* mmap/mmap.c (GRUB_MOD_INIT): Likewise.
	* normal/context.c (GRUB_MOD_INIT): Likewise.
	* normal/main.c (GRUB_MOD_INIT): Likewise.
	* term/gfxterm.c (GRUB_MOD_INIT): Likewise.
	* term/serial.c (GRUB_MOD_INIT): Likewise.
	* term/terminfo.c (GRUB_MOD_INIT): Likewise.
2010-05-01 20:28:07 +02:00
Vladimir 'phcoder' Serbinenko
88c14915f8 * kern/mm.c (grub_real_malloc): Satisfy alignment requirement when
extra == 0.
2010-05-01 19:39:32 +02:00
Vladimir 'phcoder' Serbinenko
165134bcc1 * commands/iorw.c: New file.
* conf/i386.rmk (pkglib_MODULES): Add iorw.mod.
	(iorw_mod_SOURCES): New variable.
	(iorw_mod_CFLAGS): Likewise.
	(iorw_mod_LDFLAGS): Likewise.
2010-05-01 19:37:04 +02:00
Vladimir 'phcoder' Serbinenko
c5ac9b32ac Hotkey support
* include/grub/menu.h (grub_menu_entry): New field 'hotkey'.
	* normal/main.c (hotkey_aliases): New variable.
	(grub_normal_add_menu_entry): Parse "--hotkey".
	* normal/menu_text.c (run_menu): Handle hotkeys.
2010-05-01 19:33:17 +02:00
Vladimir 'phcoder' Serbinenko
ce60689c68 * kern/i386/coreboot/init.c (grub_machine_init): Call
grub_machine_mmap_init on qemu.
2010-05-01 16:35:15 +02:00
Vladimir 'phcoder' Serbinenko
0359d00628 * boot/i386/qemu/boot.S: Add a missing .code16. 2010-05-01 14:38:09 +02:00
Vladimir 'phcoder' Serbinenko
7819a4562f Use LBIO on coreboot.
* conf/i386-coreboot.rmk (kernel_img_SOURCES): Change
	kern/i386/multiboot_mmap.c to kern/i386/coreboot/mmap.c.
	* include/grub/i386/coreboot/memory.h (GRUB_LINUXBIOS_MEMBER_LINK):
	New declaration.
	* kern/i386/coreboot/init.c (grub_machine_init): Don't call
	grub_machine_mmap_init on coreboot.
	* kern/i386/coreboot/mmap.c (grub_linuxbios_table_iterate): Handle
	GRUB_LINUXBIOS_MEMBER_LINK.
	(grub_machine_mmap_iterate): Fix declaration.
	* kern/i386/coreboot/startup.S: Don't save mbi location on coreboot.
2010-05-01 14:32:48 +02:00
Vladimir 'phcoder' Serbinenko
7210dca942 Split coreboot and multiboot ports.
* conf/i386-multiboot.rmk: New file.
	* configure.ac: Add multiboot port.
	* include/grub/i386/multiboot/boot.h: New file.
	* include/grub/i386/multiboot/console.h: Likewise.
	* include/grub/i386/multiboot/init.h: Likewise.
	* include/grub/i386/multiboot/kernel.h: Likewise.
	* include/grub/i386/multiboot/loader.h: Likewise.
	* include/grub/i386/multiboot/memory.h: Likewise.
	* include/grub/i386/multiboot/serial.h: Likewise.
	* include/grub/i386/multiboot/time.h: Likewise.
	* include/grub/multiboot.h: Add GRUB_MACHINE_MULTIBOOT to ifdef.
	* loader/multiboot.c: Likewise.
	* loader/multiboot_mbi2.c: Likewise.
	* util/grub-mkrescue.in: Generate multiboot rescue.
2010-05-01 14:06:53 +02:00
Vladimir 'phcoder' Serbinenko
3080f7a7bd * kern/parser.c (grub_parser_execute): Cope with read-only config. 2010-05-01 13:27:13 +02:00
Vladimir 'phcoder' Serbinenko
6f8aaf68be Merge handling of input and output terminals. Fix a hang.
* commands/terminal.c (abstract_terminal): New struct.
	(handle_command): New function. Based on grub_cmd_terminal_input.
	(grub_cmd_terminal_input): Use handle_command.
	(grub_cmd_terminal_output): Use handle_command.
2010-05-01 13:20:07 +02:00
BVK Chaitanya
a8ebb84111 Fix comment handling.
* tests/grub_script_comments.in: New testcase.
	* conf/tests.rmk: Rules for new testcase.
	* script/yylex.l: Updated flex rules.
2010-05-01 15:49:43 +05:30
Samuel Thibault
c76a18386f * commands/i386/pc/play.c (grub_cmd_play): Call 'grub_file_open' only
if argc is 1.
2010-04-28 23:18:16 +02:00
Samuel Thibault
bb06ba0892 * docs/grub.texi (play): Document that zero pitches produce rests. 2010-04-28 22:59:27 +02:00
Vladimir 'phcoder' Serbinenko
cc9d24254f * conf/x86-efi.rmk (linux_mod_SOURCES): Write explicitly to avoid
autogen issues.
2010-04-27 22:08:24 +02:00
Christian Franke
460d8402e0 * include/grub/util/getroot.h (grub_get_prefix): Remove prototype.
* util/getroot.c [__CYGWIN__] (get_win32_path): Remove function.
	(grub_get_prefix): Remove function.
	* util/grub-emu.c (main): Replace grub_get_prefix () call by
	make_system_path_relative_to_its_root ().
	* util/sparc64/ieee1275/grub-setup.c (main): Likewise.
2010-04-26 03:35:55 +02:00
Christian Franke
553c01f958 * Makefile.in (TARGET_LDFLAGS): Add -static-libgcc.
(kernel_img_LDFLAGS): Remove -static-libgcc.
2010-04-24 23:18:57 +02:00
Christian Franke
2aec1692d9 * configure.ac: Do not CHECK_BSS_START_SYMBOL
and CHECK_END_SYMBOL if grub-emu is built.
	Unset TARGET_OBJ2ELF if grub-emu is built
	without module support.
2010-04-24 22:41:52 +02:00
Jiro SEKIBA
f67dc308f6 Nilfs2 support.
* conf/common.rmk (grub_probe_SOURCES): Add fs/nilfs2.c.
	(grub_fstest_SOURCES): Likewise.
	(pkglib_MODULES): Add nilfs2.mod.
	(nilfs2_mod_SOURCES): New variable.
	(nilfs2_mod_CFLAGS): Likewise.
	(nilfs2_mod_LDFLAGS): Likewise.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/nilfs2.c.
	* conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Add fs/nilfs2.c.
	* fs/nilfs2.c: New file.
2010-04-24 22:09:08 +02:00
Vladimir 'phcoder' Serbinenko
4ba8d3540a * configure.ac: Refuse to compile for x86_64-efi is mcmodel=large
is not supported.
2010-04-21 21:26:56 +02:00
Grégoire Sutre
0d2c20c6f1 Add grub-mkconfig support for NetBSD. 2010-04-19 21:25:41 +02:00
BVK Chaitanya
bc4a2d832b Fix emu build with grub-emu-pci and grub-emu-modules.
* include/grub/util/misc.h: Export grub_util_{info,error,warn}
	functions.
	* include/grub/libpciaccess.h: New file.
	* conf/any-emu.rmk: Update kernel headers for emu build.
2010-04-19 16:04:56 +05:30
Vladimir 'phcoder' Serbinenko
f48c87aae8 * fs/udf.c (grub_udf_iterate_dir): Silence a spurious warning. 2010-04-19 03:28:55 +02:00
Vladimir 'phcoder' Serbinenko
189593857c * fs/udf.c (grub_udf_iterate_dir): Decode the Unicode filenames. 2010-04-19 02:41:48 +02:00
Vladimir 'phcoder' Serbinenko
0037de3fa3 * boot/sparc64/ieee1275/boot.S: Various size-reducing changes.
Retrieve chosen/bootpath if bootpath isn't hardcoded.
	* conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Add
	util/ieee1275/ofpath.c.
	* util/sparc64/ieee1275/grub-ofpathname.c: Renamed to ...
	* util/ieee1275/grub-ofpathname.c: ... this. All users updated
	* include/grub/sparc64/ieee1275/boot.h
	(GRUB_BOOT_MACHINE_KERNEL_SECTOR): Renamed to ...
	(GRUB_BOOT_MACHINE_KERNEL_BYTE): ...this. Moved 8 bytes lower.
	* util/hostdisk.c (grub_util_biosdisk_get_osdev): New function.
	* util/ieee1275/ofpath.c (grub_util_devname_to_ofpath): Make argument
	const char *.
	* util/sparc64/ieee1275/grub-setup.c (compute_dest_ofpath): Removed.
	(setup): Use KERNEL_BYTE instead of KERNEL_SECTOR.
	Use grub_util_devname_to_ofpath. Zero-fill boot_devpath on same disk
	install.
2010-04-18 20:41:06 +02:00
Grégoire Sutre
38e55e9058 TARGET_IMG_LDFLAGS_AC now always expects a number appended to it. Fixed
grub_prefix in grub-mkconfig for NetBSD and OpenBSD.
2010-04-18 19:57:50 +02:00
Vladimir 'phcoder' Serbinenko
a9e6ff28d2 * po/POTFILES: Renamed multiboot_loader.c to multiboot.c 2010-04-18 13:00:06 +02:00
Vladimir 'phcoder' Serbinenko
0b830b8f5e * util/hostdisk.c (make_device_name): Change to new partition naming. 2010-04-18 12:59:04 +02:00
Vladimir 'phcoder' Serbinenko
0973daeb38 * disk/lvm.c (grub_lvm_memberlist): Issue an error if pv->disk = 0. 2010-04-17 18:58:56 +02:00
Christian Franke
ebfe7eb4dd * Makefile.in: Add missing localedir setting. 2010-04-17 17:17:36 +02:00
Colin Watson
0b45630927 Restore TEXTDOMAINDIR correction from r1889, lost apparently by
mistake in r2156.  Noticed by Anthony Fok.
* util/grub.d/10_kfreebsd.in (TEXTDOMAINDIR): Set to lowercased
@localedir@.
* util/grub.d/10_linux.in (TEXTDOMAINDIR): Likewise.
2010-04-14 13:59:58 +01:00
BVK Chaitanya
08f46d6221 Fix a spurious, uninitialized variable warning.
* loader/i386/bsdXX.c (grub_freebsd_load_elfmodule_obj):
	Initialize variable, shdr.
	(grub_freebsd_load_elfmodule): Likewise.
	(grub_freebsd_load_elf_meta): Likewise.
2010-04-14 13:48:49 +05:30
BVK Chaitanya
8c4a72d4b5 Fix for escaped dollar in double quoted strings.
* script/yylex.l: Updated flex rules.
	* conf/tests.rmk: Rule for new testcase.
	* tests/grub_script_dollar.in: New testcase.
2010-04-13 21:25:27 +05:30
Carles Pina i Estany
ce44826e79 Enclose all translated strings in grub.cfg in single quotes, and
escape them appropriately (Ubuntu bug #552921).
* util/grub-mkconfig_lib.in (gettext_quoted): New function.
* util/grub.d/10_hurd.in: Use it.
* util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise.
* util/grub.d/10_linux.in (linux_entry): Likewise.
	Also-By: Colin Watson <cjwatson@ubuntu.com>
2010-04-13 13:57:56 +01:00
Vladimir 'phcoder' Serbinenko
4b0cd8f813 Fix cygwin compilation.
* configure.ac: Define NEED_REGISTER_FRAME_INFO.
	* include/grub/misc.h (__register_frame_info)
	[NEED_REGISTER_FRAME_INFO && !UTIL]: New export.
	(__deregister_frame_info) [NEED_REGISTER_FRAME_INFO && !UTIL]: Likewise.
	* kern/misc.c (__register_frame_info)
	[NEED_REGISTER_FRAME_INFO && !UTIL]: New empty function.
	(__deregister_frame_info) [NEED_REGISTER_FRAME_INFO && !UTIL]: Likewise.
2010-04-11 21:24:21 +02:00
Vladimir 'phcoder' Serbinenko
01fcf061ea * configure.ac: Respect grub_cv_asm_uscore when defining dummy symbols. 2010-04-11 16:14:51 +02:00
Vladimir 'phcoder' Serbinenko
5d04b11e0e Unify libgcc processing.
* Makefile.in (kernel_img_LDFLAGS): New variable.
	* conf/common.rmk (kernel_img_HEADERS): Add libgcc.h.
	* conf/i386-coreboot.rmk (kernel_img_LDFLAGS): Append instead of
	overwriting.
	* conf/i386-ieee1275.rmk (kernel_img_LDFLAGS): Likewise.
	* conf/i386-pc.rmk (kernel_img_LDFLAGS): Likewise.
	* conf/i386-qemu.rmk (kernel_img_LDFLAGS): Likewise.
	* conf/x86-efi.rmk (kernel_img_LDFLAGS): Likewise.
	* conf/mips-qemu-mips.rmk (kernel_img_LDFLAGS): Append instead of
	overwriting. Remove -lgcc and -static-libgcc
	* conf/mips-yeeloong.rmk (kernel_img_LDFLAGS): Likewise.
	* conf/mips.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h
	* conf/powerpc-ieee1275.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h
	(kernel_img_LDFLAGS): Append instead of overwriting.
	Remove -lgcc and -static-libgcc
	* conf/sparc64-ieee1275.rmk: Likewise.
	* include/grub/powerpc/libgcc.h: Move to ...
	* include/grub/libgcc.h: .. this.
	* include/grub/libgcc.h: Don't export most of the function on x86.
	(__bswapsi2): New export.
	(__bswapdi2): Likewise.
	* include/grub/mips/libgcc.h: Removed.
	* include/grub/sparc64/libgcc.h: Likewise.
2010-04-11 01:14:31 +02:00
Vladimir 'phcoder' Serbinenko
b7f3ac299d * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Remove
disk_info_msg (conflicts with gettexting into languages with cases).
2010-04-10 20:28:25 +02:00
Grégoire Sutre
2c7031b135 Add grub-probe support for NetBSD.
* util/getroot.c (find_root_device): Convert block device to
	character device on NetBSD.
	* util/probe.c (probe): Require character device on NetBSD.
	* util/hostdisk.c: NetBSD specific headers.
	(configure_device_driver): new function to tune device driver
	parameters (currently only for NetBSD floppy driver).
	(grub_util_biosdisk_open): NetBSD specific code (get disk size
	via disklabel ioctl).
	(open_device): call configure_device_driver on NetBSD.
	(convert_system_partition_to_system_disk): NetBSD specific code.
	(device_is_wholedisk): Likewise.
	(grub_util_biosdisk_get_grub_dev): Likewise.
	(make_device_name): Fixed a typo in bsd_part_str.
	* configure.ac: check for opendisk() and getrawpartition() on
	NetBSD and set LIBUTIL.
	* Makefile.in: add LIBUTIL to LIBS.
2010-04-10 17:07:33 +02:00
BVK Chaitanya
f516290c5a Documentation fix.
* util/grub-script-check.c: Better help message.
2010-04-10 19:28:59 +05:30
BVK Chaitanya
d8dcc0dff8 Fix FreeBSD build.
* configure.ac: Flex version check.
	* conf/common.rmk: Add -Wno-error to sh.mod.
	* script/yylex.l: Remove all #pragma.
2010-04-10 19:11:32 +05:30
Vladimir 'phcoder' Serbinenko
6734334a53 * include/grub/util/misc.h (canonicalise_file_name): Add missing
prototype.
	Reported by: Seth Goldberg.
2010-04-10 12:46:12 +02:00
Vladimir 'phcoder' Serbinenko
daea6abdeb * loader/multiboot.c (GRUB_MOD_INIT) [GRUB_USE_MULTIBOOT2]:
Rename "module" to "module2".
	Reported by: Seth Goldberg.
2010-04-10 03:05:03 +02:00
Vladimir 'phcoder' Serbinenko
f2fd9d2b2b * include/grub/efi/memory.h (grub_machine_mmap_iterate): Remove
EXPORT_FUNC.
	Reported by: Seth Goldberg.
2010-04-10 02:45:26 +02:00
Vladimir 'phcoder' Serbinenko
be124579b1 * lib/posix_wrap/locale.h: Add missing file.
Reported by: Seth Goldberg.
2010-04-10 02:08:01 +02:00
Vladimir 'phcoder' Serbinenko
ef5da797aa grub-emu module load support.
* Makefile.in (TARGET_NO_MODULES): New variable. All users of
	NO_DYNAMIC_MODULES switched to this.
	(TARGET_CFLAGS): Add -DGRUB_TARGET_NO_MODULES=1 if applicable.
	(CFLAGS): Likewise.
	* conf/any-emu.rmk: Generate symlist.
	(kernel_img_HEADERS): Add util/datetime.h.
	(kernel_img_HEADERS) [sdl]: Add sdl.h.
	(kernel_img_HEADERS) [libusb]: Add libusb.h.
	(kernel_img_SOURCES) [TARGET_NO_MODULES = no && !x86]: Add
	kern/$(target_cpu)/cache.S.
	* configure.ac (grub-emu-modules): New option.
	* genmk.rb: Handle multiple source lists.
	* include/grub/sdl.h: New file.
	* include/grub/libusb.h: Likewise.
	* util/grub-emu.c (main): Hanle (host) root.
	* util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Error with
	GRUB_ERR_UNKNOWN_DEVICE.
	* util/misc.c: Move mm functions to ...
	* util/mm.c: ... here. All users updated.
2010-04-10 01:59:00 +02:00
Vladimir 'phcoder' Serbinenko
47822096b5 * Makefile.in (RMKFILES): Search in srcdir and not current directory.
(MAINTAINER_CLEANFILES): Don't add $(srcdir) to MKFILES. Add few
	missing files.
	(maintainer-clean): Remove libgcrypt-grub.
2010-04-09 23:04:00 +02:00
Vladimir 'phcoder' Serbinenko
5d7e744525 * term/efi/console.c (grub_console_checkkey): Macroify key contants. 2010-04-09 21:35:52 +02:00
EFI Coder
25f4e25287 * normal/menu_text.c (print_message): Clean up the message and show
the Fn information when on EFI
	* term/efi/console.c (grub_console_checkkey): Add F4 support.
2010-04-09 21:16:17 +02:00
Vladimir 'phcoder' Serbinenko
027de555e2 * normal/autofs.c (read_fs_list): New parameter 'prefix'.
All users updated.
	* normal/crypto.c (read_crypto_list): Likewise.
	* normal/dyncmd.c (read_command_list): Likewise.
	* normal/term.c (read_terminal_list): Likewise.
	* normal/main.c (read_lists): Use explicit prefix.
	(read_lists_hook): Use read_lists.
	(grub_normal_execute): Likewise.
2010-04-09 21:07:24 +02:00
Vladimir 'phcoder' Serbinenko
4777971126 * util/grub-mkrescue.in: Fix incorrect path in coreboot part.
Reported by: Thomas Schmitt.
	Add -no-emul-boot to grub-mkisofs parameters.
2010-04-09 20:40:14 +02:00
Vladimir 'phcoder' Serbinenko
1118c32ec7 * font/font.c: Indented. 2010-04-09 19:38:23 +02:00
BVK Chaitanya
7d65244782 Elif support to GRUB script (by Deepak Vankadaru).
* tests/grub_script_if.in: New testcase.
	* conf/tests.rmk: Rule for new testcase.
	* script/parser.y: Grammar rules for elif.
2010-04-09 22:38:27 +05:30
BVK Chaitanya
34bb22dfa5 While and until loops support to GRUB script.
* include/grub/script_sh.h (grub_script_cmdwhile): New struct.
	(grub_script_create_cmdwhile): New function prototype.
	(grub_script_execute_cmdwhile): New function prototype.
	* script/execute.c (grub_script_execute_cmdwhile): New function.
	* script/parser.y (command): New commands.
	(whilecmd): New grammar rule.
	(untilcmd): New grammar rule.
	* script/script.c (grub_script_create_cmdwhile): New function.
	* util/grub-script-check.c (grub_script_execute_cmdwhile): New
	function.

	* tests/grub_script_while1.in: New testcase.
	* conf/tests.rmk: Rule for new testcase.
2010-04-09 22:04:21 +05:30
Vladimir 'phcoder' Serbinenko
e215d8e02a * util/grub.d/00_header.in: Add few missing quotes. Recognise *.jpeg
as *.jpg.
2010-04-09 17:44:03 +02:00
Mario Vazquez
d7c43ba1c0 GRUB_BACKGROUND support.
* util/grub-mkconfig.in: Export GRUB_BACKGROUND.
	* util/grub.d/00_header.in: Parse GRUB_BACKGROUND.
2010-04-09 17:37:38 +02:00
Vladimir 'phcoder' Serbinenko
d64795c0eb Load fonts and modules for gfxmenu in grub-mkconfig.
Idea by: Mario Vasquez

	* util/grub.d/00_header.in: Load pf2 and image modules.
2010-04-09 16:56:07 +02:00
Vladimir 'phcoder' Serbinenko
f267f83a13 grub-mkconfig multiple terminal support.
* util/grub-mkconfig.in: Handle multiple terminals correctly.
	* util/grub.d/00_header.in: Likewise.
2010-04-09 16:29:10 +02:00
Vladimir 'phcoder' Serbinenko
b7841cebaa 2010-04-09 Vladimir Serbinenko <phcoder@gmail.com>
* Makefile.in: Specify files explicitly instead of using $< and $@ since
	we use cd $(srcdir).
2010-04-09 16:18:25 +02:00
Colin Watson
df60998c64 * util/grub.d/10_linux.in: Only use the first word of
GRUB_DISTRIBUTOR for --class, to avoid problems if somebody puts
spaces in GRUB_DISTRIBUTOR.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_hurd.in: Likewise.
2010-04-08 10:54:44 +01:00