xref: /openbmc/qemu/include/hw/intc/arm_gic.h (revision 83728796ad3f2ce7d6162c1cb894528b12915646)
1*83728796SAndreas Färber /*
2*83728796SAndreas Färber  * ARM GIC support
3*83728796SAndreas Färber  *
4*83728796SAndreas Färber  * Copyright (c) 2012 Linaro Limited
5*83728796SAndreas Färber  * Written by Peter Maydell
6*83728796SAndreas Färber  *
7*83728796SAndreas Färber  * This program is free software; you can redistribute it and/or modify
8*83728796SAndreas Färber  * it under the terms of the GNU General Public License as published by
9*83728796SAndreas Färber  * the Free Software Foundation, either version 2 of the License, or
10*83728796SAndreas Färber  * (at your option) any later version.
11*83728796SAndreas Färber  *
12*83728796SAndreas Färber  * This program is distributed in the hope that it will be useful,
13*83728796SAndreas Färber  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14*83728796SAndreas Färber  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*83728796SAndreas Färber  * GNU General Public License for more details.
16*83728796SAndreas Färber  *
17*83728796SAndreas Färber  * You should have received a copy of the GNU General Public License along
18*83728796SAndreas Färber  * with this program; if not, see <http://www.gnu.org/licenses/>.
19*83728796SAndreas Färber  */
20*83728796SAndreas Färber 
21*83728796SAndreas Färber #ifndef HW_ARM_GIC_H
22*83728796SAndreas Färber #define HW_ARM_GIC_H
23*83728796SAndreas Färber 
24*83728796SAndreas Färber #include "arm_gic_common.h"
25*83728796SAndreas Färber 
26*83728796SAndreas Färber #define TYPE_ARM_GIC "arm_gic"
27*83728796SAndreas Färber #define ARM_GIC(obj) \
28*83728796SAndreas Färber      OBJECT_CHECK(GICState, (obj), TYPE_ARM_GIC)
29*83728796SAndreas Färber #define ARM_GIC_CLASS(klass) \
30*83728796SAndreas Färber      OBJECT_CLASS_CHECK(ARMGICClass, (klass), TYPE_ARM_GIC)
31*83728796SAndreas Färber #define ARM_GIC_GET_CLASS(obj) \
32*83728796SAndreas Färber      OBJECT_GET_CLASS(ARMGICClass, (obj), TYPE_ARM_GIC)
33*83728796SAndreas Färber 
34*83728796SAndreas Färber typedef struct ARMGICClass {
35*83728796SAndreas Färber     /*< private >*/
36*83728796SAndreas Färber     ARMGICCommonClass parent_class;
37*83728796SAndreas Färber     /*< public >*/
38*83728796SAndreas Färber 
39*83728796SAndreas Färber     DeviceRealize parent_realize;
40*83728796SAndreas Färber } ARMGICClass;
41*83728796SAndreas Färber 
42*83728796SAndreas Färber #endif
43