Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Apr 2005 22:51:31 GMT
From:      David Xu <davidxu@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 75974 for review
Message-ID:  <200504252251.j3PMpVYp042967@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=75974

Change 75974 by davidxu@davidxu_tiger on 2005/04/25 22:50:52

	pickup sysenter work.

Affected files ...

.. //depot/projects/davidxu_thread/src/sys/i386/i386/genassym.c#4 edit
.. //depot/projects/davidxu_thread/src/sys/i386/i386/swtch.s#3 edit
.. //depot/projects/davidxu_thread/src/sys/i386/include/pcpu.h#5 edit

Differences ...

==== //depot/projects/davidxu_thread/src/sys/i386/i386/genassym.c#4 (text+ko) ====

@@ -71,6 +71,7 @@
 #endif
 #include <machine/cpu.h>
 #include <machine/pcb.h>
+#include <machine/pcb_ext.h>
 #include <machine/sigframe.h>
 #include <machine/vm86.h>
 #include <machine/proc.h>
@@ -133,6 +134,7 @@
 ASSYM(PCB_PSL, offsetof(struct pcb, pcb_psl));
 ASSYM(PCB_DBREGS, PCB_DBREGS);
 ASSYM(PCB_EXT, offsetof(struct pcb, pcb_ext));
+ASSYM(PCB_EXT_TSS_ESP0, offsetof(struct pcb_ext, ext_tss.tss_esp0));
 
 ASSYM(PCB_FSD, offsetof(struct pcb, pcb_fsd));
 ASSYM(PCB_VM86, offsetof(struct pcb, pcb_vm86));
@@ -198,6 +200,7 @@
 ASSYM(PC_CURRENTLDT, offsetof(struct pcpu, pc_currentldt));
 ASSYM(PC_CPUID, offsetof(struct pcpu, pc_cpuid));
 ASSYM(PC_CURPMAP, offsetof(struct pcpu, pc_curpmap));
+ASSYM(PC_SYSENTER_TSS_ESP0, offsetof(struct pcpu, pc_sysenter_tss_esp0));
 
 #ifdef DEV_APIC
 ASSYM(LA_VER, offsetof(struct LAPIC, version));

==== //depot/projects/davidxu_thread/src/sys/i386/i386/swtch.s#3 (text+ko) ====

@@ -199,6 +199,8 @@
 	je	1f				/* If not, use the default */
 	btsl	%esi, private_tss		/* mark use of private tss */
 	movl	PCB_EXT(%edx), %edi		/* new tss descriptor */
+	movl	PCB_EXT_TSS_ESP0(%edi), %ebx
+	movl	%ebx, PCPU(SYSENTER_TSS_ESP0)
 	jmp	2f				/* Load it up */
 
 1:	/*
@@ -208,6 +210,7 @@
 	 */
 	leal	-16(%edx), %ebx			/* leave space for vm86 */
 	movl	%ebx, PCPU(COMMON_TSS) + TSS_ESP0
+	movl	%ebx, PCPU(SYSENTER_TSS_ESP0)
 
 	/*
 	 * Test this CPU's  bit in the bitmap to see if this

==== //depot/projects/davidxu_thread/src/sys/i386/include/pcpu.h#5 (text+ko) ====

@@ -54,7 +54,8 @@
 	struct	segment_descriptor *pc_fsgs_gdt;			\
 	int	pc_currentldt;						\
 	u_int	pc_acpi_id;						\
-	u_int	pc_apic_id
+	u_int	pc_apic_id;						\
+	u_int	pc_sysenter_tss_esp0
 
 #if defined(lint)
  



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200504252251.j3PMpVYp042967>