Commit graph

446 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
5e3b8dcbb5 Import gcrypt public-key cryptography and implement signature checking. 2013-01-11 21:32:42 +01:00
Vladimir 'phcoder' Serbinenko
4dedb13f51 * grub-core/kern/disk.c (grub_disk_write): Fix sector number on 4K
sector devices.
2013-01-10 08:09:26 +01:00
Colin Watson
45d26abb40 Fix failing printf test.
* grub-core/kern/misc.c (grub_vsnprintf_real): Parse '-', '.', and
'$' in the correct order when collecting type information.
2013-01-02 12:48:31 +00:00
Colin Watson
5c67ea6cd9 Remove several trivially-unnecessary uses of nested functions.
* grub-core/commands/i386/pc/sendkey.c
(grub_cmd_sendkey: find_key_code, find_ascii_code): Make static
instead of nested.
* grub-core/commands/legacycfg.c (legacy_file: getline): Likewise.
Rename to ...
(legacy_file_getline): ... this.
* grub-core/commands/loadenv.c (grub_cmd_load_env: set_var):
Likewise.
* grub-core/kern/corecmd.c (grub_core_cmd_set: print_env): Likewise.
* grub-core/kern/fs.c (grub_fs_probe: dummy_func): Likewise.  Rename
to ...
(probe_dummy_iter): ... this.
* grub-core/kern/i386/coreboot/mmap.c
(grub_linuxbios_table_iterate: check_signature): Likewise.
* grub-core/kern/parser.c (grub_parser_split_cmdline:
check_varstate): Likewise.  Mark inline.
* grub-core/lib/arg.c (find_short: fnd_short): Likewise.  Pass
an additional parameter.
(find_long: fnd_long): Likewise.  Pass two additional parameters.
* grub-core/lib/crc.c (init_crc32c_table: reflect): Likewise.
* grub-core/lib/crc64.c (init_crc64_table: reflect): Likewise.
* grub-core/lib/ieee1275/cmos.c (grub_cmos_find_port: hook):
Likewise.  Rename to ...
(grub_cmos_find_port_iter): ... this.
* grub-core/lib/ieee1275/datetime.c (find_rtc: hook): Likewise.
Rename to ...
(find_rtc_iter): ... this.

* grub-core/normal/menu_entry.c (run): Fold nested editor_getsource
function directly into the function body, since it is only called
once.
2012-12-31 17:31:38 +00:00
Paulo Flabiano Smorigo
64ebd2f4b9 * grub-core/kern/ieee1275/init.c (grub_machine_get_bootlocation): Use
dynamic allocation for the bootpath buffer.
2012-12-10 16:23:16 +01:00
Vladimir 'phcoder' Serbinenko
7ddffdadea * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN on mac.
	* grub-core/term/ieee1275/console.c (grub_console_init_lately): Use
	ieee1275-nocursor if GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN is set.
	* grub-core/term/terminfo.c (grub_terminfo_set_current): Add new type
	ieee1275-nocursor.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New value
	GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN.
2012-09-18 11:52:19 +02:00
Peter Jones
c5052c81ab * grub-core/Makefile.core.def (efifwsetup): New module.
* grub-core/commands/efi/efifwsetup.c: New file.
	* grub-core/kern/efi/efi.c (grub_efi_set_variable): New function
	* include/grub/efi/api.h (GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI):
	New define.
	* include/grub/efi/efi.h (grub_efi_set_variable): New proto.
2012-09-08 09:40:24 +02:00
Vladimir 'phcoder' Serbinenko
42d0867ff7 * grub-core/kern/mips/arc/init.c (grub_machine_init): Set clock
frequency to 150 MHz.
2012-06-26 23:28:23 +02:00
Grégoire Sutre
650cfcfea2 Fix overflow in grub_util_get_fd_size for NetBSD. 2012-06-25 10:09:57 +02:00
Vladimir 'phcoder' Serbinenko
0f92dca7ef * grub-core/kern/mm.c (grub_free): Fix agglomerating of free regions. 2012-06-23 00:39:10 +02:00
Vladimir 'phcoder' Serbinenko
3988c4a09f * grub-core/kern/mm.c (get_header_from_pointer): Put a more informative
message on double free. Put the value of magic in case of mismatch.
2012-06-22 23:54:43 +02:00
Vladimir 'phcoder' Serbinenko
ed24c31201 Avoid flushing the same line multiple times on loongson.
* grub-core/kern/mips/cache.S [GRUB_MACHINE_MIPS_LOONGSON]:
	Step in 32 bytes and not 1 byte.
	* grub-core/kern/mips/cache_flush.S [GRUB_MACHINE_MIPS_LOONGSON]:
	Likewise.
2012-06-22 23:36:33 +02:00
Vladimir 'phcoder' Serbinenko
f35abd8190 * grub-core/kern/main.c (grub_set_prefix_and_root): Fix memory leak.
* grub-core/net/drivers/ieee1275/ofnet.c
	(grub_ieee1275_net_config_real): Likewise.
2012-06-22 11:51:48 +02:00
Vladimir 'phcoder' Serbinenko
eb6d0dd3a1 * grub-core/kern/main.c (grub_set_prefix_and_root): Skip escaped commas
when looking for partition separator.
2012-06-20 23:33:34 +02:00
Vladimir 'phcoder' Serbinenko
3123054474 * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_encode_devname):
Escape commas.
2012-06-20 23:31:59 +02:00
Vladimir 'phcoder' Serbinenko
9f1d654e67 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum value
GRUB_IEEE1275_FLAG_BROKEN_REPEAT.
	* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_BROKEN_REPEAT on PowerBook3,3.
	* include/grub/terminfo.h (grub_terminfo_input_state) [__powerpc__]:
	New fields last_key and last_key_time.
	* grub-core/term/terminfo.c (grub_terminfo_getkey): Transform
	extended key-esc into extended key-extended key.
2012-06-20 22:19:26 +02:00
Vladimir 'phcoder' Serbinenko
0494408e7e * include/grub/net.h (grub_net_card): New member txbufsize.
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum values
	GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX and
	GRUB_IEEE1275_FLAG_VIRT_TO_REAL_BROKEN.
	* grub-core/net/drivers/efi/efinet.c (grub_efinet_findcards): Use
	txbufsize.
	* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Use
	compatible property to check for macs. Set
	GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX and
	GRUB_IEEE1275_FLAG_VIRT_TO_REAL_BROKEN on macs.
	* grub-core/net/drivers/ieee1275/ofnet.c (card_open): Don't add suffix
	if GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX is set.
	(send_card_buffer): Use txbuf.
	(grub_ofnet_findcards): Allocate txbuf. Simplify code flow and move
	nested function out of the parent while on it.
2012-06-19 11:34:52 +02:00
Vladimir 'phcoder' Serbinenko
970a0a09dd * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_parse_args): Extend
filename parsing to non-block devices.
2012-06-19 11:23:13 +02:00
Vladimir 'phcoder' Serbinenko
3e19bf879f * grub-core/kern/device.c (grub_device_open): Remove dead code. 2012-06-19 11:20:34 +02:00
Vladimir 'phcoder' Serbinenko
c62d1a0c64 * include/grub/elf.h: Rename R_PPC to GRUB_R_PPC to avoid collisions.
All users updated.
2012-06-18 21:09:57 +02:00
Vladimir 'phcoder' Serbinenko
61f1d93b09 * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Apply
PowerMac workaround to Xserves as well.
	Information supplied by: Benjamin Herrenschmidt.
2012-06-13 01:38:40 +02:00
Vladimir 'phcoder' Serbinenko
7da036bbcb Remove non-functional EFI grub_get_rtc. Put a better fatal message
than current grub_get_rtc() not implemented when booted with
	coreboot without TSC.

	* grub-core/Makefile.am: Exclude efi/time.h from kernel headers.
	Add machine/time.h to kernel headers on loongson.
	* grub-core/Makefile.core.def (kernel): Remove
	kern/generic/rtc_get_time_ms.c on qemu-multiboot-coreboot.
	* grub-core/kern/efi/efi.c (grub_rtc_get_time_ms): Removed.
	(grub_get_rtc): Likewise.
	* grub-core/kern/generic/rtc_get_time_ms.c: Include grub/machine/time.h.
	* grub-core/kern/i386/coreboot/init.c (grub_get_rtc): Removed.
	* grub-core/kern/i386/pc/init.c: Include grub/machine/init.h.
	* grub-core/kern/i386/tsc.c (grub_tsc_init)
	[!GRUB_MACHINE_PCBIOS && !GRUB_MACHINE_IEEE1275]: Call grub_fatal
	rather than installing known non-working time source.
	* grub-core/kern/ieee1275/init.c (grub_get_rtc): Removed.
	* grub-core/kern/mips/loongson/init.c: Include grub/machine/time.h.
	* include/grub/time.h: Don't include machine/time.h.
	* include/grub/efi/time.h: Removed.
	* include/grub/i386/efi/time.h: Likewise.
	* include/grub/i386/ieee1275/time.h: Likewise.
	* include/grub/powerpc/ieee1275/time.h: Likewise.
	* include/grub/sparc64/ieee1275/time.h: Likewise.
	* include/grub/x86_64/efi/time.h: Likewise.
2012-06-11 20:44:38 +02:00
Vladimir 'phcoder' Serbinenko
9e5e66d15e Use ITC on IA64 rather than broken routine based on daytime.
* grub-core/kern/efi/efi.c (grub_rtc_get_time_ms) [__ia64__]: Remove on
	ia64.
	(grub_get_rtc) [__ia64__]: Likewise.
	* grub-core/kern/ia64/efi/init.c (divisor): New variable.
	(get_itc): New function.
	(grub_rtc_get_time_ms): Likewise.
	(grub_machine_init): Calibrate ITC.
	* include/grub/efi/time.h (grub_get_rtc), (GRUB_TICKS_PER_SECOND):
	Keep only on non-ia64. Don't export since it's broken and used only
	if TSC is unavailable.
2012-06-09 10:52:39 +02:00
Vladimir 'phcoder' Serbinenko
558d3a6023 * util/getroot.c (grub_util_get_dm_node_linear_info): Moved from here...
* grub-core/kern/emu/hostdisk.c (grub_util_get_dm_node_linear_info):
	to here. New return value start. All users updated.
	Recursively scan linear mappings.
	* include/grub/emu/hostdisk.h (grub_util_get_dm_node_linear_info): New
	proto.
	* grub-core/kern/emu/hostdisk.c (grub_hostdisk_find_partition_start):
	Use grub_util_get_dm_node_linear_info.
	* util/getroot.c (convert_system_partition_to_system_disk): Use
	grub_util_info rather than grub_dprintf.
	(grub_util_biosdisk_get_grub_dev): Add a new grub_util_info.
2012-06-07 14:24:48 +02:00
Vladimir 'phcoder' Serbinenko
004be2cd95 * grub-core/kern/mips/qemu_mips/init.c (grub_exit): Implement.
(grub_halt): Likewise.
	* grub-core/lib/mips/qemu_mips/reboot.c (grub_reboot): Likewise.
2012-06-06 12:28:25 +02:00
Vladimir 'phcoder' Serbinenko
6d8db94786 * grub-core/kern/parser.c (grub_parser_state_transitions): Handle \t.
(grub_parser_cmdline_state): Likewise.
	(grub_parser_split_cmdline): Likewise.
2012-06-02 14:39:35 +02:00
Vladimir 'phcoder' Serbinenko
6297e19736 * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_write) [__linux__]:
Fix MBR remapping workaround.
	(grub_util_biosdisk_read) [__linux__]: Likewise.
2012-06-02 13:48:44 +02:00
Vladimir 'phcoder' Serbinenko
84e1569ee4 * grub-core/kern/i386/pc/startup.S [__APPLE__]: Add a workaround for
objconv bug.
2012-05-29 13:54:33 +02:00
Vladimir 'phcoder' Serbinenko
f7143efe1b * grub-core/boot/i386/pc/startup_raw.S [__APPLE__]: Add Apple assembly
version.
	* grub-core/commands/i386/pc/drivemap_int13h.S [__APPLE__]: Likewise.
	* grub-core/kern/i386/pc/startup.S [__APPLE__]: Likewise.
	* grub-core/lib/i386/relocator16.S [__APPLE__]: Likewise.
	* grub-core/lib/i386/relocator_common.S [__APPLE__]: Likewise.
	* grub-core/mmap/i386/pc/mmap_helper.S [__APPLE__]: Likewise.
2012-05-28 17:51:57 +02:00
Vladimir 'phcoder' Serbinenko
e6ad0555e4 * grub-core/efiemu/runtime/efiemu.c: Replace APPLE_CC with __APPLE__.
* grub-core/kern/misc.c: Likewise.
	* grub-core/loader/i386/xnu.c: Likewise.
	* include/grub/i386/tsc.h: Likewise.
	* include/grub/symbol.h: Likewise.
2012-05-28 17:49:18 +02:00
Vladimir 'phcoder' Serbinenko
f7194551c4 * include/grub/misc.h (memcmp) [__APPLE__]: Mark as regparm 0.
(memmove) [__APPLE__]: Likewise.
	(memcpy) [__APPLE__]: Likewise.
	(memset) [__APPLE__]: Likewise.
	* grub-core/kern/misc.c (memcmp) [__APPLE__]: Likewise.
	(memmove) [__APPLE__]: Likewise.
	(memcpy) [__APPLE__]: Likewise.
	(memset) [__APPLE__]: Likewise.
2012-05-28 17:37:18 +02:00
Vladimir 'phcoder' Serbinenko
1d80c62a8f * grub-core/kern/emu/hostdisk.c (open_device): Set dest->dev to 0 after
freeing.
2012-05-27 13:19:09 +02:00
Benjamin Herrenschmidt
dcaaae9dbe * grub-core/kern/powerpc/dl.c (trampoline_template): Use r12 instead
of r0.
2012-05-21 22:40:34 +02:00
Vladimir 'phcoder' Serbinenko
4e46148696 * grub-core/kern/fs.c (grub_fs_probe): Handle GRUB_ERR_OUT_OF_RANGE as
a bad FS.
2012-05-21 22:02:56 +02:00
Vladimir 'phcoder' Serbinenko
5560e9d6e1 * grub-core/disk/ieee1275/ofdisk.c (scan): Don't scan device tree if
GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS is set.
	* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS on IBM hardware.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum value
	GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS.
2012-05-13 20:29:23 +02:00
Vladimir 'phcoder' Serbinenko
bfb320c644 * grub-core/kern/fs.c (grub_fs_probe): Handle GRUB_ERR_OUT_OF_RANGE as
a bad FS.
2012-05-13 20:23:02 +02:00
Vladimir 'phcoder' Serbinenko
5eae317511 * grub-core/kern/emu/hostdisk.c (read_device_map): Improve TRANSLATORS
comment.
2012-05-12 14:15:45 +02:00
Vladimir 'phcoder' Serbinenko
f1a6254cf1 Flush block cache on adding disk to device map.
* grub-core/kern/emu/hostdisk.c (flush_initial_buffer): New function.
	(grub_hostdisk_os_dev_to_grub_drive): Call flush_initial_buffer on
	adding.
	(read_device_map): Likewise.
	(open_device): Flush on opening.
2012-05-11 21:03:47 +02:00
Vladimir 'phcoder' Serbinenko
ce41ab7aab * grub-core/kern/misc.c (grub_strcmp): Use unsigned comparison as
per common usage and preffered in several parts of code.
	(grub_memcmp): Likewise.
	(grub_strncmp): Likewise.
	* include/grub/misc.h (grub_strcasecmp): Likewise.
	(grub_strncasecmp): Likewise.
	* Makefile.util.def (cmp_test): New test.
	(grub_script_strcmp): Likewise.
	* tests/cmp_unit_test.c: New file.
	* tests/grub_script_strcmp.in: Likewise.
	* grub-core/fs/hfsplus.c (grub_hfsplus_cmp_catkey): Add a comment.
2012-05-04 12:08:22 +02:00
Vladimir 'phcoder' Serbinenko
076aeb5022 * grub-core/kern/fs.c (grub_fs_probe) [GRUB_UTIL]: Add workaround for
btrfs.
2012-05-04 00:36:23 +02:00
Vladimir 'phcoder' Serbinenko
5f6ac15e84 * grub-core/kern/emu/hostdisk.c (read_device_map): Skip invalid Fedora
entries.
2012-05-04 00:07:55 +02:00
Vladimir 'phcoder' Serbinenko
11858300e9 * grub-core/commands/menuentry.c: Add TRANSLATORS comments.
* grub-core/kern/emu/hostdisk.c: Likewise.
2012-05-03 23:43:59 +02:00
Matthew Garrett
9d34bb85da Suspend broadcom cards in order to stop their DMA.
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Add pci.h on x86 EFI.
	* grub-core/Makefile.core.def (kernel): Add pci.c on x86 EFI.
	(pci): Don't build on x86 EFI.
	* grub-core/bus/pci.c (grub_pci_find_capability): New function.
	* grub-core/kern/efi/mm.c (stop_broadcom) [__i386__ || __x86_64__]:
	New function.
	(grub_efi_finish_boot_services) [__i386__ || __x86_64__]: Call
	stop_broadcom if running on EFI.
	* include/grub/pci.h (GRUB_PCI_CLASS_NETWORK): New enum value.
	(GRUB_PCI_CAP_POWER_MANAGEMENT): Likewise.
	(GRUB_PCI_VENDOR_BROADCOM): Likewise.
	(grub_pci_find_capability): New proto.

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2012-05-03 17:26:55 +02:00
Vladimir 'phcoder' Serbinenko
a188012e6c * grub-core/kern/file.c (grub_file_read): Read nothing if len = 0.
Special behaviour for len = 0 to read whole file isn't used anywhere and
	can cause buffer ovewrflows in several places.
2012-05-01 15:08:29 +02:00
Vladimir 'phcoder' Serbinenko
e3282399ad * grub-core/kern/emu/hostdisk.c (read_device_map): Reject non-standard
disk names.
	* docs/grub.texi: Update device.map parts.
2012-05-01 15:02:34 +02:00
Vladimir 'phcoder' Serbinenko
385f9abbe3 * grub-core/kern/emu/hostdisk.c (map): Make static. 2012-04-23 17:14:48 +02:00
Samuel Thibault
524b5d3a7c Fix hurd build.
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_size) [__GNU__]: Do
not define nr variable.
2012-04-22 18:44:19 +02:00
Vladimir 'phcoder' Serbinenko
9a06490c07 Fix kfreebsd compile and behaviour.
* grub-core/kern/emu/hostdisk.c (grub_util_follow_gpart_up): Fix
	format-security.
	* util/getroot.c: Fix wait.h include.
	(grub_guess_root_devices): Error if grub_find_device fails.
	(grub_util_get_geom_abstraction): Fix shadowing and format-security.
	(grub_util_get_dev_abstraction): Likewise.
	(grub_util_pull_device): Likewise.
	(grub_util_get_grub_dev): Likewise.
	* util/lvm.c (grub_util_lvm_isvolume): Likewise.
2012-04-21 16:49:56 +02:00
Vladimir 'phcoder' Serbinenko
ebbd24f3eb * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_write): Fix opening
mode.
2012-04-19 20:35:06 +02:00
Vladimir 'phcoder' Serbinenko
59e2651a06 * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_write): Fix message
disunification.
2012-04-18 23:48:52 +02:00