Revision 52cc07d0 hw/slavio_misc.c

b/hw/slavio_misc.c
36 36
#ifdef DEBUG_MISC
37 37
#define MISC_DPRINTF(fmt, args...) \
38 38
do { printf("MISC: " fmt , ##args); } while (0)
39
#define pic_set_irq_new(intctl, irq, level)                             \
40
    do { printf("MISC: set_irq(%d): %d\n", (irq), (level));             \
41
        pic_set_irq_new((intctl), (irq),(level));} while (0)
39 42
#else
40 43
#define MISC_DPRINTF(fmt, args...)
41 44
#endif
......
45 48
    uint8_t config;
46 49
    uint8_t aux1, aux2;
47 50
    uint8_t diag, mctrl, sysctrl;
51
    void *intctl;
48 52
} MiscState;
49 53

  
50 54
#define MISC_MAXADDR 1
......
54 58
    MiscState *s = opaque;
55 59

  
56 60
    if ((s->aux2 & 0x4) && (s->config & 0x8)) {
57
        pic_set_irq(s->irq, 1);
61
        pic_set_irq_new(s->intctl, s->irq, 1);
58 62
    } else {
59
        pic_set_irq(s->irq, 0);
63
        pic_set_irq_new(s->intctl, s->irq, 0);
60 64
    }
61 65
}
62 66

  
......
207 211
    return 0;
208 212
}
209 213

  
210
void *slavio_misc_init(uint32_t base, int irq)
214
void *slavio_misc_init(uint32_t base, int irq, void *intctl)
211 215
{
212 216
    int slavio_misc_io_memory;
213 217
    MiscState *s;
......
233 237
    cpu_register_physical_memory(base + 0xa000000, MISC_MAXADDR, slavio_misc_io_memory);
234 238

  
235 239
    s->irq = irq;
240
    s->intctl = intctl;
236 241

  
237 242
    register_savevm("slavio_misc", base, 1, slavio_misc_save, slavio_misc_load, s);
238 243
    qemu_register_reset(slavio_misc_reset, s);

Also available in: Unified diff