Lines Matching +full:gic +full:- +full:its

1 /* SPDX-License-Identifier: GPL-2.0-only */
21 #include <linux/irqchip/arm-gic-v4.h>
29 #define VGIC_MAX_PRIVATE (VGIC_NR_PRIVATE_IRQS - 1)
33 #define KVM_IRQCHIP_NUM_PINS (1020 - 32)
44 /* same for all guests, as depending only on the _host's_ GIC model */
46 /* type of the host GIC */
81 /* GIC system register CPU interface */
91 #define VGIC_V3_LR_INDEX(lr) (VGIC_V3_MAX_LRS - 1 - lr)
99 * Per-irq ops overriding some common behavious.
101 * Always called in non-preemptible section and the functions can use
105 /* Per interrupt flags for special-cased interrupts */
111 * Callback function pointer to in-kernel devices that can tell us the
112 * state of the input level of mapped level-triggered IRQ faster than
113 * peaking into the physical GIC.
158 for in-kernel devices. */
163 return irq->ops && (irq->ops->flags & VGIC_IRQ_SW_RESAMPLE); in vgic_irq_needs_resampling()
180 struct vgic_its *its; member
189 /* The base address of the ITS control register frame */
215 * Caches the (device_id, event_id) -> vgic_irq translation for
286 /* used by vgic-debug */
290 * GICv4 ITS per-VM data, containing the IRQ domain, the VPE
292 * data. This essentially ties the Linux IRQ core and ITS
317 * GICv4 ITS per-VPE data, containing the doorbell IRQ, the
320 * linking the Linux IRQ subsystem and the ITS together.
393 #define irqchip_in_kernel(k) (!!((k)->arch.vgic.in_kernel))
394 #define vgic_initialized(k) ((k)->arch.vgic.initialized)
395 #define vgic_ready(k) ((k)->arch.vgic.ready)
397 ((i) < (k)->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS))
407 * kvm_vgic_get_max_vcpus - Get the maximum number of VCPUs allowed by HW
409 * The host's GIC naturally limits the maximum amount of VCPUs a guest