diff options
Diffstat (limited to 'sys/i386/include/smp.h')
-rw-r--r-- | sys/i386/include/smp.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/sys/i386/include/smp.h b/sys/i386/include/smp.h index 38a8cb4..8236b91 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.3 1997/06/25 20:43:48 smp Exp smp $ + * $Id: smp.h,v 1.12 1997/06/25 20:59:15 fsmp Exp $ * */ @@ -17,7 +17,7 @@ #if defined(SMP) && !defined(APIC_IO) # error APIC_IO required for SMP, add "options APIC_IO" to your config file. -#endif /* SMP && NCPU */ +#endif /* SMP && !APIC_IO */ #if defined(SMP) && !defined(NCPU) # define NCPU 2 @@ -25,6 +25,11 @@ #if defined(SMP) || defined(APIC_IO) +/* + * For sending values to POST displays. + */ +#define POSTCODE(X) outb(0x80, (X)) + #include <machine/apic.h> /* global data in mpboot.s */ @@ -41,13 +46,16 @@ void get_mplock __P((void)); void rel_mplock __P((void)); void try_mplock __P((void)); +/* global data in apic_vector.s */ +extern volatile u_int stopped_cpus; +extern volatile u_int started_cpus; + /* global data in mp_machdep.c */ extern int mp_ncpus; extern int mp_naps; extern int mp_nbusses; extern int mp_napics; extern int mp_picmode; -extern int mpenabled; extern int boot_cpu_id; extern vm_offset_t cpu_apic_address; extern vm_offset_t io_apic_address[]; @@ -56,6 +64,7 @@ extern u_int32_t io_apic_versions[]; extern int cpu_num_to_apic_id[]; extern int io_num_to_apic_id[]; extern int apic_id_to_logical[]; +extern u_int all_cpus; extern u_int SMP_prvpt[]; extern u_char SMP_ioapic[]; @@ -78,6 +87,8 @@ int apic_polarity __P((int, int)); void configure_local_apic __P((void)); void init_secondary __P((void)); void smp_invltlb __P((void)); +int stop_cpus __P((u_int)); +int restart_cpus __P((u_int)); /* global data in mpapic.c */ extern volatile lapic_t lapic; @@ -109,8 +120,10 @@ void u_sleep __P((int)); extern int smp_active; extern int invltlb_ok; +/* 'private' global data in locore.s */ extern volatile u_int cpuid; extern volatile u_int cpu_lockid; +extern volatile u_int other_cpus; #endif /* SMP || APIC_IO */ #endif /* KERNEL */ |