summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/intr_machdep.h
diff options
context:
space:
mode:
authormsmith <msmith@FreeBSD.org>1999-07-20 06:52:35 +0000
committermsmith <msmith@FreeBSD.org>1999-07-20 06:52:35 +0000
commit84c939ef118a545b74e42d1ab9013ea9ba8b1b3f (patch)
treef285b114a76c38187b7d9910bdede9788d00ae9e /sys/i386/isa/intr_machdep.h
parent905bcc118433dc6747bf9091a2bae04370334c34 (diff)
downloadFreeBSD-src-84c939ef118a545b74e42d1ab9013ea9ba8b1b3f.zip
FreeBSD-src-84c939ef118a545b74e42d1ab9013ea9ba8b1b3f.tar.gz
Implement an all-CPU shootdown-style rendezvous facility. This allows
the caller to specify a function to be guarded between an entry and exit barrier, as well as pre- and post-barrier functions. The primary use for this function is synchronised update of per-cpu private data. The implementation is almost (but not quite) MI; with a better mechanism for masking per-CPU interrupts it could probably be hoisted. Reviewed by: peter (partially)
Diffstat (limited to 'sys/i386/isa/intr_machdep.h')
-rw-r--r--sys/i386/isa/intr_machdep.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/i386/isa/intr_machdep.h b/sys/i386/isa/intr_machdep.h
index 675714d..06593cf 100644
--- a/sys/i386/isa/intr_machdep.h
+++ b/sys/i386/isa/intr_machdep.h
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: intr_machdep.h,v 1.14 1999/04/21 07:26:27 peter Exp $
+ * $Id: intr_machdep.h,v 1.15 1999/06/03 20:41:00 peter Exp $
*/
#ifndef _I386_ISA_INTR_MACHDEP_H_
@@ -112,6 +112,9 @@
#define XCPUCHECKSTATE_OFFSET (ICU_OFFSET + 113)
#endif
+/* inter-CPU rendezvous */
+#define XRENDEZVOUS_OFFSET (ICU_OFFSET + 114)
+
/* IPI to generate an additional software trap at the target CPU */
#define XCPUAST_OFFSET (ICU_OFFSET + 48)
@@ -178,7 +181,8 @@ inthand_t
Xcpuast, /* Additional software trap on other cpu */
Xforward_irq, /* Forward irq to cpu holding ISR lock */
Xcpustop, /* CPU stops & waits for another CPU to restart it */
- Xspuriousint; /* handle APIC "spurious INTs" */
+ Xspuriousint, /* handle APIC "spurious INTs" */
+ Xrendezvous; /* handle CPU rendezvous */
#ifdef TEST_TEST1
inthand_t
OpenPOWER on IntegriCloud