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