diff options
author | msmith <msmith@FreeBSD.org> | 1999-07-20 06:52:35 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 1999-07-20 06:52:35 +0000 |
commit | 84c939ef118a545b74e42d1ab9013ea9ba8b1b3f (patch) | |
tree | f285b114a76c38187b7d9910bdede9788d00ae9e /sys/i386/include/smp.h | |
parent | 905bcc118433dc6747bf9091a2bae04370334c34 (diff) | |
download | FreeBSD-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/include/smp.h')
-rw-r--r-- | sys/i386/include/smp.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/i386/include/smp.h b/sys/i386/include/smp.h index 3750c72..c425db6 100644 --- a/sys/i386/include/smp.h +++ b/sys/i386/include/smp.h @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $Id: smp.h,v 1.44 1998/09/06 22:41:40 tegge Exp $ + * $Id: smp.h,v 1.45 1999/04/28 01:04:07 luoqi Exp $ * */ @@ -146,6 +146,11 @@ void forward_roundrobin __P((void)); #ifdef APIC_INTR_REORDER void set_lapic_isrloc __P((int, int)); #endif /* APIC_INTR_REORDER */ +void smp_rendezvous_action __P((void)); +void smp_rendezvous __P((void (*)(void *), + void (*)(void *), + void (*)(void *), + void *arg)); /* global data in mpapic.c */ extern volatile lapic_t lapic; |