freebsd-dev/stand/efi/include
Toomas Soome 523a713ffb loader.efi: efipart needs better support detecting nested partitions
Just as disks can have nested partitions, the same happens with cd devices,
so we need to detect device paths and make sure we will not mix the handles.

To address this:

we fetch handle array and create linked list of block devices.
we walk the list and detect parent devices and set children pd_parent.
for {fd, cd, hd}, we walk device list and pick up our devices and store to
corresponding list. We make sure we store parent device first.

For sorting we use 3 steps: We check for floppy, we check for cd and then
everything else must be hd.

In general, it seems the floppy devices have no parent.
CD can have both parents and children (multiple boot entries, partitions
from the hybrid disk image).

Tested by: cross+freebsd@distal.com on Cisco UCS systems, C200 series (C220M5, C240M4).
Also on MBP with UEFI 1.10

Reported by:	Chriss Ross
MFC after:	1w
Differential Revision:	https://reviews.freebsd.org/D22553
2019-11-30 09:11:28 +00:00
..
amd64
arm
arm64
Guid loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
i386
Protocol loader: add HTTP support using UEFI 2019-06-24 23:18:42 +00:00
efi_driver_utils.h
efi_drivers.h
efi_nii.h
efi.h Create boot_img as a global variable 2019-04-22 18:40:24 +00:00
efiapi.h loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
efichar.h
eficon.h loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
eficonsctl.h
efidebug.h
efidef.h Add define for CONST. 2019-04-19 19:44:59 +00:00
efidevp.h loader.efi: efipart needs better support detecting nested partitions 2019-11-30 09:11:28 +00:00
efierr.h
efifpswa.h
efifs.h
efigop.h
efigpt.h loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
efiip.h loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
efilib.h loader.efi: efipart needs better support detecting nested partitions 2019-11-30 09:11:28 +00:00
efinet.h
efipart.h
efipciio.h loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
efipoint.h loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
efiprot.h
efipxebc.h
efiser.h
efistdarg.h
efitcp.h loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
efiudp.h loader.efi: efi variable rework and lsefi command added 2019-01-03 20:27:50 +00:00
efiuga.h
efizfs.h Create boot_img as a global variable 2019-04-22 18:40:24 +00:00
README

/* $FreeBSD$ */
/*-

Files in this directory and subdirectories are subject to the following
copyright unless superceded or supplemented by additional specific license
terms found in the file headers of individual files.

Copyright (c) 1998-2000 Intel Corporation

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL INTEL BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE. THE EFI SPECIFICATION AND ALL
OTHER INFORMATION ON THIS WEB SITE ARE PROVIDED "AS IS" WITH NO
WARRANTIES, AND ARE SUBJECT TO CHANGE WITHOUT NOTICE.

*/