From owner-p4-projects@FreeBSD.ORG Tue Apr 8 01:59:00 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8087F37B404; Tue, 8 Apr 2003 01:59:00 -0700 (PDT) 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 0935A37B401 for ; Tue, 8 Apr 2003 01:59:00 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9B6FE43F85 for ; Tue, 8 Apr 2003 01:58:59 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h388wx0U012307 for ; Tue, 8 Apr 2003 01:58:59 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h388wxXK012304 for perforce@freebsd.org; Tue, 8 Apr 2003 01:58:59 -0700 (PDT) Date: Tue, 8 Apr 2003 01:58:59 -0700 (PDT) Message-Id: <200304080858.h388wxXK012304@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 28511 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: Tue, 08 Apr 2003 08:59:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=28511 Change 28511 by peter@peter_daintree on 2003/04/08 01:58:17 tidy up some loose ends. update trapframe format. fix some syntax errors and undefined symbols Affected files ... .. //depot/projects/hammer/sys/x86_64/isa/icu_vector.s#7 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/isa/icu_vector.s#7 (text+ko) ==== @@ -41,16 +41,7 @@ pushq %r13 ; \ pushq %r14 ; \ pushq %r15 ; \ - pushq %ds ; /* save our data and extra segments */ \ - pushq %es ; \ - pushq %fs ; \ - pushq %gs ; \ - mov $KDSEL,%ax ; \ - mov %ax,%ds ; \ - mov %ax,%es ; \ -#XXX mov $KPSEL,%ax ; \ -#XXX mov %ax,%fs ; \ - FAKE_MCOUNT((12+ACTUALLY_PUSHED)*4(%rsp)) ; \ + FAKE_MCOUNT((12)*4(%rsp)) ; \ call critical_enter ; \ movq PCPU(CURTHREAD),%rbx ; \ incl TD_INTR_NESTING_LEVEL(%rbx) ; \ @@ -74,7 +65,7 @@ * interrupt handler and don't run anything. We could just do an * iret. FIXME. */ -#define INTR(irq_num, vec_name, enable_icus, maybe_extra_ipending) \ +#define INTR(irq_num, vec_name, icu, enable_icus, maybe_extra_ipending) \ .text ; \ SUPERALIGN_TEXT ; \ IDTVEC(vec_name) ; \ @@ -95,23 +86,14 @@ pushq %r13 ; \ pushq %r14 ; \ pushq %r15 ; \ - pushq %ds ; /* save our data and extra segments */ \ - pushq %es ; \ - pushq %fs ; \ - pushq %gs ; \ - mov $KDSEL,%ax ; /* load kernel ds, es and fs */ \ - mov %ax,%ds ; \ - mov %ax,%es ; \ -#XXX mov $KPSEL,%ax ; \ -#XXX mov %ax,%fs ; \ maybe_extra_ipending ; \ movb imen + IRQ_BYTE(irq_num),%al ; \ orb $IRQ_BIT(irq_num),%al ; \ movb %al,imen + IRQ_BYTE(irq_num) ; \ - #XXXoutb %al,$icu+ICU_IMR_OFFSET ; \ + outb %al,$icu+ICU_IMR_OFFSET ; \ enable_icus ; \ movq PCPU(CURTHREAD),%rbx ; \ - incl TD_INTR_NESTING_LEVEL(%ebx) ; \ + incl TD_INTR_NESTING_LEVEL(%rbx) ; \ FAKE_MCOUNT(13*4(%rsp)) ; /* XXX late to avoid double count */ \ movq $irq_num, %rdi; /* pass the IRQ */ \ call sched_ithd ; \ @@ -141,22 +123,22 @@ #define CLKINTR_PENDING movl $1,CNAME(clkintr_pending) /* Threaded interrupts */ - INTR(0,intr0, ENABLE_ICU1, CLKINTR_PENDING) - INTR(1,intr1, ENABLE_ICU1,) - INTR(2,intr2, ENABLE_ICU1,) - INTR(3,intr3, ENABLE_ICU1,) - INTR(4,intr4, ENABLE_ICU1,) - INTR(5,intr5, ENABLE_ICU1,) - INTR(6,intr6, ENABLE_ICU1,) - INTR(7,intr7, ENABLE_ICU1,) - INTR(8,intr8, ENABLE_ICU1_AND_2,) - INTR(9,intr9, ENABLE_ICU1_AND_2,) - INTR(10,intr10, ENABLE_ICU1_AND_2,) - INTR(11,intr11, ENABLE_ICU1_AND_2,) - INTR(12,intr12, ENABLE_ICU1_AND_2,) - INTR(13,intr13, ENABLE_ICU1_AND_2,) - INTR(14,intr14, ENABLE_ICU1_AND_2,) - INTR(15,intr15, ENABLE_ICU1_AND_2,) + INTR(0,intr0, IO_ICU1, ENABLE_ICU1, CLKINTR_PENDING) + INTR(1,intr1, IO_ICU1, ENABLE_ICU1,) + INTR(2,intr2, IO_ICU1, ENABLE_ICU1,) + INTR(3,intr3, IO_ICU1, ENABLE_ICU1,) + INTR(4,intr4, IO_ICU1, ENABLE_ICU1,) + INTR(5,intr5, IO_ICU1, ENABLE_ICU1,) + INTR(6,intr6, IO_ICU1, ENABLE_ICU1,) + INTR(7,intr7, IO_ICU1, ENABLE_ICU1,) + INTR(8,intr8, IO_ICU2, ENABLE_ICU1_AND_2,) + INTR(9,intr9, IO_ICU2, ENABLE_ICU1_AND_2,) + INTR(10,intr10, IO_ICU2, ENABLE_ICU1_AND_2,) + INTR(11,intr11, IO_ICU2, ENABLE_ICU1_AND_2,) + INTR(12,intr12, IO_ICU2, ENABLE_ICU1_AND_2,) + INTR(13,intr13, IO_ICU2, ENABLE_ICU1_AND_2,) + INTR(14,intr14, IO_ICU2, ENABLE_ICU1_AND_2,) + INTR(15,intr15, IO_ICU2, ENABLE_ICU1_AND_2,) MCOUNT_LABEL(eintr)