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