Commit 52cc07d04774676c69e3998cdb5d10c8f5286072
1 parent
e0353fe2
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
Showing
6 changed files
with
45 additions
and
35 deletions
hw/slavio_intctl.c
@@ -277,7 +277,7 @@ static void slavio_check_interrupts(void *opaque) | @@ -277,7 +277,7 @@ static void slavio_check_interrupts(void *opaque) | ||
277 | * "irq" here is the bit number in the system interrupt register to | 277 | * "irq" here is the bit number in the system interrupt register to |
278 | * separate serial and keyboard interrupts sharing a level. | 278 | * separate serial and keyboard interrupts sharing a level. |
279 | */ | 279 | */ |
280 | -void slavio_pic_set_irq(void *opaque, int irq, int level) | 280 | +void pic_set_irq_new(void *opaque, int irq, int level) |
281 | { | 281 | { |
282 | SLAVIO_INTCTLState *s = opaque; | 282 | SLAVIO_INTCTLState *s = opaque; |
283 | 283 | ||
@@ -299,13 +299,13 @@ void slavio_pic_set_irq(void *opaque, int irq, int level) | @@ -299,13 +299,13 @@ void slavio_pic_set_irq(void *opaque, int irq, int level) | ||
299 | } | 299 | } |
300 | } | 300 | } |
301 | 301 | ||
302 | -void slavio_pic_set_irq_cpu(void *opaque, int irq, int level, unsigned int cpu) | 302 | +void pic_set_irq_cpu(void *opaque, int irq, int level, unsigned int cpu) |
303 | { | 303 | { |
304 | SLAVIO_INTCTLState *s = opaque; | 304 | SLAVIO_INTCTLState *s = opaque; |
305 | 305 | ||
306 | DPRINTF("Set cpu %d local irq %d level %d\n", cpu, irq, level); | 306 | DPRINTF("Set cpu %d local irq %d level %d\n", cpu, irq, level); |
307 | if (cpu == (unsigned int)-1) { | 307 | if (cpu == (unsigned int)-1) { |
308 | - slavio_pic_set_irq(opaque, irq, level); | 308 | + pic_set_irq_new(opaque, irq, level); |
309 | return; | 309 | return; |
310 | } | 310 | } |
311 | if (irq < 32) { | 311 | if (irq < 32) { |
hw/slavio_misc.c
@@ -36,6 +36,9 @@ | @@ -36,6 +36,9 @@ | ||
36 | #ifdef DEBUG_MISC | 36 | #ifdef DEBUG_MISC |
37 | #define MISC_DPRINTF(fmt, args...) \ | 37 | #define MISC_DPRINTF(fmt, args...) \ |
38 | do { printf("MISC: " fmt , ##args); } while (0) | 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 | #else | 42 | #else |
40 | #define MISC_DPRINTF(fmt, args...) | 43 | #define MISC_DPRINTF(fmt, args...) |
41 | #endif | 44 | #endif |
@@ -45,6 +48,7 @@ typedef struct MiscState { | @@ -45,6 +48,7 @@ typedef struct MiscState { | ||
45 | uint8_t config; | 48 | uint8_t config; |
46 | uint8_t aux1, aux2; | 49 | uint8_t aux1, aux2; |
47 | uint8_t diag, mctrl, sysctrl; | 50 | uint8_t diag, mctrl, sysctrl; |
51 | + void *intctl; | ||
48 | } MiscState; | 52 | } MiscState; |
49 | 53 | ||
50 | #define MISC_MAXADDR 1 | 54 | #define MISC_MAXADDR 1 |
@@ -54,9 +58,9 @@ static void slavio_misc_update_irq(void *opaque) | @@ -54,9 +58,9 @@ static void slavio_misc_update_irq(void *opaque) | ||
54 | MiscState *s = opaque; | 58 | MiscState *s = opaque; |
55 | 59 | ||
56 | if ((s->aux2 & 0x4) && (s->config & 0x8)) { | 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 | } else { | 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,7 +211,7 @@ static int slavio_misc_load(QEMUFile *f, void *opaque, int version_id) | @@ -207,7 +211,7 @@ static int slavio_misc_load(QEMUFile *f, void *opaque, int version_id) | ||
207 | return 0; | 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 | int slavio_misc_io_memory; | 216 | int slavio_misc_io_memory; |
213 | MiscState *s; | 217 | MiscState *s; |
@@ -233,6 +237,7 @@ void *slavio_misc_init(uint32_t base, int irq) | @@ -233,6 +237,7 @@ void *slavio_misc_init(uint32_t base, int irq) | ||
233 | cpu_register_physical_memory(base + 0xa000000, MISC_MAXADDR, slavio_misc_io_memory); | 237 | cpu_register_physical_memory(base + 0xa000000, MISC_MAXADDR, slavio_misc_io_memory); |
234 | 238 | ||
235 | s->irq = irq; | 239 | s->irq = irq; |
240 | + s->intctl = intctl; | ||
236 | 241 | ||
237 | register_savevm("slavio_misc", base, 1, slavio_misc_save, slavio_misc_load, s); | 242 | register_savevm("slavio_misc", base, 1, slavio_misc_save, slavio_misc_load, s); |
238 | qemu_register_reset(slavio_misc_reset, s); | 243 | qemu_register_reset(slavio_misc_reset, s); |
hw/slavio_serial.c
@@ -52,8 +52,9 @@ | @@ -52,8 +52,9 @@ | ||
52 | #ifdef DEBUG_SERIAL | 52 | #ifdef DEBUG_SERIAL |
53 | #define SER_DPRINTF(fmt, args...) \ | 53 | #define SER_DPRINTF(fmt, args...) \ |
54 | do { printf("SER: " fmt , ##args); } while (0) | 54 | do { printf("SER: " fmt , ##args); } while (0) |
55 | -#define pic_set_irq(irq, level) \ | ||
56 | -do { printf("SER: set_irq(%d): %d\n", (irq), (level)); pic_set_irq((irq),(level));} while (0) | 55 | +#define pic_set_irq_new(intctl, irq, level) \ |
56 | + do { printf("SER: set_irq(%d): %d\n", (irq), (level)); \ | ||
57 | + pic_set_irq_new((intctl), (irq),(level));} while (0) | ||
57 | #else | 58 | #else |
58 | #define SER_DPRINTF(fmt, args...) | 59 | #define SER_DPRINTF(fmt, args...) |
59 | #endif | 60 | #endif |
@@ -97,6 +98,7 @@ typedef struct ChannelState { | @@ -97,6 +98,7 @@ typedef struct ChannelState { | ||
97 | uint8_t rx, tx, wregs[16], rregs[16]; | 98 | uint8_t rx, tx, wregs[16], rregs[16]; |
98 | SERIOQueue queue; | 99 | SERIOQueue queue; |
99 | CharDriverState *chr; | 100 | CharDriverState *chr; |
101 | + void *intctl; | ||
100 | } ChannelState; | 102 | } ChannelState; |
101 | 103 | ||
102 | struct SerialState { | 104 | struct SerialState { |
@@ -164,7 +166,7 @@ static void slavio_serial_update_irq(ChannelState *s) | @@ -164,7 +166,7 @@ static void slavio_serial_update_irq(ChannelState *s) | ||
164 | irq = slavio_serial_update_irq_chn(s); | 166 | irq = slavio_serial_update_irq_chn(s); |
165 | irq |= slavio_serial_update_irq_chn(s->otherchn); | 167 | irq |= slavio_serial_update_irq_chn(s->otherchn); |
166 | 168 | ||
167 | - pic_set_irq(s->irq, irq); | 169 | + pic_set_irq_new(s->intctl, s->irq, irq); |
168 | } | 170 | } |
169 | 171 | ||
170 | static void slavio_serial_reset_chn(ChannelState *s) | 172 | static void slavio_serial_reset_chn(ChannelState *s) |
@@ -545,7 +547,8 @@ static int slavio_serial_load(QEMUFile *f, void *opaque, int version_id) | @@ -545,7 +547,8 @@ static int slavio_serial_load(QEMUFile *f, void *opaque, int version_id) | ||
545 | 547 | ||
546 | } | 548 | } |
547 | 549 | ||
548 | -SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, CharDriverState *chr2) | 550 | +SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, |
551 | + CharDriverState *chr2, void *intctl) | ||
549 | { | 552 | { |
550 | int slavio_serial_io_memory, i; | 553 | int slavio_serial_io_memory, i; |
551 | SerialState *s; | 554 | SerialState *s; |
@@ -564,6 +567,7 @@ SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, CharDr | @@ -564,6 +567,7 @@ SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, CharDr | ||
564 | s->chn[i].irq = irq; | 567 | s->chn[i].irq = irq; |
565 | s->chn[i].chn = 1 - i; | 568 | s->chn[i].chn = 1 - i; |
566 | s->chn[i].type = ser; | 569 | s->chn[i].type = ser; |
570 | + s->chn[i].intctl = intctl; | ||
567 | if (s->chn[i].chr) { | 571 | if (s->chn[i].chr) { |
568 | qemu_chr_add_handlers(s->chn[i].chr, serial_can_receive, | 572 | qemu_chr_add_handlers(s->chn[i].chr, serial_can_receive, |
569 | serial_receive1, serial_event, &s->chn[i]); | 573 | serial_receive1, serial_event, &s->chn[i]); |
@@ -661,7 +665,7 @@ static void sunmouse_event(void *opaque, | @@ -661,7 +665,7 @@ static void sunmouse_event(void *opaque, | ||
661 | put_queue(s, 0); | 665 | put_queue(s, 0); |
662 | } | 666 | } |
663 | 667 | ||
664 | -void slavio_serial_ms_kbd_init(int base, int irq) | 668 | +void slavio_serial_ms_kbd_init(int base, int irq, void *intctl) |
665 | { | 669 | { |
666 | int slavio_serial_io_memory, i; | 670 | int slavio_serial_io_memory, i; |
667 | SerialState *s; | 671 | SerialState *s; |
@@ -673,6 +677,7 @@ void slavio_serial_ms_kbd_init(int base, int irq) | @@ -673,6 +677,7 @@ void slavio_serial_ms_kbd_init(int base, int irq) | ||
673 | s->chn[i].irq = irq; | 677 | s->chn[i].irq = irq; |
674 | s->chn[i].chn = 1 - i; | 678 | s->chn[i].chn = 1 - i; |
675 | s->chn[i].chr = NULL; | 679 | s->chn[i].chr = NULL; |
680 | + s->chn[i].intctl = intctl; | ||
676 | } | 681 | } |
677 | s->chn[0].otherchn = &s->chn[1]; | 682 | s->chn[0].otherchn = &s->chn[1]; |
678 | s->chn[1].otherchn = &s->chn[0]; | 683 | s->chn[1].otherchn = &s->chn[0]; |
hw/slavio_timer.c
@@ -28,6 +28,9 @@ | @@ -28,6 +28,9 @@ | ||
28 | #ifdef DEBUG_TIMER | 28 | #ifdef DEBUG_TIMER |
29 | #define DPRINTF(fmt, args...) \ | 29 | #define DPRINTF(fmt, args...) \ |
30 | do { printf("TIMER: " fmt , ##args); } while (0) | 30 | do { printf("TIMER: " fmt , ##args); } while (0) |
31 | +#define pic_set_irq_new(intctl, irq, level) \ | ||
32 | + do { printf("TIMER: set_irq(%d): %d\n", (irq), (level)); \ | ||
33 | + pic_set_irq_new((intctl), (irq),(level));} while (0) | ||
31 | #else | 34 | #else |
32 | #define DPRINTF(fmt, args...) | 35 | #define DPRINTF(fmt, args...) |
33 | #endif | 36 | #endif |
@@ -57,6 +60,7 @@ typedef struct SLAVIO_TIMERState { | @@ -57,6 +60,7 @@ typedef struct SLAVIO_TIMERState { | ||
57 | int reached, stopped; | 60 | int reached, stopped; |
58 | int mode; // 0 = processor, 1 = user, 2 = system | 61 | int mode; // 0 = processor, 1 = user, 2 = system |
59 | unsigned int cpu; | 62 | unsigned int cpu; |
63 | + void *intctl; | ||
60 | } SLAVIO_TIMERState; | 64 | } SLAVIO_TIMERState; |
61 | 65 | ||
62 | #define TIMER_MAXADDR 0x1f | 66 | #define TIMER_MAXADDR 0x1f |
@@ -103,7 +107,7 @@ static void slavio_timer_get_out(SLAVIO_TIMERState *s) | @@ -103,7 +107,7 @@ static void slavio_timer_get_out(SLAVIO_TIMERState *s) | ||
103 | DPRINTF("irq %d limit %d reached %d d %" PRId64 " count %d s->c %x diff %" PRId64 " stopped %d mode %d\n", s->irq, limit, s->reached?1:0, (ticks-s->count_load_time), count, s->count, s->expire_time - ticks, s->stopped, s->mode); | 107 | DPRINTF("irq %d limit %d reached %d d %" PRId64 " count %d s->c %x diff %" PRId64 " stopped %d mode %d\n", s->irq, limit, s->reached?1:0, (ticks-s->count_load_time), count, s->count, s->expire_time - ticks, s->stopped, s->mode); |
104 | 108 | ||
105 | if (s->mode != 1) | 109 | if (s->mode != 1) |
106 | - pic_set_irq_cpu(s->irq, out, s->cpu); | 110 | + pic_set_irq_cpu(s->intctl, s->irq, out, s->cpu); |
107 | } | 111 | } |
108 | 112 | ||
109 | // timer callback | 113 | // timer callback |
@@ -130,7 +134,7 @@ static uint32_t slavio_timer_mem_readl(void *opaque, target_phys_addr_t addr) | @@ -130,7 +134,7 @@ static uint32_t slavio_timer_mem_readl(void *opaque, target_phys_addr_t addr) | ||
130 | // part of counter (user mode) | 134 | // part of counter (user mode) |
131 | if (s->mode != 1) { | 135 | if (s->mode != 1) { |
132 | // clear irq | 136 | // clear irq |
133 | - pic_set_irq_cpu(s->irq, 0, s->cpu); | 137 | + pic_set_irq_cpu(s->intctl, s->irq, 0, s->cpu); |
134 | s->reached = 0; | 138 | s->reached = 0; |
135 | return s->limit; | 139 | return s->limit; |
136 | } | 140 | } |
@@ -265,7 +269,8 @@ static void slavio_timer_reset(void *opaque) | @@ -265,7 +269,8 @@ static void slavio_timer_reset(void *opaque) | ||
265 | slavio_timer_get_out(s); | 269 | slavio_timer_get_out(s); |
266 | } | 270 | } |
267 | 271 | ||
268 | -void slavio_timer_init(uint32_t addr, int irq, int mode, unsigned int cpu) | 272 | +void slavio_timer_init(uint32_t addr, int irq, int mode, unsigned int cpu, |
273 | + void *intctl) | ||
269 | { | 274 | { |
270 | int slavio_timer_io_memory; | 275 | int slavio_timer_io_memory; |
271 | SLAVIO_TIMERState *s; | 276 | SLAVIO_TIMERState *s; |
@@ -277,6 +282,7 @@ void slavio_timer_init(uint32_t addr, int irq, int mode, unsigned int cpu) | @@ -277,6 +282,7 @@ void slavio_timer_init(uint32_t addr, int irq, int mode, unsigned int cpu) | ||
277 | s->mode = mode; | 282 | s->mode = mode; |
278 | s->cpu = cpu; | 283 | s->cpu = cpu; |
279 | s->irq_timer = qemu_new_timer(vm_clock, slavio_timer_irq, s); | 284 | s->irq_timer = qemu_new_timer(vm_clock, slavio_timer_irq, s); |
285 | + s->intctl = intctl; | ||
280 | 286 | ||
281 | slavio_timer_io_memory = cpu_register_io_memory(0, slavio_timer_mem_read, | 287 | slavio_timer_io_memory = cpu_register_io_memory(0, slavio_timer_mem_read, |
282 | slavio_timer_mem_write, s); | 288 | slavio_timer_mem_write, s); |
hw/sun4m.c
@@ -184,17 +184,7 @@ void irq_info() | @@ -184,17 +184,7 @@ void irq_info() | ||
184 | 184 | ||
185 | void pic_set_irq(int irq, int level) | 185 | void pic_set_irq(int irq, int level) |
186 | { | 186 | { |
187 | - slavio_pic_set_irq(slavio_intctl, irq, level); | ||
188 | -} | ||
189 | - | ||
190 | -void pic_set_irq_new(void *opaque, int irq, int level) | ||
191 | -{ | ||
192 | - pic_set_irq(irq, level); | ||
193 | -} | ||
194 | - | ||
195 | -void pic_set_irq_cpu(int irq, int level, unsigned int cpu) | ||
196 | -{ | ||
197 | - slavio_pic_set_irq_cpu(slavio_intctl, irq, level, cpu); | 187 | + pic_set_irq_new(slavio_intctl, irq, level); |
198 | } | 188 | } |
199 | 189 | ||
200 | static void *slavio_misc; | 190 | static void *slavio_misc; |
@@ -261,15 +251,16 @@ static void sun4m_hw_init(const struct hwdef *hwdef, int ram_size, | @@ -261,15 +251,16 @@ static void sun4m_hw_init(const struct hwdef *hwdef, int ram_size, | ||
261 | nvram = m48t59_init(0, hwdef->nvram_base, 0, hwdef->nvram_size, 8); | 251 | nvram = m48t59_init(0, hwdef->nvram_base, 0, hwdef->nvram_size, 8); |
262 | for (i = 0; i < MAX_CPUS; i++) { | 252 | for (i = 0; i < MAX_CPUS; i++) { |
263 | slavio_timer_init(hwdef->counter_base + i * TARGET_PAGE_SIZE, | 253 | slavio_timer_init(hwdef->counter_base + i * TARGET_PAGE_SIZE, |
264 | - hwdef->clock_irq, 0, i); | 254 | + hwdef->clock_irq, 0, i, slavio_intctl); |
265 | } | 255 | } |
266 | slavio_timer_init(hwdef->counter_base + 0x10000, hwdef->clock1_irq, 2, | 256 | slavio_timer_init(hwdef->counter_base + 0x10000, hwdef->clock1_irq, 2, |
267 | - (unsigned int)-1); | ||
268 | - slavio_serial_ms_kbd_init(hwdef->ms_kb_base, hwdef->ms_kb_irq); | 257 | + (unsigned int)-1, slavio_intctl); |
258 | + slavio_serial_ms_kbd_init(hwdef->ms_kb_base, hwdef->ms_kb_irq, | ||
259 | + slavio_intctl); | ||
269 | // Slavio TTYA (base+4, Linux ttyS0) is the first Qemu serial device | 260 | // Slavio TTYA (base+4, Linux ttyS0) is the first Qemu serial device |
270 | // Slavio TTYB (base+0, Linux ttyS1) is the second Qemu serial device | 261 | // Slavio TTYB (base+0, Linux ttyS1) is the second Qemu serial device |
271 | slavio_serial_init(hwdef->serial_base, hwdef->ser_irq, | 262 | slavio_serial_init(hwdef->serial_base, hwdef->ser_irq, |
272 | - serial_hds[1], serial_hds[0]); | 263 | + serial_hds[1], serial_hds[0], slavio_intctl); |
273 | fdctrl_init(hwdef->fd_irq, 0, 1, hwdef->fd_base, fd_table); | 264 | fdctrl_init(hwdef->fd_irq, 0, 1, hwdef->fd_base, fd_table); |
274 | main_esp = esp_init(bs_table, hwdef->esp_base, dma); | 265 | main_esp = esp_init(bs_table, hwdef->esp_base, dma); |
275 | 266 | ||
@@ -279,7 +270,8 @@ static void sun4m_hw_init(const struct hwdef *hwdef, int ram_size, | @@ -279,7 +270,8 @@ static void sun4m_hw_init(const struct hwdef *hwdef, int ram_size, | ||
279 | } | 270 | } |
280 | } | 271 | } |
281 | 272 | ||
282 | - slavio_misc = slavio_misc_init(hwdef->slavio_base, hwdef->me_irq); | 273 | + slavio_misc = slavio_misc_init(hwdef->slavio_base, hwdef->me_irq, |
274 | + slavio_intctl); | ||
283 | cs_init(hwdef->cs_base, hwdef->cs_irq, slavio_intctl); | 275 | cs_init(hwdef->cs_base, hwdef->cs_irq, slavio_intctl); |
284 | sparc32_dma_set_reset_data(dma, main_esp, main_lance); | 276 | sparc32_dma_set_reset_data(dma, main_esp, main_lance); |
285 | } | 277 | } |
vl.h
@@ -1144,7 +1144,6 @@ void PPC_debug_write (void *opaque, uint32_t addr, uint32_t val); | @@ -1144,7 +1144,6 @@ void PPC_debug_write (void *opaque, uint32_t addr, uint32_t val); | ||
1144 | 1144 | ||
1145 | /* sun4m.c */ | 1145 | /* sun4m.c */ |
1146 | extern QEMUMachine ss5_machine, ss10_machine; | 1146 | extern QEMUMachine ss5_machine, ss10_machine; |
1147 | -void pic_set_irq_cpu(int irq, int level, unsigned int cpu); | ||
1148 | 1147 | ||
1149 | /* iommu.c */ | 1148 | /* iommu.c */ |
1150 | void *iommu_init(uint32_t addr); | 1149 | void *iommu_init(uint32_t addr); |
@@ -1169,6 +1168,7 @@ void tcx_init(DisplayState *ds, uint32_t addr, uint8_t *vram_base, | @@ -1169,6 +1168,7 @@ void tcx_init(DisplayState *ds, uint32_t addr, uint8_t *vram_base, | ||
1169 | unsigned long vram_offset, int vram_size, int width, int height); | 1168 | unsigned long vram_offset, int vram_size, int width, int height); |
1170 | 1169 | ||
1171 | /* slavio_intctl.c */ | 1170 | /* slavio_intctl.c */ |
1171 | +void pic_set_irq_cpu(void *opaque, int irq, int level, unsigned int cpu); | ||
1172 | void *slavio_intctl_init(uint32_t addr, uint32_t addrg, | 1172 | void *slavio_intctl_init(uint32_t addr, uint32_t addrg, |
1173 | const uint32_t *intbit_to_level); | 1173 | const uint32_t *intbit_to_level); |
1174 | void slavio_intctl_set_cpu(void *opaque, unsigned int cpu, CPUState *env); | 1174 | void slavio_intctl_set_cpu(void *opaque, unsigned int cpu, CPUState *env); |
@@ -1185,14 +1185,16 @@ int load_aout(const char *filename, uint8_t *addr); | @@ -1185,14 +1185,16 @@ int load_aout(const char *filename, uint8_t *addr); | ||
1185 | int load_uboot(const char *filename, target_ulong *ep, int *is_linux); | 1185 | int load_uboot(const char *filename, target_ulong *ep, int *is_linux); |
1186 | 1186 | ||
1187 | /* slavio_timer.c */ | 1187 | /* slavio_timer.c */ |
1188 | -void slavio_timer_init(uint32_t addr, int irq, int mode, unsigned int cpu); | 1188 | +void slavio_timer_init(uint32_t addr, int irq, int mode, unsigned int cpu, |
1189 | + void *intctl); | ||
1189 | 1190 | ||
1190 | /* slavio_serial.c */ | 1191 | /* slavio_serial.c */ |
1191 | -SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, CharDriverState *chr2); | ||
1192 | -void slavio_serial_ms_kbd_init(int base, int irq); | 1192 | +SerialState *slavio_serial_init(int base, int irq, CharDriverState *chr1, |
1193 | + CharDriverState *chr2, void *intctl); | ||
1194 | +void slavio_serial_ms_kbd_init(int base, int irq, void *intctl); | ||
1193 | 1195 | ||
1194 | /* slavio_misc.c */ | 1196 | /* slavio_misc.c */ |
1195 | -void *slavio_misc_init(uint32_t base, int irq); | 1197 | +void *slavio_misc_init(uint32_t base, int irq, void *intctl); |
1196 | void slavio_set_power_fail(void *opaque, int power_failing); | 1198 | void slavio_set_power_fail(void *opaque, int power_failing); |
1197 | 1199 | ||
1198 | /* esp.c */ | 1200 | /* esp.c */ |