efibootmgr/0003-Add-support-for-displaying-NVME-device-paths.patch
Peter Jones 1d4e7048c9 Rebase to current upstream master (in preperation for 0.8.0)
Signed-off-by: Peter Jones <pjones@redhat.com>
2014-08-01 09:50:54 -04:00

61 lines
1.9 KiB
Diff

From a160ad75532ee551c4ac21372e2e9a11394f14d4 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 14 Apr 2014 16:49:12 -0400
Subject: [PATCH 03/22] Add support for displaying NVME device paths.
This doesn't actually let you /use/ them yet, but it does show them if
they're there.
Signed-off-by: Peter Jones <pjones@redhat.com>
---
src/include/efi.h | 8 ++++++++
src/lib/unparse_path.c | 6 ++++++
2 files changed, 14 insertions(+)
diff --git a/src/include/efi.h b/src/include/efi.h
index fcc52ec..954b4a6 100644
--- a/src/include/efi.h
+++ b/src/include/efi.h
@@ -225,6 +225,14 @@ typedef struct {
uint8_t type;
uint8_t subtype;
uint16_t length;
+ uint32_t namespace_id;
+ uint64_t ieee_extended_unique_identifier;
+} __attribute__((packed)) NVME_DEVICE_PATH;
+
+typedef struct {
+ uint8_t type;
+ uint8_t subtype;
+ uint16_t length;
uint32_t reserved;
uint64_t node_guid;
uint64_t ioc_guid;
diff --git a/src/lib/unparse_path.c b/src/lib/unparse_path.c
index 27e1dbb..ffeda8e 100644
--- a/src/lib/unparse_path.c
+++ b/src/lib/unparse_path.c
@@ -196,6 +196,7 @@ unparse_messaging_path(char *buffer, size_t buffer_size, EFI_DEVICE_PATH *path)
I2O_DEVICE_PATH *i2o = (I2O_DEVICE_PATH *)path;
IPv4_DEVICE_PATH *ipv4 = (IPv4_DEVICE_PATH *)path;
/* IPv6_DEVICE_PATH *ipv6 = (IPv6_DEVICE_PATH *)path; */
+ NVME_DEVICE_PATH *nvme = (NVME_DEVICE_PATH *)path;
char a[16], b[16], c[16], d[16], e[16];
size_t needed;
@@ -304,6 +305,11 @@ unparse_messaging_path(char *buffer, size_t buffer_size, EFI_DEVICE_PATH *path)
get(a, sata->port),
get(b, sata->port_multiplier),
get(c, sata->lun));
+ case 23:
+ return snprintf(buffer, buffer_size,
+ "NVME(%x,%lx)",
+ get(a, nvme->namespace_id),
+ get(b, nvme->ieee_extended_unique_identifier));
default:
return unparse_raw(buffer, buffer_size,
(uint8_t *)path, path->length);
--
1.9.3