Hi Mykyta Thank you for the contribution.
On Mon, Feb 2, 2026 at 6:14 PM Mykyta Poturai <[email protected]> wrote: > > Add GICv4 specific structures to be used in later patches. > > Signed-off-by: Mykyta Poturai <[email protected]> > --- > xen/arch/arm/include/asm/vgic.h | 43 +++++++++++++++++++++++++++++++++ > 1 file changed, 43 insertions(+) > > diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h > index 6f9ab1c98c..a874a02d70 100644 > --- a/xen/arch/arm/include/asm/vgic.h > +++ b/xen/arch/arm/include/asm/vgic.h > @@ -127,6 +127,42 @@ struct vgic_irq_rank { > uint8_t vcpu[32]; > }; > > +#ifdef CONFIG_GICV4 > +struct its_vm { > + struct its_vpe **vpes; > + /* Number of VPE. */ > + unsigned int nr_vpes; > + uint32_t *db_lpi_bases; > + unsigned int nr_db_lpis; > + /* Property table per VM. */ > + void *vproptable; > +}; > + > +struct its_vpe { > + rwlock_t lock; > + uint32_t vpe_id; > + /* Pending table per VCPU. */ > + void *vpendtable; > + uint32_t vpe_db_lpi; > + struct its_vm *its_vm; > + unsigned int col_idx; > + bool resident; > + /* Pending VLPIs on schedule out? */ > + bool pending_last; > + struct { > + /* Implementation Defined Area Invalid */ > + bool idai; > + /* VPE proxy mapping */ > + int vpe_proxy_event; > + }; > + /* > + * Ensure mutual exclusion between affinity setting of the vPE > + * and vLPI operations using vpe->col_idx. > + */ > + spinlock_t vpe_lock; > +}; > +#endif > + > struct vgic_dist { > /* Version of the vGIC */ > enum gic_version version; > @@ -193,6 +229,10 @@ struct vgic_dist { > */ > bool rdists_enabled; /* Is any redistributor enabled? */ > bool has_its; > +#ifdef CONFIG_GICV4 > + struct its_vm *its_vm; > +#endif > + bool nassgireq; nit: unused in this series Best regards, Mykola > #endif > }; > > @@ -227,6 +267,9 @@ struct vgic_cpu { > #define VGIC_V3_RDIST_LAST (1 << 0) /* last vCPU of the rdist */ > #define VGIC_V3_LPIS_ENABLED (1 << 1) > uint8_t flags; > +#ifdef CONFIG_GICV4 > + struct its_vpe *its_vpe; > +#endif > }; > > struct sgi_target { > -- > 2.51.2
