qemu/hw/isa.h
<<
>>
Prefs
   1#ifndef HW_ISA_H
   2#define HW_ISA_H
   3
   4/* ISA bus */
   5
   6#include "ioport.h"
   7#include "qdev.h"
   8
   9typedef struct ISABus ISABus;
  10typedef struct ISADevice ISADevice;
  11typedef struct ISADeviceInfo ISADeviceInfo;
  12
  13struct ISADevice {
  14    DeviceState qdev;
  15    uint32_t isairq[2];
  16    int nirqs;
  17};
  18
  19typedef int (*isa_qdev_initfn)(ISADevice *dev);
  20struct ISADeviceInfo {
  21    DeviceInfo qdev;
  22    isa_qdev_initfn init;
  23};
  24
  25ISABus *isa_bus_new(DeviceState *dev);
  26void isa_bus_irqs(qemu_irq *irqs);
  27qemu_irq isa_reserve_irq(int isairq);
  28void isa_init_irq(ISADevice *dev, qemu_irq *p, int isairq);
  29void isa_qdev_register(ISADeviceInfo *info);
  30ISADevice *isa_create(const char *name);
  31ISADevice *isa_create_simple(const char *name);
  32
  33extern target_phys_addr_t isa_mem_base;
  34
  35void isa_mmio_init(target_phys_addr_t base, target_phys_addr_t size, int be);
  36
  37/* dma.c */
  38int DMA_get_channel_mode (int nchan);
  39int DMA_read_memory (int nchan, void *buf, int pos, int size);
  40int DMA_write_memory (int nchan, void *buf, int pos, int size);
  41void DMA_hold_DREQ (int nchan);
  42void DMA_release_DREQ (int nchan);
  43void DMA_schedule(int nchan);
  44void DMA_init(int high_page_enable, qemu_irq *cpu_request_exit);
  45void DMA_register_channel (int nchan,
  46                           DMA_transfer_handler transfer_handler,
  47                           void *opaque);
  48#endif
  49