/* Alpha cores and system support chips.  */

#ifndef HW_ALPHA_H
#define HW_ALPHA_H 1

#include "pci.h"
#include "pci_host.h"
#include "ide.h"
#include "net.h"
#include "pc.h"
#include "usb-ohci.h"
#include "irq.h"


PCIBus *typhoon_init(ram_addr_t, qemu_irq *, CPUState *[4], pci_map_irq_fn);

/* alpha_pci.c.  */
extern const MemoryRegionOps alpha_pci_bw_io_ops;
extern const MemoryRegionOps alpha_pci_conf1_ops;
extern const MemoryRegionOps alpha_pci_iack_ops;

void alpha_pci_vga_setup(PCIBus *pci_bus);

#endif
