Date: Mon, 7 Nov 2005 19:33:27 GMT From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 86433 for review Message-ID: <200511071933.jA7JXRqn014270@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=86433 Change 86433 by peter@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_ */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511071933.jA7JXRqn014270>