Changeset View
Changeset View
Standalone View
Standalone View
head/stand/efi/libefi/efizfs.c
Show All 39 Lines | |||||
#include "efizfs.h" | #include "efizfs.h" | ||||
#ifdef EFI_ZFS_BOOT | #ifdef EFI_ZFS_BOOT | ||||
static zfsinfo_list_t zfsinfo; | static zfsinfo_list_t zfsinfo; | ||||
uint64_t pool_guid; | uint64_t pool_guid; | ||||
static EFI_HANDLE preferred; | |||||
void | |||||
efizfs_set_preferred(EFI_HANDLE h) | |||||
{ | |||||
preferred = h; | |||||
} | |||||
zfsinfo_list_t * | zfsinfo_list_t * | ||||
efizfs_get_zfsinfo_list(void) | efizfs_get_zfsinfo_list(void) | ||||
{ | { | ||||
return (&zfsinfo); | return (&zfsinfo); | ||||
} | } | ||||
EFI_HANDLE | EFI_HANDLE | ||||
efizfs_get_handle_by_guid(uint64_t guid) | efizfs_get_handle_by_guid(uint64_t guid) | ||||
▲ Show 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | efi_zfs_probe(void) | ||||
* pool GUID for currdev setup. | * pool GUID for currdev setup. | ||||
*/ | */ | ||||
STAILQ_FOREACH(hd, hdi, pd_link) { | STAILQ_FOREACH(hd, hdi, pd_link) { | ||||
STAILQ_FOREACH(pd, &hd->pd_part, pd_link) { | STAILQ_FOREACH(pd, &hd->pd_part, pd_link) { | ||||
snprintf(devname, sizeof(devname), "%s%dp%d:", | snprintf(devname, sizeof(devname), "%s%dp%d:", | ||||
efipart_hddev.dv_name, hd->pd_unit, pd->pd_unit); | efipart_hddev.dv_name, hd->pd_unit, pd->pd_unit); | ||||
if (zfs_probe_dev(devname, &guid) == 0) { | if (zfs_probe_dev(devname, &guid) == 0) { | ||||
insert_zfs(pd->pd_handle, guid); | insert_zfs(pd->pd_handle, guid); | ||||
if (pd->pd_handle == preferred) | if (pd->pd_handle == boot_img->DeviceHandle) | ||||
pool_guid = guid; | pool_guid = guid; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
#endif | #endif |