Colin Watson
b13f79a427
Fix stack pointer handling in 16-bit relocator.
...
* grub-core/lib/i386/relocator16.S (grub_relocator16_start): Move
grub_relocator16_sp to %esp rather than %ss, and zero-extend it.
Fixes Ubuntu bug #683904 .
2011-04-21 00:07:22 +01:00
Vladimir 'phcoder' Serbinenko
d97e7b5935
* include/grub/dl.h [ASM_FILE]: Adapt for assembly.
...
* grub-core/lib/i386/setjmp.S: Add missing GRUB_MOD_LICENSE.
* grub-core/lib/x86_64/setjmp.S: Likewise.
* grub-core/lib/mips/setjmp.S: Likewise.
* grub-core/lib/powerpc/setjmp.S: Likewise.
* grub-core/lib/sparc64/setjmp.S: Likewise.
2011-04-20 01:37:48 +02:00
Vladimir 'phcoder' Serbinenko
0624551c22
* grub-core/lib/efi/datetime.c: Add missing GRUB_MOD_LICENSE.
...
* grub-core/lib/efi/datetime.c: Likewise.
2011-04-20 01:32:21 +02:00
Vladimir 'phcoder' Serbinenko
fe6b2cbaa6
BtrFS support. Written by me (Vladimir) with important bugfixes and
...
even more important testing by Colin.
* Makefile.util.def (libgrubmods.a): Add crc.c and gzio.c
* grub-core/Makefile.core.def (btrfs): Add crc.c.
* grub-core/fs/btrfs.c: Stub replaced with real implementation.
* grub-core/io/gzio.c (grub_gzio): New fields mem_input_size,
mem_input_off and mem_input. All users updated to accept in-RAM input.
(gzio_seek): New function.
(test_zlib_header): Likewise.
(grub_gzio_read): Likewise.
(grub_zlib_decompress): Likewise.
* grub-core/kern/emu/getroot.c (grub_find_root_device_from_mountinfo):
Accept partial and non-virtual mounts.
(grub_guess_root_device): Do rescanning after device_from_mountinfo to
avoid receiving /dev/dm-X as device.
* grub-core/kern/emu/misc.c (grub_make_system_path_relative_to_its_root):
Handle bind and partial mounts.
* grub-core/lib/crc.c: New file.
* include/grub/deflate.h: Likewise.
* include/grub/emu/misc.h (grub_find_root_device_from_mountinfo): New
proto.
* include/grub/lib/crc.h: New file.
2011-04-11 23:26:41 +02:00
Vladimir 'phcoder' Serbinenko
e745cf0ca6
Implement automatic module license checking according to new GNU
...
guidelines.
* grub-core/kern/dl.c (grub_dl_check_license): New function.
(grub_dl_load_core): Use grub_dl_check_license.
* include/grub/dl.h (GRUB_MOD_SECTION): New macro.
(GRUB_MOD_LICENSE): Likewise.
(GRUB_MOD_DUAL_LICENSE): Likewise.
All modules updated.
2011-04-11 23:01:51 +02:00
Vladimir 'phcoder' Serbinenko
c7ba1ba62e
merge mainline into butter
2011-04-11 07:56:31 +02:00
Vladimir 'phcoder' Serbinenko
7c2e4909c3
* grub-core/lib/legacy_parse.c (legacy_commands): Find doesn't set
...
root on legacy.
2011-04-08 14:32:41 +02:00
Vladimir 'phcoder' Serbinenko
7755f66e64
* grub-core/lib/relocator.c (grub_relocator_alloc_chunk_align): Add few
...
useful grub_dprintf's.
2011-04-06 14:04:52 +02:00
Vladimir 'phcoder' Serbinenko
a1dc717c58
* grub-core/lib/relocator.c (allocate_regstart)
...
[!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Avoid grub_dprintf since not all
terminals are capabple of malloc-free operation.
(allocate_inreg) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Likewise.
(malloc_in_range) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Likewise.
2011-03-29 08:20:19 +02:00
Vladimir 'phcoder' Serbinenko
c7064d9425
* grub-core/lib/relocator.c (grub_relocator_alloc_chunk_addr)
...
[DEBUG_RELOCATOR]: Reuse grub_mm_check.
(grub_relocator_alloc_chunk_align) [DEBUG_RELOCATOR]: Likewise.
2011-03-24 12:45:51 +01:00
Vladimir 'phcoder' Serbinenko
ef6de21af4
* grub-core/lib/relocator.c (allocate_inreg): Avoid dprintf unless
...
DEBUG_RELOCATOR is defined since gfxterm can't cope with output when
malloc is disabled.
2011-03-24 12:39:48 +01:00
Vladimir 'phcoder' Serbinenko
fa3e01bfb5
* grub-core/lib/i386/pc/biosnum.c: Add missing include.
2011-03-23 12:23:42 +01:00
Vladimir 'phcoder' Serbinenko
7d4e39d65a
* grub-core/bus/usb/usb.c (attach_hooks): Make static.
...
* grub-core/bus/usb/usbhub.c (hubs): Likewise.
* grub-core/commands/hashsum.c (aliases): Likewise.
* grub-core/commands/setpci.c (pci_registers): Likewise.
* grub-core/disk/usbms.c (attach_hook): Likewise.
* grub-core/fs/zfs/zfs.c (decomp_table): Likewise.
(zio_checksum_table): Likewise.
* grub-core/gettext/gettext.c (grub_gettext_msg_list): Likewise.
* grub-core/gfxmenu/gfxmenu.c (cached_view): Likewise.
* grub-core/lib/legacy_parse.c (legacy_commands): Likewise.
* grub-core/lib/relocator.c (leftovers): Likewise.
(extra_blocks): Likewise.
* grub-core/loader/i386/bsd.c (relocator): Likewise.
* grub-core/loader/i386/multiboot_mbi.c (modules): Likewise.
(modules_last): Likewise.
* grub-core/loader/i386/xnu.c (table_aliases): Likewise.
(devices): Likewise.
* grub-core/loader/multiboot_mbi2.c (modules): Likewise.
(modules_last): Likewise.
* grub-core/normal/auth.c (users): Likewise.
* grub-core/normal/context.c (initial_menu): Likewise.
(current_menu): Likewise.
* grub-core/normal/crypto.c (crypto_specs): Likewise.
* grub-core/term/serial.c (grub_serial_ports): Likewise.
(grub_serial_terminfo_input_template): Likewise.
(grub_serial_terminfo_output_template): Likewise.
(grub_serial_terminfo_input): Likewise.
(grub_serial_terminfo_output): Likewise.
(registered): Likewise.
* grub-core/term/usb_keyboard.c (attach_hook): Likewise.
2011-03-23 12:05:13 +01:00
Colin Watson
6b978c4f04
merge trunk
2011-01-11 10:00:45 -06:00
Vladimir 'phcoder' Serbinenko
0fd48e357f
Satisfy some bison versions need for inttypes.h.
...
* grub-core/lib/posix_wrap/inttypes.h: New file.
* grub-core/lib/posix_wrap/sys/types.h (int8_t): New type.
(int16_t): Likewise.
(int32_t): Likewise.
(int64_t): Likewise.
Reported and tested by: Alain Greppin.
2011-01-08 00:34:23 +01:00
Colin Watson
b7d86d53c4
merge trunk
2011-01-07 17:26:15 +00:00
Szymon Janc
25953e1055
Improve loaders' kernel command line handling.
...
* grub-core/lib/cmdline.c: New file.
* include/grub/lib/cmdline.h: Likewise.
* grub-core/loader/i386/linux.c (grub_cmd_linux): Use
grub_create_loader_cmdline to create kernel command line.
* grub-core/loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
* grub-core/loader/powerpc/ieee1275/linux.c (grub_cmd_linux): Likewise.
* grub-core/loader/sparc64/ieee1275/linux.c (grub_cmd_linux): Likewise.
* grub-core/Makefile.core.def (linux16): Add lib/cmdline.c on i386_pc.
(linux): Add lib/cmdline.c on common.
2011-01-07 17:09:39 +01:00
Vladimir 'phcoder' Serbinenko
9eae2084f4
* grub-core/lib/efi/relocator.c (grub_relocator_firmware_fill_events):
...
Ignore the memory post-4G.
(grub_relocator_firmware_alloc_region): Additional debug statement.
2011-01-04 19:08:03 +01:00
Colin Watson
944404efb8
merge trunk
2011-01-04 15:41:07 +00:00
Vladimir 'phcoder' Serbinenko
a0159f370d
* grub-core/lib/reed_solomon.c (grub_reed_solomon_add_redundancy):
...
Prevent overflow.
(grub_reed_solomon_recover): Likewise.
2011-01-04 15:39:59 +01:00
Vladimir 'phcoder' Serbinenko
e5146ca18b
* grub-core/lib/reed_solomon.c (main) [TEST]: Reactivate normal test.
2011-01-04 15:37:10 +01:00
Vladimir 'phcoder' Serbinenko
956384994b
* grub-core/lib/reed_solomon.c (scratch) [! STANDALONE]: Remove leftover
...
variable.
2011-01-04 15:35:10 +01:00
Vladimir 'phcoder' Serbinenko
c76386454e
Avoid using Reed-Solomon with 0 redundancy.
...
* grub-core/kern/i386/pc/startup.S: Remove 0-data check.
* grub-core/lib/reed_solomon.c (decode_block): Do not proceed on 0 data
or 0 redundancy.
(grub_reed_solomon_add_redundancy): Do not proceed with 0 redundancy.
(grub_reed_solomon_recover): Likewise.
2010-12-27 07:09:43 +01:00
Colin Watson
20641b6baa
* grub-core/lib/reed_solomon.c (gauss_solve): Fix size of standalone
...
scratch area. Make sure to initialise chosen in standalone mode as
well as non-standalone.
Reported by: Robert Hooker and Andy Whitcroft.
Tested by: Andy Whitcroft.
2010-12-21 16:51:08 +00:00
Vladimir 'phcoder' Serbinenko
3836e89df1
Add crc32c for btrfs
2010-12-01 01:22:55 +01:00
BVK Chaitanya
dfda224dd8
variable ordering
2010-11-25 19:07:02 +05:30
BVK Chaitanya
7955bea0d8
fix changelog and doc
2010-11-25 19:05:16 +05:30
BVK Chaitanya
5b08062083
replaced with grub_strchrsub function
2010-11-25 18:56:20 +05:30
BVK Chaitanya
f866fe808b
reuse code from legacy parser
2010-11-19 19:08:44 +05:30
Vladimir 'phcoder' Serbinenko
f6bbabc373
* grub-core/lib/relocator.c (malloc_in_range): Take into account that
...
allocate_regbeg may need to create new chunk header.
2010-11-15 09:50:58 +01:00
Vladimir 'phcoder' Serbinenko
22e7dbb2bb
Fix quoting in legacy parser.
...
* grub-core/lib/legacy_parse.c (grub_legacy_escape): Correctly handle
single quotes.
(grub_legacy_parse): Likewise.
Reported by: Jordan Uggla.
Tested by: Jordan Uggla.
2010-11-15 00:33:28 +01:00
Vladimir 'phcoder' Serbinenko
de1a024fff
Properly define WORDS_BIGENDIAN in wrapped environments.
...
* grub-core/lib/libgcrypt_wrap/cipher_wrap.h (WORDS_BIGENDIAN): New
definition.
* grub-core/lib/posix_wrap/sys/types.h (WORDS_BIGENDIAN): Likewise.
Reported by: Manoel Rebelo Abranches.
Tested by: Manoel Rebelo Abranches.
2010-11-14 13:37:59 +01:00
Vladimir 'phcoder' Serbinenko
6428dec358
* grub-core/lib/arg.c (grub_arg_parse): Avoid interpreting direct
...
argument as an argument to no-argument option.
2010-11-01 12:45:51 +01:00
Vladimir 'phcoder' Serbinenko
e138c45836
* grub-core/lib/relocator.c (grub_relocator_subchunk): Remove now
...
useless field head. All users updated.
(free_subchunk): Correct handling of IN_REGION subchunk.
2010-10-22 22:49:36 +02:00
Szymon Janc
6bdda8f877
* grub-core/commands/legacycfg.c (grub_cmd_legacy_kernel):
...
Set-but-not-used variable ifdef'ed.
* grub-core/lib/legacy_parse.c (grub_legacy_parse): Likewise.
* grub-core/bus/usb/ohci.c (grub_ohci_pci_iter): Set-but-not-used
variable removed.
* grub-core/disk/lvm.c (grub_lvm_scan_device): Likewise.
* grub-core/fs/jfs.c (grub_jfs_find_file): Likewise.
* grub-core/fs/minix.c (grub_minix_dir): Likewise.
* grub-core/fs/sfs.c (grub_sfs_read_extent): Likewise.
* grub-core/fs/ufs.c (grub_ufs_dir): Likewise.
* grub-core/gfxmenu/gui_list.c (grub_gui_list_new): Likewise.
* grub-core/gfxmenu/view.c (redraw_menu_visit): Likewise.
* grub-core/gfxmenu/widget-box.c (draw): Likewise.
* grub-core/lib/relocator.c (malloc_in_range): Likewise.
* grub-core/loader/i386/bsdXX.c (grub_netbsd_load_elf_meta): Likewise.
* grub-core/loader/i386/bsd_pagetable.c (fill_bsd64_pagetable):
Likewise.
2010-10-16 22:16:52 +02:00
Vladimir 'phcoder' Serbinenko
2a4066114d
* grub-core/lib/relocator.c (malloc_in_range): Trim too verbose
...
debug messages.
(grub_relocator_prepare_relocs): Set movers_chunk.srcv.
2010-09-29 23:19:21 +02:00
Vladimir 'phcoder' Serbinenko
44a1b4327a
* grub-core/lib/arg.c (grub_arg_parse): Fix treating of all commands as
...
if they were BSD-style.
2010-09-29 22:48:38 +02:00
Vladimir 'phcoder' Serbinenko
b65830fae1
Write embedding zone using Reed-Solomon.
...
* Makefile.util.def (grub-setup): Add grub-core/lib/reed_solomon.c.
* grub-core/Makefile.am (rs_decoder.S): New target.
(kern/i386/pc/startup.S): Depend on rs_decoder.S.
* grub-core/kern/i386/pc/startup.S (reed_solomon_redundancy): New field.
(multiboot): Move to RS part.
(post_reed_solomon): New label.
(grub_boot_drive): Move to non-RS part since it's modified in memory
on boot.
Include rs_decoder.S.
* grub-core/lib/reed_solomon.c: New file.
* include/grub/offsets.h (GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY):
New definition.
(GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE): Removed.
(GRUB_KERNEL_I386_PC_RAW_SIZE): Updated.
(GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART): New definition.
* include/grub/partition.h (grub_partition_map): Change prototype of
embed to allow returning additional sectors.
* include/grub/reed_solomon.h: New file.
* util/grub-setup.c (setup): Handle Reed-Solomon.
2010-09-29 21:33:38 +02:00
Vladimir 'phcoder' Serbinenko
53c9e7798c
Remove debug printf
2010-09-25 21:42:36 +02:00
Vladimir 'phcoder' Serbinenko
3ac9e79207
Multiple bugs correction for Reed-Solomon
2010-09-25 20:40:26 +02:00
Vladimir 'phcoder' Serbinenko
419cbeb06d
hook Reed-Solomon into startup.S
2010-09-25 19:33:05 +02:00
Yves Blusseau
1d12cf2947
* grub-core/lib/LzFind.c: Add missing include.
...
* grub-core/lib/LzmaEnc.c: Likewise.
* grub-core/script/lexer.c: Likewise.
* grub-core/script/yylex.l: Likewise.
* util/grub-macho2img.c: Likewise.
* util/grub-menulst2cfg.c: Likewise.
* util/grub-mklayout.c: Likewise.
* util/grub-mkpasswd-pbkdf2.c
* util/grub-mkrelpath.c: Likewise.
* util/resolve.c: Likewise.
2010-09-24 09:19:57 +02:00
Vladimir 'phcoder' Serbinenko
6d0fa83c79
Support xz compression on yeeloong.
...
* Makefile.util.def (grub-mkimage): Add $(LIBLZMA).
* configure.ac: Check for LZMA.
* grub-core/Makefile.core.def (xz_decompress): New target.
(none_decompress): Likewise.
* grub-core/boot/decompressor/minilib.c: New file.
* grub-core/boot/decompressor/none.c: Likewise.
* grub-core/boot/decompressor/xz.c: Likewise.
* grub-core/kern/mips/cache.S: Change to noreorder nomacro.
* grub-core/kern/mips/cache_flush.S: Likewise.
* grub-core/kern/i386/pc/lzma_decode.S: Remove dead code.
* grub-core/kern/mips/startup.S: Move first stage to ...
* grub-core/boot/mips/startup_raw.S: ...here. Change to noreorder
nomacro.
* grub-core/kern/mips/startup.S: Change to noreorder nomacro.
* grub-core/lib/mips/relocator_asm.S: Change to noreorder nomacro.
* grub-core/lib/xzembed/xz_dec_bcj.c [GRUB_EMBED_DECOMPRESSOR]:
Allocate statically.
* grub-core/lib/xzembed/xz_dec_lzma2.c [GRUB_EMBED_DECOMPRESSOR]:
Allocate statically or use scratch. Don't check CRC32.
* grub-core/lib/xzembed/xz_dec_stream.c [GRUB_EMBED_DECOMPRESSOR]:
Allocate statically. Don't check CRC32.
* include/grub/decompressor.h: New file.
* include/grub/offsets.h (GRUB_KERNEL_MIPS_YEELOONG_RAW_SIZE):
Removed.
(GRUB_KERNEL_MIPS_YEELOONG_UNCOMPRESSED_SIZE): New field.
(GRUB_KERNEL_MIPS_YEELOONG_TOTAL_MODULE_SIZE): Adjusted.
(GRUB_KERNEL_MIPS_YEELOONG_PREFIX): Likewise.
(GRUB_KERNEL_MIPS_YEELOONG_PREFIX_END): Likewise.
(GRUB_KERNEL_MACHINE_UNCOMPRESSED_SIZE): New define.
* util/grub-mkimage.c (grub_compression_t): New type.
(PLATFORM_FLAGS_DECOMPRESSORS): New flag.
(image_target_desc): New field default_compression.
(image_targets): Adjust yeeloong targets.
(compress_kernel_xz) [HAVE_LIBLZMA]: New function.
(compress_kernel): New parameter comp.
(generate_image): Likewise. Handle new compression case.
(options): New option --compression
(help): Likewise.
(main): Handle new option.
2010-09-23 02:10:44 +02:00
Vladimir 'phcoder' Serbinenko
e0a8ef26e4
MAke a separate scratch for decompressor
2010-09-21 19:39:51 +02:00
Vladimir 'phcoder' Serbinenko
f8926c32b4
C part of decompressor
2010-09-21 11:22:52 +02:00
Vladimir 'phcoder' Serbinenko
c5b4cd370e
asm part for mips decompressor
2010-09-21 10:14:08 +02:00
Vladimir 'phcoder' Serbinenko
a9cc5438a5
Suport manual terminal geometry specification.
...
* grub-core/term/ieee1275/ofconsole.c (grub_ofconsole_dimensions):
Save state in grub_ofconsole_terminfo_output.
(grub_ofconsole_term): Use grub_terminfo_getwh.
(grub_ofconsole_getwh): Removed.
* grub-core/term/serial.c (grub_serial_getwh): Removed.
(grub_serial_term): Use grub_terminfo_getwh.
* grub-core/term/terminfo.c (grub_terminfo_getwh): New function.
(options): New struct.
(OPTION_*): New enum.
(grub_cmd_terminfo): Transform into extcmd and handle new parameters.
* include/grub/terminfo.h (grub_terminfo_output_state): New fields
width and height.
(grub_terminfo_getwh): New proto.
* grub-core/lib/legacy_parse.c (grub_legacy_parse): Handle --lines.
2010-09-20 16:27:33 +02:00
Vladimir 'phcoder' Serbinenko
1a8fed20ad
Handle legacy "terminal" command.
...
* grub-core/lib/legacy_parse.c (legacy_command): New flags FLAG_TITLE
and FLAG_TERMINAL.
(legacy_commands): Add terminal and title.
(grub_legacy_parse): Handle terminal. Simplify title handling.
2010-09-20 16:15:50 +02:00
Vladimir 'phcoder' Serbinenko
41e9c57d89
* grub-core/lib/arg.c (grub_arg_show_help): Correctly handle
...
parameters overflow.
2010-09-20 16:12:15 +02:00
Vladimir 'phcoder' Serbinenko
5ee21c970b
Add terminal support in legacy_parser
2010-09-20 14:48:17 +02:00