예제 #1
0
static void
efi_zfs_probe(void)
{
	EFI_HANDLE h;
	u_int unit;
	int i;
	char dname[SPECNAMELEN + 1];
	uint64_t guid;

	unit = 0;
	h = efi_find_handle(&efipart_dev, 0);
	for (i = 0; h != NULL; h = efi_find_handle(&efipart_dev, ++i)) {
		snprintf(dname, sizeof(dname), "%s%d:", efipart_dev.dv_name, i);
		if (zfs_probe_dev(dname, &guid) == 0)
			(void)efi_handle_update_dev(h, &zfs_dev, unit++, guid);
	}
}
예제 #2
0
파일: main.c 프로젝트: hmatyschok/MeshBSD
static void
userboot_zfs_probe(void)
{
	char devname[32];
	uint64_t pool_guid;
	int unit;

	/*
	 * Open all the disks we can find and see if we can reconstruct
	 * ZFS pools from them. Record if any were found.
	 */
	for (unit = 0; unit < userboot_disk_maxunit; unit++) {
		sprintf(devname, "disk%d:", unit);
		pool_guid = 0;
		zfs_probe_dev(devname, &pool_guid);
		if (pool_guid != 0)
			userboot_zfs_found = 1;
	}
}