PERFORCE change 28511 for review
Peter Wemm
peter at FreeBSD.org
Tue Apr 8 01:59:01 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=28511
Change 28511 by peter at 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)
More information about the p4-projects
mailing list