summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/netdevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/ipxe/netdevice.h')
-rw-r--r--src/include/ipxe/netdevice.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/include/ipxe/netdevice.h b/src/include/ipxe/netdevice.h
index a7852a810..ac7cec521 100644
--- a/src/include/ipxe/netdevice.h
+++ b/src/include/ipxe/netdevice.h
@@ -236,6 +236,9 @@ struct net_device_operations {
*
* @v netdev Network device
* @v enable Interrupts should be enabled
+ *
+ * This method may be NULL to indicate that interrupts are not
+ * supported.
*/
void ( * irq ) ( struct net_device *netdev, int enable );
};
@@ -516,6 +519,17 @@ netdev_is_open ( struct net_device *netdev ) {
}
/**
+ * Check whether or not network device supports interrupts
+ *
+ * @v netdev Network device
+ * @ret irq_supported Network device supports interrupts
+ */
+static inline __attribute__ (( always_inline )) int
+netdev_irq_supported ( struct net_device *netdev ) {
+ return ( netdev->op->irq != NULL );
+}
+
+/**
* Check whether or not network device interrupts are currently enabled
*
* @v netdev Network device