root / hw / ide / pci.h @ 2860e3eb
History | View | Annotate | Download (1.1 kB)
1 | 65c0f135 | Juan Quintela | #ifndef HW_IDE_PCI_H
|
---|---|---|---|
2 | 65c0f135 | Juan Quintela | #define HW_IDE_PCI_H
|
3 | 65c0f135 | Juan Quintela | |
4 | 65c0f135 | Juan Quintela | #include <hw/ide/internal.h> |
5 | 65c0f135 | Juan Quintela | |
6 | 40a6238a | Alexander Graf | typedef struct BMDMAState { |
7 | 40a6238a | Alexander Graf | IDEDMA dma; |
8 | 40a6238a | Alexander Graf | uint8_t cmd; |
9 | 40a6238a | Alexander Graf | uint8_t status; |
10 | 40a6238a | Alexander Graf | uint32_t addr; |
11 | 40a6238a | Alexander Graf | |
12 | 40a6238a | Alexander Graf | IDEBus *bus; |
13 | 40a6238a | Alexander Graf | /* current transfer state */
|
14 | 40a6238a | Alexander Graf | uint32_t cur_addr; |
15 | 40a6238a | Alexander Graf | uint32_t cur_prd_last; |
16 | 40a6238a | Alexander Graf | uint32_t cur_prd_addr; |
17 | 40a6238a | Alexander Graf | uint32_t cur_prd_len; |
18 | 40a6238a | Alexander Graf | uint8_t unit; |
19 | 40a6238a | Alexander Graf | BlockDriverCompletionFunc *dma_cb; |
20 | 40a6238a | Alexander Graf | int64_t sector_num; |
21 | 40a6238a | Alexander Graf | uint32_t nsector; |
22 | 40a6238a | Alexander Graf | IORange addr_ioport; |
23 | 40a6238a | Alexander Graf | QEMUBH *bh; |
24 | 40a6238a | Alexander Graf | qemu_irq irq; |
25 | 40a6238a | Alexander Graf | } BMDMAState; |
26 | 40a6238a | Alexander Graf | |
27 | 65c0f135 | Juan Quintela | typedef struct PCIIDEState { |
28 | 65c0f135 | Juan Quintela | PCIDevice dev; |
29 | 65c0f135 | Juan Quintela | IDEBus bus[2];
|
30 | 65c0f135 | Juan Quintela | BMDMAState bmdma[2];
|
31 | 7e078316 | Juan Quintela | uint32_t secondary; /* used only for cmd646 */
|
32 | 65c0f135 | Juan Quintela | } PCIIDEState; |
33 | 65c0f135 | Juan Quintela | |
34 | 40a6238a | Alexander Graf | |
35 | 40a6238a | Alexander Graf | static inline IDEState *bmdma_active_if(BMDMAState *bmdma) |
36 | 40a6238a | Alexander Graf | { |
37 | 40a6238a | Alexander Graf | assert(bmdma->unit != (uint8_t)-1);
|
38 | 40a6238a | Alexander Graf | return bmdma->bus->ifs + bmdma->unit;
|
39 | 40a6238a | Alexander Graf | } |
40 | 40a6238a | Alexander Graf | |
41 | 40a6238a | Alexander Graf | |
42 | 40a6238a | Alexander Graf | void bmdma_init(IDEBus *bus, BMDMAState *bm);
|
43 | 3e7e1558 | Juan Quintela | void bmdma_cmd_writeb(void *opaque, uint32_t addr, uint32_t val); |
44 | 9fbef1ac | Avi Kivity | extern const IORangeOps bmdma_addr_ioport_ops; |
45 | 3e7e1558 | Juan Quintela | void pci_ide_create_devs(PCIDevice *dev, DriveInfo **hd_table);
|
46 | 407a4f30 | Juan Quintela | |
47 | 407a4f30 | Juan Quintela | extern const VMStateDescription vmstate_ide_pci; |
48 | 65c0f135 | Juan Quintela | #endif |