Unify IRQ handling.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2635 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
pbrook 2007-04-07 18:14:41 +00:00
parent b6e27ab8b1
commit d537cf6c86
71 changed files with 592 additions and 624 deletions

View file

@ -49,8 +49,7 @@ typedef struct {
int nchannels;
/* Flag to avoid recursive DMA invocations. */
int running;
void *pic;
int irq;
qemu_irq irq;
} pl080_state;
static const unsigned char pl080_id[] =
@ -63,9 +62,9 @@ static void pl080_update(pl080_state *s)
{
if ((s->tc_int & s->tc_mask)
|| (s->err_int & s->err_mask))
pic_set_irq_new(s->pic, s->irq, 1);
qemu_irq_raise(s->irq);
else
pic_set_irq_new(s->pic, s->irq, 1);
qemu_irq_lower(s->irq);
}
static void pl080_run(pl080_state *s)
@ -325,7 +324,7 @@ static CPUWriteMemoryFunc *pl080_writefn[] = {
/* The PL080 and PL081 are the same except for the number of channels
they implement (8 and 2 respectively). */
void *pl080_init(uint32_t base, void *pic, int irq, int nchannels)
void *pl080_init(uint32_t base, qemu_irq irq, int nchannels)
{
int iomemtype;
pl080_state *s;
@ -335,7 +334,6 @@ void *pl080_init(uint32_t base, void *pic, int irq, int nchannels)
pl080_writefn, s);
cpu_register_physical_memory(base, 0x00000fff, iomemtype);
s->base = base;
s->pic = pic;
s->irq = irq;
s->nchannels = nchannels;
/* ??? Save/restore. */