Revision 90228ee3
b/hw/ide/cmd646.c | ||
---|---|---|
70 | 70 |
|
71 | 71 |
static PCIIDEState *pci_from_bm(BMDMAState *bm) |
72 | 72 |
{ |
73 |
if (bm->unit == 0) { |
|
74 |
return container_of(bm, PCIIDEState, bmdma[0]); |
|
75 |
} else { |
|
76 |
return container_of(bm, PCIIDEState, bmdma[1]); |
|
77 |
} |
|
73 |
return bm->pci_dev; |
|
78 | 74 |
} |
79 | 75 |
|
80 | 76 |
static uint32_t bmdma_readb(void *opaque, uint32_t addr) |
... | ... | |
145 | 141 |
BMDMAState *bm = &d->bmdma[i]; |
146 | 142 |
d->bus[i].bmdma = bm; |
147 | 143 |
bm->bus = d->bus+i; |
144 |
bm->pci_dev = d; |
|
148 | 145 |
qemu_add_vm_change_state_handler(ide_dma_restart_cb, bm); |
149 | 146 |
|
150 | 147 |
register_ioport_write(addr, 1, 1, bmdma_cmd_writeb, bm); |
b/hw/ide/internal.h | ||
---|---|---|
474 | 474 |
uint8_t status; |
475 | 475 |
uint32_t addr; |
476 | 476 |
|
477 |
struct PCIIDEState *pci_dev; |
|
477 | 478 |
IDEBus *bus; |
478 | 479 |
/* current transfer state */ |
479 | 480 |
uint32_t cur_addr; |
b/hw/ide/piix.c | ||
---|---|---|
78 | 78 |
BMDMAState *bm = &d->bmdma[i]; |
79 | 79 |
d->bus[i].bmdma = bm; |
80 | 80 |
bm->bus = d->bus+i; |
81 |
bm->pci_dev = d; |
|
81 | 82 |
qemu_add_vm_change_state_handler(ide_dma_restart_cb, bm); |
82 | 83 |
|
83 | 84 |
register_ioport_write(addr, 1, 1, bmdma_cmd_writeb, bm); |
Also available in: Unified diff