183728796SAndreas Färber /* 283728796SAndreas Färber * ARM GIC support 383728796SAndreas Färber * 483728796SAndreas Färber * Copyright (c) 2012 Linaro Limited 583728796SAndreas Färber * Written by Peter Maydell 683728796SAndreas Färber * 783728796SAndreas Färber * This program is free software; you can redistribute it and/or modify 883728796SAndreas Färber * it under the terms of the GNU General Public License as published by 983728796SAndreas Färber * the Free Software Foundation, either version 2 of the License, or 1083728796SAndreas Färber * (at your option) any later version. 1183728796SAndreas Färber * 1283728796SAndreas Färber * This program is distributed in the hope that it will be useful, 1383728796SAndreas Färber * but WITHOUT ANY WARRANTY; without even the implied warranty of 1483728796SAndreas Färber * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1583728796SAndreas Färber * GNU General Public License for more details. 1683728796SAndreas Färber * 1783728796SAndreas Färber * You should have received a copy of the GNU General Public License along 1883728796SAndreas Färber * with this program; if not, see <http://www.gnu.org/licenses/>. 1983728796SAndreas Färber */ 2083728796SAndreas Färber 2183728796SAndreas Färber #ifndef HW_ARM_GIC_H 2283728796SAndreas Färber #define HW_ARM_GIC_H 2383728796SAndreas Färber 2483728796SAndreas Färber #include "arm_gic_common.h" 2583728796SAndreas Färber 26*c8efd802SAndrew Jones /* Number of SGI target-list bits */ 27*c8efd802SAndrew Jones #define GIC_TARGETLIST_BITS 8 28*c8efd802SAndrew Jones 2983728796SAndreas Färber #define TYPE_ARM_GIC "arm_gic" 3083728796SAndreas Färber #define ARM_GIC(obj) \ 3183728796SAndreas Färber OBJECT_CHECK(GICState, (obj), TYPE_ARM_GIC) 3283728796SAndreas Färber #define ARM_GIC_CLASS(klass) \ 3383728796SAndreas Färber OBJECT_CLASS_CHECK(ARMGICClass, (klass), TYPE_ARM_GIC) 3483728796SAndreas Färber #define ARM_GIC_GET_CLASS(obj) \ 3583728796SAndreas Färber OBJECT_GET_CLASS(ARMGICClass, (obj), TYPE_ARM_GIC) 3683728796SAndreas Färber 3783728796SAndreas Färber typedef struct ARMGICClass { 3883728796SAndreas Färber /*< private >*/ 3983728796SAndreas Färber ARMGICCommonClass parent_class; 4083728796SAndreas Färber /*< public >*/ 4183728796SAndreas Färber 4283728796SAndreas Färber DeviceRealize parent_realize; 4383728796SAndreas Färber } ARMGICClass; 4483728796SAndreas Färber 4583728796SAndreas Färber #endif 46