Revision 7d977de7
b/hw/dma.c | ||
---|---|---|
78 | 78 |
|
79 | 79 |
}; |
80 | 80 |
|
81 |
static void write_page (CPUState *env, uint32_t nport, uint32_t data)
|
|
81 |
static void write_page (void *opaque, uint32_t nport, uint32_t data)
|
|
82 | 82 |
{ |
83 | 83 |
int ichan; |
84 | 84 |
int ncont; |
... | ... | |
113 | 113 |
return ff; |
114 | 114 |
} |
115 | 115 |
|
116 |
static uint32_t read_chan (CPUState *env, uint32_t nport)
|
|
116 |
static uint32_t read_chan (void *opaque, uint32_t nport)
|
|
117 | 117 |
{ |
118 | 118 |
int ff; |
119 | 119 |
int ncont, ichan, nreg; |
... | ... | |
135 | 135 |
return (val >> (ncont + (ff << 3))) & 0xff; |
136 | 136 |
} |
137 | 137 |
|
138 |
static void write_chan (CPUState *env, uint32_t nport, uint32_t data)
|
|
138 |
static void write_chan (void *opaque, uint32_t nport, uint32_t data)
|
|
139 | 139 |
{ |
140 | 140 |
int ncont, ichan, nreg; |
141 | 141 |
struct dma_regs *r; |
... | ... | |
153 | 153 |
} |
154 | 154 |
} |
155 | 155 |
|
156 |
static void write_cont (CPUState *env, uint32_t nport, uint32_t data)
|
|
156 |
static void write_cont (void *opaque, uint32_t nport, uint32_t data)
|
|
157 | 157 |
{ |
158 | 158 |
int iport, ichan, ncont; |
159 | 159 |
struct dma_cont *d; |
... | ... | |
345 | 345 |
int page_port_list[] = { 0x1, 0x2, 0x3, 0x7 }; |
346 | 346 |
|
347 | 347 |
for (i = 0; i < 8; i++) { |
348 |
register_ioport_write (i, 1, write_chan, 1);
|
|
348 |
register_ioport_write (i, 1, 1, write_chan, NULL);
|
|
349 | 349 |
|
350 |
register_ioport_write (0xc0 + (i << 1), 1, write_chan, 1);
|
|
350 |
register_ioport_write (0xc0 + (i << 1), 1, 1, write_chan, NULL);
|
|
351 | 351 |
|
352 |
register_ioport_read (i, 1, read_chan, 1);
|
|
353 |
register_ioport_read (0xc0 + (i << 1), 1, read_chan, 1);
|
|
352 |
register_ioport_read (i, 1, 1, read_chan, NULL);
|
|
353 |
register_ioport_read (0xc0 + (i << 1), 1, 1, read_chan, NULL);
|
|
354 | 354 |
} |
355 | 355 |
|
356 | 356 |
for (i = 0; i < LENOFA (page_port_list); i++) { |
357 |
register_ioport_write (page_port_list[i] + 0x80, 1, write_page, 1);
|
|
358 |
register_ioport_write (page_port_list[i] + 0x88, 1, write_page, 1);
|
|
357 |
register_ioport_write (page_port_list[i] + 0x80, 1, 1, write_page, NULL);
|
|
358 |
register_ioport_write (page_port_list[i] + 0x88, 1, 1, write_page, NULL);
|
|
359 | 359 |
} |
360 | 360 |
|
361 | 361 |
for (i = 0; i < 8; i++) { |
362 |
register_ioport_write (i + 8, 1, write_cont, 1);
|
|
363 |
register_ioport_write (0xd0 + (i << 1), 1, write_cont, 1);
|
|
362 |
register_ioport_write (i + 8, 1, 1, write_cont, NULL);
|
|
363 |
register_ioport_write (0xd0 + (i << 1), 1, 1, write_cont, NULL);
|
|
364 | 364 |
} |
365 | 365 |
|
366 | 366 |
write_cont (NULL, 0x0d, 0); |
b/hw/sb16.c | ||
---|---|---|
50 | 50 |
#endif |
51 | 51 |
|
52 | 52 |
#define IO_READ_PROTO(name) \ |
53 |
uint32_t name (struct CPUState *env, uint32_t nport)
|
|
53 |
uint32_t name (void *opaque, uint32_t nport)
|
|
54 | 54 |
#define IO_WRITE_PROTO(name) \ |
55 |
void name (struct CPUState *env, uint32_t nport, uint32_t val)
|
|
55 |
void name (void *opaque, uint32_t nport, uint32_t val)
|
|
56 | 56 |
|
57 | 57 |
static struct { |
58 | 58 |
int ver_lo; |
... | ... | |
550 | 550 |
|
551 | 551 |
static IO_WRITE_PROTO(mixer_write_indexw) |
552 | 552 |
{ |
553 |
mixer_write_indexb (env, nport, val & 0xff);
|
|
554 |
mixer_write_datab (env, nport, (val >> 8) & 0xff);
|
|
553 |
mixer_write_indexb (opaque, nport, val & 0xff);
|
|
554 |
mixer_write_datab (opaque, nport, (val >> 8) & 0xff);
|
|
555 | 555 |
} |
556 | 556 |
|
557 | 557 |
static IO_READ_PROTO(mixer_read) |
... | ... | |
718 | 718 |
} |
719 | 719 |
|
720 | 720 |
for (i = 0; i < LENOFA (dsp_write_ports); i++) { |
721 |
register_ioport_write (sb.port + dsp_write_ports[i], 1, dsp_write, 1);
|
|
721 |
register_ioport_write (sb.port + dsp_write_ports[i], 1, 1, dsp_write, NULL);
|
|
722 | 722 |
} |
723 | 723 |
|
724 | 724 |
for (i = 0; i < LENOFA (dsp_read_ports); i++) { |
725 |
register_ioport_read (sb.port + dsp_read_ports[i], 1, dsp_read, 1);
|
|
725 |
register_ioport_read (sb.port + dsp_read_ports[i], 1, 1, dsp_read, NULL);
|
|
726 | 726 |
} |
727 | 727 |
|
728 |
register_ioport_write (sb.port + 0x4, 1, mixer_write_indexb, 1);
|
|
729 |
register_ioport_write (sb.port + 0x4, 1, mixer_write_indexw, 2);
|
|
730 |
register_ioport_read (sb.port + 0x5, 1, mixer_read, 1);
|
|
731 |
register_ioport_write (sb.port + 0x5, 1, mixer_write_datab, 1);
|
|
728 |
register_ioport_write (sb.port + 0x4, 1, 1, mixer_write_indexb, NULL);
|
|
729 |
register_ioport_write (sb.port + 0x4, 1, 2, mixer_write_indexw, NULL);
|
|
730 |
register_ioport_read (sb.port + 0x5, 1, 1, mixer_read, NULL);
|
|
731 |
register_ioport_write (sb.port + 0x5, 1, 1, mixer_write_datab, NULL);
|
|
732 | 732 |
|
733 | 733 |
DMA_register_channel (sb.hdma, SB_read_DMA, NULL); |
734 | 734 |
DMA_register_channel (sb.dma, SB_read_DMA, NULL); |
Also available in: Unified diff