Searched refs:vgic (Results 1 – 18 of 18) sorted by relevance
| /xen/xen/arch/arm/ |
| A D | vgic.c | 99 switch ( d->arch.vgic.version ) in domain_vgic_register() 125 d->arch.vgic.ctlr = 0; in domain_vgic_init() 138 d->arch.vgic.nr_spis = nr_spis; in domain_vgic_init() 142 d->arch.vgic.shared_irqs = in domain_vgic_init() 147 d->arch.vgic.pending_irqs = in domain_vgic_init() 163 d->arch.vgic.allocated_irqs = in domain_vgic_init() 177 d->arch.vgic.handler = ops; in register_vgic_ops() 198 if ( d->arch.vgic.handler ) in domain_vgic_free() 200 xfree(d->arch.vgic.shared_irqs); in domain_vgic_free() 201 xfree(d->arch.vgic.pending_irqs); in domain_vgic_free() [all …]
|
| A D | vgic-v3.c | 175 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_read() 207 if ( v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_read() 241 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_read() 254 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_read() 493 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_write() 545 if ( !v->domain->arch.vgic.has_its ) in __vgic_v3_rdistr_rd_mmio_write() 1622 v->arch.vgic.rdist_base = rdist_base; in vgic_v3_vcpu_init() 1670 d->arch.vgic.nr_regions = rdist_count; in vgic_v3_domain_init() 1708 d->arch.vgic.nr_regions = i + 1; in vgic_v3_domain_init() 1732 d->arch.vgic.intid_bits = 10; in vgic_v3_domain_init() [all …]
|
| A D | gic-vgic.c | 53 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_add_to_lr_pending() 71 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_remove_from_lr_pending() 84 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_raise_inflight_irq() 117 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_find_unused_lr() 143 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_raise_guest_irq() 169 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in gic_update_one_lr() 287 spin_lock(&v->arch.vgic.lock); in gic_restore_pending_irqs() 289 if ( list_empty(&v->arch.vgic.lr_pending) ) in gic_restore_pending_irqs() 292 inflight_r = &v->arch.vgic.inflight_irqs; in gic_restore_pending_irqs() 331 spin_unlock(&v->arch.vgic.lock); in gic_restore_pending_irqs() [all …]
|
| A D | vgic-v3-its.c | 374 spin_lock_irqsave(&vcpu->arch.vgic.lock, flags); in its_handle_clear() 414 if ( !d->arch.vgic.rdists_enabled ) in update_lpi_property() 444 ASSERT(spin_is_locked(&v->arch.vgic.lock)); in update_lpi_vgic_status() 473 if ( !d->arch.vgic.rdists_enabled ) in its_handle_inv() 490 spin_lock_irqsave(&vcpu->arch.vgic.lock, flags); in its_handle_inv() 540 if ( !its->d->arch.vgic.rdists_enabled ) in its_handle_invall() 547 spin_lock_irqsave(&vcpu->arch.vgic.lock, flags); in its_handle_invall() 608 spin_lock_irqsave(&vcpu->arch.vgic.lock, flags); in its_discard_event() 1520 INIT_LIST_HEAD(&d->arch.vgic.vits_list); in vgic_v3_its_init_domain() 1522 d->arch.vgic.its_devices = RB_ROOT; in vgic_v3_its_init_domain() [all …]
|
| A D | Makefile | 51 obj-$(CONFIG_NEW_VGIC) += vgic/ 53 obj-y += gic-vgic.o 54 obj-y += vgic.o 55 obj-y += vgic-v2.o 56 obj-$(CONFIG_GICV3) += vgic-v3.o 57 obj-$(CONFIG_HAS_ITS) += vgic-v3-its.o
|
| A D | vgic-v2.c | 173 int gicd_reg = (int)(info->gpa - v->domain->arch.vgic.dbase); in vgic_v2_distr_mmio_read() 183 *r = vreg_reg32_extract(v->domain->arch.vgic.ctlr, info); in vgic_v2_distr_mmio_read() 195 | DIV_ROUND_UP(v->domain->arch.vgic.nr_spis, 32); in vgic_v2_distr_mmio_read() 415 int gicd_reg = (int)(info->gpa - v->domain->arch.vgic.dbase); in vgic_v2_distr_mmio_write() 427 vreg_reg32_update(&v->domain->arch.vgic.ctlr, r, info); in vgic_v2_distr_mmio_write() 428 v->domain->arch.vgic.ctlr &= GICD_CTL_ENABLE; in vgic_v2_distr_mmio_write() 662 d->arch.vgic.dbase = vgic_v2_hw.dbase; in vgic_v2_domain_init() 676 d->arch.vgic.dbase = GUEST_GICD_BASE; in vgic_v2_domain_init() 698 register_mmio_handler(d, &vgic_v2_distr_mmio_handler, d->arch.vgic.dbase, in vgic_v2_domain_init()
|
| A D | gic-v3-its.c | 631 struct rb_node **new = &d->arch.vgic.its_devices.rb_node, *parent = NULL; in gicv3_its_map_guest_device() 656 spin_lock(&d->arch.vgic.its_devices_lock); in gicv3_its_map_guest_device() 669 rb_erase(&temp->rbnode, &d->arch.vgic.its_devices); in gicv3_its_map_guest_device() 671 spin_unlock(&d->arch.vgic.its_devices_lock); in gicv3_its_map_guest_device() 736 rb_insert_color(&dev->rbnode, &d->arch.vgic.its_devices); in gicv3_its_map_guest_device() 738 spin_unlock(&d->arch.vgic.its_devices_lock); in gicv3_its_map_guest_device() 778 spin_unlock(&d->arch.vgic.its_devices_lock); in gicv3_its_map_guest_device() 796 struct rb_node *node = d->arch.vgic.its_devices.rb_node; in get_its_device() 799 ASSERT(spin_is_locked(&d->arch.vgic.its_devices_lock)); in get_its_device() 829 spin_lock(&d->arch.vgic.its_devices_lock); in get_event_pending_irq() [all …]
|
| A D | gic-v3.c | 387 if ( v->domain->arch.vgic.version == GIC_V2 ) in gicv3_restore_state() 1046 if ( current->domain->arch.vgic.version == GIC_V3 ) in gicv3_update_lr() 1083 if ( current->domain->arch.vgic.version == GIC_V2 ) in gicv3_read_lr() 1098 const enum gic_version vgic_version = current->domain->arch.vgic.version; in gicv3_write_lr() 1282 d->arch.vgic.nr_regions); in gicv3_make_hwdom_dt_node() 1294 new_len = new_len * (d->arch.vgic.nr_regions + 1); in gicv3_make_hwdom_dt_node() 1526 for ( i = 0; i < d->arch.vgic.nr_regions; i++ ) in gicv3_make_hwdom_madt()
|
| A D | domain.c | 714 d->arch.vgic.version = GIC_V2; in arch_domain_create() 718 d->arch.vgic.version = GIC_V3; in arch_domain_create()
|
| A D | domain_build.c | 1713 switch ( kinfo->d->arch.vgic.version ) in make_gic_domU_node()
|
| /xen/xen/arch/arm/vgic/ |
| A D | vgic.c | 62 struct vgic_dist *dist = &d->arch.vgic; in vgic_get_lpi() 105 return &vcpu->arch.vgic.private_irqs[intid]; in vgic_get_irq() 135 struct vgic_dist *dist = &d->arch.vgic; in vgic_put_irq() 248 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in vgic_sort_ap_list() 425 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in vgic_prune_ap_list() 545 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in compute_ap_list_depth() 586 vcpu->arch.vgic.used_lrs = count; in vgic_flush_lr_state() 636 spin_lock(¤t->arch.vgic.ap_list_lock); in vgic_sync_to_lrs() 660 if ( !vcpu->domain->arch.vgic.enabled ) in vgic_vcpu_pending_irq() 759 struct vgic_cpu *vgic_cpu = &v->arch.vgic; in gic_dump_vgic_info() [all …]
|
| A D | Makefile | 1 obj-y += vgic.o 2 obj-y += vgic-v2.o 3 obj-y += vgic-mmio.o 4 obj-y += vgic-mmio-v2.o 5 obj-y += vgic-init.o
|
| A D | vgic-init.c | 60 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in vgic_vcpu_early_init() 106 switch ( d->arch.vgic.version ) in domain_vgic_register() 115 d->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF; in domain_vgic_register() 116 d->arch.vgic.vgic_cpu_base = VGIC_ADDR_UNDEF; in domain_vgic_register() 117 d->arch.vgic.vgic_redist_base = VGIC_ADDR_UNDEF; in domain_vgic_register() 131 struct vgic_dist *dist = &d->arch.vgic; in domain_vgic_init() 183 d->arch.vgic.allocated_irqs = in domain_vgic_init() 185 if ( !d->arch.vgic.allocated_irqs ) in domain_vgic_init() 190 set_bit(i, d->arch.vgic.allocated_irqs); in domain_vgic_init() 217 struct vgic_dist *dist = &d->arch.vgic; in domain_vgic_free() [all …]
|
| A D | vgic-v2.c | 59 struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic; in vgic_v2_fold_lr_state() 60 unsigned int used_lrs = vcpu->arch.vgic.used_lrs; in vgic_v2_fold_lr_state() 260 struct vgic_dist *dist = &d->arch.vgic; in vgic_v2_map_resources() 271 d->arch.vgic.vgic_dist_base = gic_v2_hw_data.dbase; in vgic_v2_map_resources() 285 d->arch.vgic.vgic_dist_base = GUEST_GICD_BASE; in vgic_v2_map_resources()
|
| A D | vgic-mmio-v2.c | 31 value = vcpu->domain->arch.vgic.enabled ? GICD_CTL_ENABLE : 0; in vgic_mmio_read_v2_misc() 34 value = vcpu->domain->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_mmio_read_v2_misc() 54 struct vgic_dist *dist = &vcpu->domain->arch.vgic; in vgic_mmio_write_v2_misc()
|
| A D | vgic-mmio.c | 506 unsigned int flags, nr_irqs = d->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in check_region() 614 struct vgic_io_device *io_device = &d->arch.vgic.dist_iodev; in vgic_register_dist_iodev()
|
| /xen/xen/include/asm-arm/ |
| A D | vgic.h | 240 #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32) 242 #define vgic_lock(v) spin_lock_irq(&(v)->domain->arch.vgic.lock) 243 #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock) 309 #define vgic_num_irqs(d) ((d)->arch.vgic.nr_spis + 32)
|
| A D | domain.h | 65 struct vgic_dist vgic; member 192 struct vgic_cpu vgic; member
|
Completed in 46 milliseconds