diff options
| -rw-r--r-- | sys/amd64/amd64/machdep.c | 5 | ||||
| -rw-r--r-- | sys/amd64/amd64/mp_machdep.c | 10 | ||||
| -rw-r--r-- | sys/amd64/amd64/mptable.c | 10 | ||||
| -rw-r--r-- | sys/amd64/include/mptable.h | 10 | ||||
| -rw-r--r-- | sys/i386/i386/machdep.c | 5 | ||||
| -rw-r--r-- | sys/i386/i386/mp_machdep.c | 10 | ||||
| -rw-r--r-- | sys/i386/i386/mptable.c | 10 | ||||
| -rw-r--r-- | sys/i386/include/mptable.h | 10 | ||||
| -rw-r--r-- | sys/kern/subr_smp.c | 10 |
9 files changed, 71 insertions, 9 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index 6bcf2705c05d..1c4489c1d797 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91 - * $Id: machdep.c,v 1.258 1997/08/26 18:10:30 peter Exp $ + * $Id: machdep.c,v 1.259 1997/08/31 23:08:27 bde Exp $ */ #include "apm.h" @@ -847,6 +847,9 @@ struct region_descriptor r_gdt, r_idt; #ifdef SMP extern struct i386tss common_tss; /* One tss per cpu */ +#ifdef VM86 +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ #else struct i386tss common_tss; #ifdef VM86 diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 322f0f1b3b12..1cca90d9d0fd 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.34 1997/08/31 03:05:56 smp Exp smp $ + * $Id: mp_machdep.c,v 1.49 1997/08/31 03:17:47 fsmp Exp $ */ #include "opt_smp.h" @@ -241,6 +241,10 @@ extern pt_entry_t *KPTphys; /* Virtual address of per-cpu common_tss */ extern struct i386tss common_tss; +#ifdef VM86 +extern u_int private_tss; /* flag indicating private tss */ +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ /* IdlePTD per cpu */ pd_entry_t *IdlePTDS[NCPU]; @@ -408,6 +412,10 @@ init_secondary(void) common_tss.tss_esp0 = 0; /* not used until after switch */ common_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL); common_tss.tss_ioopt = (sizeof common_tss) << 16; +#ifdef VM86 + common_tssd = gdt[slot].sd; + private_tss = 0; +#endif /* VM86 */ ltr(gsel_tss); load_cr0(0x8005003b); /* XXX! */ diff --git a/sys/amd64/amd64/mptable.c b/sys/amd64/amd64/mptable.c index 322f0f1b3b12..1cca90d9d0fd 100644 --- a/sys/amd64/amd64/mptable.c +++ b/sys/amd64/amd64/mptable.c @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.34 1997/08/31 03:05:56 smp Exp smp $ + * $Id: mp_machdep.c,v 1.49 1997/08/31 03:17:47 fsmp Exp $ */ #include "opt_smp.h" @@ -241,6 +241,10 @@ extern pt_entry_t *KPTphys; /* Virtual address of per-cpu common_tss */ extern struct i386tss common_tss; +#ifdef VM86 +extern u_int private_tss; /* flag indicating private tss */ +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ /* IdlePTD per cpu */ pd_entry_t *IdlePTDS[NCPU]; @@ -408,6 +412,10 @@ init_secondary(void) common_tss.tss_esp0 = 0; /* not used until after switch */ common_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL); common_tss.tss_ioopt = (sizeof common_tss) << 16; +#ifdef VM86 + common_tssd = gdt[slot].sd; + private_tss = 0; +#endif /* VM86 */ ltr(gsel_tss); load_cr0(0x8005003b); /* XXX! */ diff --git a/sys/amd64/include/mptable.h b/sys/amd64/include/mptable.h index 322f0f1b3b12..1cca90d9d0fd 100644 --- a/sys/amd64/include/mptable.h +++ b/sys/amd64/include/mptable.h @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.34 1997/08/31 03:05:56 smp Exp smp $ + * $Id: mp_machdep.c,v 1.49 1997/08/31 03:17:47 fsmp Exp $ */ #include "opt_smp.h" @@ -241,6 +241,10 @@ extern pt_entry_t *KPTphys; /* Virtual address of per-cpu common_tss */ extern struct i386tss common_tss; +#ifdef VM86 +extern u_int private_tss; /* flag indicating private tss */ +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ /* IdlePTD per cpu */ pd_entry_t *IdlePTDS[NCPU]; @@ -408,6 +412,10 @@ init_secondary(void) common_tss.tss_esp0 = 0; /* not used until after switch */ common_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL); common_tss.tss_ioopt = (sizeof common_tss) << 16; +#ifdef VM86 + common_tssd = gdt[slot].sd; + private_tss = 0; +#endif /* VM86 */ ltr(gsel_tss); load_cr0(0x8005003b); /* XXX! */ diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index 6bcf2705c05d..1c4489c1d797 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91 - * $Id: machdep.c,v 1.258 1997/08/26 18:10:30 peter Exp $ + * $Id: machdep.c,v 1.259 1997/08/31 23:08:27 bde Exp $ */ #include "apm.h" @@ -847,6 +847,9 @@ struct region_descriptor r_gdt, r_idt; #ifdef SMP extern struct i386tss common_tss; /* One tss per cpu */ +#ifdef VM86 +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ #else struct i386tss common_tss; #ifdef VM86 diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c index 322f0f1b3b12..1cca90d9d0fd 100644 --- a/sys/i386/i386/mp_machdep.c +++ b/sys/i386/i386/mp_machdep.c @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.34 1997/08/31 03:05:56 smp Exp smp $ + * $Id: mp_machdep.c,v 1.49 1997/08/31 03:17:47 fsmp Exp $ */ #include "opt_smp.h" @@ -241,6 +241,10 @@ extern pt_entry_t *KPTphys; /* Virtual address of per-cpu common_tss */ extern struct i386tss common_tss; +#ifdef VM86 +extern u_int private_tss; /* flag indicating private tss */ +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ /* IdlePTD per cpu */ pd_entry_t *IdlePTDS[NCPU]; @@ -408,6 +412,10 @@ init_secondary(void) common_tss.tss_esp0 = 0; /* not used until after switch */ common_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL); common_tss.tss_ioopt = (sizeof common_tss) << 16; +#ifdef VM86 + common_tssd = gdt[slot].sd; + private_tss = 0; +#endif /* VM86 */ ltr(gsel_tss); load_cr0(0x8005003b); /* XXX! */ diff --git a/sys/i386/i386/mptable.c b/sys/i386/i386/mptable.c index 322f0f1b3b12..1cca90d9d0fd 100644 --- a/sys/i386/i386/mptable.c +++ b/sys/i386/i386/mptable.c @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.34 1997/08/31 03:05:56 smp Exp smp $ + * $Id: mp_machdep.c,v 1.49 1997/08/31 03:17:47 fsmp Exp $ */ #include "opt_smp.h" @@ -241,6 +241,10 @@ extern pt_entry_t *KPTphys; /* Virtual address of per-cpu common_tss */ extern struct i386tss common_tss; +#ifdef VM86 +extern u_int private_tss; /* flag indicating private tss */ +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ /* IdlePTD per cpu */ pd_entry_t *IdlePTDS[NCPU]; @@ -408,6 +412,10 @@ init_secondary(void) common_tss.tss_esp0 = 0; /* not used until after switch */ common_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL); common_tss.tss_ioopt = (sizeof common_tss) << 16; +#ifdef VM86 + common_tssd = gdt[slot].sd; + private_tss = 0; +#endif /* VM86 */ ltr(gsel_tss); load_cr0(0x8005003b); /* XXX! */ diff --git a/sys/i386/include/mptable.h b/sys/i386/include/mptable.h index 322f0f1b3b12..1cca90d9d0fd 100644 --- a/sys/i386/include/mptable.h +++ b/sys/i386/include/mptable.h @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.34 1997/08/31 03:05:56 smp Exp smp $ + * $Id: mp_machdep.c,v 1.49 1997/08/31 03:17:47 fsmp Exp $ */ #include "opt_smp.h" @@ -241,6 +241,10 @@ extern pt_entry_t *KPTphys; /* Virtual address of per-cpu common_tss */ extern struct i386tss common_tss; +#ifdef VM86 +extern u_int private_tss; /* flag indicating private tss */ +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ /* IdlePTD per cpu */ pd_entry_t *IdlePTDS[NCPU]; @@ -408,6 +412,10 @@ init_secondary(void) common_tss.tss_esp0 = 0; /* not used until after switch */ common_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL); common_tss.tss_ioopt = (sizeof common_tss) << 16; +#ifdef VM86 + common_tssd = gdt[slot].sd; + private_tss = 0; +#endif /* VM86 */ ltr(gsel_tss); load_cr0(0x8005003b); /* XXX! */ diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 322f0f1b3b12..1cca90d9d0fd 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.34 1997/08/31 03:05:56 smp Exp smp $ + * $Id: mp_machdep.c,v 1.49 1997/08/31 03:17:47 fsmp Exp $ */ #include "opt_smp.h" @@ -241,6 +241,10 @@ extern pt_entry_t *KPTphys; /* Virtual address of per-cpu common_tss */ extern struct i386tss common_tss; +#ifdef VM86 +extern u_int private_tss; /* flag indicating private tss */ +extern struct segment_descriptor common_tssd; +#endif /* VM86 */ /* IdlePTD per cpu */ pd_entry_t *IdlePTDS[NCPU]; @@ -408,6 +412,10 @@ init_secondary(void) common_tss.tss_esp0 = 0; /* not used until after switch */ common_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL); common_tss.tss_ioopt = (sizeof common_tss) << 16; +#ifdef VM86 + common_tssd = gdt[slot].sd; + private_tss = 0; +#endif /* VM86 */ ltr(gsel_tss); load_cr0(0x8005003b); /* XXX! */ |
