linux/include/linux/irqchip/arm-vgic-info.h
<<
>>
Prefs
   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