summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/virtio/virtio.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/io/virtio/virtio.h')
-rw-r--r--usr/src/uts/common/io/virtio/virtio.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/usr/src/uts/common/io/virtio/virtio.h b/usr/src/uts/common/io/virtio/virtio.h
index 420f9ccfed..48e15b28f2 100644
--- a/usr/src/uts/common/io/virtio/virtio.h
+++ b/usr/src/uts/common/io/virtio/virtio.h
@@ -11,6 +11,7 @@
/*
* Copyright 2019 Joyent, Inc.
+ * Copyright 2022 OmniOS Community Edition (OmniOSce) Association.
*/
#ifndef _VIRTIO_H
@@ -81,6 +82,18 @@
* is usually either negotiated with the device, or determined structurally
* based on the shape of the buffers required for device operation.
*
+ * FRAMEWORK INITIALISATION: CONFIGURATION SPACE CHANGE HANDLER
+ *
+ * During the initialisation phase, the client driver may register a handler
+ * function for receiving device configuration space change events. Once
+ * initialisation has been completed, this cannot be changed without destroying
+ * the framework object and beginning again from scratch.
+ *
+ * When a configuration space change interrupt is received, the provided
+ * handler will be called with two arguments: first, the provided user data
+ * argument; and second, a pointer to the "virtio_t" object for this instance.
+ * The handler is called in an interrupt context.
+ *
* FRAMEWORK INITIALISATION: FINISHING
*
* Once queue configuration has been completed, the client driver calls
@@ -281,6 +294,9 @@ int virtio_init_complete(virtio_t *, int);
int virtio_quiesce(virtio_t *);
void virtio_shutdown(virtio_t *);
+void virtio_register_cfgchange_handler(virtio_t *, ddi_intr_handler_t *,
+ void *);
+
void *virtio_intr_pri(virtio_t *);
void virtio_device_reset(virtio_t *);