15d2eaa02SMark Cave-Ayland /* 25d2eaa02SMark Cave-Ayland * QEMU Uninorth PCI host (for all Mac99 and newer machines) 35d2eaa02SMark Cave-Ayland * 45d2eaa02SMark Cave-Ayland * Copyright (c) 2006 Fabrice Bellard 55d2eaa02SMark Cave-Ayland * 65d2eaa02SMark Cave-Ayland * Permission is hereby granted, free of charge, to any person obtaining a copy 75d2eaa02SMark Cave-Ayland * of this software and associated documentation files (the "Software"), to deal 85d2eaa02SMark Cave-Ayland * in the Software without restriction, including without limitation the rights 95d2eaa02SMark Cave-Ayland * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 105d2eaa02SMark Cave-Ayland * copies of the Software, and to permit persons to whom the Software is 115d2eaa02SMark Cave-Ayland * furnished to do so, subject to the following conditions: 125d2eaa02SMark Cave-Ayland * 135d2eaa02SMark Cave-Ayland * The above copyright notice and this permission notice shall be included in 145d2eaa02SMark Cave-Ayland * all copies or substantial portions of the Software. 155d2eaa02SMark Cave-Ayland * 165d2eaa02SMark Cave-Ayland * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 175d2eaa02SMark Cave-Ayland * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 185d2eaa02SMark Cave-Ayland * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 195d2eaa02SMark Cave-Ayland * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 205d2eaa02SMark Cave-Ayland * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 215d2eaa02SMark Cave-Ayland * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 225d2eaa02SMark Cave-Ayland * THE SOFTWARE. 235d2eaa02SMark Cave-Ayland */ 245d2eaa02SMark Cave-Ayland 255d2eaa02SMark Cave-Ayland #ifndef UNINORTH_H 265d2eaa02SMark Cave-Ayland #define UNINORTH_H 275d2eaa02SMark Cave-Ayland 285d2eaa02SMark Cave-Ayland #include "hw/hw.h" 295d2eaa02SMark Cave-Ayland 30e7755cc1SMark Cave-Ayland #include "hw/ppc/openpic.h" 31e7755cc1SMark Cave-Ayland 325d2eaa02SMark Cave-Ayland #define TYPE_UNI_NORTH_PCI_HOST_BRIDGE "uni-north-pci-pcihost" 335d2eaa02SMark Cave-Ayland #define TYPE_UNI_NORTH_AGP_HOST_BRIDGE "uni-north-agp-pcihost" 345d2eaa02SMark Cave-Ayland #define TYPE_UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE "uni-north-internal-pci-pcihost" 355d2eaa02SMark Cave-Ayland #define TYPE_U3_AGP_HOST_BRIDGE "u3-agp-pcihost" 365d2eaa02SMark Cave-Ayland 375d2eaa02SMark Cave-Ayland #define UNI_NORTH_PCI_HOST_BRIDGE(obj) \ 385d2eaa02SMark Cave-Ayland OBJECT_CHECK(UNINState, (obj), TYPE_UNI_NORTH_PCI_HOST_BRIDGE) 395d2eaa02SMark Cave-Ayland #define UNI_NORTH_AGP_HOST_BRIDGE(obj) \ 405d2eaa02SMark Cave-Ayland OBJECT_CHECK(UNINState, (obj), TYPE_UNI_NORTH_AGP_HOST_BRIDGE) 415d2eaa02SMark Cave-Ayland #define UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE(obj) \ 425d2eaa02SMark Cave-Ayland OBJECT_CHECK(UNINState, (obj), TYPE_UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE) 435d2eaa02SMark Cave-Ayland #define U3_AGP_HOST_BRIDGE(obj) \ 445d2eaa02SMark Cave-Ayland OBJECT_CHECK(UNINState, (obj), TYPE_U3_AGP_HOST_BRIDGE) 455d2eaa02SMark Cave-Ayland 465d2eaa02SMark Cave-Ayland typedef struct UNINState { 475d2eaa02SMark Cave-Ayland PCIHostState parent_obj; 485d2eaa02SMark Cave-Ayland 49e7755cc1SMark Cave-Ayland OpenPICState *pic; 50e7755cc1SMark Cave-Ayland qemu_irq irqs[4]; 515d2eaa02SMark Cave-Ayland MemoryRegion pci_mmio; 525d2eaa02SMark Cave-Ayland MemoryRegion pci_hole; 53*e226efbbSMark Cave-Ayland MemoryRegion pci_io; 545d2eaa02SMark Cave-Ayland } UNINState; 555d2eaa02SMark Cave-Ayland 565d2eaa02SMark Cave-Ayland #endif /* UNINORTH_H */ 57