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>