/* @buf buffer to which the device path is written @desc block device descriptor @part partition number, 0 identifies a block device  */
struct efi_device_path* efi_dp_part_node(struct blk_desc *desc, int part)
/* @buf buffer to which the device path is written @desc block device descriptor @part partition number, 0 identifies a block device  */
struct efi_device_path* efi_dp_part_node(struct blk_desc *desc, int part)
{
	efi_uintn_t dpsize;
	void *buf;
	if (desc->part_type == PART_TYPE_ISO)
		dpsize = sizeof(struct efi_device_path_cdrom_path);
	else
		dpsize = sizeof(struct efi_device_path_hard_drive_path);
	buf = dp_alloc(dpsize);
	dp_part_node(buf, desc, part);
	return buf;
}