summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1997-09-01 01:54:52 +0000
committerbde <bde@FreeBSD.org>1997-09-01 01:54:52 +0000
commitb5c24bb1133305960db1bf15cf53313e0d61b714 (patch)
tree8b0a9db598260aebbff925f731783d66e88fd1fe /sys/amd64
parenta059b2e7c8fc7680bc0536c45c891db372aa7e32 (diff)
downloadFreeBSD-src-b5c24bb1133305960db1bf15cf53313e0d61b714.zip
FreeBSD-src-b5c24bb1133305960db1bf15cf53313e0d61b714.tar.gz
Move closer to supporting VM86 under SMP.
LINT now compiles but doesn't link. Other link-time breakage for LINT is now visible (SMP is incompatible with SIMPLELOCK_DEBUG). Submitted by: jlemon
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/machdep.c5
-rw-r--r--sys/amd64/amd64/mp_machdep.c10
-rw-r--r--sys/amd64/amd64/mptable.c10
-rw-r--r--sys/amd64/include/mptable.h10
4 files changed, 31 insertions, 4 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 6bcf270..1c4489c 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 322f0f1..1cca90d 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 322f0f1..1cca90d 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 322f0f1..1cca90d 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! */
OpenPOWER on IntegriCloud