From owner-p4-projects@FreeBSD.ORG Mon Nov 7 19:33:28 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4846816A422; Mon, 7 Nov 2005 19:33:28 +0000 (GMT) X-Original-To: perforce@freebsd.org 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 EB77A16A420 for ; Mon, 7 Nov 2005 19:33:27 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B173B43D48 for ; Mon, 7 Nov 2005 19:33:27 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jA7JXRmY014273 for ; Mon, 7 Nov 2005 19:33:27 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jA7JXRqn014270 for perforce@freebsd.org; Mon, 7 Nov 2005 19:33:27 GMT (envelope-from peter@freebsd.org) Date: Mon, 7 Nov 2005 19:33:27 GMT Message-Id: <200511071933.jA7JXRqn014270@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 Cc: Subject: PERFORCE change 86433 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Nov 2005 19:33:28 -0000 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_ */