summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/arch/i386/transitions/librm_mgmt.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/arch/i386/transitions/librm_mgmt.c b/src/arch/i386/transitions/librm_mgmt.c
index 89668978b..cc4765de2 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 );