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