Commit graph

890 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
2a1d16154d Merge mainline into newreloc 2010-06-24 21:22:40 +02:00
Vladimir 'phcoder' Serbinenko
8e50ec9f05 Merge mainline into cirrus 2010-06-21 02:15:49 +02:00
Vladimir 'phcoder' Serbinenko
de24ab9b0d Fix grub_vga_palette_write 2010-06-21 02:07:45 +02:00
Vladimir 'phcoder' Serbinenko
4d88b9aec7 Init cirrus ourselves instead of calling videobios 2010-06-21 01:02:48 +02:00
Vladimir 'phcoder' Serbinenko
8c0346515d Add GRUB_PCI_REG_STATUS_*_ENABLE 2010-06-21 01:01:26 +02:00
Vladimir 'phcoder' Serbinenko
d246fc0368 Improve macroification of VGA registers. 2010-06-21 00:58:43 +02:00
Vladimir 'phcoder' Serbinenko
05e5187978 Cirrus 5446 and Bochs video cards support.
* conf/i386.rmk (pkglib_MODULES): Add video_cirrus.mod and
	video_bochs.mod
	(video_cirrus_mod_SOURCES): New variable.
	(video_cirrus_mod_CFLAGS): Likewise.
	(video_cirrus_mod_LDFLAGS): Likewise.
	(video_bochs_mod_SOURCES): Likewise.
	(video_bochs_mod_CFLAGS): Likewise.
	(video_bochs_mod_LDFLAGS): Likewise.
	* include/grub/vga.h: New file.
	* include/grub/video_fb.h (grub_video_fb_doublebuf_blit_init): Removed.
	(grub_video_fb_set_page_t): New type.
	(grub_video_fb_setup): New prototype.
	(grub_video_fb_swap_buffers): Likewise.
	(grub_video_fb_get_info_and_fini): Likewise.
	* term/i386/pc/vga_text.c (CRTC_ADDR_PORT): Moved to include/grub/vga.h.
	(CRTC_DATA_PORT): Likewise.
	(CRTC_CURSOR): Likewise.
	(CRTC_CURSOR_ADDR_HIGH): Likewise.
	(CRTC_CURSOR_ADDR_LOW): Likewise.
	(CRTC_CURSOR_DISABLE): Likewise.
	(update_cursor): Use grub_vga_cr_write.
	(grub_vga_text_setcursor): Likewise.
	* video/bochs.c: New file.
	* video/fb/video_fb.c (render_target): Moved into framebuffer variable.
	(palette): Likewise.
	(palette_size): Likewise.
	(framebuffer): New variable.
	(grub_video_fb_init): Use 'framebuffer'.
	(grub_video_fb_fini): Likewise.
	(grub_video_fb_get_info): Likewise.
	(grub_video_fb_get_palette): Likewise.
	(grub_video_fb_set_palette): Likewise.
	(grub_video_fb_set_viewport): Likewise.
	(grub_video_fb_get_viewport): Likewise.
	(grub_video_fb_map_color): Likewise.
	(grub_video_fb_map_rgb): Likewise.
	(grub_video_fb_map_rgba): Likewise.
	(grub_video_fb_unmap_color): Likewise.
	(grub_video_fb_unmap_color_int): Likewise.
	(grub_video_fb_fill_rect): Likewise.
	(grub_video_fb_blit_bitmap): Likewise.
	(grub_video_fb_blit_render_target): Likewise.
	(grub_video_fb_scroll): Likewise.
	(grub_video_fb_create_render_target): Likewise.
	(grub_video_fb_doublebuf_blit_init): Likewise.
	(grub_video_fb_set_active_render_target): Handle doublebuffering.
	(doublebuf_pageflipping_update_screen): New function.
	(doublebuf_pageflipping_init): Likewise.
	(grub_video_fb_setup): Likewise.
	(grub_video_fb_swap_buffers): Likewise.
	(grub_video_fb_get_info_and_fini): Likewise.
	* video/i386/pc/vbe.c (framebuffer): Remove all doublebuffering fields.
	All users updated.
	(doublebuf_pageflipping_commit): Restructured into ...
	(doublebuf_pageflipping_set_page): ... this.
	(doublebuf_pageflipping_update_screen): Removed.
	(doublebuf_pageflipping_init): Likewise.
	(double_buffering_init): Likewise.
	(grub_video_vbe_setup): Use grub_video_fb_setup.
	(grub_video_vbe_swap_buffers): Removed.
	(grub_video_vbe_set_active_render_target): Likewise.
	(grub_video_vbe_get_active_render_target): Likewise.
	(grub_video_vbe_get_info_and_fini): Use grub_video_fb_get_info_and_fini.
	(grub_video_vbe_adapter): Use grub_video_fb_swap_buffers,
	grub_video_fb_set_active_render_target and
	grub_video_fb_get_active_render_target.
	* video/i386/pc/vga.c (SEQUENCER_ADDR_PORT): Move to include/grub/vga.h.
	(SEQUENCER_DATA_PORT): Likewise.
	(MAP_MASK_REGISTER): Likewise.
	(CRTC_ADDR_PORT): Likewise.
	(CRTC_DATA_PORT): Likewise.
	(START_ADDR_HIGH_REGISTER): Likewise.
	(START_ADDR_LOW_REGISTER): Likewise.
	(GRAPHICS_ADDR_PORT): Likewise.
	(GRAPHICS_DATA_PORT): Likewise.
	(READ_MAP_REGISTER): Likewise.
	(INPUT_STATUS1_REGISTER): Likewise.
	(INPUT_STATUS1_VERTR_BIT): Likewise.
	(get_map_mask): Use grub_vga_sr_read.
	(set_map_mask): Use grub_vga_sr_write.
	(set_read_map): Use grub_vga_gr_write.
	(set_start_address): Use grub_vga_cr_write.
	* video/sm712.c (framebuffer): Remove leftover fields.
2010-06-20 14:15:20 +02:00
Vladimir 'phcoder' Serbinenko
d49703d151 Add priorities support 2010-06-12 17:38:48 +02:00
Colin Watson
9038c767e3 merge mainline 2010-06-12 15:01:46 +01:00
Colin Watson
7beac90c5f Avoid false positives in fs.lst, partmap.lst, and video.lst due to
prototype declarations.
* genmk.rb (PModule::rule): Define GRUB_LST_GENERATOR when
generating fs, partmap, and video lists.
* include/grub/fs.h (grub_fs_register): Omit prototype if
GRUB_LST_GENERATOR is defined.
* include/grub/partition.h (grub_partition_map_register): Likewise.
* include/grub/video.h (grub_video_register): Likewise.
2010-06-12 14:33:09 +01:00
Javier Martín
1c8f0f8d11 * include/grub/types.h: Check for GRUB_CPU_SIZEOF_LONG when appropriate. 2010-06-12 14:50:07 +02:00
Colin Watson
934302d00b merge mainline 2010-06-12 12:17:28 +01:00
Colin Watson
8253ee6bd7 merge mainline up to r2075 (videomask merge) 2010-06-12 11:30:11 +01:00
Colin Watson
283af07aff * include/grub/efi/uga_draw.h (GRUB_EFI_UGA_GLT_MAX): Rename to ...
(GRUB_EFI_UGA_BLT_MAX): ... this (typo fix).
2010-06-11 22:15:35 +01:00
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
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
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
11dccbfd4d Sort scsi_cmd_t. 2010-06-02 16:45:43 +02:00
Aleš Nesrsta
7d4873c26a Merge Aleš' latest patch 2010-06-01 02:10:19 +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
Aleš Nesrsta
778ff32476 Fix a bunch of problems with USB. 2010-05-31 14:11:41 +02:00
Vladimir 'phcoder' Serbinenko
8b1cf5e87f Dedicated DMA allocation functions. CS5536 OHCI support. 2010-05-31 13:58:18 +02: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
Vladimir 'phcoder' Serbinenko
39fbb79aa1 * include/grub/i18n.h: Always enable grub_gettext. 2010-05-21 20:12:41 +02:00
Vladimir 'phcoder' Serbinenko
5779bae94c merge mainline into newreloc 2010-05-18 14:30:07 +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
13f58ea31f merge mainline into newreloc 2010-05-18 13:19:42 +02:00
Vladimir 'phcoder' Serbinenko
918405fd8c merge mainline into rescue-efi 2010-05-17 21:26:16 +02:00
BVK Chaitanya
d2d32327a8 merge with mainline 2010-05-17 20:36:05 +05:30
Vladimir 'phcoder' Serbinenko
967828eb5a macroify and share VGA registers 2010-05-17 02:25:37 +02:00
Vladimir 'phcoder' Serbinenko
368e544ba6 Add bochs video support 2010-05-17 01:18:50 +02:00
Vladimir 'phcoder' Serbinenko
02aabd9e46 Encapsulate video_fb state in a structure 2010-05-16 15:01:54 +02:00
Vladimir 'phcoder' Serbinenko
26162102fa Move most framebuffer handling to video_fb.c 2010-05-16 14:40:03 +02:00
Vladimir 'phcoder' Serbinenko
94bf3dd564 somewhat working video_cirrus implementation 2010-05-16 01:32:07 +02:00
Vladimir 'phcoder' Serbinenko
65ce0931d0 Fix inconsistent grub_efiemu_finish_boot_services return type 2010-05-13 14:42:22 +02:00
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
BVK Chaitanya
f1c891902d merge with mainline 2010-05-06 21:22:08 +05:30
BVK Chaitanya
da6e6f17f3 cygwin emu build fixes 2010-05-06 08:45:39 +05:30
Vladimir 'phcoder' Serbinenko
e96ee4339f merge mainline into newreloc 2010-05-05 21:41:43 +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
6a82c1b2db merge mainline into newreloc 2010-05-04 17:35:44 +02:00
BVK Chaitanya
81827e248c merge with mainline 2010-05-04 09:09:03 +05:30
Vladimir 'phcoder' Serbinenko
05f602fc51 enable xnu on all platforms 2010-05-02 22:06:44 +02:00
Vladimir 'phcoder' Serbinenko
6f030865da Add missing memory.h 2010-05-02 19:39:35 +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
ef4ffedd46 remove loader.h leftovers 2010-05-01 15:15:38 +02:00
Vladimir 'phcoder' Serbinenko
c6fb51295b merge mainline into newreloc 2010-05-01 15:10:44 +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