xref: /qemu/include/hw/intc/arm_gicv3.h (revision db1015e92e04835c9eb50c29625fe566d1202dbd)
156992670SShlomo Pongratz /*
256992670SShlomo Pongratz  * ARM Generic Interrupt Controller v3
356992670SShlomo Pongratz  *
456992670SShlomo Pongratz  * Copyright (c) 2015 Huawei.
556992670SShlomo Pongratz  * Copyright (c) 2016 Linaro Limited
656992670SShlomo Pongratz  * Written by Shlomo Pongratz, Peter Maydell
756992670SShlomo Pongratz  *
856992670SShlomo Pongratz  * This code is licensed under the GPL, version 2 or (at your option)
956992670SShlomo Pongratz  * any later version.
1056992670SShlomo Pongratz  */
1156992670SShlomo Pongratz 
1256992670SShlomo Pongratz #ifndef HW_ARM_GICV3_H
1356992670SShlomo Pongratz #define HW_ARM_GICV3_H
1456992670SShlomo Pongratz 
1556992670SShlomo Pongratz #include "arm_gicv3_common.h"
16*db1015e9SEduardo Habkost #include "qom/object.h"
1756992670SShlomo Pongratz 
1856992670SShlomo Pongratz #define TYPE_ARM_GICV3 "arm-gicv3"
19*db1015e9SEduardo Habkost typedef struct ARMGICv3Class ARMGICv3Class;
2056992670SShlomo Pongratz #define ARM_GICV3(obj) OBJECT_CHECK(GICv3State, (obj), TYPE_ARM_GICV3)
2156992670SShlomo Pongratz #define ARM_GICV3_CLASS(klass) \
2256992670SShlomo Pongratz      OBJECT_CLASS_CHECK(ARMGICv3Class, (klass), TYPE_ARM_GICV3)
2356992670SShlomo Pongratz #define ARM_GICV3_GET_CLASS(obj) \
2456992670SShlomo Pongratz      OBJECT_GET_CLASS(ARMGICv3Class, (obj), TYPE_ARM_GICV3)
2556992670SShlomo Pongratz 
26*db1015e9SEduardo Habkost struct ARMGICv3Class {
2756992670SShlomo Pongratz     /*< private >*/
2856992670SShlomo Pongratz     ARMGICv3CommonClass parent_class;
2956992670SShlomo Pongratz     /*< public >*/
3056992670SShlomo Pongratz 
3156992670SShlomo Pongratz     DeviceRealize parent_realize;
32*db1015e9SEduardo Habkost };
3356992670SShlomo Pongratz 
3456992670SShlomo Pongratz #endif
35