Vladimir 'phcoder' Serbinenko
eece3349ea
Remove prio_list.
...
* include/grub/list.h (grub_prio_list): Removed.
(GRUB_PRIO_LIST_PRIO_MASK): Removed. All users switched to
GRUB_COMMAND_PRIO_MASK.
(GRUB_PRIO_LIST_FLAG_ACTIVE): Removed. All users switched to
GRUB_COMMAND_FLAG_ACTIVE.
(grub_prio_list_insert): Removed.
(grub_prio_list_remove): Likewise.
(GRUB_AS_PRIO_LIST): Likewise.
(GRUB_AS_PRIO_LIST_P): Likewise.
* include/grub/command.h (GRUB_COMMAND_PRIO_MASK): New define.
(GRUB_COMMAND_FLAG_ACTIVE): Likewise.
* grub-core/kern/list.c (grub_prio_list_insert): Remove.
* grub-core/kern/command.c (grub_register_command_prio): Inline
the prio_list code.
(grub_unregister_command): Likewise.
2012-02-26 22:49:24 +01:00
Vladimir 'phcoder' Serbinenko
94f064b4c9
Fix interrupt mixup from previous commit.
...
* include/grub/i386/pc/int.h (grub_i386_idt): New struct.
(grub_realidt): New var.
* grub-core/lib/i386/relocator16.S (grub_relocator16_idt): New variable
Load idt.
* grub-core/lib/i386/relocator.c (grub_relocator16_idt):
New declaration.
(grub_relocator16_boot): Set grub_relocator16_idt.
* grub-core/kern/i386/realmode.S (realidt): Renamed to ...
(LOCAL(realidt)): ... this.
* grub-core/boot/i386/pc/startup_raw.S: Pass pointer to realidt in eax.
* grub-core/kern/i386/pc/startup.S: Save pointer to realidt.
(grub_realidt): New variable.
2012-02-26 22:10:13 +01:00
Lubomir Kundrak
ff27c3dd5d
GDB serial and backtrace support.
...
* grub-core/kern/i386/realmode.S (real_to_prot): Reload IDT.
(prot_to_real): Likewise.
* grub-core/kern/i386/int.S (grub_bios_interrupt): Remove IDT reload.
* grub-core/Makefile.core.def (backtrace): New module.
(gdb): Likewise.
* grub-core/gdb/cstub.c: New file.
* grub-core/gdb/gdb.c: Likewise.
* grub-core/gdb/i386/idt.c: Likewise.
* grub-core/gdb/i386/machdep.S: Likewise.
* grub-core/gdb/i386/signal.c: Likewise.
* grub-core/lib/i386/backtrace.c: Likewise.
* include/grub/backtrace.h: Likewise.
* include/grub/gdb.h: Likewise.
* include/grub/i386/gdb.h: Likewise.
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2012-02-26 19:17:37 +01:00
Vladimir 'phcoder' Serbinenko
1948a3b714
Several cleanups
2012-02-26 19:10:52 +01:00
Vladimir 'phcoder' Serbinenko
67093bc0ed
Another round of string clarification and adding TRANSLATORS comments.
2012-02-26 17:28:05 +01:00
Vladimir 'phcoder' Serbinenko
6a656b0ea5
Convert grub-emu to argp.
...
* grub-core/Makefile.core.def (kernel): Add kern/emu/argp_common.c on
emu.
* util/argp_common.c: Rename to ...
* grub-core/kern/emu/argp_common.c: ... this. All users updated.
Add missing includes.
* grub-core/kern/emu/main.c: Convert to argp.
* po/POTFILES.in: Regenerate.
* util/grub-install.in (usage): Make first letter lowcase in messages
for uniformity.
* util/grub-setup.c (options): Likewise.
2012-02-25 01:15:29 +01:00
Vladimir 'phcoder' Serbinenko
274416e82f
* grub-core/font/font.c (grub_font_load): Add support for default
...
path for fonts ($prefix/fonts).
* grub-core/kern/corecmd.c (grub_core_cmd_insmod): Unify condition
for checking if string is a path.
* grub-core/normal/main.c (features): Add feature_default_font_path.
* util/grub-mkconfig.in: Skip mangling of GRUB_FONT into GRUB_FONT_PATH.
* util/grub.d/00_header.in: Use default directory if possible.
* util/grub-install.in: Install unicode.pf2.
2012-02-24 11:18:06 +01:00
Vladimir 'phcoder' Serbinenko
c44866b2a6
* grub-core/kern/emu/hostdisk.c (read_device_map): Add missing noreturn
...
on show_error.
2012-02-22 05:16:26 +01:00
Vladimir 'phcoder' Serbinenko
9679053902
* grub-core/kern/disk.c (grub_disk_write): Add missing const qualifier.
2012-02-22 05:12:18 +01:00
Vladimir 'phcoder' Serbinenko
1ba7e295fb
* grub-core/kern/corecmd.c (grub_core_cmd_ls): Add missing var init.
2012-02-22 05:09:08 +01:00
Vladimir 'phcoder' Serbinenko
b00d7fb6c5
Make list_push and list_remove functions rather than inline functions
...
to decrease size and avoid aliasing violations.
* include/grub/list.h (grub_list_push): Move to ...
* grub-core/kern/list.c (grub_list_push): ... here. Don't inline.
* include/grub/list.h (grub_list_remove): Move to ...
* grub-core/kern/list.c (grub_list_remove): ... here. Don't inline.
2012-02-22 05:01:20 +01:00
Vladimir 'phcoder' Serbinenko
515e8007fc
merge mainline into gdb
2012-02-18 21:00:13 +01:00
Vladimir 'phcoder' Serbinenko
a8f16eab1a
Replace grub_checkkey with grub_getkey_noblock.
...
* grub-core/kern/term.c (grub_checkkey): Replaced with ...
(grub_getkey_noblock): ... this. All users updated.
2012-02-18 19:59:01 +01:00
Vladimir 'phcoder' Serbinenko
b500bcfeed
* grub-core/kern/emu/console.c: Move to ...
...
* grub-core/term/emu/console.c: ...here.
(grub_ncurses_getkey): Fix return value if no key is detected.
2012-02-18 19:51:43 +01:00
Vladimir 'phcoder' Serbinenko
e4b7f404d8
* grub-core/kern/corecmd.c (grub_core_cmd_ls): Handle error in parsing
...
device name.
2012-02-12 19:00:50 +01:00
Vladimir 'phcoder' Serbinenko
d61386e21d
Improve string. Gettextize.
2012-02-12 15:25:25 +01:00
Vladimir 'phcoder' Serbinenko
ead2a8822b
Remove prio_list
2012-02-12 03:52:17 +01:00
Vladimir 'phcoder' Serbinenko
b77c2fb725
* grub-core/kern/emu/full.c (grub_arch_dl_get_tramp_got_size): Enable
...
on powerpc.
Reported by: Lennart Sorensen
2012-02-11 11:35:54 +01:00
Vladimir 'phcoder' Serbinenko
ebcecdf1c3
Increase warning level.
...
* conf/Makefile.common (CFLAGS_GNULIB): Add -Wno-redundant-decls
-Wno-unreachable-code -Wno-conversion -Wno-old-style-definition.
* configure.ac (HOST_CFLAGS): Add bunch of -W arguments.
(TARGET_CFLAGS): Likewise.
(HOST_CFLAGS): Add -Werror unless --disable-werror is activated.
* grub-core/Makefile.core.def (decompressor_xz): Add
-Wno-unreachable-code.
(normal): Add -Wno-redundant-decls.
(xzio): Add -Wno-unreachable-code.
(lzopio): Add -Wno-redundant-decls -Wno-error.
* grub-core/commands/acpi.c: Add exception to -Wcast-align.
* grub-core/commands/lsacpi.c: Add exception to -Wcast-align.
* grub-core/gensymlist.sh: Add exception to -Wmissing-format-attribute.
* grub-core/kern/dl.c: Add exception to -Wcast-align.
* grub-core/kern/efi/efi.c (grub_efi_modules_addr): Likewise.
* grub-core/kern/i386/coreboot/init.c: Add exception to
-Wsuggest-attribute=noreturn.
* grub-core/kern/ia64/dl.c: Add exception to -Wcast-align.
* grub-core/kern/ia64/dl_helper.c: Likewise.
* grub-core/kern/mips/dl.c: Likewise.
* grub-core/kern/sparc64/dl.c: Likewise.
* grub-core/lib/LzmaEnc.c: Add exception to -Wshadow.
* grub-core/lib/libgcrypt_wrap/cipher_wrap.h (memcpy): Likewise.
(memcmp): Likewise.
* grub-core/lib/pbkdf2.c: Add exception to -Wunreachable-code.
* grub-core/loader/ia64/efi/linux.c: Add exception to -Wcast-align.
* grub-core/loader/mips/linux.c: Likewise.
* grub-core/loader/multiboot_elfxx.c: Likewise.
* grub-core/script/parser.y: Add exception to -Wunreachable-code.
* grub-core/video/sm712.c: Add exception to -Wcast-align.
* util/import_gcry.py: Add -Wno-cast-align to modules checked by hand.
* grub-core/font/font.c (grub_font_loader_init): Add explicit cast and
fixme.
* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Likewise.
* grub-core/kern/i386/multiboot_mmap.c (grub_machine_mmap_init):
Fix prototype.
2012-02-10 16:48:48 +01:00
Vladimir 'phcoder' Serbinenko
7e94d044ad
* grub-core/disk/geli.c (grub_md_sha256_real): Respect format security.
...
(grub_md_sha512_real): Likewise.
(grub_util_get_geli_uuid): Likewise.
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors): Likewise.
(grub_util_biosdisk_open): Fix format specification.
Respect format security.
* grub-core/kern/emu/misc.c (xmalloc): Respect format security.
(xrealloc): Likewise.
(xasprintf): Likewise.
2012-02-10 14:01:53 +01:00
Vladimir 'phcoder' Serbinenko
a4ea2dff4b
* grub-core/commands/lsacpi.c (disp_acpi_xsdt_table): #if'-out the
...
checks which are always false on some platforms.
(grub_cmd_lsacpi): Likewise.
* grub-core/kern/misc.c (grub_strtoul): Likewise.
* grub-core/loader/multiboot.c (grub_multiboot_set_video_mode):
Likewise.
2012-02-09 23:48:34 +01:00
Vladimir 'phcoder' Serbinenko
bebe0dd022
* grub-core/kern/i386/qemu/mmap.c (grub_machine_mmap_init):
...
Fix declaration.
2012-02-09 23:25:14 +01:00
Vladimir 'phcoder' Serbinenko
ccc3b1b898
* grub-core/kern/emu/full.c (grub_emu_post_init): Remove raid reinit.
...
* include/grub/disk.h [GRUB_MACHINE_EMU]: Remove now useless LVM/RAID
declarations.
2012-02-09 23:15:27 +01:00
Vladimir 'phcoder' Serbinenko
987fbd95d0
* grub-core/kern/emu/hostfs.c (grub_hostfs_close):
...
Remove unused variable.
2012-02-09 23:12:09 +01:00
Vladimir 'phcoder' Serbinenko
ce6647c83c
* grub-core/kern/partition.c (grub_partition_get_name): Fix uninited
...
variable.
2012-02-08 20:19:44 +01:00
Vladimir 'phcoder' Serbinenko
0e1c1f61b6
* grub-core/kern/partition.c (grub_partition_get_name): Fix reverse
...
iteration of partitions.
2012-02-08 19:53:46 +01:00
Vladimir 'phcoder' Serbinenko
9c4b5c13e6
Improve gettext support. Stylistic fixes and error handling fixes while
...
on it.
2012-02-08 19:26:01 +01:00
Vladimir 'phcoder' Serbinenko
b525fd834d
Clarify and unify messages.
...
* grub-core/commands/hashsum.c (options): Unify messages.
* grub-core/commands/keystatus.c (GRUB_MOD_INIT): Don't mark a
literal-only message as translatable.
* grub-core/commands/lsacpi.c (GRUB_MOD_INIT): Likewise.
* grub-core/loader/ia64/efi/linux.c (GRUB_MOD_INIT): Likewise.
* grub-core/commands/legacycfg.c (GRUB_MOD_INIT): Add quoting around
commands.
* grub-core/commands/menuentry.c (options): Clarify that it's a keyboard
key, not the key used to unlock. Clarify what it's used for.
* grub-core/kern/emu/hostdisk.c (read_device_map): Unify error message.
* grub-core/loader/xnu.c (grub_xnu_load_driver): Remove erroneous colon.
* grub-core/script/main.c (GRUB_MOD_INIT): Clarify [n] to be [NUM].
* util/grub-editenv.c (options): Unify "verbose" message.
* util/grub-fstest.c (read_file): Unify error message.
(fstest): Add quotes around commands.
(options): Unify "verbose" message.
* util/grub-install.in: Add quotes around variable name.
* util/grub-kbdcomp.in: Unify error message.
* util/grub-mkfont.c (main): Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mklayout.c (options): Unify "verbose" message.
* util/grub-mkstandalone.in: Unify help and verbose messages.
* util/grub-mount.c (options): Unify "verbose" message.
* util/grub-probe.c (options): Likewise.
* util/grub-script-check.c (options): Likewise.
* util/grub-setup.c (setup): Unify no-terminator message.
(options): Use DEVICE and not DEV.
Unify "verbose" message.
* util/ieee1275/ofpath.c (xrealpath): Unify error message.
2012-02-05 11:23:47 +01:00
Vladimir 'phcoder' Serbinenko
0ae70393ba
Improve and unify messages.
...
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors): Add argument
name. All users updated.
Print filename in error.
(read_device_map): Print filename in error.
* util/getroot.c (grub_guess_root_devices): Print filename in error.
(grub_util_get_os_disk): Likewise.
(grub_util_biosdisk_get_grub_dev): Likewise.
(grub_util_check_block_device): Likewise.
(grub_util_check_char_device): Likewise.
(grub_make_system_path_relative_to_its_root): Likewise.
* util/grub-editenv.c (create_envblk_file): Likewise.
(open_envblk_file): Likewise.
(write_envblk): Likewise.
* util/grub-fstest.c (cmd_cp): Likewise.
(cmd_cat): Likewise.
(cmd_cmp): Likewise.
* util/grub-menulst2cfg.c (main): Likewise.
* util/grub-mkfont.c (write_font_ascii_bitmap): Likewise.
(write_font_width_spec): Likewise.
(write_font_pf2): Likewise.
* util/grub-mkimage.c (generate_image): New argument outname.
All users updated.
Remove unreacheable message.
(options): Unify messages.
(help_filter): Likewise.
* util/grub-mklayout.c (usage): Removed (unused).
(main): Print filename in error.
* util/grub-mkrescue.in: Fix wrong quoting.
* util/grub-setup.c (setup): Print filename in error.
* util/ieee1275/ofpath.c (vendor_is_ATA): Likewise.
(check_sas): Likewise.
* util/misc.c (grub_util_get_fp_size): Removed.
(grub_util_get_image_size): Print filename in error.
(grub_util_read_at): Removed.
(grub_util_read_image): Print filename in error.
(grub_util_load_image): Likewise.
(grub_util_write_image_at): New argument filename. All users updated.
Print filename in error.
(grub_util_write_image): New argument filename. All users updated.
Print filename in error.
* util/raid.c (grub_util_raid_getmembers): Print filename in error.
* util/resolve.c (grub_util_resolve_dependencies): Likewise.
2012-02-05 11:07:33 +01:00
Vladimir 'phcoder' Serbinenko
aca002f7e4
* grub-core/kern/err.c (GRUB_MAX_ERRMSG): Move to ...
...
* include/grub/err.h (GRUB_MAX_ERRMSG): ... here.
* include/grub/err.h (grub_error_saved): New struct.
(grub_errmsg): Make array size explicit.
* include/grub/misc.h (grub_error_save): New function.
(grub_error_load): Likewise.
* grub-core/kern/err.c (grub_error_stack_items): Use grub_error_saved.
(grub_error_push): Update `errno' member name.
(grub_error_pop): Likewise
* grub-core/net/tftp.c (tftp_data): New member save_err.
(tftp_receive): Save error.
(tftp_open): Restore error.
2012-02-05 10:24:53 +01:00
Vladimir 'phcoder' Serbinenko
92cd0f6e45
Move platform-dependent files from $prefix to $prefix/$platform.
...
* config.h.in (GRUB_TARGET_CPU): New definition.
(GRUB_PLATFORM): Likewise.
* configure.ac: Define GRUB_TARGET_CPU and GRUB_PLATFORM.
* grub-core/commands/parttool.c (grub_cmd_parttool): Update dir.
* grub-core/efiemu/main.c (grub_efiemu_autocore): Likewise.
* grub-core/kern/dl.c (grub_dl_load): Likewise.
* grub-core/normal/autofs.c (read_fs_list): Likewise.
* grub-core/normal/crypto.c (read_crypto_list): Likewise.
* grub-core/normal/dyncmd.c (read_command_list): Likewise.
* grub-core/normal/term.c (read_terminal_list): Likewise.
* grub-core/gettext/gettext.c (grub_mofile_open_lang): Use
$prefix/locale.
(grub_gettext_init_ext): Likewise.
* grub-core/normal/main.c (GRUB_MOD_INIT): Define grub_cpu and
grub_platform.
* util/grub-install.in: Update directories.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
2012-02-04 21:47:29 +01:00
Vladimir 'phcoder' Serbinenko
db606889a9
* grub-core/kern/ieee1275/openfw.c (grub_claimmap): Change to
...
grub_error framework. All users updated.
2012-02-04 14:00:23 +01:00
Vladimir 'phcoder' Serbinenko
c84ba308b5
* grub-core/kern/mm.c: Add missing include of i18n.h
...
* grub-core/lib/relocator.c: Likewise.
2012-02-03 14:20:31 +01:00
Grégoire Sutre
dc87d45a7a
NetBSD disk wedge support.
2012-02-03 12:32:21 +01:00
Vladimir 'phcoder' Serbinenko
4a9f8346c9
* grub-core/commands/ls.c: Gettextize.
...
* grub-core/commands/setpci.c: Likewise.
* grub-core/commands/videotest.c: Likewise.
* grub-core/disk/geli.c: Likewise.
* grub-core/kern/mm.c: Likewise.
* grub-core/lib/relocator.c: Likewise.
* grub-core/loader/efi/appleloader.c: Likewise.
* grub-core/loader/i386/xnu.c: Likewise.
* grub-core/loader/ia64/efi/linux.c: Likewise.
* grub-core/loader/xnu.c: Likewise.
* grub-core/net/dns.c: Likewise.
* grub-core/net/net.c: Likewise.
* grub-core/script/lexer.c: Likewise.
* grub-core/script/parser.y: Likewise.
* grub-core/script/yylex.l: Likewise.
* util/getroot.c: Likewise.
* util/grub-setup.c: Likewise.
2012-02-03 11:56:49 +01:00
Vladimir 'phcoder' Serbinenko
63fe43f3c3
* util/getroot.c (grub_util_get_dm_node_linear_info): Fix memory leak.
...
* grub-core/disk/cryptodisk.c (cryptodisk_cleanup): Disable for
now to avoid double free.
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_dev): Rename to
hostdisk.
* include/grub/disk.h (grub_disk_dev_id): New id HOSTDISK.
* util/grub-probe.c (escape_of_path): Always return a new copy.
(print_full_name): Escape path.
(probe): Don't call grub_util_devname_to_ofpath on NULL.
Fix hints on abstractions.
2012-01-29 21:49:44 +01:00
Vladimir 'phcoder' Serbinenko
9c6e84b838
Cryptodisk write support.
...
* grub-core/disk/cryptodisk.c (grub_crypto_pcbc_encrypt): New function.
(grub_cryptodisk_decrypt): Moved logic to ...
(grub_cryptodisk_endecrypt): ...this. New argument "encrypt".
(grub_cryptodisk_write): Implement.
* grub-core/kern/emu/hostdisk.c (nwrite): Rename to ...
(grub_util_fd_write): ... this. Make global.
* include/grub/emu/hostdisk.h (grub_util_fd_write): New proto.
2012-01-29 18:16:48 +01:00
Vladimir 'phcoder' Serbinenko
f6c434d581
* grub-core/kern/partition.c (grub_partition_get_name): Simplify logic
...
and improve performance.
2012-01-29 16:24:07 +01:00
Vladimir 'phcoder' Serbinenko
5858b42d07
* grub-core/kern/ieee1275/openfw.c (grub_ieee1275_encode_devname): Fix
...
missing ieee1275/ prefix on whole disk.
2012-01-29 16:22:23 +01:00
Vladimir 'phcoder' Serbinenko
076e7c0fda
Merge common RAID and LVM logic to an abstract diskfilter.
...
Add LDM support using the same framework.
* Makefile.util.def (libgrubkern): Add grub-core/disk/ldm.c,
grub-core/disk/diskfilter.c and grub-core/partmap/gpt.c.
(libgrubmods): Remove grub-core/disk/raid.c and
grub-core/partmap/gpt.c.
* grub-core/Makefile.core.def (ldm): New module.
(raid): Renamed to diskfilter. All users updated.
* grub-core/disk/raid.c: Moved to ...
* grub-core/disk/diskfilter.c: ... here.
* grub-core/disk/diskfilter.c: Rename grub_raid_ to grub_diskfilter_.
(lv_num): New var.
(find_array): Renamed to ...
(find_lv): ... this. Support multi-LV. Skip nameless LVs
(grub_is_array_readable): Renamed to ...
(grub_is_lv_readable): ... this. Support multinode hierarchy.
(insert_array): New argument id.
(is_node_readable): New function.
(scan_device): Rename to ...
(scan_disk): .. this. Restrict to one disk.
(scan_devices): New function.
(grub_diskfilter_iterate): Support multi-LV.
Skip invisible and nameless LVs.
(grub_diskfilter_memberlist): Support multi-LV.
(grub_diskfilter_read_node): New function.
(grub_raid_read): Most of logic moved to ...
(read_segment): ... here
(read_lv): New function.
(grub_diskfilter_get_vg_by_uuid): New function.
(grub_diskfilter_make_raid): Likewise.
* grub-core/disk/ldm.c: New file.
* grub-core/disk/lvm.c (vg_list): Removed.
(lv_count): Likewise.
(scan_depth): Likewise.
(is_lv_readable): Likewise.
(grub_lvm_getvalue): Advance pointer past the number.
(find_lv): Removed.
(do_lvm_scan): Refactored into ...
(grub_lvm_detect): ... this. Support raid.
(grub_lvm_iterate): Removed.
(grub_lvm_memberlist): Likewise.
(grub_lvm_open): Likewise.
(grub_lvm_close): Likewise.
(read_lv): Likewise.
(read_node): Likewise.
(is_node_readable): Likewise.
(is_lv_readable): Likewise.
(grub_lvm_read): Likewise.
(grub_lvm_write): Likewise.
(grub_lvm_dev): Use diskfilter
(GRUB_MOD_INIT): Likewise.
(GRUB_MOD_FINI): Likewise.
* grub-core/disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Use
new interface.
* grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Likewise.
* grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise.
* grub-core/disk/raid5_recover.c (grub_raid5_recover): Use
grub_diskfilter_read_node.
Fix a bug with xor.
* grub-core/disk/raid6_recover.c (grub_raid6_recover): Use
grub_diskfilter_read_node.
Support GRUB_RAID_LAYOUT_MUL_FROM_POS.
* grub-core/kern/disk.c (grub_disk_dev_list): Make global.
(grub_disk_dev_iterate): Move from here...
* include/grub/disk.h (grub_disk_dev_iterate): ... to here. Inlined.
* grub-core/kern/emu/hostdisk.c (grub_hostdisk_find_partition_start):
Make global.
(grub_hostdisk_find_partition_start): Likewise.
(grub_hostdisk_os_dev_to_grub_drive): New function.
(grub_util_biosdisk_get_osdev): Check that disk is biosdisk.
* grub-core/kern/emu/hostdisk.c (make_device_name): Move to ...
* util/getroot.c (make_device_name): ... here.
* grub-core/kern/emu/hostdisk.c (grub_util_get_dm_node_linear_info):
Move to ...
* util/getroot.c (grub_util_get_dm_node_linear_info): ...here.
* grub-core/kern/emu/hostdisk.c
(convert_system_partition_to_system_disk): Move to ...
* util/getroot.c (convert_system_partition_to_system_disk): ...here.
* grub-core/kern/emu/hostdisk.c (device_is_wholedisk): Move to ...
* util/getroot.c (device_is_wholedisk): ... here.
* grub-core/kern/emu/hostdisk.c (find_system_device): Move to ...
* util/getroot.c (find_system_device): ... here.
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_present):
Move to ...
* util/getroot.c (grub_util_biosdisk_is_present): ...here.
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev):
Move to ...
* util/getroot.c (grub_util_biosdisk_get_grub_dev): ... here.
Handle LDM.
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy):
Move to ...
* util/getroot.c (grub_util_biosdisk_is_floppy): ... here.
* grub-core/partmap/gpt.c (grub_gpt_partition_map_iterate): Made global.
* include/grub/disk.h (grub_disk_dev_id): Replaced RAID and LVM with
DISKFILTER.
* include/grub/raid.h: Renamed to ...
* include/grub/diskfilter.h: ... this.
* include/grub/diskfilter.h: Rename grub_raid_* to grub_diskfilter_*
(GRUB_RAID_LAYOUT_*): Make into array.
(GRUB_RAID_LAYOUT_MUL_FROM_POS): New value.
(grub_diskfilter_vg): New struct.
(grub_diskfilter_pv_id): Likewise.
(grub_raid_member): Removed.
(grub_raid_array): Likewise.
(grub_diskfilter_pv): New struct.
(grub_diskfilter_lv): Likewise.
(grub_diskfilter_segment): Likewise.
(grub_diskfilter_node): Likewise.
(grub_diskfilter_get_vg_by_uuid): New proto.
(grub_raid_register): Inline.
(grub_diskfilter_unregister): Likewise.
(grub_diskfilter_make_raid): New proto.
(grub_diskfilter_vg_register): Likewise.
(grub_diskfilter_read_node): Likewise.
(grub_diskfilter_get_pv_from_disk) [GRUB_UTIL]: Likewise.
* include/grub/emu/hostdisk.h (grub_util_get_ldm): New proto.
(grub_util_is_ldm): Likewise.
(grub_util_ldm_embed) [GRUB_UTIL]: Likewise.
(grub_hostdisk_find_partition_start): Likewise.
(grub_hostdisk_os_dev_to_grub_drive): Likewise.
* include/grub/gpt_partition.h (GRUB_GPT_PARTITION_TYPE_LDM):
New definition.
(grub_gpt_partition_map_iterate): New proto.
* include/grub/lvm.h (grub_lvm_vg): Removed.
(grub_lvm_pv): Likewise.
(grub_lvm_lv): Likewise.
(grub_lvm_segment): Likewise.
(grub_lvm_node): Likewise.
* util/getroot.c [...]
* util/grub-probe.c (probe_raid_level): Handle diskfilter.
(probe_abstraction): Likewise.
* util/grub-setup.c (setup): Remove must_embed. Support LDM.
(main): Remove dead logic.
2012-01-29 14:28:01 +01:00
Vladimir 'phcoder' Serbinenko
7626111087
IEEE1275 disk write support.
...
* grub-core/kern/ieee1275/ieee1275.c (grub_ieee1275_write): Make buffer
const void *.
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_write): Likewise.
* grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_read): Move open
and seek loginc to ...
(grub_ofdisk_prepare): ... here.
(grub_ofdisk_write): Implement.
2012-01-25 18:32:08 +01:00
Vladimir 'phcoder' Serbinenko
87edb8940a
Replace single-linked with double-linked lists. It results in more
...
compact and more efficient code.
* grub-core/kern/list.c (grub_list_push): Moved from here ...
* include/grub/list.h (grub_list_push): ... to here. Set prev.
(grub_list_remove): Moved from here ...
* include/grub/list.h (grub_list_remove): ... here. Use and set prev.
(grub_prio_list_insert): Set prev.
* include/grub/list.h (grub_list): Add prev. All users updated.
2012-01-24 13:31:12 +01:00
Vladimir 'phcoder' Serbinenko
dad9c8b59e
* grub-core/kern/mips/arc/init.c (grub_total_modules_size): Mark as
...
being in .text to avoid dprel references.
* include/grub/mips/loongson/kernel.h (grub_arch_machine): Likewise.
* include/grub/mips/loongson/memory.h (grub_arch_memsize): Likewise.
(grub_arch_highmemsize): Likewise.
* include/grub/mips/loongson/time.h (grub_arch_busclock): Likewise.
* include/grub/mips/qemu_mips/memory.h (grub_arch_memsize): Likewise.
* include/grub/mips/time.h (grub_arch_cpuclock): Likewise.
2012-01-20 14:48:26 +01:00
Vladimir 'phcoder' Serbinenko
22489834b3
* grub-core/kern/powerpc/dl.c (grub_arch_dl_get_tramp_got_size): Remove
...
set but not used variable.
2012-01-18 13:54:59 +01:00
Vladimir 'phcoder' Serbinenko
2b5c1a0810
merge mainline into hints
2011-12-24 02:52:43 +01:00
Vladimir 'phcoder' Serbinenko
ce4a999d4d
* grub-core/kern/ieee1275/openfw.c (grub_devalias_iterate): Fix
...
allocation and zero-setting.
(grub_ieee1275_get_devname): Check that alias is complete.
2011-12-24 02:45:17 +01:00
Vladimir 'phcoder' Serbinenko
379586ad7d
* grub-core/kern/disk.c (grub_disk_read): Fix hook calling for
...
unaligned segments.
2011-12-24 02:43:21 +01:00
Vladimir 'phcoder' Serbinenko
9197b0ade5
* grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Add ieee1275/
...
prefix.
(grub_ofdisk_open): Check and discard ieee1275 prefix.
* grub-core/kern/ieee1275/openfw.c (grub_ieee1275_encode_devname):
Add ieee1275 prefix.
2011-12-24 02:40:18 +01:00
Vladimir 'phcoder' Serbinenko
2980502850
Fix few bugs and memory leaks
2011-12-23 19:25:24 +01:00
Vladimir 'phcoder' Serbinenko
17785932df
merge mainline into hints
2011-12-23 18:49:00 +01:00
Vladimir 'phcoder' Serbinenko
6babad5e59
Initial integration of hints
2011-12-23 18:19:16 +01:00
Vladimir 'phcoder' Serbinenko
b81d609e4c
* grub-core/kern/i386/realmode.S: Increase alignment.
...
* grub-core/boot/i386/pc/startup_raw.S: Likewise.
2011-12-15 19:17:36 +01:00
Vladimir 'phcoder' Serbinenko
ace96609b6
* grub-core/kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Support
...
HH22 and HM10 relocations.
2011-12-13 19:56:50 +01:00
Vladimir 'phcoder' Serbinenko
fd261d7300
* grub-core/kern/misc.c (grub_vsnprintf_real): Fix fmt2 parsing.
2011-12-13 19:55:27 +01:00
Vladimir 'phcoder' Serbinenko
02a2bf8384
Add noreturn attributes and remove unreachable code.
...
* grub-core/bus/cs5536.c (grub_cs5536_smbus_wait): Remove unreachable
code.
* grub-core/commands/halt.c (grub_cmd_halt): Remove unreachable
code. Mark as noreturn.
* grub-core/commands/minicmd.c (grub_mini_cmd_exit): Likewise.
* grub-core/commands/reboot.c (grub_cmd_reboot): Likewise.
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name): Remove
unreachable code.
* grub-core/kern/main.c (grub_main): Mark as noreturn.
* grub-core/kern/rescue_reader.c (grub_rescue_run): Likewise.
* grub-core/lib/posix_wrap/stdlib.h (abort): Likewise.
* grub-core/normal/menu.c (run_menu): Remove unreachable code.
* include/grub/kernel.h (grub_main): Mark as noreturn.
* include/grub/reader.h (grub_rescue_run): Likewise.
2011-12-13 15:13:51 +01:00
Vladimir 'phcoder' Serbinenko
b3950b849f
* grub-core/kern/mips/qemu_mips/init.c (grub_at_keyboard_init): Remove
...
redundant declaration.
(grub_serial_init): Likewise.
(grub_terminfo_init): Likewise.
2011-12-13 11:46:29 +01:00
Vladimir 'phcoder' Serbinenko
055dc23978
* grub-core/kern/emu/main.c (main): Add missing const qualifier.
...
* grub-core/loader/efi/appleloader.c (devdata): Likewise.
2011-12-13 01:32:41 +01:00
Vladimir 'phcoder' Serbinenko
ee533335f5
* grub-core/kern/ieee1275/ieee1275.c (grub_ieee1275_finddevice): Make
...
first argument a const pointer.
* grub-core/kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_finddevice): Update
proto.
(grub_children_iterate): Likewise.
(grub_machine_mmap_iterate): Remove redundant declaration.
2011-12-13 01:00:34 +01:00
Vladimir 'phcoder' Serbinenko
10b64f1cf4
* grub-core/kern/dl.c (grub_dl_load_segments): Fix alignment handling.
2011-11-16 21:40:50 +01:00
Vladimir 'phcoder' Serbinenko
bb41695449
* grub-core/kern/dl.c (grub_dl_unload): Fix freeing segments.
2011-11-16 21:38:00 +01:00
Vladimir 'phcoder' Serbinenko
bdfe9eeb2c
* grub-core/kern/x86_64/efi/callwrap.S: Fix the comment.
2011-11-16 21:35:40 +01:00
Lubomir Kundrak
66d6a7937b
gdb over serial by Lubomir Kundrak and cleaned-up/updated by me (phcoder)
...
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2011-11-14 22:58:11 +01:00
Vladimir 'phcoder' Serbinenko
d89ee4141a
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev):
...
Fix a memory leak.
(grub_util_biosdisk_get_grub_dev): Add a useful debug info.
2011-11-12 23:46:47 +01:00
Vladimir 'phcoder' Serbinenko
91ee7b6d73
* grub-core/kern/emu/hostdisk.c (find_system_device): Fix a memory leak.
2011-11-12 23:42:49 +01:00
Vladimir 'phcoder' Serbinenko
5fbdac149b
Defer multiboot device parsing until we're in compressed part.
...
* grub-core/boot/i386/pc/lnxboot.S: Remove setting dos_part and
bsd_part. setdevice has fallen into disuse.
* grub-core/boot/i386/pc/startup_raw.S (dos_part): Removed.
(bsd_part): Likewise.
(boot_dev): New variable.
(multiboot_trampoline): Don't parse multiboot device.
Pass multiboot device in %edx.
* grub-core/disk/i386/pc/biosdisk.c (GRUB_MOD_INIT): Parse
grub_boot_device.
* grub-core/kern/i386/pc/init.c (grub_machine_get_bootlocation):
Likewise.
* grub-core/kern/i386/pc/startup.S: Save edx.
(grub_boot_drive): Removed.
(grub_install_dos_part): Likewise.
(grub_install_bsd_part): Likewise.
(grub_boot_device): New variable.
* include/grub/i386/pc/kernel.h (grub_install_dos_part): Removed.
(grub_install_bsd_part): Likewise.
(grub_boot_drive): Likewise.
(grub_boot_device): New variable.
* include/grub/offsets.h (GRUB_KERNEL_I386_PC_INSTALL_DOS_PART):
Removed.
(GRUB_KERNEL_I386_PC_INSTALL_BSD_PART): Likewise.
(GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY): Moved lower.
(GRUB_KERNEL_MACHINE_INSTALL_BSD_PART): Removed.
(GRUB_KERNEL_MACHINE_INSTALL_DOS_PART): Likewise.
* util/grub-install.in: Remove redundant condition.
2011-11-12 21:12:52 +01:00
Vladimir 'phcoder' Serbinenko
60240b8bc1
Use decompressors framework on i386-pc. It increases core size
...
by 46 bytes but improves compatibility and maintainability.
* grub-core/Makefile.core.def (lzma_decompress): New image.
(kernel): Add i386_pc_ldflags.
* grub-core/kern/i386/pc/startup.S: Move intial part to ..
* grub-core/boot/i386/pc/startup_raw.S: ... here. Pass pointers
to real_to_prot, prot_to_real and device info.
* include/grub/offsets.h: Renamed decompressor offsets.
* util/grub-mkimage.c (grub_compression_t): New cmpression lzma.
(image_target_desc): Remove raw_size and rename decompressor fields.
(compress_kernel): Handle lzma.
(generate_image): Handle decompressors on i386-pc.
2011-11-12 19:53:25 +01:00
Vladimir 'phcoder' Serbinenko
2b23074a0c
Move assembly code to C by using intwrap. It increases core size
...
by 88 bytes but improves compatibility and maintainability.
* grub-core/kern/i386/pc/startup.S (grub_console_putchar): Moved to ...
* grub-core/term/i386/pc/console.c (grub_console_putchar_real):
... here. Translated to C.
* grub-core/kern/i386/pc/startup.S (grub_console_getkey): Moved to ...
* grub-core/term/i386/pc/console.c (grub_console_getkey):
... here. Translated to C.
* grub-core/kern/i386/pc/startup.S (grub_console_getxy): Moved to ...
* grub-core/term/i386/pc/console.c (grub_console_getxy):
... here. Translated to C.
* grub-core/kern/i386/pc/startup.S (grub_console_gotoxy): Moved to ...
* grub-core/term/i386/pc/console.c (grub_console_gotoxy):
... here. Translated to C.
* grub-core/kern/i386/pc/startup.S (grub_console_cls): Moved to ...
* grub-core/term/i386/pc/console.c (grub_console_cls):
... here. Translated to C.
* grub-core/kern/i386/pc/startup.S (grub_console_setcursor): Moved to ..
* grub-core/term/i386/pc/console.c (grub_console_setcursor):
... here. Translated to C.
* grub-core/kern/i386/pc/startup.S (grub_get_rtc): Moved to ..
* grub-core/kern/i386/pc/init.c (grub_get_rtc): ... here.
Translated to C.
* grub-core/term/i386/pc/console.c (int10_9): New function.
(grub_console_putchar): Likewise.
* include/grub/i386/pc/console.h: Removed the not anymore shared
functions.
2011-11-12 16:29:04 +01:00
Vladimir 'phcoder' Serbinenko
678f4b6713
Move grub_chainloader_real_boot out of the kernel.
...
* grub-core/Makefile.am: Remove machine/loader.h.
* grub-core/kern/i386/pc/startup.S (grub_chainloader_real_boot):
Removed.
* grub-core/lib/i386/relocator.c (grub_relocator16_esi): New extern
variable.
(grub_relocator16_keep_a20_enabled): Likewise.
(grub_relocator16_boot): Fill new variables.
* grub-core/lib/i386/relocator16.S: Add gate a20 handling.
* grub-core/loader/i386/pc/chainloader.c (grub_chainloader_boot): Use
relocator.
(grub_chainloader_unload): Likewise.
(grub_chainloader_cmd): Likewise.
* include/grub/i386/pc/loader.h: Removed.
* include/grub/i386/relocator.h (grub_relocator16_state): Add a20
and esi. All initialisers updated.
2011-11-12 15:46:50 +01:00
Vladimir 'phcoder' Serbinenko
6e0632e28c
* grub-core/commands/acpihalt.c: Gettextized.
...
* grub-core/commands/cacheinfo.c: Likewise.
* grub-core/commands/cmp.c: Likewise.
* grub-core/commands/efi/loadbios.c: Likewise.
* grub-core/commands/gptsync.c: Likewise.
* grub-core/commands/ieee1275/suspend.c: Likewise.
* grub-core/commands/legacycfg.c: Likewise.
* grub-core/commands/memrw.c: Likewise.
* grub-core/commands/minicmd.c: Likewise.
* grub-core/commands/parttool.c: Likewise.
* grub-core/commands/time.c: Likewise.
* grub-core/commands/videoinfo.c: Likewise.
* grub-core/disk/geli.c: Likewise.
* grub-core/disk/i386/pc/biosdisk.c: Likewise.
* grub-core/disk/luks.c: Likewise.
* grub-core/disk/lvm.c: Likewise.
* grub-core/font/font_cmd.c: Likewise.
* grub-core/fs/zfs/zfscrypt.c: Likewise.
* grub-core/fs/zfs/zfsinfo.c: Likewise.
* grub-core/gfxmenu/view.c: Likewise.
* grub-core/kern/emu/hostdisk.c: Likewise.
* grub-core/kern/emu/main.c: Likewise.
* grub-core/kern/emu/misc.c: Likewise.
* grub-core/kern/emu/mm.c: Likewise.
* grub-core/kern/mips/arc/init.c: Likewise.
* grub-core/kern/mips/loongson/init.c: Likewise.
* grub-core/kern/partition.c: Likewise.
* grub-core/lib/i386/halt.c: Likewise.
* grub-core/lib/mips/arc/reboot.c: Likewise.
* grub-core/lib/mips/loongson/reboot.c: Likewise.
* grub-core/loader/i386/pc/chainloader.c: Likewise.
* grub-core/loader/i386/xnu.c: Likewise.
* grub-core/loader/multiboot.c: Likewise.
* grub-core/net/bootp.c: Likewise.
* grub-core/net/net.c: Likewise.
* grub-core/normal/term.c: Likewise.
* grub-core/partmap/bsdlabel.c: Likewise.
* grub-core/parttool/msdospart.c: Likewise.
* grub-core/term/gfxterm.c: Likewise.
* grub-core/term/terminfo.c: Likewise.
* grub-core/video/i386/pc/vbe.c: Likewise.
* util/grub-menulst2cfg.c: Likewise.
* util/grub-mkdevicemap.c: Likewise.
* util/grub-mklayout.c: Likewise.
* util/grub-mkrelpath.c: Likewise.
* util/grub-script-check.c: Likewise.
* util/ieee1275/grub-ofpathname.c: Likewise.
* util/resolve.c: Likewise.
2011-11-11 21:44:56 +01:00
Vladimir 'phcoder' Serbinenko
12d4f965cd
Support %1$d syntax.
...
* tests/printf_unit_test.c: New file.
* Makefile.util.def (printf_test): New test.
* grub-core/kern/misc.c (grub_vsnprintf_real): Support %1$d syntax.
2011-11-11 21:14:41 +01:00
Vladimir 'phcoder' Serbinenko
c1860f878b
* grub-core/kern/misc.c (grub_vprintf): Add missing va_end.
...
(grub_xvasprintf): Likewise.
2011-11-11 20:45:31 +01:00
Vladimir 'phcoder' Serbinenko
d35d0d3753
Add const keyword to grub_env_get and gettextize week days.
...
* grub-core/hook/datehook.c (grub_datetime_names): Make const.
(grub_read_hook_datetime): Return const char *.
* grub-core/kern/env.c (grub_env_get): Return const char *. All users
updated.
* grub-core/normal/datetime.c (grub_weekday_names): Make const.
Mark for gettext.
(grub_get_weekday_name): Return const char *. Call gettext.
* grub-core/script/argv.c (grub_script_argv_append): Receive const
char * and len as the argument. All users updated.
(grub_script_argv_split_append): Receive const char *.
* include/grub/datetime.h (grub_get_weekday_name): Update proto.
* include/grub/env.h (grub_env_get): Likewise.
(grub_env_read_hook_t): Return const char *.
* include/grub/script_sh.h (grub_script_argv_append): Update proto.
(grub_script_argv_split_append): Likewise.
2011-11-11 20:34:37 +01:00
Vladimir 'phcoder' Serbinenko
067fdf0055
* grub-core/kern/misc.c (grub_strstr): Moved from here ...
...
* include/grub/misc.h (grub_strstr): ... here. Make static and inline.
2011-11-11 20:02:51 +01:00
Vladimir 'phcoder' Serbinenko
9bb182f371
* grub-core/kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Issue
...
an error and not a fatal on unrecognised relocation types.
2011-11-11 18:05:16 +01:00
Vladimir 'phcoder' Serbinenko
63a9e6f6a0
* grub-core/kern/ieee1275/openfw.c (grub_ieee1275_parse_args):
...
Issue error rather than printf on unknown arguments.
2011-11-11 17:44:47 +01:00
Vladimir 'phcoder' Serbinenko
4c458569a7
* grub-core/kern/ieee1275/ieee1275.c (grub_ieee1275_set_property):
...
Make buf a const.
2011-11-11 17:34:38 +01:00
Vladimir 'phcoder' Serbinenko
49a45021c1
* grub-core/lib/LzmaEnc.c (LzmaEnc_CodeOneBlock): Remove set but not
...
used variable.
* grub-core/kern/ia64/dl_helper.c (grub_ia64_dl_get_tramp_got_size):
Likewise.
2011-11-08 19:46:41 +01:00
Vladimir 'phcoder' Serbinenko
27610c3836
Fix FreeBSD compilation.
...
* grub-core/disk/geli.c (GRUB_MD_SHA256) [GRUB_UTIL]: Redefine in a way
to avoid circular dependency.
(GRUB_MD_SHA512) [GRUB_UTIL]: Likewise.
* util/getroot.c (grub_util_follow_gpart_up): Move from here...
* grub-core/kern/emu/hostdisk.c (+grub_util_follow_gpart_up): ... here.
2011-11-08 19:34:19 +01:00
Vladimir 'phcoder' Serbinenko
958ee22168
Illumos support.
...
* Makefile.util.def (10_illumos): New script.
* configure.ac: Set COND_HOST_ILLUMOS.
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors) [__sun__]:
Support Illumos calls.
(find_partition_start) [__sun__]: Likewise.
(convert_system_partition_to_system_disk) [__sun__]: Likewise.
(device_is_wholedisk) [__sun__]: Handle Illumos naming scheme.
(grub_util_biosdisk_get_grub_dev) [__sun__]: Handle Illumos.
* util/getroot.c (find_root_device_from_libzfs) [__sun__]: Return raw
device.
* util/grub-probe.c (probe) [__sun__]: Do character check.
* util/grub.d/10_illumos.in: New file.
2011-11-08 12:38:30 +01:00
Vladimir 'phcoder' Serbinenko
cac14fb663
Support escaped commas in hostdisk.
...
* grub-core/kern/emu/hostdisk.c (unescape_cmp): New function.
(find_grub_drive): Use unescape_cmp.
(make_device_name): Escape commas.
2011-11-08 12:15:57 +01:00
Vladimir 'phcoder' Serbinenko
ed64e9e279
Support trampoline jumps on powerpc.
...
* grub-core/kern/dl.c (grub_dl_load_segments) [__powerpc__]: Follow
__ia64__ path.
(grub_dl_load_segments): Set mod->sz.
(grub_dl_flush_cache): Flush whole space occupied by module, not just
segments.
* grub-core/kern/ia64/dl.c (nopm): Make const while on it.
(jump): Likewise.
* grub-core/kern/powerpc/dl.c (grub_arch_dl_get_tramp_got_size): New
function.
(trampoline): New struct.
(trampoline_template): New const.
(grub_arch_dl_relocate_symbols): Create trampolines on overflow.
* include/grub/dl.h (grub_dl): Add sz element.
[__powerpc__]: Follow __ia64__.
(GRUB_ARCH_DL_TRAMP_ALIGN): Define on ppc.
(GRUB_ARCH_DL_GOT_ALIGN): Likewise.
(GRUB_ARCH_DL_TRAMP_SIZE): Likewise.
(grub_arch_dl_get_tramp_got_size) [__powerpc__]: New proto.
2011-11-08 11:23:56 +01:00
Vladimir 'phcoder' Serbinenko
9f326fba96
* grub-core/kern/disk.c (grub_disk_read_small): Fix memory leak.
2011-10-25 18:01:57 +02:00
Vladimir 'phcoder' Serbinenko
3ce69fc90f
* grub-core/kern/i386/pc/startup.S (grub_exit): Add missing zeroing-out.
...
* grub-core/lib/i386/reboot_trampoline.S (grub_reboot_start):
Likewise.
2011-10-23 23:04:57 +02:00
Vladimir 'phcoder' Serbinenko
db1326f5fb
Move chainloader_real_boot out of the kernel
2011-10-21 00:16:59 +02:00
Vladimir 'phcoder' Serbinenko
766f7d0809
Remove redundant grub_kernel_image_size.
...
* grub-core/kern/i386/coreboot/init.c (grub_machine_init): Use
_edata and _start.
* grub-core/kern/i386/coreboot/startup.S: Move multiboot header after
the small code. It moves it only by few bytes but simplifies the code.
* grub-core/kern/i386/pc/init.c (grub_machine_init): Use _edata and
_start.
* grub-core/kern/i386/pc/startup.S: Use _edata and _start.
(grub_kernel_image_size): Removed.
* grub-core/kern/i386/qemu/startup.S: Use _edata and _start.
(grub_kernel_image_size): Removed.
[APPLE_CC]: Remove apple compiler support. i386-qemu port can't be
compiled with Apple toolchain.
* grub-core/kern/sparc64/ieee1275/crt0.S: Remove leftover fields.
* include/grub/i386/pc/kernel.h (grub_kernel_image_size): Removed.
* include/grub/i386/qemu/kernel.h (grub_kernel_image_size): Removed.
(grub_total_module_size): Likewise.
* include/grub/offsets.h (GRUB_KERNEL_I386_PC_KERNEL_IMAGE_SIZE):
Removed.
(GRUB_KERNEL_I386_PC_COMPRESSED_SIZE): Put it lower.
(GRUB_KERNEL_I386_PC_INSTALL_DOS_PART): Likewise.
(GRUB_KERNEL_I386_PC_INSTALL_BSD_PART): Likewise.
(GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY): Likewise.
(GRUB_KERNEL_I386_QEMU_KERNEL_IMAGE_SIZE): Removed.
(GRUB_KERNEL_SPARC64_IEEE1275_KERNEL_IMAGE_SIZE): Likewise.
(GRUB_KERNEL_SPARC64_IEEE1275_COMPRESSED_SIZE): Likewise.
* include/grub/sparc64/ieee1275/kernel.h (grub_kernel_image_size):
Removed.
(grub_total_module_size): Removed.
* util/grub-mkimage.c (image_target_desc): Remove image_size.
(image_targets): Likewise.
Set .compressed_size to no field on sparc.
(generate_image): Remove kernel_image_size handling.
2011-10-20 08:13:00 +02:00
Vladimir 'phcoder' Serbinenko
de9c615e5c
Removed unused GRUB_BOOT_VERSION. Check for kernel version is better
...
done with a dedicated section.
* grub-core/boot/sparc64/ieee1275/boot.S: Remove GRUB_BOOT_VERSION.
Ensure the correct position of boot_path.
* grub-core/kern/i386/efi/startup.S: Remove GRUB_BOOT_VERSION.
* grub-core/kern/i386/pc/startup.S: Likewise. Ensure correct position of
other fields.
* grub-core/kern/x86_64/efi/startup.S: Remove GRUB_BOOT_VERSION.
* include/grub/boot.h: Removed. All references removed.
* include/grub/sparc64/ieee1275/boot.h (GRUB_BOOT_MACHINE_VER_MAJ):
Removed.
(GRUB_BOOT_MACHINE_BOOT_DEVPATH): Make it lower.
2011-10-19 23:01:44 +02:00
Vladimir 'phcoder' Serbinenko
36dd20ad0b
* grub-core/kern/main.c (grub_set_prefix_and_root): Init prefix.
2011-10-19 20:30:06 +02:00
Vladimir 'phcoder' Serbinenko
f8f72eb890
* grub-core/kern/ieee1275/openfw.c (grub_ieee1275_encode_devname):
...
Don't add the bogus brackets.
2011-10-19 20:28:09 +02:00
Vladimir 'phcoder' Serbinenko
544c24876e
Move grub_reboot out of the kernel.
...
* grub-core/Makefile.core.def (reboot): Add platform-specific files.
* grub-core/kern/efi/efi.c (grub_reboot): Moved to ...
* grub-core/lib/efi/reboot.c: ... here.
* grub-core/kern/i386/efi/startup.S: Remove including of realmode.S.
* grub-core/kern/i386/ieee1275/startup.S: Likewise.
* grub-core/kern/i386/pc/startup.S (grub_exit): Inline cold_reboot.
* grub-core/kern/i386/realmode.S (grub_reboot): Moved to...
* grub-core/lib/i386/reboot_trampoline.S: ... here.
* grub-core/kern/ieee1275/openfw.c (grub_reboot): Moved to...
* grub-core/lib/ieee1275/reboot.c: ... here.
* grub-core/kern/mips/arc/init.c (grub_reboot): Moved to...
* grub-core/lib/mips/arc/reboot.c: ... here.
* grub-core/kern/mips/loongson/init.c (grub_reboot): Moved to...
* grub-core/lib/mips/loongson/reboot.c: ...here.
* grub-core/kern/mips/qemu_mips/init.c (grub_reboot): Moved to...
* grub-core/lib/mips/qemu_mips/reboot.c: ... here.
* include/grub/emu/misc.h (grub_reboot): New function declaration.
* include/grub/i386/reboot.h: New file.
* include/grub/mips/loongson/ec.h: Fix includes.
* include/grub/mips/qemu_mips/kernel.h (grub_reboot): Removed.
* include/grub/misc.h (grub_reboot): Don't mark as kernel function.
* grub-core/lib/i386/reboot.c: New file.
2011-10-19 16:53:18 +02:00
Vladimir 'phcoder' Serbinenko
a97501d238
Make grub_prefix into module to fix the arbitrary limit and save
...
some space.
* grub-core/kern/emu/main.c (grub_prefix): Removed.
* grub-core/kern/i386/coreboot/startup.S (grub_prefix): Likewise.
* grub-core/kern/i386/efi/startup.S (grub_prefix): Likewise.
* grub-core/kern/i386/ieee1275/startup.S (grub_prefix): Likewise.
* grub-core/kern/i386/pc/startup.S (grub_prefix): Likewise.
* grub-core/kern/i386/qemu/startup.S (grub_prefix): Likewise.
* grub-core/kern/ia64/efi/startup.S (grub_prefix): Likewise.
* grub-core/kern/mips/startup.S (grub_prefix): Likewise.
* grub-core/kern/powerpc/ieee1275/startup.S (grub_prefix): Likewise.
* grub-core/kern/sparc64/ieee1275/crt0.S (grub_prefix): Likewise.
* grub-core/kern/x86_64/efi/startup.S (grub_prefix): Likewise.
* include/grub/ia64/efi/kernel.h: Removed.
* include/grub/kernel.h: New module type OBJ_TYPE_PREFIX.
(grub_prefix): Removed.
* include/grub/offsets.h (GRUB_KERNEL_I386_PC_PREFIX): Removed.
(GRUB_KERNEL_I386_PC_PREFIX_END): Likewise.
(GRUB_KERNEL_I386_QEMU_PREFIX): Likewise.
(GRUB_KERNEL_I386_QEMU_PREFIX_END): Likewise.
(GRUB_KERNEL_SPARC64_IEEE1275_PREFIX): Likewise.
(GRUB_KERNEL_SPARC64_IEEE1275_PREFIX_END): Likewise.
(GRUB_KERNEL_POWERPC_IEEE1275_PREFIX): Likewise.
(GRUB_KERNEL_POWERPC_IEEE1275_PREFIX_END): Likewise.
(GRUB_KERNEL_MIPS_LOONGSON_PREFIX): Likewise.
(GRUB_KERNEL_MIPS_LOONGSON_PREFIX_END): Likewise.
(GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX): Likewise.
(GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX_END): Likewise.
(GRUB_KERNEL_MIPS_ARC_PREFIX): Likewise.
(GRUB_KERNEL_MIPS_ARC_PREFIX_END): Likewise.
(GRUB_KERNEL_I386_EFI_PREFIX): Likewise.
(GRUB_KERNEL_I386_EFI_PREFIX_END): Likewise.
(GRUB_KERNEL_IA64_EFI_PREFIX): Likewise.
(GRUB_KERNEL_IA64_EFI_PREFIX_END): Likewise.
(GRUB_KERNEL_X86_64_EFI_PREFIX): Likewise.
(GRUB_KERNEL_X86_64_EFI_PREFIX_END): Likewise.
(GRUB_KERNEL_I386_COREBOOT_PREFIX): Likewise.
(GRUB_KERNEL_I386_COREBOOT_PREFIX_END): Likewise.
(GRUB_KERNEL_I386_MULTIBOOT_PREFIX): Likewise.
(GRUB_KERNEL_I386_MULTIBOOT_PREFIX_END): Likewise.
(GRUB_KERNEL_I386_IEEE1275_PREFIX): Likewise.
(GRUB_KERNEL_I386_IEEE1275_PREFIX_END): Likewise.
(GRUB_KERNEL_MACHINE_PREFIX): Likewise.
(GRUB_KERNEL_MACHINE_PREFIX_END): Likewise.
* grub-core/kern/main.c (grub_set_prefix_and_root): Retrieve grub_prefix
from module.
* util/grub-mkimage.c (image_target_desc): Removed prefix and
prefix_end.
(image_targets): Likewise.
(generate_image): Put prefix as a module.
2011-10-18 15:21:51 +02:00
Vladimir 'phcoder' Serbinenko
39705fadd7
Replace grub_module_iterate with FOR_MODULES.
...
* grub-core/disk/memdisk.c (GRUB_MOD_INIT): Switched to new interface.
* grub-core/kern/efi/efi.c (grub_arch_modules_addr): Renamed to...
(grub_efi_modules_addr): ...this.
* grub-core/kern/efi/init.c (grub_modbase): New variable.
(grub_efi_init): Set grub_modbase.
* grub-core/kern/emu/main.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
* grub-core/kern/i386/coreboot/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/i386/pc/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/ieee1275/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/main.c (grub_module_iterate): Remove.
(grub_modules_get_end): Use grub_modbase.
(grub_load_modules): Use FOR_MODULES.
(grub_load_config): Likewise.
* grub-core/kern/mips/arc/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/mips/loongson/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/mips/qemu_mips/init.c (grub_arch_modules_addr):
Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* include/grub/efi/efi.h (grub_efi_modules_addr): New declaration.
* include/grub/kernel.h (grub_arch_modules_addr): Removed.
(grub_module_iterate): Likewise.
(grub_modbase): New variable declaration.
(FOR_MODULES): New macro.
2011-10-16 15:23:29 +02:00
Vladimir 'phcoder' Serbinenko
c81296b65f
* grub-core/kern/emu/hostdisk.c
...
(convert_system_partition_to_system_disk): Don't assume that children
of mapper nodes are mapper nodes.
2011-10-14 19:20:44 +02:00
Mario Limonciello
c05de0329b
* grub-core/kern/emu/misc.c (canonicalize_file_name) [__MINGW32__]: Use
...
_fullpath.
2011-09-29 10:36:55 +02:00
Vladimir 'phcoder' Serbinenko
6991503094
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy):
...
Return 0 if disk isn't biosdisk.
2011-09-28 14:07:53 +02:00
Grégoire Sutre
1a7d7db97f
Get sector size from disk label for NetBSD.
2011-09-17 23:01:48 +02:00
Vladimir 'phcoder' Serbinenko
ca51c4a04f
* grub-core/kern/mips/loongson/init.c (grub_machine_init): Handle the
...
case of less than 256 MiB of RAM.
2011-08-23 11:20:56 +02:00
Vladimir 'phcoder' Serbinenko
f87abff538
* grub-core/kern/mips/loongson/init.c (grub_reboot): Reboot Fuloong.
...
* include/grub/cs5536.h (GRUB_CS5536_MSR_DIVIL_RESET): New definition.
2011-08-19 23:11:09 +02:00
Vladimir 'phcoder' Serbinenko
d94497eaca
* grub-core/Makefile.core.def (kernel): Add video/radeon_fuloong2e.c on
...
loongson.
* grub-core/kern/mips/loongson/init.c (grub_machine_init): Init
video_radeon_fuloong2e.
* grub-core/video/radeon_fuloong2e.c: New file.
* include/grub/video.h (grub_video_id_t): Add new ID
GRUB_VIDEO_DRIVER_RADEON_FULOONG2E.
2011-08-19 23:08:36 +02:00
Vladimir 'phcoder' Serbinenko
0d1fd0113b
* include/grub/mips/loongson.h (GRUB_CPU_LOONGSON_COP0_PRID): New
...
define.
* grub-core/kern/mips/loongson/init.c (grub_machine_init): Check
that PRID matches the detected subplatform and reset the subplatform
if it doesn't.
2011-08-19 23:04:18 +02:00
Vladimir 'phcoder' Serbinenko
84beb0eeb9
* grub-core/kern/misc.c (grub_vprintf): Fix a bug on malloc failure.
2011-08-19 22:59:24 +02:00
Vladimir 'phcoder' Serbinenko
14a2562cf7
Rename Fuloong into Fuloong 2F. Add new ID for Fuloong2E.
...
* grub-core/Makefile.core.def (fwstart_fuloong): Rename fwstart_fuloong
into fwstart_fuloong2f. Use boot/mips/loongson/fuloong2f.S.
* grub-core/boot/mips/loongson/fuloong.S: Rename to ...
* grub-core/boot/mips/loongson/fuloong2f.S: ... this.
(FULOONG): Rename to ...
(FULOONG2F): ... this. All users updated.
* grub-core/boot/mips/startup_raw.S (machtype_fuloong_str): Rename to
(machtype_fuloong2f_str): ... this.
(machtype_fuloong2e_str): New string.
Check for machtype_fuloong2e_str.
* grub-core/loader/mips/linux.c (loongson_machtypes)
[GRUB_MACHINE_MIPS_LOONGSON]: Add GRUB_ARCH_MACHINE_FULOONG2E.
* grub-core/term/serial.c (loongson_defserial)
[GRUB_MACHINE_MIPS_LOONGSON]: New array.
(grub_serial_register) [GRUB_MACHINE_MIPS_LOONGSON]: Use
loongson_defserial.
* include/grub/mips/loongson/kernel.h (GRUB_ARCH_MACHINE_FULOONG):
Rename to ...
(GRUB_ARCH_MACHINE_FULOONG2F): ... this.
(GRUB_ARCH_MACHINE_FULOONG2E): New const.
* util/grub-mkimage.c (image_target_desc): Rename IMAGE_FULOONG_FLASH
to IMAGE_FULOONG2F_FLASH. All users updated.
(image_targets): Rename images.
* util/grub-mkstandalone.in: Accept fuloong2f and fuloong2e.
2011-08-19 22:46:11 +02:00
Szymon Janc
b526cbb6fa
Make enable of disk cache statistics code configurable.
...
* configure.ac: --enable-cache-stats added.
* config.h.in (DISK_CACHE_STATS): New define.
* grub-core/Makefile.core.def (cacheinfo): New command.
* include/grub/disk.h(grub_disk_cache_get_performance): New function.
* grub-core/commands/cacheinfo.c: New file.
* grub-core/commands/minicmd.c (grub_rescue_cmd_info): Updated and
moved to cacheinfo.c.
* grub-core/kern/disk.c: Use DISK_CACHE_STATS to disable disk cache
debug code.
* include/grub/disk.h: Likewise.
2011-08-19 21:28:09 +02:00
Vladimir 'phcoder' Serbinenko
2bba8cfd55
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_iterate): Skip with
...
non-zero pull.
2011-08-16 23:12:20 +02:00
Szymon Janc
99cecb4fc7
merge trunk
2011-08-13 15:00:48 +02:00
Vladimir 'phcoder' Serbinenko
bf66054fb3
* grub-core/kern/mips/cache_flush.S [GRUB_MACHINE_MIPS_LOONGSON]: Flush
...
all four ways.
2011-07-23 16:44:40 +02:00
Vladimir 'phcoder' Serbinenko
2e418de646
Remove getroot.c from core on emu platform.
...
* grub-core/Makefile.core.def (kernel): Remove kern/emu/getroot.c and
kern/emu/raid.c.
* grub-core/kern/emu/main.c (main): Don't try to guess root device. It's
useless.
* grub-core/kern/emu/misc.c (get_win32_path): Moved from here...
* util/getroot.c (get_win32_path): ... here.
* grub-core/kern/emu/misc.c (fini_libzfs): Moved from here...
* util/getroot.c (fini_libzfs): ... here.
* grub-core/kern/emu/misc.c (grub_get_libzfs_handle): Moved from here...
* util/getroot.c (grub_get_libzfs_handle): ... here.
* grub-core/kern/emu/misc.c (grub_find_zpool_from_dir):
Moved from here...
* util/getroot.c (grub_find_zpool_from_dir): ... here.
* grub-core/kern/emu/misc.c
(grub_make_system_path_relative_to_its_root): Moved from here...
* util/getroot.c (grub_make_system_path_relative_to_its_root): ... here.
* grub-core/kern/emu/getroot.c: Moved from here ...
* util/getroot.c: ... here. All users updated.
* grub-core/kern/emu/raid.c: Moved from here ...
* util/raid.c: ... here. All users updated.
2011-07-08 13:33:12 +02:00
Vladimir 'phcoder' Serbinenko
cd8fe79a59
Fix compilation on GNU/Linux.
...
* grub-core/kern/emu/getroot.c (grub_util_pull_device) [!FreeBSD]:
Disable geli.
(grub_util_get_grub_dev) [!FreeBSD]: Likewise.
(grub_util_pull_device) [HAVE_DEVICE_MAPPER]: Fix const and func name.
* grub-core/disk/cryptodisk.c (grub_cryptodisk_open): Fix proto.
2011-07-08 03:59:05 +02:00
Vladimir Serbinenko
a251b71915
LUKS and GELI support.
...
* Makefile.util.def (libgrubkern.a): Add grub-core/lib/crypto.c,
grub-core/disk/luks.c, grub-core/disk/geli.c,
grub-core/disk/cryptodisk.c, grub-core/disk/AFSplitter.c,
grub-core/lib/pbkdf2.c, grub-core/commands/extcmd.c,
grub-core/lib/arg.c.
(libgrubmods.a): Remove gcrypts cflags and cppflags.
Remove grub-core/commands/extcmd.c, grub-core/lib/arg.c,
grub-core/lib/crypto.c, grub-core/lib/libgcrypt-grub/cipher/sha512.c,
grub-core/lib/libgcrypt-grub/cipher/crc.c and grub-core/lib/pbkdf2.c.
(grub-bin2h): Add libgcry.a.
(grub-mkimage): Likewise.
(grub-mkrelpath): Likewise.
(grub-script-check): Likewise.
(grub-editenv): Likewise.
(grub-mkpasswd-pbkdf2): Likewise.
(grub-pe2elf): Likewise.
(grub-fstest): Likewise.
(grub-mkfont): Likewise.
(grub-mkdevicemap): Likewise.
(grub-probe): Likewise.
(grub-ofpath): Likewise.
(grub-mklayout): Likewise.
(example_unit_test): Likewise.
(grub-menulst2cfg): Likewise.
* autogen.sh (UTIL_DEFS): Add Makefile.utilgcry.def.
* grub-core/Makefile.core.def (cryptodisk): New module.
(luks): Likewise.
(geli): Likewise.
* grub-core/disk/AFSplitter.c: New file.
* grub-core/disk/cryptodisk.c: Likewise.
* grub-core/disk/geli.c: Likewise.
* grub-core/disk/luks.c: Likewise.
* grub-core/kern/emu/getroot.c (get_dm_uuid): New function based on
grub_util_is_lvm.
(grub_util_get_dm_abstraction): New function.
(grub_util_follow_gpart_up): Likewise.
(grub_util_get_geom_abstraction): Likewise.
(grub_util_get_dev_abstraction): Use new functions.
(grub_util_pull_device): Pull GELI and LUKS.
(grub_util_get_grub_dev): Handle LUKS and GELI.
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors): New function.
(grub_util_biosdisk_open): Use grub_util_get_fd_sectors.
(follow_geom_up): Removed.
(grub_util_fd_seek): New function.
(open_device): Use grub_util_fd_seek.
(nread): Rename to ..
(grub_util_fd_read): ... this. All users updated.
* grub-core/lib/crypto.c (grub_crypto_ecb_decrypt): A better prototype.
(grub_crypto_cbc_decrypt): Likewise.
(grub_crypto_hmac_write): Likewise.
(grub_crypto_hmac_buffer): Likewise.
(grub_password_get): Extend to util.
* include/grub/crypto.h (gcry_cipher_spec) [GRUB_UTIL]:
New member modname.
(gcry_md_spec) [GRUB_UTIL]: Likewise.
* include/grub/cryptodisk.h: New file.
* include/grub/disk.h (grub_disk_dev_id): Rename LUKS to CRYPTODISK.
* include/grub/emu/getroot.h (grub_dev_abstraction_types): Add
LUKS and GELI.
(grub_util_follow_gpart_up): New proto.
* include/grub/emu/hostdisk.h (grub_util_fd_seek): Likewise.
(grub_util_fd_read): Likewise.
(grub_cryptodisk_cheat_mount): Likewise.
(grub_util_cryptodisk_print_uuid): Likewise.
(grub_util_get_fd_sectors): Likewise.
* util/grub-fstest.c (mount_crypt): New var.
(fstest): Mount crypto if requested.
(options): New option -C.
(argp_parser): Parse -C.
(main): Init and fini gcry.
* util/grub-install.in: Support cryptodisk install.
* util/grub-mkconfig.in: Export GRUB_ENABLE_CRYPTODISK.
* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Support
cryptodisk.
(prepare_grub_to_access_device): Likewise.
* util/grub-mkpasswd-pbkdf2.c (main): Use grub_password_get.
* util/grub-probe.c (probe_partmap): Support cryptodisk UUID probe.
(probe_cryptodisk_uuid): New function.
(probe_abstraction): Likewise.
(probe): Use new functions.
* util/import_gcry.py: Create Makefile.utilgcry.def.
Add modname member.
Also-By: Michael Gorven <michael@gorven.za.net>
Also-By: Clemens Fruhwirth <clemens@endorphin.org>
2011-07-07 23:52:58 +02:00
Vladimir 'phcoder' Serbinenko
0044d1db2e
Simplify disk opening
2011-07-07 21:46:25 +02:00
Vladimir 'phcoder' Serbinenko
00542307eb
merge mainline into lazy
2011-07-07 12:21:53 +02:00
Vladimir 'phcoder' Serbinenko
abee94edf9
Unify sparc init with other ieee1275.
...
* grub-core/Makefile.core.def (kernel): Use kern/ieee1275/init.c
instead of kern/sparc64/ieee1275/init.c.
* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options)
[__sparc__]: Set GRUB_IEEE1275_FLAG_NO_PARTITION_0.
* grub-core/kern/ieee1275/init.c [__sparc__]: Include
grub/machine/kernel.h.
(grub_ieee1275_original_stack) [__sparc__]: New variable.
(grub_claim_heap) [__sparc__]: Use sparc version.
(grub_machine_init): Moved args parsing to
(grub_parse_cmdline): ...this.
* grub-core/kern/sparc64/ieee1275/init.c: Removed.
* include/grub/offsets.h (GRUB_KERNEL_SPARC64_IEEE1275_MOD_GAP):
New definition.
(GRUB_KERNEL_SPARC64_IEEE1275_MOD_ALIGN): Likewise.
Move BOOTP to separate file.
* grub-core/Makefile.core.def (net): Add net/bootp.c.
* grub-core/net/net.c: Move all BOOTP functions to
* grub-core/net/bootp.c: ... here.
Use frame interface on PXE.
* grub-core/Makefile.core.def (pxecmd): Removed.
(pxe): Use net/drivers/i386/pc/pxe.c rather than net/i386/pc/pxe.c.
* grub-core/commands/i386/pc/pxecmd.c: Removed.
* grub-core/i386/pc/pxe.c: Moved from here ...
* grub-core/net/i386/pc/pxe.c: ... here. Rewritten.
* grub-core/net/net.c (grub_net_open_real): Handle old pxe syntax.
* include/grub/i386/pc/pxe.h (grub_pxe_unload): Removed.
EFI network support.
* grub-core/Makefile.core.def (efinet): New module.
* grub-core/disk/efi/efidisk.c (compare_device_paths): Moved from
here...
* grub-core/kern/efi/efi.c (grub_efi_compare_device_paths): ... here.
All users updated.
* grub-core/kern/efi/init.c (grub_efi_net_config): New variable.
(grub_machine_get_bootlocation): Call grub_efi_net_config if needed.
* grub-core/kern/x86_64/efi/callwrap.S (efi_wrap_7): New function.
* grub-core/net/drivers/efi/efinet.c: New file.
* include/grub/efi/efi.h (grub_efi_compare_device_paths): New proto.
(grub_efi_net_config): New extern var.
Various cleanups and bugfixes.
* grub-core/disk/efi/efidisk.c (grub_efidisk_open): Fix off-by-one
error.
(grub_efidisk_get_device_name): Unify similar codepaths. Accept whole
disk declared as partition.
* grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_open): Fix memory
leak on failure.
* grub-core/kern/dl.c (grub_dl_load_file): Fix memory leak.
* grub-core/kern/mm.c (grub_debug_malloc): Don't use unsupported %zx.
(grub_debug_zalloc): Likewise.
(grub_debug_realloc): Likewise.
(grub_debug_memalign): Likewise.
* grub-core/net/arp.c (grub_net_arp_receive): IPv4 is 4-byte wide.
Check that target is IPv4.
* grub-core/net/drivers/ieee1275/ofnet.c (grub_ofnet_findcards): Use
local-mac-address as fallback.
* grub-core/net/ethernet.c (grub_net_recv_ethernet_packet): Prevent
memory leak.
* grub-core/net/ip.c (ipchksum): Rename to ...
(grub_net_ip_chksum): ... this. All users updated.
(grub_net_recv_ip_packets): Special handling for DHCP.
* util/grub-mkimage.c (generate_image): Zero-out aout header.
Unify prefix handling
* grub-core/kern/efi/init.c (grub_efi_set_prefix): Revamped into ...
(grub_machine_get_bootlocation): ... this.
* grub-core/kern/emu/main.c (grub_machine_set_prefix): Revamped into ...
(grub_machine_get_bootlocation): ... this.
(grub_prefix): New variable.
(prefix): Removed.
(root_dev): New variable.
(dir): Likewise.
(main): Use new variables.
* grub-core/kern/i386/coreboot/init.c (grub_machine_set_prefix):
Revamped into ...
(grub_machine_get_bootlocation): ... this.
* grub-core/kern/i386/efi/init.c (grub_machine_set_prefix): Removed.
* grub-core/kern/i386/pc/init.c (make_install_device): Revamped into ...
(grub_machine_get_bootlocation): ... this.
(grub_machine_set_prefix): Removed.
* grub-core/kern/ia64/efi/init.c (grub_machine_set_prefix): Removed.
* grub-core/kern/ieee1275/init.c (grub_machine_set_prefix):
Revamped into ...
(grub_machine_get_bootlocation): ... this.
* grub-core/kern/main.c (grub_set_root_dev): Revamped into ...
(grub_set_prefix_and_root): ... this. All users updated.
* grub-core/kern/mips/init.c (grub_machine_set_prefix):
Revamped into ...
(grub_machine_get_bootlocation): ... this.
* include/grub/kernel.h (grub_machine_set_prefix): Removed.
(grub_machine_get_bootlocation): New proto.
* include/grub/i386/pc/kernel.h (grub_pc_net_config): New var.
Less intrusive and more reliable seek on network implementation.
* grub-core/kern/file.c (grub_file_net_seek): Removed.
(grub_file_seek): Don't call grub_file_net_seek.
* grub-core/net/net.c (grub_net_fs_read): Renamed to ...
(grub_net_fs_read_real): .. this.
(grub_net_seek_real): Use net->offset.
(grub_net_fs_read): Seek if necessary.
Unify IEEE1275 netwotk config with the other platforms.
* grub-core/kern/ieee1275/init.c (grub_ieee1275_net_config):
New variable.
(grub_machine_get_bootlocation): Support network.
* grub-core/kern/ieee1275/openfw.c (grub_ieee1275_parse_args):
Support type and device parsing.
(grub_ieee1275_get_device_type): New function.
* grub-core/net/drivers/ieee1275/ofnet.c (grub_getbootp_real): Revamped
into ...
(grub_ieee1275_net_config_real): ... this.
(grub_ofnet_probecards): Removed.
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Remove ofnet.h.
* include/grub/ieee1275/ofnet.h: Removed.
* include/grub/ieee1275/ieee1275.h (grub_ieee1275_net_config): NEw
extern var.
(grub_ieee1275_get_device_type): New function.
Unify network device closing across platforms and make more robust.
* grub-core/kern/ieee1275/init.c (grub_machine_fini): Don't call
grub_grubnet_fini.
* grub-core/net/ethernet.c (send_ethernet_packet): Open card if it isn't
already.
* grub-core/net/net.c (grub_net_network_level_interface_register):
Update num_ifaces.
(grub_net_card_unregister): Close all interfaces.
(receive_packets): Don't poll if no iterfaces are registered.
Open if necessary.
(grub_net_fini_hw): New function.
(grub_net_restore_hw): Likewise.
(fini_hnd): New variable.
(GRUB_MOD_INIT): Register preboot hook.
(GRUB_MOD_FINI): Run and unregister preboot hook.
Poll network cards when idle.
* grub-core/kern/term.c (grub_net_poll_cards_idle): New variable.
(grub_checkkey): Call grub_net_poll_cards_idle if it's not NULL.
* grub-core/net/net.c (receive_packets): Save last poll time.
(grub_net_poll_cards_idle_real): New function.
(GRUB_MOD_INIT): Register grub_net_poll_cards_idle.
(GRUB_MOD_FINI): Unregister grub_net_poll_cards_idle.
* include/grub/kernel.h (grub_poll_cards_idle): New extern variable.
Rename ofnet interfaces.
* grub-core/net/drivers/ieee1275/ofnet.c (find_alias): New function.
(grub_ofnet_findcards): Use ofnet_%s names.
* util/grub-mknetdir.in: Support for EFI and IEEE1275.
Cleanup socket opening.
* grub-core/net/net.c (grub_net_fs_open): Rewritten.
(grub_net_fs_close): Likewise.
(grub_net_fs_read_real): Use eof member.
* include/grub/net/udp.h (+grub_net_udp_open): New proto.
(+grub_net_udp_close): New inline function.
* include/grub/net/tftp.h: Moved to the top of ...
* grub-core/net/tftp.c: ... here.
* include/grub/net/ip.h: Moved mostly to the top of ...
* grub-core/net/ip.c: ... here.
* include/grub/net/ethernet.h: Moved mostly to the top of ...
* grub-core/net/ethernet.c: ... here.
* grub-core/kern/device.c (grub_device_close): Free device->net->server.
* grub-core/commands/probe.c (grub_cmd_probe): Use protocol name for
FS name.
* include/grub/net/ip.h (ipv4_ini): Removed.
(ipv4_fini): Likewise.
* include/grub/net/ip.h (grub_net_recv_ip_packets): New proto.
(grub_net_send_ip_packets): Likewise.
2011-07-06 20:05:26 +02:00
Vladimir 'phcoder' Serbinenko
e1a0e1b428
Fix the usage of unsupported %zx
2011-07-06 17:41:19 +02:00
Vladimir 'phcoder' Serbinenko
f872d4744e
Fix compilation error
2011-07-06 17:40:56 +02:00
Vladimir 'phcoder' Serbinenko
c2aa00f059
Fix a memory leak
2011-07-06 17:40:36 +02:00
Vladimir 'phcoder' Serbinenko
228ccedb5e
poll cards when idle
2011-07-06 13:37:33 +02:00
Vladimir 'phcoder' Serbinenko
cf1337aa02
* grub-core/kern/i386/qemu/mmap.c (grub_machine_mmap_init): Use new
...
grub_read_cmos prototype.
2011-07-06 02:50:35 +02:00
Vladimir 'phcoder' Serbinenko
d53bf34924
merge mainline into net
2011-07-06 01:35:41 +02:00
Vladimir 'phcoder' Serbinenko
93c06ff9c6
VGA text support in qemu-mips
...
* grub-core/Makefile.core.def (kernel): Add term/i386/pc/vga_text.c,
term/i386/vga_common.c and kern/vga_init.c on qemu-mips.
* grub-core/kern/mips/qemu_mips/init.c (grub_machine_init): Init vga
text.
* grub-core/kern/i386/qemu/init.c: Renamed to ...
* grub-core/kern/vga_init.c: ... this.
* grub-core/kern/vga_init.c (VGA_ADDR) [__mips__]: Adjust.
(grub_qemu_init_cirrus) [__mips__]: Skip PCI and adjust the I/O base.
* grub-core/term/i386/pc/vga_text.c (VGA_TEXT_SCREEN) [__mips__]:
Adjust.
* include/grub/vga.h [GRUB_MACHINE_MIPS_QEMU_MIPS]: Declare
GRUB_MACHINE_PCI_IO_BASE.
2011-07-05 23:46:15 +02:00
Vladimir 'phcoder' Serbinenko
748ccabea1
MIPS qemu flash support.
...
* grub-core/boot/mips/startup_raw.S [GRUB_MACHINE_MIPS_QEMU_MIPS]: Check
magic.
* grub-core/kern/mips/qemu_mips/init.c (probe_mem): New function.
(grub_machine_init): Probe memory if its size isn't known.
* util/grub-mkimage.c (image_targets): Add flash targets.
(generate_image): Handle flash targets.
2011-07-05 21:42:36 +02:00
Vladimir 'phcoder' Serbinenko
d734599439
MIPS qemu at_keyboard support.
...
* gentpl.py (videoinkernel): Add qemu-mips.
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Add necessary headers.
* grub-core/Makefile.core.def (kernel): Add at_keyboard and layout.
* grub-core/kern/mips/qemu_mips/init.c (grub_machine_init): Init new
modules.
* grub-core/term/at_keyboard.c (grub_keyboard_controller_init)
[GRUB_MACHINE_MIPS_QEMU_MIPS]: Don't consider original set.
* grub-core/term/serial.c (grub_serial_register)
[GRUB_MACHINE_MIPS_QEMU_MIPS]: Make com0 explicitly active.
2011-07-05 21:00:01 +02:00
Vladimir 'phcoder' Serbinenko
0bc2cd0f82
Reintroduce open/close of net cards. Clean up ofnet.
2011-07-05 16:37:14 +02:00
Vladimir 'phcoder' Serbinenko
c4d038f632
Don't react to adressed bootp packets unless in bootp transaction
2011-07-02 20:11:29 +02:00
Vladimir 'phcoder' Serbinenko
03a0046581
merge mainline into net
2011-07-02 18:52:50 +02:00
Vladimir 'phcoder' Serbinenko
6708faafde
Fix broken blksize negotiation, fix broken seek and change a way net device is filled n i386-pc
2011-07-02 17:58:23 +02:00
Vladimir 'phcoder' Serbinenko
cae730b452
Automatically determine prefix when netbooted on EFI
2011-07-02 16:56:35 +02:00
Vladimir 'phcoder' Serbinenko
574618a2e9
unify prefix handling across platforms
2011-07-02 14:09:36 +02:00
Vladimir 'phcoder' Serbinenko
9fc9ce3795
Coreboot video support.
...
* grub-core/Makefile.core.def (vga): Extend to coreboot and multiboot.
(vbe): Likewise.
* grub-core/kern/i386/coreboot/startup.S: Include int.S.
* grub-core/kern/i386/pc/startup.S (grub_bios_interrupt): Moved from
here ...
* grub-core/kern/i386/int.S: ... here.
* grub-core/video/i386/pc/vbe.c: Updated includes.
* grub-core/video/i386/pc/vga.c: Likewise.
* include/grub/i386/coreboot/memory.h
(GRUB_MEMORY_MACHINE_SCRATCH_ADDR): New definition.
(GRUB_MEMORY_MACHINE_SCRATCH_SEG): Likewise.
(GRUB_MEMORY_MACHINE_SCRATCH_SIZE): Likewise.
* include/grub/i386/pc/int.h (GRUB_CPU_INT_FLAGS_DEFAULT) [!PCBIOS]:
Disable interrupts.
* include/grub/i386/pc/vga.h: Removed. All users updated.
2011-06-27 08:54:55 +02:00
Vladimir 'phcoder' Serbinenko
9d22909b85
efinet support
2011-06-26 22:42:04 +02:00
Vladimir 'phcoder' Serbinenko
80ca250565
Add backward compatibiulity with old (pxe) syntax. Several cleanups
2011-06-26 17:06:18 +02:00
Patrick
6295b32f79
* grub-core/kern/main.c (grub_load_normal_mode): Correct the comment.
2011-06-25 01:09:32 +02:00
Vladimir 'phcoder' Serbinenko
8f72becdef
merge mainline into net
2011-06-24 22:20:50 +02:00
Manoel Rebelo Abranches
90162423e9
Network infrastructure.
...
The ARP protocol was made by Paulo Pinatti <ppinatti@br.ibm.com>
* include/grub/net/arp.h: New file.
* include/grub/net/device.h: Likewise.
* include/grub/net/ethernet.h: Likewise.
* include/grub/net/ip.h: Likewise.
* include/grub/net/netbuff.h: Likewise.
* include/grub/net/tftp.h: Likewise.
* include/grub/net/udp.h: Likewise.
* include/grub/ieee1275/ofnet.h: Likewise.
* include/grub/emu/export.h: Likewise.
* include/grub/net.h: Likewise.
* grub-core/net/arp.c: Likewise.
* grub-core/net/ethernet.c: Likewise.
* grub-core/net/ip.c: Likewise.
* grub-core/net/udp.c: Likewise.
* grub-core/net/tftp.c: Likewise.
* grub-core/net/netbuff.c: Likewise.
* grub-core/net/net.c: Likewise.
* grub-core/net/drivers/emu/emunet.c: Likewise.
* grub-core/net/drivers/ieee1275/ofnet.c: Likewise.
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Add net.h, ofnet.h and
export.h.
* grub-core/Makefile.core.def (net): New module.
(tftp): Likewise.
(ofnet): Likewise.
(emunet): Likewise.
* grub-core/commands/ls.c (grub_ls_list_devices) [!GRUB_UTIL]: List
network protocols.
* grub-core/kern/device.c (grub_net_open) : New variable.
(grub_device_open): Handle network device.
(grub_device_close): Likewise.
* grub-core/kern/file.c (grub_file_net_seek) : New variable.
(grub_grubnet_fini): Likewise.
(grub_file_seek): Seek in network device.
* grub-core/kern/fs.c (grub_fs_probe): Handle network devices.
* grub-core/kern/ieee1275/init.c (grub_machine_set_prefix): Handle
network root.
(grub_machine_fini): Call grub_grubnet_fini.
* grub-core/kern/ieee1275/openfw.c (grub_ieee1275_parse_args): Handle
network.
(grub_ieee1275_get_aliasdevname): New function.
* grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_get_mbi_size):
Add unofficial Solaris network info.
(grub_multiboot_make_mbi): Likewise.
* grub-core/fs/i386/pc/pxe.c: Moved from here ...
* grub-core/net/i386/pc/pxe.c: ...here. Adapted for new design.
* include/grub/device.h (grub_fs): Removed.
* include/grub/err.h (grub_err_t): Add network-related values.
* include/grub/i386/pc/pxe.h: Removed bootp parts.
* include/grub/ieee1275/ieee1275.h (grub_ofnetcard_data): New struct.
(grub_ieee1275_get_aliasdevname): New proto.
* include/grub/net.h: Rewritten.
Also-By: Paulo Pinatti <ppinatti@br.ibm.com>
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2011-06-24 22:16:05 +02:00
Vladimir 'phcoder' Serbinenko
a057797f18
merge mine and abranches' branches. Fix several issues
2011-06-24 21:51:57 +02:00
Vladimir 'phcoder' Serbinenko
bc09e1a238
* grub-core/kern/emu/getroot.c (grub_guess_root_device): Revert to
...
old method if mountinfo would return /dev/root and /dev/root doesn't
exist.
2011-06-24 04:32:54 +02:00
Vladimir 'phcoder' Serbinenko
5ab3f48a92
AHCI support.
...
* grub-core/Makefile.core.def (ata_pthru): Removed.
(ahci): New module.
(pata): Likewise.
* grub-core/bus/usb/ohci.c (GRUB_MOD_FINI): Unregister preboot hook
on unload.
* grub-core/commands/hdparm.c (grub_hdparm_do_ata_cmd): Use ATA
readwrite.
(grub_hdparm_do_check_powermode_cmd): Likewise.
(grub_hdparm_do_smart_cmd): Likewise.
(grub_hdparm_set_val_cmd): Likewise.
(grub_cmd_hdparm): Likewise. Check thta we have an ATA device.
* grub-core/disk/ahci.c: New file.
* grub-core/disk/ata.c: Factor out the low-level part into ...
* grub-core/disk/pata.c: ... here.
* grub-core/disk/ata_pthru.c: Contents moved to ...
* grub-core/disk/pata.c: ... here.
* grub-core/disk/scsi.c (grub_scsi_names): New array.
(grub_scsi_iterate): Use grub_scsi_names.
(grub_scsi_open): Likewise.
* grub-core/kern/disk.c (grub_disk_ata_pass_through): Removed.
* include/grub/ata.h (grub_ata_commands): Add DMA commands.
(grub_ata_regs_t): New struct.
(grub_disk_ata_pass_through_parms): Likewise.
(grub_ata_device): Renamed to ...
(grub_ata): ... this.
(grub_ata_dev): New struct.
Removed all low-level inline functions.
* include/grub/scsi.h: Add PATA and AHCI subsystems.
(grub_scsi_dev): Removed 'name' and 'id'. Added 'id' parameter to
iterate hooks and open. All users updated.
* util/grub-install.in: Handle AHCI disk module.
2011-06-24 00:07:55 +02:00
Vladimir 'phcoder' Serbinenko
cad3237fb5
* grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_is_floppy): Close
...
file after stat.
Reported by: David Volgyes <dvolgyes>.
2011-06-23 22:02:05 +02:00
Vladimir 'phcoder' Serbinenko
e2d1dba0ae
* grub-core/kern/emu/getroot.c (grub_guess_root_device): Don't accept
...
/dev/root as a valid device.
2011-06-23 19:50:41 +02:00
Jim Meyering
8a5d6919e1
Avoid NULL deref in grub_device_open.
...
* grub-core/kern/device.c (grub_device_open): Don't dereference
a NULL pointer upon failed grub_env_get.
2011-06-23 18:08:53 +02:00
Vladimir 'phcoder' Serbinenko
2df2e89fee
Fixed a cache collision bug. Thanks guufy1 for bugreport and test
2011-06-23 09:39:12 +02:00
Vladimir 'phcoder' Serbinenko
a5edbcb3a1
merge mainline into 4096
2011-06-23 04:08:37 +02:00
Manoel R. Abranches
d6d205568f
Close cards before boot.
2011-06-18 20:18:25 -03:00
Colin Watson
6b4e643081
* grub-core/kern/emu/hostdisk.c (linux_find_partition): Handle
...
partitions under /dev/disk/by-id/.
2011-05-27 13:57:22 +01:00
Colin Watson
c64db050f7
* grub-core/kern/emu/hostdisk.c (linux_find_partition): Give up
...
after ten consecutive open failures. Scanning all the way up to
10000 is excessive and can cause serious performance problems in
some configurations.
Fixes Ubuntu bug #787461 .
2011-05-27 13:52:21 +01:00
Manoel R. Abranches
85fd555441
Merge Mainline.
2011-05-27 00:23:33 -03:00
Manoel R. Abranches
7dd64f1236
Use a net fs struct to handle open, reand and close in file.
2011-05-27 00:22:35 -03:00
Vladimir Serbinenko
f767c929f2
Don't stat devices unless we have to.
...
* grub-core/kern/emu/getroot.c (grub_find_device): Recognize
dir == /dev/mapper.
(grub_guess_root_device): Use already known os_dev if possible.
* grub-core/kern/emu/hostdisk.c
(convert_system_partition_to_system_disk): Scan only in /dev/mapper
if device is known to be a dm one.
Also-By: Colin Watson <cjwatson@ubuntu.com>
2011-05-21 07:03:55 +02:00
Vladimir 'phcoder' Serbinenko
bf947d36e3
Use full 64-bit division.
...
* grub-core/kern/misc.c (grub_divmod64_full): Renamed to ...
(grub_divmod64): ... this.
* include/grub/misc.h (grub_divmod64): Removed. All users switch to full
version.
2011-05-18 15:35:19 +02:00
Vladimir 'phcoder' Serbinenko
548937c6d6
merge mainline into ahci
2011-05-18 12:36:26 +02:00
Vladimir Serbinenko
a2491e235c
Improve devmapper support
...
* grub-core/kern/emu/getroot.c (grub_util_is_dmraid): Removed.
(grub_util_is_lvm): New function.
(grub_util_get_dev_abstraction): Assume dmraid if not lvm rather
than lvm if not dmraid.
Handle mapped md nodes.
* grub-core/kern/emu/hostdisk.c (device_is_mapped): Rename to ...
(grub_util_device_is_mapped): ... this. Make always available. All users
updated.
(grub_util_get_dm_node_linear_info) [HAVE_DEVICE_MAPPER]: New function.
(convert_system_partition_to_system_disk): Handle lvm, mpath and
dmraid nodes.
* include/grub/emu/misc.h (grub_util_device_is_mapped): New proto.
Also-By: Colin Watson <cjwatson@ubuntu.com>
2011-05-18 09:35:47 +02:00
Vladimir 'phcoder' Serbinenko
543a8f6ef9
* grub-core/kern/ia64/dl_helper.c (grub_ia64_dl_get_tramp_got_size):
...
Fix potential usage of Elf32 instead of Elf64 when compiling on
32-bit architecture. Add endianness macros while on it.
2011-05-18 00:21:49 +02:00