summaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorMichael Brown2010-09-22 01:43:55 +0200
committerMichael Brown2010-09-22 18:11:52 +0200
commitbddc3835ac8d15361750b357ce3543be7f8595ed (patch)
tree92b05e5809485f0019b77dc6e40f44d428b921a2 /src/net
parent[infiniband] Add support for identifying the underlying hardware device (diff)
downloadipxe-bddc3835ac8d15361750b357ce3543be7f8595ed.tar.gz
ipxe-bddc3835ac8d15361750b357ce3543be7f8595ed.tar.xz
ipxe-bddc3835ac8d15361750b357ce3543be7f8595ed.zip
[fcoe] Add support for identifying the underlying hardware device
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net')
-rw-r--r--src/net/fcoe.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/net/fcoe.c b/src/net/fcoe.c
index 64dd26399..87726044e 100644
--- a/src/net/fcoe.c
+++ b/src/net/fcoe.c
@@ -30,6 +30,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/netdevice.h>
#include <ipxe/features.h>
#include <ipxe/errortab.h>
+#include <ipxe/device.h>
#include <ipxe/crc32.h>
#include <ipxe/fc.h>
#include <ipxe/fcoe.h>
@@ -268,12 +269,24 @@ static void fcoe_close ( struct fcoe_port *fcoe, int rc ) {
ref_put ( &fcoe->refcnt );
}
+/**
+ * Identify device underlying FCoE port
+ *
+ * @v fcoe FCoE port
+ * @ret device Underlying device
+ */
+static struct device * fcoe_identify_device ( struct fcoe_port *fcoe ) {
+ return fcoe->netdev->dev;
+}
+
/** FCoE transport interface operations */
static struct interface_operation fcoe_transport_op[] = {
INTF_OP ( xfer_deliver, struct fcoe_port *, fcoe_deliver ),
INTF_OP ( xfer_alloc_iob, struct fcoe_port *, fcoe_alloc_iob ),
INTF_OP ( xfer_window, struct fcoe_port *, fcoe_window ),
INTF_OP ( intf_close, struct fcoe_port *, fcoe_close ),
+ INTF_OP ( identify_device, struct fcoe_port *,
+ fcoe_identify_device ),
};
/** FCoE transport interface descriptor */