From owner-p4-projects@FreeBSD.ORG Mon Apr 25 22:51:32 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 681E416A4D0; Mon, 25 Apr 2005 22:51:32 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 282DF16A4CE for ; Mon, 25 Apr 2005 22:51:32 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E19F343D1F for ; Mon, 25 Apr 2005 22:51:31 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j3PMpVqH042970 for ; Mon, 25 Apr 2005 22:51:31 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j3PMpVYp042967 for perforce@freebsd.org; Mon, 25 Apr 2005 22:51:31 GMT (envelope-from davidxu@freebsd.org) Date: Mon, 25 Apr 2005 22:51:31 GMT Message-Id: <200504252251.j3PMpVYp042967@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 75974 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2005 22:51:33 -0000 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 #include +#include #include #include #include @@ -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)