Page MenuHomeFreeBSD

D30853.id91468.diff
No OneTemporary

D30853.id91468.diff

diff --git a/sys/cam/cam_xpt.h b/sys/cam/cam_xpt.h
--- a/sys/cam/cam_xpt.h
+++ b/sys/cam/cam_xpt.h
@@ -113,6 +113,7 @@
lun_id_t xpt_path_lun_id(struct cam_path *path);
struct cam_sim *xpt_path_sim(struct cam_path *path);
struct cam_periph *xpt_path_periph(struct cam_path *path);
+device_t xpt_path_sim_device(const struct cam_path *path);
void xpt_print_path(struct cam_path *path);
void xpt_print_device(struct cam_ed *device);
void xpt_print(struct cam_path *path, const char *fmt, ...);
diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c
--- a/sys/cam/cam_xpt.c
+++ b/sys/cam/cam_xpt.c
@@ -5574,7 +5574,23 @@
}
}
-struct kv
+/**
+ * @brief Return the device_t associated with the path
+ *
+ * When a SIM is created, it registers a bus with a NEWBUS device_t. This is
+ * stored in the internal cam_eb bus structure. There is no guarnatee any given
+ * path will have a @c device_t associated with it (it's legal to call @c
+ * xpt_bus_register with a @c NULL @c device_t.
+ *
+ * @param path Path to return the device_t for.
+ */
+device_t
+xpt_path_sim_device(const struct cam_path *path)
+{
+ return (path->bus->parent_dev);
+}
+
+struct kv
{
uint32_t v;
const char *name;

File Metadata

Mime Type
text/plain
Expires
Mon, May 25, 11:31 PM (9 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33519092
Default Alt Text
D30853.id91468.diff (1 KB)

Event Timeline