diff --git a/src/arch/i386/transitions/librm_mgmt.c b/src/arch/i386/transitions/librm_mgmt.c index 89668978..cc4765de 100644 --- a/src/arch/i386/transitions/librm_mgmt.c +++ b/src/arch/i386/transitions/librm_mgmt.c @@ -21,7 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); extern char interrupt_wrapper[]; /** The interrupt vectors */ -static struct interrupt_vector intr_vec[ IRQ_MAX + 1 ]; +static struct interrupt_vector intr_vec[NUM_INT]; /** The interrupt descriptor table */ struct interrupt_descriptor idt[NUM_INT] __attribute__ (( aligned ( 16 ) )); @@ -90,13 +90,11 @@ void set_interrupt_vector ( unsigned int intr, void *vector ) { */ void init_idt ( void ) { struct interrupt_vector *vec; - unsigned int irq; unsigned int intr; /* Initialise the interrupt descriptor table and interrupt vectors */ - for ( irq = 0 ; irq <= IRQ_MAX ; irq++ ) { - intr = IRQ_INT ( irq ); - vec = &intr_vec[irq]; + for ( intr = 0 ; intr < NUM_INT ; intr++ ) { + vec = &intr_vec[intr]; vec->pushal = PUSHAL_INSN; vec->movb = MOVB_INSN; vec->intr = intr; @@ -105,6 +103,9 @@ void init_idt ( void ) { ( uint32_t ) vec->next ); set_interrupt_vector ( intr, vec ); } + DBGC ( &intr_vec[0], "INTn vector at %p+%xn (phys %#lx+%xn)\n", + intr_vec, sizeof ( intr_vec[0] ), + virt_to_phys ( intr_vec ), sizeof ( intr_vec[0] ) ); /* Initialise the interrupt descriptor table register */ idtr.base = virt_to_phys ( idt );