aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchell Horne <mhorne@FreeBSD.org>2022-10-07 22:21:49 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2022-10-07 22:26:41 +0000
commitaf390486010e8fc78c4d715e751cd1175d0752c7 (patch)
treec0cd04e7abdadcc21b1f2e628c6812baa2fedee0
parentce9e720af2f8fa378e36134bab8a82ebf67c159d (diff)
downloadsrc-af390486010e8fc78c4d715e751cd1175d0752c7.tar.gz
src-af390486010e8fc78c4d715e751cd1175d0752c7.zip
bus.h: rewrite comment describing intr_type
Describe more clearly the purpose of these flags and where they are used. Remove grog's comment about revisiting the flags. At this point it does not make sense to change this long-standing API, especially in light of 2cf7870864ea ("Collapse interrupt thread priorities"). Give a better example of a bus modifying these flags; I did not find any existing instance where a bus changes the interrupt's type. Reviewed by: imp, markj, jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D36896
-rw-r--r--sys/sys/bus.h20
1 files changed, 11 insertions, 9 deletions
diff --git a/sys/sys/bus.h b/sys/sys/bus.h
index c363d1ec550e..26d100aba222 100644
--- a/sys/sys/bus.h
+++ b/sys/sys/bus.h
@@ -252,17 +252,19 @@ typedef void driver_intr_t(void*);
/**
* @brief Interrupt type bits.
- *
- * These flags are used both by newbus interrupt
- * registration (nexus.c) and also in struct intrec, which defines
- * interrupt properties.
*
- * XXX We should probably revisit this and remove the vestiges of the
- * spls implicit in names like INTR_TYPE_TTY. In the meantime, don't
- * confuse things by renaming them (Grog, 18 July 2000).
+ * These flags may be passed by drivers to bus_setup_intr(9) when
+ * registering a new interrupt handler. The field is overloaded to
+ * specify both the interrupt's type and any special properties.
*
- * Buses which do interrupt remapping will want to change their type
- * to reflect what sort of devices are underneath.
+ * The INTR_TYPE* bits will be passed to intr_priority(9) to determine
+ * the scheduling priority of the handler's ithread. Historically, each
+ * type was assigned a unique scheduling preference, but now only
+ * INTR_TYPE_CLK receives a default priority higher than other
+ * interrupts. See sys/priority.h.
+ *
+ * Buses may choose to modify or augment these flags as appropriate,
+ * e.g. nexus may apply INTR_EXCL.
*/
enum intr_type {
INTR_TYPE_TTY = 1,