1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * include/linux/irqchip/arm-vgic-info.h 4 * 5 * Copyright (C) 2016 ARM Limited, All Rights Reserved. 6 */ 7#ifndef __LINUX_IRQCHIP_ARM_VGIC_INFO_H 8#define __LINUX_IRQCHIP_ARM_VGIC_INFO_H 9 10#include <linux/types.h> 11#include <linux/ioport.h> 12 13enum gic_type { 14 /* Full GICv2 */ 15 GIC_V2, 16 /* Full GICv3, optionally with v2 compat */ 17 GIC_V3, 18}; 19 20struct gic_kvm_info { 21 /* GIC type */ 22 enum gic_type type; 23 /* Virtual CPU interface */ 24 struct resource vcpu; 25 /* Interrupt number */ 26 unsigned int maint_irq; 27 /* No interrupt mask, no need to use the above field */ 28 bool no_maint_irq_mask; 29 /* Virtual control interface */ 30 struct resource vctrl; 31 /* vlpi support */ 32 bool has_v4; 33 /* rvpeid support */ 34 bool has_v4_1; 35 /* Deactivation impared, subpar stuff */ 36 bool no_hw_deactivation; 37}; 38 39#ifdef CONFIG_KVM 40void vgic_set_kvm_info(const struct gic_kvm_info *info); 41#else 42static inline void vgic_set_kvm_info(const struct gic_kvm_info *info) {} 43#endif 44 45#endif 46