コード例 #1
0
ファイル: mmc-uclass.c プロジェクト: eesuda/u-boot
int mmc_get_next_devnum(void)
{
	int ret;

	ret = blk_find_max_devnum(IF_TYPE_MMC);
	if (ret < 0)
		return ret;

	return ret;
}
コード例 #2
0
ファイル: efi_block_device.c プロジェクト: OpenNoah/u-boot
/*
 * Create a block device for a handle
 *
 * @handle	handle
 * @interface	block io protocol
 * @return	0 = success
 */
static int efi_bl_bind(efi_handle_t handle, void *interface)
{
	struct udevice *bdev, *parent = dm_root();
	int ret, devnum;
	char *name;
	struct efi_object *obj = efi_search_obj(handle);
	struct efi_block_io *io = interface;
	int disks;
	struct efi_blk_priv *priv;

	EFI_PRINT("%s: handle %p, interface %p\n", __func__, handle, io);

	if (!obj)
		return -ENOENT;

	devnum = blk_find_max_devnum(IF_TYPE_EFI);
	if (devnum == -ENODEV)
		devnum = 0;
	else if (devnum < 0)
		return devnum;

	name = calloc(1, 18); /* strlen("efiblk#2147483648") + 1 */
	if (!name)
		return -ENOMEM;
	sprintf(name, "efiblk#%d", devnum);

	/* Create driver model udevice for the EFI block io device */
	ret = blk_create_device(parent, "efi_blk", name, IF_TYPE_EFI, devnum,
				io->media->block_size,
				(lbaint_t)io->media->last_block, &bdev);
	if (ret)
		return ret;
	if (!bdev)
		return -ENOENT;
	/* Allocate priv */
	ret = device_probe(bdev);
	if (ret)
		return ret;
	EFI_PRINT("%s: block device '%s' created\n", __func__, bdev->name);

	priv = bdev->priv;
	priv->handle = handle;
	priv->io = interface;

	ret = blk_prepare_device(bdev);

	/* Create handles for the partions of the block device */
	disks = efi_bl_bind_partitions(handle, bdev);
	EFI_PRINT("Found %d partitions\n", disks);

	return 0;
}
コード例 #3
0
ファイル: mmc-uclass.c プロジェクト: OpenPhoenux/gta04-uboot
int mmc_get_next_devnum(void)
{
	return blk_find_max_devnum(IF_TYPE_MMC);
}
コード例 #4
0
ファイル: mmc-uclass.c プロジェクト: OpenPhoenux/gta04-uboot
int get_mmc_num(void)
{
	return max((blk_find_max_devnum(IF_TYPE_MMC) + 1), 0);
}