Andrei Borzenkov
b00e4c2bd9
efidisk: prevent errors from diskfilter scan of removable drives
...
Map EFI_NO_MEDIA to GRUB_ERR_OUT_OF_RANGE that is ignored by diskfilter. This
actually matches pretty close (we obviously attempt to read outside of media)
and avoids adding more error codes.
This affects only internally initiated scans. If read/write from removable is
explicitly requested, we still return an error and text explanation is more
clear for user than generic error.
Reported and tested by Andreas Loew <Andreas.Loew@gmx.net>
2016-02-26 21:44:37 +03:00
Andrei Borzenkov
e9d71db53a
efidisk: fix memory leak
...
Found by: Coverity scan.
CID: 96644
2016-01-12 21:52:50 +03:00
Andrei Borzenkov
7b386b7031
efidisk: move device path helpers in core for efinet
2015-05-07 20:37:16 +03:00
Vladimir Serbinenko
7d027b4d3e
efidisk: Return the determined root disk even if partition is unknown.
2015-01-24 19:53:13 +01:00
Vladimir Serbinenko
dc3286ade4
* grub-core/disk/efi/efidisk.c (name_devices): Skip Apple ghosts.
2013-12-24 20:32:14 +01:00
Vladimir Serbinenko
6dc3337774
Fix definition of grub_efi_hard_drive_device_path. Take care that
...
existing code would work even if by some reason bogus definition is
used by EFI implementations.
2013-12-14 22:04:02 +01:00
Vladimir Serbinenko
219401b8b9
* include/grub/efi/api.h (grub_efi_device_path): Define length as
...
unaligned u16 rather than u8[2].
2013-12-11 15:54:01 +01:00
Vladimir Serbinenko
203f53fbbe
* grub-core/disk/efi/efidisk.c (grub_efidisk_readwrite): Remove unused
...
variable.
2013-11-02 18:50:39 +01:00
Vladimir Serbinenko
cb72aa1809
Rewrite blocklist functions in order to get progress when
...
reading large extents and decrease amount of blocklist hook calls.
2013-11-01 23:28:03 +01:00
Vladimir 'phcoder' Serbinenko
0f7c00c1c6
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name): Handle
...
CD-ROM in case when it's declared as having subpartitions.
2013-10-19 02:23:08 +02:00
Andrey Borzenkov
44016e527a
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name):
...
Handle CD-ROMs.
2013-10-14 17:06:39 +02:00
Colin Watson
607319c9ab
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name_iter):
...
Remove no-longer-true __attribute__ ((unused)) on disk parameter.
2013-09-18 15:43:58 +01:00
Vladimir 'phcoder' Serbinenko
e2f27a8c53
Enforce disabling of firmware disk drivers when native drivers kick in.
2013-04-29 12:16:46 +02:00
Vladimir 'phcoder' Serbinenko
b193e10034
* grub-core/disk/efi/efidisk.c: Detect floppies by ACPI ID.
...
It improves performance in qemu.
2013-04-17 19:05:57 +02:00
Andrey Borzenkov
284df0e263
* grub-core/disk/efi/efidisk.c: Really limit transfer chunk size.
2013-04-16 22:10:59 +02:00
Peter Jones
a7e03923fa
* grub-core/disk/efi/efidisk.c: Limit disk read or write chunk to 0x500
...
sectors.
Based on patch by Peter Jones.
2013-04-15 09:12:14 +02:00
Vladimir 'phcoder' Serbinenko
1865baa72c
Replace 8 with GRUB_CHAR_BIT in several places when appropriate.
2013-04-05 10:59:26 +02:00
Peter Jones
efe0cddae8
* grub-core/disk/efi/efidisk.c: Handle partitions on non-512B disks.
...
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2013-04-04 10:35:50 +02:00
Vladimir 'phcoder' Serbinenko
f42e3a2f67
* grub-core/disk/efi/efidisk.c: Transform iterate_child_devices into
...
a FOR_CHILDREN macro.
2013-03-01 10:37:11 +01:00
Andrey Borzenkov
21aecde5f6
* grub-core/disk/efi/efidisk.c(grub_efidisk_get_device_name): Fix
...
memory leak if device name is not found.
2013-02-26 22:45:00 +01:00
Colin Watson
25239370fd
Remove nested functions from device iterators.
...
* include/grub/arc/arc.h (grub_arc_iterate_devs_hook_t): New type.
(grub_arc_iterate_devs): Add hook_data argument.
* include/grub/ata.h (grub_ata_dev_iterate_hook_t): New type.
(struct grub_ata_dev.iterate): Add hook_data argument.
* include/grub/device.h (grub_device_iterate_hook_t): New type.
(grub_device_iterate): Add hook_data argument.
* include/grub/disk.h (grub_disk_dev_iterate_hook_t): New type.
(struct grub_disk_dev.iterate): Add hook_data argument.
(grub_disk_dev_iterate): Likewise.
* include/grub/gpt_partition.h (grub_gpt_partition_map_iterate):
Likewise.
* include/grub/msdos_partition.h (grub_partition_msdos_iterate):
Likewise.
* include/grub/partition.h (grub_partition_iterate_hook_t): New
type.
(struct grub_partition_map.iterate): Add hook_data argument.
(grub_partition_iterate): Likewise.
* include/grub/scsi.h (grub_scsi_dev_iterate_hook_t): New type.
(struct grub_scsi_dev.iterate): Add hook_data argument.
Update all callers.
2013-01-20 15:52:15 +00:00
Vladimir 'phcoder' Serbinenko
a176740446
* grub-core/disk/efi/efidisk.c (find_parent_device): Return the parent
...
even if it's used.
(name_devices): Replace #if 0 with #ifdef DEBUG_NAMES.
Skip if parent is unused.
2012-06-09 10:43:24 +02:00
Vladimir 'phcoder' Serbinenko
3d2de9a7ba
* grub-core/disk/efi/efidisk.c (name_devices): Don't make disks
...
out of partitions containing other partitions.
2012-06-07 21:55:55 +02:00
Vladimir 'phcoder' Serbinenko
d61386e21d
Improve string. Gettextize.
2012-02-12 15:25:25 +01:00
Vladimir 'phcoder' Serbinenko
8a7f9b9c50
Simplify root device discover and don't fail when trying to open
...
incorrect devices.
* grub-core/disk/efi/efidisk.c (get_diskname_from_path_real): New
function.
(get_diskname_from_path): Likewise.
(grub_efidisk_get_device_name): Use get_diskname_from_path instead
of iterating.
2012-01-28 13:26:20 +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
c4edd54832
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name): Fix
...
incorrect memory usage.
2011-07-10 15:33:57 +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
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
bd671cc4fe
Use Block IO on EFI
2011-04-15 18:15:06 +02:00
Vladimir 'phcoder' Serbinenko
6ac14e6cef
Fix EFI compilation
2011-04-05 09:34:58 +02:00
Vladimir 'phcoder' Serbinenko
09573499ff
Initial variable sector size support
2011-03-29 02:02:55 +02:00
Colin Watson
d7dbe92395
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name): Make
...
tpart non-const, so that we can assign to it. (Since this is a
typedef, the constness refers to the pointer rather than what it
points to.)
2010-09-21 13:41:23 +01:00
Vladimir 'phcoder' Serbinenko
74342e312f
Support some annoying BSD and Minix subpartitions.
...
* Makefile.util.def (libgrub.a): Add grub-core/partmap/bsdlabel.c.
* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name):
Properly handle concatenation.
* grub-core/kern/device.c (grub_device_iterate): Likewise.
* grub-core/normal/completion.c (iterate_partition): Likewise.
* grub-core/kern/disk.c (grub_disk_open): Make disk->name not
contain partition. All users updated.
* grub-core/partmap/bsdlabel.c (grub_netbsdlabel_partition_map): New
struct.
(grub_openbsdlabel_partition_map): Likewise.
(bsdlabel_partition_map_iterate): Rename to ..
(iterate_real): ... this. New arguments sector, freebsd and pmap.
(bsdlabel_partition_map_iterate): New function.
(netopenbsdlabel_partition_map_iterate): Likewise.
(netbsdlabel_partition_map_iterate): Likewise.
(openbsdlabel_partition_map_iterate): Likewise.
(GRUB_MOD_INIT): Register new partmaps.
(GRUB_MOD_FINI): Unregister new partmaps.
* grub-core/partmap/msdos.c (pc_partition_map_iterate): Rename to ...
(grub_partition_msdos_iterate): ... this. All users updated.
Don't support embedding other than in a minix partition.
* include/grub/msdos_partition.h (grub_partition_msdos_iterate): New
proto.
* include/grub/partition.h (grub_partition): New field msdostype.
* util/grub-install.in: Handle openbsd and netbsd types being in
part_bsd module.
2010-09-20 21:45:06 +02:00
Vladimir 'phcoder' Serbinenko
94564f81a8
* include/grub/disk.h (grub_disk): Remove has_partitions.
...
All users updated.
* disk/loopback.c (grub_loopback): Remove has_partitions.
All users updated.
(options): Remove partitions. All users updated.
* util/grub-fstest.c (fstest): Don't pass "-p" to loopback.
* util/i386/pc/grub-setup.c (setup): copy partition table only when
actual partition table is found.
2010-09-13 23:59:22 +02:00
Vladimir 'phcoder' Serbinenko
43de930c20
Change to disk->name being raw name. It makes less hidden issues
2010-09-08 21:22:41 +02:00
Vladimir 'phcoder' Serbinenko
3fcb410549
Fix a double device name
2010-09-08 20:39:57 +02:00
BVK Chaitanya
8c41176882
automake commit without merge history
2010-05-06 11:34:04 +05:30