PERFORCE change 86433 for review
Peter Wemm
peter at FreeBSD.org
Mon Nov 7 11:33:28 PST 2005
http://perforce.freebsd.org/chv.cgi?CH=86433
Change 86433 by peter at peter_daintree on 2005/11/07 19:32:33
Pass interrupt vectors as an int rather than a void *.
Use jhb's i386 spelling (vector rather than vec).
Affected files ...
.. //depot/projects/hammer/sys/amd64/amd64/apic_vector.S#32 edit
.. //depot/projects/hammer/sys/amd64/amd64/local_apic.c#60 edit
.. //depot/projects/hammer/sys/amd64/include/apicvar.h#37 edit
.. //depot/projects/hammer/sys/amd64/isa/atpic.c#51 edit
.. //depot/projects/hammer/sys/amd64/isa/atpic_vector.S#21 edit
.. //depot/projects/hammer/sys/amd64/isa/icu.h#22 edit
Differences ...
==== //depot/projects/hammer/sys/amd64/amd64/apic_vector.S#32 (text+ko) ====
@@ -107,7 +107,7 @@
jz 2f ; \
addl $(32 * index),%eax ; \
1: ; \
- movq %rax, %rdi ; /* pass the IRQ */ \
+ movl %eax, %edi ; /* pass the IRQ */ \
call lapic_handle_intr ; \
MEXITCOUNT ; \
jmp doreti ; \
==== //depot/projects/hammer/sys/amd64/amd64/local_apic.c#60 (text+ko) ====
@@ -607,14 +607,13 @@
}
void
-lapic_handle_intr(void *cookie, struct intrframe frame)
+lapic_handle_intr(int vector, struct intrframe frame)
{
struct intsrc *isrc;
- int vec = (uintptr_t)cookie;
- if (vec == -1)
+ if (vector == -1)
panic("Couldn't get vector from ISR!");
- isrc = intr_lookup_source(apic_idt_to_irq(vec));
+ isrc = intr_lookup_source(apic_idt_to_irq(vector));
intr_execute_handlers(isrc, &frame);
}
==== //depot/projects/hammer/sys/amd64/include/apicvar.h#37 (text+ko) ====
@@ -201,7 +201,7 @@
void lapic_ipi_raw(register_t icrlo, u_int dest);
void lapic_ipi_vectored(u_int vector, int dest);
int lapic_ipi_wait(int delay);
-void lapic_handle_intr(void *cookie, struct intrframe frame);
+void lapic_handle_intr(int vector, struct intrframe frame);
void lapic_handle_timer(struct clockframe frame);
void lapic_set_logical_id(u_int apic_id, u_int cluster, u_int cluster_id);
int lapic_set_lvt_mask(u_int apic_id, u_int lvt, u_char masked);
==== //depot/projects/hammer/sys/amd64/isa/atpic.c#51 (text+ko) ====
@@ -463,19 +463,18 @@
SYSINIT(atpic_init, SI_SUB_INTR, SI_ORDER_SECOND + 1, atpic_init, NULL)
void
-atpic_handle_intr(void *cookie, struct intrframe iframe)
+atpic_handle_intr(u_int vector, struct intrframe iframe)
{
struct intsrc *isrc;
- int vec = (uintptr_t)cookie;
- KASSERT(vec < NUM_ISA_IRQS, ("unknown int %d\n", vec));
- isrc = &atintrs[vec].at_intsrc;
+ KASSERT(vec < NUM_ISA_IRQS, ("unknown int %d\n", vector));
+ isrc = &atintrs[vector].at_intsrc;
/*
* If we don't have an event, see if this is a spurious
* interrupt.
*/
- if (isrc->is_event == NULL && (vec == 7 || vec == 15)) {
+ if (isrc->is_event == NULL && (vector == 7 || vector == 15)) {
int port, isr;
/*
==== //depot/projects/hammer/sys/amd64/isa/atpic_vector.S#21 (text+ko) ====
@@ -67,7 +67,7 @@
movq %r14,TF_R14(%rsp) ; \
movq %r15,TF_R15(%rsp) ; \
FAKE_MCOUNT(TF_RIP(%rsp)) ; \
- movq $irq_num, %rdi; /* pass the IRQ */ \
+ movl $irq_num, %edi; /* pass the IRQ */ \
call atpic_handle_intr ; \
MEXITCOUNT ; \
jmp doreti
==== //depot/projects/hammer/sys/amd64/isa/icu.h#22 (text+ko) ====
@@ -43,7 +43,7 @@
#define ICU_IMR_OFFSET 1
-void atpic_handle_intr(void *cookie, struct intrframe iframe);
+void atpic_handle_intr(u_int vector, struct intrframe iframe);
void atpic_startup(void);
#endif /* !_AMD64_ISA_ICU_H_ */
More information about the p4-projects
mailing list