1*56992670SShlomo Pongratz /* 2*56992670SShlomo Pongratz * ARM Generic Interrupt Controller v3 3*56992670SShlomo Pongratz * 4*56992670SShlomo Pongratz * Copyright (c) 2015 Huawei. 5*56992670SShlomo Pongratz * Copyright (c) 2016 Linaro Limited 6*56992670SShlomo Pongratz * Written by Shlomo Pongratz, Peter Maydell 7*56992670SShlomo Pongratz * 8*56992670SShlomo Pongratz * This code is licensed under the GPL, version 2 or (at your option) 9*56992670SShlomo Pongratz * any later version. 10*56992670SShlomo Pongratz */ 11*56992670SShlomo Pongratz 12*56992670SShlomo Pongratz #ifndef HW_ARM_GICV3_H 13*56992670SShlomo Pongratz #define HW_ARM_GICV3_H 14*56992670SShlomo Pongratz 15*56992670SShlomo Pongratz #include "arm_gicv3_common.h" 16*56992670SShlomo Pongratz 17*56992670SShlomo Pongratz #define TYPE_ARM_GICV3 "arm-gicv3" 18*56992670SShlomo Pongratz #define ARM_GICV3(obj) OBJECT_CHECK(GICv3State, (obj), TYPE_ARM_GICV3) 19*56992670SShlomo Pongratz #define ARM_GICV3_CLASS(klass) \ 20*56992670SShlomo Pongratz OBJECT_CLASS_CHECK(ARMGICv3Class, (klass), TYPE_ARM_GICV3) 21*56992670SShlomo Pongratz #define ARM_GICV3_GET_CLASS(obj) \ 22*56992670SShlomo Pongratz OBJECT_GET_CLASS(ARMGICv3Class, (obj), TYPE_ARM_GICV3) 23*56992670SShlomo Pongratz 24*56992670SShlomo Pongratz typedef struct ARMGICv3Class { 25*56992670SShlomo Pongratz /*< private >*/ 26*56992670SShlomo Pongratz ARMGICv3CommonClass parent_class; 27*56992670SShlomo Pongratz /*< public >*/ 28*56992670SShlomo Pongratz 29*56992670SShlomo Pongratz DeviceRealize parent_realize; 30*56992670SShlomo Pongratz } ARMGICv3Class; 31*56992670SShlomo Pongratz 32*56992670SShlomo Pongratz #endif 33