This patch includes the device class itself, some ID register value functions which will be needed by both distributor and redistributor, and some skeleton functions for handling interrupts coming in and going out, which will be filled in in a subsequent patch. Signed-off-by: Shlomo Pongratz <shlomo.pongratz@huawei.com> Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org> Tested-by: Shannon Zhao <shannon.zhao@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1465915112-29272-10-git-send-email-peter.maydell@linaro.org [PMM: pulled this patch earlier in the sequence, and left some code out of it for a later patch] Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org>
33 lines
802 B
C
33 lines
802 B
C
/*
|
|
* ARM Generic Interrupt Controller v3
|
|
*
|
|
* Copyright (c) 2015 Huawei.
|
|
* Copyright (c) 2016 Linaro Limited
|
|
* Written by Shlomo Pongratz, Peter Maydell
|
|
*
|
|
* This code is licensed under the GPL, version 2 or (at your option)
|
|
* any later version.
|
|
*/
|
|
|
|
#ifndef HW_ARM_GICV3_H
|
|
#define HW_ARM_GICV3_H
|
|
|
|
#include "arm_gicv3_common.h"
|
|
|
|
#define TYPE_ARM_GICV3 "arm-gicv3"
|
|
#define ARM_GICV3(obj) OBJECT_CHECK(GICv3State, (obj), TYPE_ARM_GICV3)
|
|
#define ARM_GICV3_CLASS(klass) \
|
|
OBJECT_CLASS_CHECK(ARMGICv3Class, (klass), TYPE_ARM_GICV3)
|
|
#define ARM_GICV3_GET_CLASS(obj) \
|
|
OBJECT_GET_CLASS(ARMGICv3Class, (obj), TYPE_ARM_GICV3)
|
|
|
|
typedef struct ARMGICv3Class {
|
|
/*< private >*/
|
|
ARMGICv3CommonClass parent_class;
|
|
/*< public >*/
|
|
|
|
DeviceRealize parent_realize;
|
|
} ARMGICv3Class;
|
|
|
|
#endif
|