提交 148ce205 编写于 作者: H Heinrich Schuchardt

efi_loader: Uri() device path node

iPXE used Uri() device path nodes. So we should support them in the
device path to text protocol.
Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
上级 551a959a
......@@ -523,6 +523,7 @@ struct efi_device_path_acpi_path {
# define DEVICE_PATH_SUB_TYPE_MSG_USB_CLASS 0x0f
# define DEVICE_PATH_SUB_TYPE_MSG_SATA 0x12
# define DEVICE_PATH_SUB_TYPE_MSG_NVME 0x17
# define DEVICE_PATH_SUB_TYPE_MSG_URI 0x18
# define DEVICE_PATH_SUB_TYPE_MSG_SD 0x1a
# define DEVICE_PATH_SUB_TYPE_MSG_MMC 0x1d
......@@ -587,6 +588,11 @@ struct efi_device_path_nvme {
u8 eui64[8];
} __packed;
struct efi_device_path_uri {
struct efi_device_path dp;
u8 uri[];
} __packed;
#define DEVICE_PATH_TYPE_MEDIA_DEVICE 0x04
# define DEVICE_PATH_SUB_TYPE_HARD_DRIVE_PATH 0x01
# define DEVICE_PATH_SUB_TYPE_CDROM_PATH 0x02
......
......@@ -190,6 +190,19 @@ static char *dp_msging(char *s, struct efi_device_path *dp)
break;
}
case DEVICE_PATH_SUB_TYPE_MSG_URI: {
struct efi_device_path_uri *udp =
(struct efi_device_path_uri *)dp;
int n;
n = (int)udp->dp.length - sizeof(struct efi_device_path_uri);
s += sprintf(s, "Uri(");
if (n > 0 && n < MAX_NODE_LEN - 6)
s += snprintf(s, n, "%s", (char *)udp->uri);
s += sprintf(s, ")");
break;
}
case DEVICE_PATH_SUB_TYPE_MSG_SD:
case DEVICE_PATH_SUB_TYPE_MSG_MMC: {
const char *typename =
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册