Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Apr 2003 01:58:59 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 28511 for review
Message-ID:  <200304080858.h388wxXK012304@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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)
 



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