summaryrefslogtreecommitdiffstats
path: root/sys/kern/serdev_if.m
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2006-04-23 22:12:39 +0000
committermarcel <marcel@FreeBSD.org>2006-04-23 22:12:39 +0000
commit2e48f3c964fec7e6115fd6a6a513ebdcaa0d3ef9 (patch)
tree418f13ee5203f5f49ea24eaf8643fe250f5e53e4 /sys/kern/serdev_if.m
parent281a077578b7ca97f028e1e652107245e397a40b (diff)
downloadFreeBSD-src-2e48f3c964fec7e6115fd6a6a513ebdcaa0d3ef9.zip
FreeBSD-src-2e48f3c964fec7e6115fd6a6a513ebdcaa0d3ef9.tar.gz
MFp4: Add the ipend() method to the serdev I/F to allow umbrella
drivers to obtain pending interrupt status from subordinate drivers.
Diffstat (limited to 'sys/kern/serdev_if.m')
-rw-r--r--sys/kern/serdev_if.m15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/kern/serdev_if.m b/sys/kern/serdev_if.m
index ce7f572..fbf4363 100644
--- a/sys/kern/serdev_if.m
+++ b/sys/kern/serdev_if.m
@@ -50,6 +50,12 @@ CODE {
}
static int
+ default_ipend(device_t dev)
+ {
+ return (-1);
+ }
+
+ static int
default_sysdev(device_t dev)
{
return (0);
@@ -66,6 +72,15 @@ METHOD serdev_intr_t* ihand {
int ipend;
} DEFAULT default_ihand;
+# ipend() - Query pending interrupt status.
+# This method is called by the umbrella driver to obtain interrupt status
+# for the UART in question. This allows the umbrella driver to build a
+# matrix and service the interrupts in the most flexible way by calling
+# interrupt handlers collected with the ihand() method.
+METHOD int ipend {
+ device_t dev;
+} DEFAULT default_ipend;
+
# sysdev() - Query system device status
# This method may be called by the umbrella driver for each child driver
# to establish if a particular channel and mode is currently being used
OpenPOWER on IntegriCloud