1 /* 2 * QEMU i440FX North Bridge Emulation 3 * 4 * Copyright (c) 2006 Fabrice Bellard 5 * 6 * This work is licensed under the terms of the GNU GPL, version 2 or later. 7 * See the COPYING file in the top-level directory. 8 * 9 */ 10 11 #ifndef HW_PCI_I440FX_H 12 #define HW_PCI_I440FX_H 13 14 #include "hw/hw.h" 15 #include "hw/pci/pci_bus.h" 16 #include "hw/pci-host/pam.h" 17 18 #define TYPE_I440FX_PCI_HOST_BRIDGE "i440FX-pcihost" 19 #define TYPE_I440FX_PCI_DEVICE "i440FX" 20 21 #define I440FX_PCI_DEVICE(obj) \ 22 OBJECT_CHECK(PCII440FXState, (obj), TYPE_I440FX_PCI_DEVICE) 23 24 typedef struct PCII440FXState { 25 /*< private >*/ 26 PCIDevice parent_obj; 27 /*< public >*/ 28 29 MemoryRegion *system_memory; 30 MemoryRegion *pci_address_space; 31 MemoryRegion *ram_memory; 32 PAMMemoryRegion pam_regions[13]; 33 MemoryRegion smram_region; 34 MemoryRegion smram, low_smram; 35 } PCII440FXState; 36 37 #define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "igd-passthrough-i440FX" 38 39 PCIBus *i440fx_init(const char *host_type, const char *pci_type, 40 PCII440FXState **pi440fx_state, 41 MemoryRegion *address_space_mem, 42 MemoryRegion *address_space_io, 43 ram_addr_t ram_size, 44 ram_addr_t below_4g_mem_size, 45 ram_addr_t above_4g_mem_size, 46 MemoryRegion *pci_memory, 47 MemoryRegion *ram_memory); 48 49 PCIBus *find_i440fx(void); 50 51 #endif 52