diff options
author | Svatopluk Kraus <skra@FreeBSD.org> | 2016-03-24 09:55:11 +0000 |
---|---|---|
committer | Svatopluk Kraus <skra@FreeBSD.org> | 2016-03-24 09:55:11 +0000 |
commit | 61c8fde5d63adf4b0c05702c4ba060e3cc0f3c69 (patch) | |
tree | 4893de0375aab00843476e8638ec2bd3177250ab /sys/kern/pic_if.m | |
parent | 6227e5963580e94874fc94d57c956494ff965785 (diff) | |
download | src-61c8fde5d63adf4b0c05702c4ba060e3cc0f3c69.tar.gz src-61c8fde5d63adf4b0c05702c4ba060e3cc0f3c69.zip |
Generalize IPI support for ARM intrng and use it for interrupt
controller IPI provider.
New struct intr_ipi is defined which keeps all info about an IPI:
its name, counter, send and dispatch methods. Generic intr_ipi_setup(),
intr_ipi_send() and intr_ipi_dispatch() functions are implemented.
An IPI provider must implement two functions:
(1) an intr_ipi_send_t function which is able to send an IPI,
(2) a setup function which initializes itself for an IPI and
calls intr_ipi_setup() with appropriate arguments.
Differential Revision: https://reviews.freebsd.org/D5700
Notes
Notes:
svn path=/head/; revision=297230
Diffstat (limited to 'sys/kern/pic_if.m')
-rw-r--r-- | sys/kern/pic_if.m | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/kern/pic_if.m b/sys/kern/pic_if.m index 2309f0c9fd9f..04d5f5f1afad 100644 --- a/sys/kern/pic_if.m +++ b/sys/kern/pic_if.m @@ -60,6 +60,13 @@ CODE { { return; } + + static int + dflt_pic_ipi_setup(device_t dev, u_int ipi, struct intr_irqsrc *isrc) + { + + return (EOPNOTSUPP); + } }; METHOD int register { @@ -122,3 +129,9 @@ METHOD void ipi_send { struct intr_irqsrc *isrc; cpuset_t cpus; } DEFAULT null_pic_ipi_send; + +METHOD int ipi_setup { + device_t dev; + u_int ipi; + struct intr_irqsrc *isrc; +} DEFAULT dflt_pic_ipi_setup; |