blob: 0a83b4379f34627f2ae3d0deb927b82210fdb215 [file] [log] [blame]
Julien Grall502d6df2016-04-11 16:32:54 +01001/*
2 * include/linux/irqchip/arm-gic-common.h
3 *
4 * Copyright (C) 2016 ARM Limited, All Rights Reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#ifndef __LINUX_IRQCHIP_ARM_GIC_COMMON_H
11#define __LINUX_IRQCHIP_ARM_GIC_COMMON_H
12
13#include <linux/types.h>
14#include <linux/ioport.h>
15
16enum gic_type {
17 GIC_V2,
Julien Grall1839e572016-04-11 16:32:57 +010018 GIC_V3,
Julien Grall502d6df2016-04-11 16:32:54 +010019};
20
21struct gic_kvm_info {
22 /* GIC type */
23 enum gic_type type;
24 /* Virtual CPU interface */
25 struct resource vcpu;
26 /* Interrupt number */
27 unsigned int maint_irq;
28 /* Virtual control interface */
29 struct resource vctrl;
Marc Zyngier4bdf5022017-06-25 14:10:46 +010030 /* vlpi support */
31 bool has_v4;
Julien Grall502d6df2016-04-11 16:32:54 +010032};
33
34const struct gic_kvm_info *gic_get_kvm_info(void);
35
36#endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */