Vladimir 'phcoder' Serbinenko
e3fd394a10
* grub-core/boot/i386/pc/startup_raw.S: Move realmode routines to
...
non-RS part to avoid RS messing with GDT.
* include/grub/offsets.h (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART):
Increase to suit in realmode routines.
2011-12-15 19:20:41 +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
ee9c2e7a97
* grub-core/lib/reed_solomon.c (init_powx): Set gf_powx_inv[0] just to
...
be deterministic.
(syndroms): Compute 0 syndrom.
(rs_recover): Use 0 syndrom.
2011-12-15 02:20:21 +01:00
Vladimir 'phcoder' Serbinenko
7a7f7cc9c3
* include/grub/kernel.h (FOR_MODULES): Make it a bit faster.
2011-12-14 23:59:11 +01:00
Vladimir 'phcoder' Serbinenko
a14b16d1f9
* include/grub/types.h (GRUB_PROPERLY_ALIGNED_ARRAY): Add missing
...
brackets.
2011-12-14 23:57:35 +01:00
Vladimir 'phcoder' Serbinenko
ca1b552c02
* grub-core/gfxmenu/widget-box.c (get_left_pad): Take corners into
...
account.
(get_top_pad): Likewise.
(get_right_pad): Likewise.
(get_bottom_pad): Likewise.
2011-12-14 14:20:57 +01:00
Vladimir 'phcoder' Serbinenko
9f59e9fc36
* grub-core/gfxmenu/gui_list.c (draw_menu): Don't use set in if.
2011-12-14 12:05:26 +01:00
Vladimir 'phcoder' Serbinenko
e739d69885
* include/grub/efi/api.h (grub_efi_memory_descriptor): Add packed
...
attribute as the structure isn't guaranteed to be properly aligned.
(grub_efi_pci_device_path): Likewise.
(grub_efi_pccard_device_path): Likewise.
(grub_efi_memory_mapped_device_path): Likewise. Additionaly explicitly
specify the size of `memory_type'.
(grub_efi_vendor_device_path): Likewise.
(grub_efi_controller_device_path): Likewise.
(grub_efi_acpi_device_path): Likewise.
(grub_efi_expanded_acpi_device_path): Likewise.
(grub_efi_atapi_device_path): Likewise.
(grub_efi_scsi_device_path): Likewise.
(grub_efi_fibre_channel_device_path): Likewise.
(grub_efi_1394_device_path): Likewise.
(grub_efi_usb_device_path): Likewise.
(grub_efi_usb_class_device_path): Likewise.
(grub_efi_i2o_device_path): Likewise.
(grub_efi_mac_address_device_path): Likewise.
(grub_efi_ipv4_device_path): Likewise.
(grub_efi_ipv6_device_path): Likewise.
(grub_efi_infiniband_device_path): Likewise.
(grub_efi_uart_device_path): Likewise.
(grub_efi_vendor_messaging_device_path): Likewise.
(grub_efi_hard_drive_device_path): Likewise.
(grub_efi_cdrom_device_path): Likewise.
(grub_efi_vendor_media_device_path): Likewise.
(grub_efi_file_path_device_path): Likewise.
(grub_efi_protocol_device_path): Likewise.
(grub_efi_piwg_device_path): Likewise.
(grub_efi_bios_device_path): Likewise.
2011-12-14 11:13:14 +01:00
Vladimir 'phcoder' Serbinenko
cb8f88ea82
* include/grub/charset.h (grub_utf16_to_utf8): Make src a const pointer.
...
(grub_ucs4_to_utf8_alloc): Likewise.
(grub_ucs4_to_utf8): Likewise.
* grub-core/normal/charset.c (grub_ucs4_to_utf8): Likewise.
(grub_ucs4_to_utf8_alloc): Likewise.
2011-12-14 10:01:24 +01:00
Vladimir 'phcoder' Serbinenko
309e535231
AFFS never uses unicode.
...
* include/grub/charset.h (GRUB_MAX_UTF8_PER_LATIN1): New const.
(grub_latin1_to_utf8): New inline function.
* grub-core/fs/affs.c (grub_affs_iterate_dir): Convert latin1 to UTF8.
2011-12-14 09:52:00 +01:00
Vladimir 'phcoder' Serbinenko
e7987e1b3b
* grub-core/fs/romfs.c (grub_romfs_mount): Fix pointer comparison
...
overflow.
2011-12-13 23:15:56 +01:00
Vladimir 'phcoder' Serbinenko
efc2616ee1
* grub-core/fs/squash4.c (grub_squash_inode): Fix field sizes.
...
(grub_squash_dirent_header): Likewise.
(read_chunk): Don't double swap.
(grub_squash_iterate_dir): Fix swap sizes.
2011-12-13 23:14:25 +01:00
Vladimir 'phcoder' Serbinenko
3c349f5a37
* grub-core/fs/jfs.c (grub_jfs_getent): Handle UTF16 endianness.
2011-12-13 23:11:48 +01:00
Vladimir 'phcoder' Serbinenko
b453412d2f
* grub-core/fs/hfs.c (grub_hfs_find_node): Handle unaligned keys.
...
(grub_hfs_iterate_dir): Likewise.
2011-12-13 23:10:38 +01:00
Vladimir 'phcoder' Serbinenko
12e9d4d152
Fix video on platforms where unaligned access is forbidden.
...
Make several optimisations while on it.
* grub-core/video/fb/fbblit.c (grub_video_fbblit_replace_directN):
Optimise and use GRUB_VIDEO_FB_ADVANCE_POINTER.
(grub_video_fbblit_replace_32bit_1bit): Likewise.
(grub_video_fbblit_replace_24bit_1bit) [!GRUB_HAVE_UNALIGNED_ACCESS]:
Disable.
(grub_video_fbblit_replace_16bit_1bit):
Optimise and use GRUB_VIDEO_FB_ADVANCE_POINTER.
(grub_video_fbblit_replace_8bit_1bit): Likewise.
(grub_video_fbblit_replace_BGRX8888_RGBX8888): Likewise.
(grub_video_fbblit_replace_BGRX8888_RGB888): Likewise.
(grub_video_fbblit_replace_BGR888_RGBX8888): Likewise.
(grub_video_fbblit_replace_BGR888_RGBX8888): Likewise.
(grub_video_fbblit_replace_BGR888_RGB888): Likewise.
(grub_video_fbblit_replace_RGBX8888_RGB88): Likewise.
(grub_video_fbblit_replace_RGB888_RGBX888): Likewise.
(grub_video_fbblit_replace_RGB888_RGBX8888): Likewise.
(grub_video_fbblit_replace_index_RGBX8888): Likewise.
(grub_video_fbblit_replace_index_RGB888): Likewise.
(grub_video_fbblit_blend_BGRA8888_RGBA8888): Likewise.
(grub_video_fbblit_blend_BGR888_RGBA8888): Likewise.
(grub_video_fbblit_blend_RGBA8888_RGBA8888): Likewise.
(grub_video_fbblit_blend_RGB888_RGBA8888): Likewise.
(grub_video_fbblit_blend_index_RGBA8888): Likewise.
(grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
(grub_video_fbblit_blend_XXX888_1bit) [!GRUB_HAVE_UNALIGNED_ACCESS]:
Disable.
(grub_video_fbblit_blend_XXX565_1bit):
Optimise and use GRUB_VIDEO_FB_ADVANCE_POINTER.
* grub-core/video/fb/fbfill.c (grub_video_fbfill_direct32): Likewise.
* grub-core/video/fb/fbutil.c (grub_video_fb_get_video_ptr): Return
void *.
* grub-core/video/fb/video_fb.c (common_blitter)
[!GRUB_HAVE_UNALIGNED_ACCESS]: Skip disabled blitters.
(grub_video_fb_create_render_target_from_pointer)
[!GRUB_HAVE_UNALIGNED_ACCESS]: Check alignment.
* include/grub/fbutil.h (grub_video_fb_get_video_ptr): Return void *.
* include/grub/i386/types.h (GRUB_HAVE_UNALIGNED_ACCESS): New
definition.
* include/grub/x86_64/types.h (GRUB_HAVE_UNALIGNED_ACCESS): Likewise.
2011-12-13 20:07:33 +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
e59b7857f8
* grub-core/commands/videotest.c (grub_cmd_videotest): Check that
...
allocation succeeded.
2011-12-13 19:53:57 +01:00
Vladimir 'phcoder' Serbinenko
9b4baaa4ee
* grub-core/fs/iso9660.c (grub_iso9660_convert_string): Make first
...
argument a u8 pointer. All users updated.
Handle unaligned buffers.
2011-12-13 16:35:12 +01:00
Vladimir 'phcoder' Serbinenko
dc71319397
* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Force inlining of
...
add_part to workaround compiler bug.
2011-12-13 16:33:27 +01:00
Vladimir 'phcoder' Serbinenko
30dd48c2b0
* include/grub/kernel.h (FOR_MODULES): Preserve alignment invariants.
2011-12-13 16:29:15 +01:00
Vladimir 'phcoder' Serbinenko
0c6087a8c9
* grub-core/loader/multiboot_mbi2.c (grub_multiboot_add_elfsyms):
...
Reserve alignment invariants.
(grub_multiboot_load): Likewise.
(retrieve_video_parameters): Likewise.
(grub_multiboot_make_mbi): Likewise.
2011-12-13 16:22:44 +01:00
Vladimir 'phcoder' Serbinenko
c2e777777b
* grub-core/loader/i386/xnu.c (grub_xnu_devprop_remove_property): Fix
...
incorrect pointer.
2011-12-13 16:20:25 +01:00
Vladimir 'phcoder' Serbinenko
b70b6d1107
* grub-core/disk/pata.c (grub_pata_pio_read): Handle unaligned buffer.
...
(grub_pata_pio_write): Likewise.
2011-12-13 15:55:36 +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
2019d09ef0
* include/grub/i386/qemu/memory.h (grub_machine_mmap_init): Remove
...
redundant declaration.
2011-12-13 15:04:07 +01:00
Vladimir 'phcoder' Serbinenko
d1c501ee94
* include/grub/net.h (grub_net_network_level_interfaces): Remove
...
redundant declaration.
(FOR_NET_NETWORK_LEVEL_INTERFACES): Move to appropriate place.
2011-12-13 15:03:06 +01:00
Vladimir 'phcoder' Serbinenko
6166442083
* grub-core/commands/hdparm.c (le16_to_char): Make src and dest uint16 *
...
to ensure alignment.
(grub_hdparm_print_identify): Make argument uint16 * to ensure
alignment. Ensure tmp alignment.
(grub_cmd_hdparm): Ensure buf alignment.
* grub-core/disk/ata.c (grub_ata_strncpy): Make src and dest uint16 *
to ensure alignment.
(grub_ata_dumpinfo): Ensure text alignment.
(grub_atapi_identify): Preserve alignment invariant.
(grub_ata_identify): Likewise. Use grub_get_unaligned32 when necessary.
2011-12-13 14:57:46 +01:00
Vladimir 'phcoder' Serbinenko
0d51ee20ee
* include/grub/emu/misc.h (xasprintf): Add missing format attribute.
...
* include/grub/mips/kernel.h (grub_halt): Remove redundant declaration.
* include/grub/mips/qemu_mips/kernel.h (grub_halt): Likewise.
* include/grub/misc.h (grub_reboot)
[GRUB_MACHINE_EMU || GRUB_MACHINE_QEMU_MIPS]: Export.
(grub_halt) [__mips__]: Likewise.
2011-12-13 14:51:41 +01:00
Vladimir 'phcoder' Serbinenko
753ef8c113
* include/grub/efi/memory.h (grub_machine_mmap_iterate):
...
Remove redundant declaration.
(grub_mmap_get_post64): Likewise.
(grub_mmap_get_upper): Likewise.
(grub_mmap_get_lower): Likewise.
2011-12-13 14:47:00 +01:00
Vladimir 'phcoder' Serbinenko
85c85365bb
* grub-core/partmap/dvh.c (grub_dvh_is_valid): Make argument
...
uint32_t * to ensure alignment.
(dvh_partition_map_iterate): Make `block' a union to ensure alignment.
2011-12-13 14:44:38 +01:00
Vladimir 'phcoder' Serbinenko
93018f6400
* grub-core/partmap/sunpc.c (grub_sun_is_valid): Make argument
...
uint16_t * to ensure alignment.
(sun_pc_partition_map_iterate): Make `block' a union to ensure
alignment.
2011-12-13 14:42:41 +01:00
Vladimir 'phcoder' Serbinenko
a23f2cc4d6
* grub-core/partmap/sun.c (grub_sun_is_valid): make argument uint16_t *
...
to ensure alignment.
(sun_partition_map_iterate): Make `block' a union to ensure alignment.
2011-12-13 14:40:41 +01:00
Vladimir 'phcoder' Serbinenko
58acccd645
* grub-core/fs/ntfs.c (u16at): Make into inline function.
...
Handle unaligned pointers.
(u32at): Likewise.
(u64at): Likewise.
(fixup): Use byte access instead of v16at.
(find_attr): Fix imporper usage of v32at.
(read_data): Likewise.
(list_file): Handle byte-swapping and unaligned strings.
(grub_ntfs_label): Likewise.
2011-12-13 14:17:24 +01:00
Vladimir 'phcoder' Serbinenko
9b05cad768
* grub-core/fs/udf.c (grub_udf_partmap): Add packed attribute
...
as it's not necessarily aligned.
2011-12-13 13:58:33 +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
fcd232b74e
* grub-core/fs/zfs/zfs.c (DVA_OFFSET_TO_PHYS_SECTOR): Make into inline
...
function.
(ZAP_HASH_IDX): Likewise.
(ZAP_LEAF_HASH_SHIFT): Likewise.
(ZAP_LEAF_HASH_NUMENTRIES): Likewise.
(LEAF_HASH): Likewise.
(ZAP_LEAF_NUMCHUNKS): Likewise.
(ZAP_LEAF_CHUNK): Likewise. Changed pointer arithmetic to preserve
alignment invariants. Return pointer. All users updated.
(ZAP_LEAF_ENTRY): Make into inline function.
(NBBY): Removed.
(xor): LIkewise.
(xor_out): Use grub_crypto_xor.
(dnode_get_path): Use grub_get_unaligned.
(nvlist_find_value): Likewise.
(grub_zfs_nvlist_lookup_uint64): Likewise.
(grub_zfs_nvlist_lookup_string): Likewise.
(get_nvlist_size): Likewise.
(grub_zfs_open): Likewise.
(fill_fs_info): Likewise.
(grub_zfs_dir): Likewise.
* include/grub/zfs/zap_leaf.h (zap_leaf_phys): Adapt to preserve
alignment invariants.
* include/grub/zfs/zio.h (zio_eck_t): Mark as packed as it's not
necessarily aligned.
2011-12-13 11:33:02 +01:00
Vladimir 'phcoder' Serbinenko
f138623a60
* grub-core/net/netbuff.c (grub_netbuff_alloc): Ensure proper alignment.
2011-12-13 02:15:09 +01:00
Vladimir 'phcoder' Serbinenko
564840dc3d
* grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Change pointer
...
arithmetic to conserve alignment invariants.
2011-12-13 02:13:44 +01:00
Vladimir 'phcoder' Serbinenko
9b40df20c4
* include/grub/efiemu/efiemu.h (grub_efiemu_get_memory_map): Remove
...
redundant declaration.
(grub_efiemu_mm_obtain_request): Likewise.
(grub_efiemu_prepare): Likewise.
2011-12-13 02:12:23 +01:00
Vladimir 'phcoder' Serbinenko
d1c930f99b
* include/grub/list.h: Explicitly cast return of grub_bad_type_cast
...
to match types.
2011-12-13 02:08:14 +01:00
Vladimir 'phcoder' Serbinenko
4c5f3056c2
* grub-core/fs/hfsplus.c (grub_hfsplus_btree_recoffset): Handle the
...
case of aunaligned recptr.
(grub_hfsplus_read_block): Declare extoverflow as key to ensure
alignment.
(grub_hfsplus_btree_search): Handle unaligned index.
2011-12-13 02:05:58 +01:00
Vladimir 'phcoder' Serbinenko
728cba91d2
* grub-core/fs/xfs.c (grub_xfs_iterate_dir): Use grub_get_unaligned16
...
to get freetag and skip.
2011-12-13 02:02:38 +01:00
Vladimir 'phcoder' Serbinenko
eb561f3123
* grub-core/fs/nilfs2.c (grub_nilfs2_btree_node): Add zero-size keys
...
array.
(grub_nilfs2_btree_node_dkeys): Ensure return pointer alignment.
(grub_nilfs2_btree_lookup): Ensure buffer alignment.
2011-12-13 02:00:44 +01:00
Vladimir 'phcoder' Serbinenko
812e249302
* grub-core/fs/ext2.c (grub_ext4_find_leaf): MAke buf as pointer to
...
properly aligned memory.
(grub_ext2_read_block): Ensure buffer alignment.
2011-12-13 01:58:35 +01:00
Vladimir 'phcoder' Serbinenko
20993fbb9f
* grub-core/fs/romfs.c (grub_romfs_iterate_dir): Properly align
...
name for checksum and fix allocation algorithm.
2011-12-13 01:57:07 +01:00
Vladimir 'phcoder' Serbinenko
1f313b942b
* include/grub/types.h (grub_properly_aligned_t): New type.
...
(GRUB_PROPERLY_ALIGNED_ARRAY): New macro.
(grub_get_unaligned16): Add explicit casts.
(grub_get_unaligned32): Likewise.
(grub_get_unaligned64): Likewise.
(grub_set_unaligned16): New function.
(grub_set_unaligned32): Likewise.
2011-12-13 01:54:59 +01:00
Vladimir 'phcoder' Serbinenko
47ae27ec75
* grub-core/normal/datetime.c (grub_weekday_names): Make const.
2011-12-13 01:45:38 +01:00
Vladimir 'phcoder' Serbinenko
78c2cd1c62
* grub-core/fs/udf.c (read_string): Macroify GRUB_MAX_UTF8_PER_UTF16.
...
* grub-core/fs/jfs.c (grub_jfs_diropen): Likewise.
* grub-core/fs/fat.c (grub_fat_iterate_dir): Likewise.
2011-12-13 01:41:16 +01:00
Vladimir 'phcoder' Serbinenko
53072f9b96
* grub-core/term/at_keyboard.c (set_scancodes): Fix preprocessor
...
conditionals.
2011-12-13 01:36:09 +01:00