Revision ba91cd80
b/hw/i8259.c | ||
---|---|---|
46 | 46 |
} PicState; |
47 | 47 |
|
48 | 48 |
/* 0 is master pic, 1 is slave pic */ |
49 |
PicState pics[2]; |
|
50 |
int pic_irq_requested; |
|
49 |
static PicState pics[2];
|
|
50 |
static int pic_irq_requested;
|
|
51 | 51 |
|
52 | 52 |
/* set irq level. If an edge is detected, then the IRR is set to 1 */ |
53 | 53 |
static inline void pic_set_irq1(PicState *s, int irq, int level) |
... | ... | |
198 | 198 |
intno = pics[0].irq_base + irq; |
199 | 199 |
} |
200 | 200 |
pic_intack(&pics[0], irq); |
201 |
pic_update_irq(); |
|
201 | 202 |
return intno; |
202 | 203 |
} |
203 | 204 |
|
... | ... | |
408 | 409 |
register_savevm("i8259", io_addr, 1, pic_save, pic_load, s); |
409 | 410 |
} |
410 | 411 |
|
412 |
void pic_info(void) |
|
413 |
{ |
|
414 |
int i; |
|
415 |
PicState *s; |
|
416 |
|
|
417 |
for(i=0;i<2;i++) { |
|
418 |
s = &pics[i]; |
|
419 |
term_printf("pic%d: irr=%02x imr=%02x isr=%02x hprio=%d irq_base=%02x rr_sel=%d\n", |
|
420 |
i, s->irr, s->imr, s->isr, s->priority_add, s->irq_base, s->read_reg_select); |
|
421 |
} |
|
422 |
} |
|
423 |
|
|
424 |
|
|
411 | 425 |
void pic_init(void) |
412 | 426 |
{ |
413 | 427 |
pic_init1(0x20, &pics[0]); |
Also available in: Unified diff