summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Leahy <leroy.p.leahy@intel.com>2016-02-13 06:10:04 -0800
committerMartin Roth <martinroth@google.com>2016-02-18 19:58:14 +0100
commita95baf9f7f625d29a50c3e25f92f1118d6c626ab (patch)
treeb0b3d5232f06290ff2618da7c4ee7fd5f0424884
parent800e964eeff3dd41c126a11fa043376aeac774bb (diff)
downloadcoreboot-a95baf9f7f625d29a50c3e25f92f1118d6c626ab.tar.xz
device: Add device path display support
Add an optional routine to translate the device path types into a string for display. TEST=Build and run on Galileo Change-Id: Iea5d0a2430d9a8546105324e2beda0955210dca9 Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com> Reviewed-on: https://review.coreboot.org/13715 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r--src/device/device_util.c12
-rw-r--r--src/include/device/path.h20
2 files changed, 32 insertions, 0 deletions
diff --git a/src/device/device_util.c b/src/device/device_util.c
index ac18538a1b..837dfb593f 100644
--- a/src/device/device_util.c
+++ b/src/device/device_util.c
@@ -921,3 +921,15 @@ int dev_count_cpu(void)
return count;
}
+
+/* Get device path name */
+const char *dev_path_name(enum device_path_type type)
+{
+ static const char *const type_names[] = DEVICE_PATH_NAMES;
+ const char *type_name = "Unknown";
+
+ /* Translate the type value into a string */
+ if (type < ARRAY_SIZE(type_names))
+ type_name = type_names[type];
+ return type_name;
+}
diff --git a/src/include/device/path.h b/src/include/device/path.h
index 00fb727009..ba7661d6c4 100644
--- a/src/include/device/path.h
+++ b/src/include/device/path.h
@@ -13,8 +13,27 @@ enum device_path_type {
DEVICE_PATH_CPU,
DEVICE_PATH_CPU_BUS,
DEVICE_PATH_IOAPIC,
+
+ /*
+ * When adding path types to this table, please also update the
+ * DEVICE_PATH_NAMES macro below.
+ */
};
+#define DEVICE_PATH_NAMES { \
+ "DEVICE_PATH_NONE", \
+ "DEVICE_PATH_ROOT", \
+ "DEVICE_PATH_PCI", \
+ "DEVICE_PATH_PNP", \
+ "DEVICE_PATH_I2C", \
+ "DEVICE_PATH_APIC", \
+ "DEVICE_PATH_DOMAIN", \
+ "DEVICE_PATH_CPU_CLUSTER", \
+ "DEVICE_PATH_CPU", \
+ "DEVICE_PATH_CPU_BUS", \
+ "DEVICE_PATH_IOAPIC" \
+}
+
struct domain_path
{
unsigned domain;
@@ -86,5 +105,6 @@ struct device_path {
#define BUS_PATH_MAX (DEVICE_PATH_MAX+10)
extern int path_eq(struct device_path *path1, struct device_path *path2);
+extern const char *dev_path_name(enum device_path_type type);
#endif /* DEVICE_PATH_H */