diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-01 16:05:41 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-01 16:05:41 +0000 |
commit | 52cc07d04774676c69e3998cdb5d10c8f5286072 (patch) | |
tree | faa2f9256f55845154f602a57f4443456e367db9 /hw/slavio_serial.c | |
parent | e0353fe250eacac23104ff7fe466cd6533536509 (diff) |
Change Sparc uses of pic_set_irq to pic_set_irq_new
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2572 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/slavio_serial.c')
-rw-r--r-- | hw/slavio_serial.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/hw/slavio_serial.c b/hw/slavio_serial.c index e72bb70e05..847710e3d1 100644 --- a/hw/slavio_serial.c +++ b/hw/slavio_serial.c @@ -52,8 +52,9 @@ #ifdef DEBUG_SERIAL #define SER_DPRINTF(fmt, args...) \ do { printf("SER: " fmt , ##args); } while (0) -#define pic_set_irq(irq, level) \ -do { printf("SER: set_irq(%d): %d\n", (irq), (level)); pic_set_irq((irq),(level));} while (0) +#define pic_set_irq_new(intctl, irq, level) \ + do { printf("SER: set_irq(%d): %d\n", (irq), (level)); \ + pic_set_irq_new((intctl), (irq),(level));} while (0) #else #define SER_DPRINTF(fmt, args...) #endif @@ -97,6 +98,7 @@ typedef struct ChannelState { uint8_t rx, tx, wregs[16], rregs[16]; SERIOQueue queue; CharDriverState *chr; + void *intctl; } ChannelState; struct SerialState { @@ -164,7 +166,7 @@ static void slavio_serial_update_irq(ChannelState *s) irq = slavio_serial_update_irq_chn(s); irq |= slavio_serial_update_irq_chn(s->otherchn); - pic_set_irq(s->irq, irq); + pic_set_irq_new(s->intctl, s->irq, irq); } static void slavio_serial_reset_chn(ChannelState *s) @@ -545,7 +547,8 @@ static int slavio_serial_load(QEMUFile *f, void *opaque, int version_id) } -SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, CharDriverState *chr2) +SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, + CharDriverState *chr2, void *intctl) { int slavio_serial_io_memory, i; SerialState *s; @@ -564,6 +567,7 @@ SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, CharDr s->chn[i].irq = irq; s->chn[i].chn = 1 - i; s->chn[i].type = ser; + s->chn[i].intctl = intctl; if (s->chn[i].chr) { qemu_chr_add_handlers(s->chn[i].chr, serial_can_receive, serial_receive1, serial_event, &s->chn[i]); @@ -661,7 +665,7 @@ static void sunmouse_event(void *opaque, put_queue(s, 0); } -void slavio_serial_ms_kbd_init(int base, int irq) +void slavio_serial_ms_kbd_init(int base, int irq, void *intctl) { int slavio_serial_io_memory, i; SerialState *s; @@ -673,6 +677,7 @@ void slavio_serial_ms_kbd_init(int base, int irq) s->chn[i].irq = irq; s->chn[i].chn = 1 - i; s->chn[i].chr = NULL; + s->chn[i].intctl = intctl; } s->chn[0].otherchn = &s->chn[1]; s->chn[1].otherchn = &s->chn[0]; |