]>
Commit | Line | Data |
---|---|---|
79383c9c BS |
1 | #ifndef HW_ISA_H |
2 | #define HW_ISA_H | |
f915a115 | 3 | |
87ecb68b PB |
4 | /* ISA bus */ |
5 | ||
32993977 | 6 | #include "ioport.h" |
f915a115 GH |
7 | #include "qdev.h" |
8 | ||
9 | typedef struct ISABus ISABus; | |
10 | typedef struct ISADevice ISADevice; | |
11 | typedef struct ISADeviceInfo ISADeviceInfo; | |
12 | ||
13 | struct ISADevice { | |
14 | DeviceState qdev; | |
2091ba23 | 15 | uint32_t isairq[2]; |
f915a115 | 16 | int nirqs; |
dee41d58 GN |
17 | uint16_t ioports[32]; |
18 | int nioports; | |
f915a115 GH |
19 | }; |
20 | ||
81a322d4 | 21 | typedef int (*isa_qdev_initfn)(ISADevice *dev); |
f915a115 GH |
22 | struct ISADeviceInfo { |
23 | DeviceInfo qdev; | |
24 | isa_qdev_initfn init; | |
25 | }; | |
26 | ||
27 | ISABus *isa_bus_new(DeviceState *dev); | |
2091ba23 | 28 | void isa_bus_irqs(qemu_irq *irqs); |
3a38d437 | 29 | qemu_irq isa_reserve_irq(int isairq); |
2e15e23b | 30 | void isa_init_irq(ISADevice *dev, qemu_irq *p, int isairq); |
dee41d58 GN |
31 | void isa_init_ioport(ISADevice *dev, uint16_t ioport); |
32 | void isa_init_ioport_range(ISADevice *dev, uint16_t start, uint16_t length); | |
f915a115 | 33 | void isa_qdev_register(ISADeviceInfo *info); |
924f6d72 | 34 | ISADevice *isa_create(const char *name); |
2e15e23b | 35 | ISADevice *isa_create_simple(const char *name); |
87ecb68b | 36 | |
c227f099 | 37 | extern target_phys_addr_t isa_mem_base; |
87ecb68b | 38 | |
968d683c | 39 | void isa_mmio_init(target_phys_addr_t base, target_phys_addr_t size); |
87ecb68b PB |
40 | |
41 | /* dma.c */ | |
42 | int DMA_get_channel_mode (int nchan); | |
43 | int DMA_read_memory (int nchan, void *buf, int pos, int size); | |
44 | int DMA_write_memory (int nchan, void *buf, int pos, int size); | |
45 | void DMA_hold_DREQ (int nchan); | |
46 | void DMA_release_DREQ (int nchan); | |
47 | void DMA_schedule(int nchan); | |
4556bd8b | 48 | void DMA_init(int high_page_enable, qemu_irq *cpu_request_exit); |
87ecb68b PB |
49 | void DMA_register_channel (int nchan, |
50 | DMA_transfer_handler transfer_handler, | |
51 | void *opaque); | |
79383c9c | 52 | #endif |