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/pci/pci_bus.h" 15 #include "hw/pci-host/pam.h" 16 #include "qom/object.h" 17 18 #define TYPE_I440FX_PCI_HOST_BRIDGE "i440FX-pcihost" 19 #define TYPE_I440FX_PCI_DEVICE "i440FX" 20 21 OBJECT_DECLARE_SIMPLE_TYPE(PCII440FXState, I440FX_PCI_DEVICE) 22 23 struct PCII440FXState { 24 /*< private >*/ 25 PCIDevice parent_obj; 26 /*< public >*/ 27 28 MemoryRegion *system_memory; 29 MemoryRegion *pci_address_space; 30 MemoryRegion *ram_memory; 31 PAMMemoryRegion pam_regions[PAM_REGIONS_COUNT]; 32 MemoryRegion smram_region; 33 MemoryRegion smram, low_smram; 34 }; 35 36 #define TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE "igd-passthrough-i440FX" 37 38 PCIBus *i440fx_init(const char *host_type, const char *pci_type, 39 PCII440FXState **pi440fx_state, 40 MemoryRegion *address_space_mem, 41 MemoryRegion *address_space_io, 42 ram_addr_t ram_size, 43 ram_addr_t below_4g_mem_size, 44 ram_addr_t above_4g_mem_size, 45 MemoryRegion *pci_memory, 46 MemoryRegion *ram_memory); 47 48 PCIBus *find_i440fx(void); 49 50 #endif 51