xref: /qemu/include/hw/pci-host/uninorth.h (revision 5d2eaa02501c9a75a221caa443553d3cc6077cfd)
1*5d2eaa02SMark Cave-Ayland /*
2*5d2eaa02SMark Cave-Ayland  * QEMU Uninorth PCI host (for all Mac99 and newer machines)
3*5d2eaa02SMark Cave-Ayland  *
4*5d2eaa02SMark Cave-Ayland  * Copyright (c) 2006 Fabrice Bellard
5*5d2eaa02SMark Cave-Ayland  *
6*5d2eaa02SMark Cave-Ayland  * Permission is hereby granted, free of charge, to any person obtaining a copy
7*5d2eaa02SMark Cave-Ayland  * of this software and associated documentation files (the "Software"), to deal
8*5d2eaa02SMark Cave-Ayland  * in the Software without restriction, including without limitation the rights
9*5d2eaa02SMark Cave-Ayland  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10*5d2eaa02SMark Cave-Ayland  * copies of the Software, and to permit persons to whom the Software is
11*5d2eaa02SMark Cave-Ayland  * furnished to do so, subject to the following conditions:
12*5d2eaa02SMark Cave-Ayland  *
13*5d2eaa02SMark Cave-Ayland  * The above copyright notice and this permission notice shall be included in
14*5d2eaa02SMark Cave-Ayland  * all copies or substantial portions of the Software.
15*5d2eaa02SMark Cave-Ayland  *
16*5d2eaa02SMark Cave-Ayland  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17*5d2eaa02SMark Cave-Ayland  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18*5d2eaa02SMark Cave-Ayland  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19*5d2eaa02SMark Cave-Ayland  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20*5d2eaa02SMark Cave-Ayland  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21*5d2eaa02SMark Cave-Ayland  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22*5d2eaa02SMark Cave-Ayland  * THE SOFTWARE.
23*5d2eaa02SMark Cave-Ayland  */
24*5d2eaa02SMark Cave-Ayland 
25*5d2eaa02SMark Cave-Ayland #ifndef UNINORTH_H
26*5d2eaa02SMark Cave-Ayland #define UNINORTH_H
27*5d2eaa02SMark Cave-Ayland 
28*5d2eaa02SMark Cave-Ayland #include "hw/hw.h"
29*5d2eaa02SMark Cave-Ayland 
30*5d2eaa02SMark Cave-Ayland #define TYPE_UNI_NORTH_PCI_HOST_BRIDGE "uni-north-pci-pcihost"
31*5d2eaa02SMark Cave-Ayland #define TYPE_UNI_NORTH_AGP_HOST_BRIDGE "uni-north-agp-pcihost"
32*5d2eaa02SMark Cave-Ayland #define TYPE_UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE "uni-north-internal-pci-pcihost"
33*5d2eaa02SMark Cave-Ayland #define TYPE_U3_AGP_HOST_BRIDGE "u3-agp-pcihost"
34*5d2eaa02SMark Cave-Ayland 
35*5d2eaa02SMark Cave-Ayland #define UNI_NORTH_PCI_HOST_BRIDGE(obj) \
36*5d2eaa02SMark Cave-Ayland     OBJECT_CHECK(UNINState, (obj), TYPE_UNI_NORTH_PCI_HOST_BRIDGE)
37*5d2eaa02SMark Cave-Ayland #define UNI_NORTH_AGP_HOST_BRIDGE(obj) \
38*5d2eaa02SMark Cave-Ayland     OBJECT_CHECK(UNINState, (obj), TYPE_UNI_NORTH_AGP_HOST_BRIDGE)
39*5d2eaa02SMark Cave-Ayland #define UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE(obj) \
40*5d2eaa02SMark Cave-Ayland     OBJECT_CHECK(UNINState, (obj), TYPE_UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE)
41*5d2eaa02SMark Cave-Ayland #define U3_AGP_HOST_BRIDGE(obj) \
42*5d2eaa02SMark Cave-Ayland     OBJECT_CHECK(UNINState, (obj), TYPE_U3_AGP_HOST_BRIDGE)
43*5d2eaa02SMark Cave-Ayland 
44*5d2eaa02SMark Cave-Ayland typedef struct UNINState {
45*5d2eaa02SMark Cave-Ayland     PCIHostState parent_obj;
46*5d2eaa02SMark Cave-Ayland 
47*5d2eaa02SMark Cave-Ayland     MemoryRegion pci_mmio;
48*5d2eaa02SMark Cave-Ayland     MemoryRegion pci_hole;
49*5d2eaa02SMark Cave-Ayland } UNINState;
50*5d2eaa02SMark Cave-Ayland 
51*5d2eaa02SMark Cave-Ayland #endif /* UNINORTH_H */
52