Symbol: hyp
sys/arm64/include/vmm.h
275
} hyp;
sys/arm64/vmm/arm64.h
120
struct hyp *hyp;
sys/arm64/vmm/io/vgic.c
101
vgic_inject_irq(struct hyp *hyp, int vcpuid, uint32_t irqid, bool level)
sys/arm64/vmm/io/vgic.c
103
return (VGIC_INJECT_IRQ(vgic_dev, hyp, vcpuid, irqid, level));
sys/arm64/vmm/io/vgic.c
107
vgic_inject_msi(struct hyp *hyp, uint64_t msg, uint64_t addr)
sys/arm64/vmm/io/vgic.c
109
return (VGIC_INJECT_MSI(vgic_dev, hyp, msg, addr));
sys/arm64/vmm/io/vgic.c
51
vgic_attach_to_vm(struct hyp *hyp, struct vm_vgic_descr *descr)
sys/arm64/vmm/io/vgic.c
53
return (VGIC_ATTACH_TO_VM(vgic_dev, hyp, descr));
sys/arm64/vmm/io/vgic.c
57
vgic_detach_from_vm(struct hyp *hyp)
sys/arm64/vmm/io/vgic.c
59
VGIC_DETACH_FROM_VM(vgic_dev, hyp);
sys/arm64/vmm/io/vgic.c
63
vgic_vminit(struct hyp *hyp)
sys/arm64/vmm/io/vgic.c
65
VGIC_VMINIT(vgic_dev, hyp);
sys/arm64/vmm/io/vgic.c
81
vgic_vmcleanup(struct hyp *hyp)
sys/arm64/vmm/io/vgic.c
83
VGIC_VMCLEANUP(vgic_dev, hyp);
sys/arm64/vmm/io/vgic.c
87
vgic_max_cpu_count(struct hyp *hyp)
sys/arm64/vmm/io/vgic.c
89
return (VGIC_MAX_CPU_COUNT(vgic_dev, hyp));
sys/arm64/vmm/io/vgic.h
31
struct hyp;
sys/arm64/vmm/io/vgic.h
39
int vgic_attach_to_vm(struct hyp *hyp, struct vm_vgic_descr *descr);
sys/arm64/vmm/io/vgic.h
40
void vgic_detach_from_vm(struct hyp *hyp);
sys/arm64/vmm/io/vgic.h
41
void vgic_vminit(struct hyp *hyp);
sys/arm64/vmm/io/vgic.h
44
void vgic_vmcleanup(struct hyp *hyp);
sys/arm64/vmm/io/vgic.h
45
int vgic_max_cpu_count(struct hyp *hyp);
sys/arm64/vmm/io/vgic.h
47
int vgic_inject_irq(struct hyp *hyp, int vcpuid, uint32_t irqid, bool level);
sys/arm64/vmm/io/vgic.h
48
int vgic_inject_msi(struct hyp *hyp, uint64_t msg, uint64_t addr);
sys/arm64/vmm/io/vgic_v3.c
1000
hyp = hypctx->hyp;
sys/arm64/vmm/io/vgic_v3.c
1001
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1019
vgic = hypctx->hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1071
INJECT_IRQ(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu), irqid,
sys/arm64/vmm/io/vgic_v3.c
1374
struct hyp *hyp;
sys/arm64/vmm/io/vgic_v3.c
1380
hyp = hypctx->hyp;
sys/arm64/vmm/io/vgic_v3.c
1381
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1412
struct hyp *hyp;
sys/arm64/vmm/io/vgic_v3.c
1418
hyp = hypctx->hyp;
sys/arm64/vmm/io/vgic_v3.c
1419
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1470
if (vcpu_vcpuid(hypctx->vcpu) == (vgic_max_cpu_count(hypctx->hyp) - 1))
sys/arm64/vmm/io/vgic_v3.c
153
static int vgic_v3_max_cpu_count(device_t dev, struct hyp *hyp);
sys/arm64/vmm/io/vgic_v3.c
155
#define INJECT_IRQ(hyp, vcpuid, irqid, level) \
sys/arm64/vmm/io/vgic_v3.c
156
vgic_v3_inject_irq(NULL, (hyp), (vcpuid), (irqid), (level))
sys/arm64/vmm/io/vgic_v3.c
1617
struct hyp *hyp;
sys/arm64/vmm/io/vgic_v3.c
1625
hyp = hypctx->hyp;
sys/arm64/vmm/io/vgic_v3.c
1626
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1636
if (vcpuid >= vm_get_maxcpus(hyp->vm)) {
sys/arm64/vmm/io/vgic_v3.c
1650
target_hypctx = hyp->ctx[vcpuid];
sys/arm64/vmm/io/vgic_v3.c
1695
struct hyp *hyp;
sys/arm64/vmm/io/vgic_v3.c
1703
hyp = hypctx->hyp;
sys/arm64/vmm/io/vgic_v3.c
1704
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1714
if (vcpuid >= vm_get_maxcpus(hyp->vm)) {
sys/arm64/vmm/io/vgic_v3.c
1727
target_hypctx = hyp->ctx[vcpuid];
sys/arm64/vmm/io/vgic_v3.c
1779
struct hyp *hyp;
sys/arm64/vmm/io/vgic_v3.c
1786
hyp = vm_get_cookie(vm);
sys/arm64/vmm/io/vgic_v3.c
1806
target_vcpuid = mpidr_to_vcpu(hyp,
sys/arm64/vmm/io/vgic_v3.c
1810
INJECT_IRQ(hyp, target_vcpuid, irqid,
sys/arm64/vmm/io/vgic_v3.c
1823
INJECT_IRQ(hyp, target_vcpuid, irqid, true);
sys/arm64/vmm/io/vgic_v3.c
1832
vgic_v3_mmio_init(struct hyp *hyp)
sys/arm64/vmm/io/vgic_v3.c
1839
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1854
vgic_v3_mmio_destroy(struct hyp *hyp)
sys/arm64/vmm/io/vgic_v3.c
1860
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1871
vgic_v3_attach_to_vm(device_t dev, struct hyp *hyp, struct vm_vgic_descr *descr)
sys/arm64/vmm/io/vgic_v3.c
1894
vm = hyp->vm;
sys/arm64/vmm/io/vgic_v3.c
1905
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
1924
vgic_v3_mmio_init(hyp);
sys/arm64/vmm/io/vgic_v3.c
1926
hyp->vgic_attached = true;
sys/arm64/vmm/io/vgic_v3.c
1932
vgic_v3_detach_from_vm(device_t dev, struct hyp *hyp)
sys/arm64/vmm/io/vgic_v3.c
1934
if (hyp->vgic_attached) {
sys/arm64/vmm/io/vgic_v3.c
1935
hyp->vgic_attached = false;
sys/arm64/vmm/io/vgic_v3.c
1936
vgic_v3_mmio_destroy(hyp);
sys/arm64/vmm/io/vgic_v3.c
1941
vgic_v3_get_irq(struct hyp *hyp, int vcpuid, uint32_t irqid)
sys/arm64/vmm/io/vgic_v3.c
1948
if (vcpuid < 0 || vcpuid >= vm_get_maxcpus(hyp->vm))
sys/arm64/vmm/io/vgic_v3.c
1950
hypctx = hyp->ctx[vcpuid];
sys/arm64/vmm/io/vgic_v3.c
1959
irq = &hyp->vgic->irqs[irqid];
sys/arm64/vmm/io/vgic_v3.c
2013
vgic_v3_inject_irq(device_t dev, struct hyp *hyp, int vcpuid, uint32_t irqid,
sys/arm64/vmm/io/vgic_v3.c
2022
if (!hyp->vgic_attached)
sys/arm64/vmm/io/vgic_v3.c
2029
irq = vgic_v3_get_irq(hyp, vcpuid, irqid);
sys/arm64/vmm/io/vgic_v3.c
2039
KASSERT(target_vcpu >= 0 && target_vcpu < vm_get_maxcpus(hyp->vm),
sys/arm64/vmm/io/vgic_v3.c
2046
if (vcpuid < 0 || vcpuid >= vm_get_maxcpus(hyp->vm)) {
sys/arm64/vmm/io/vgic_v3.c
2051
hypctx = hyp->ctx[vcpuid];
sys/arm64/vmm/io/vgic_v3.c
2071
notify = vgic_v3_queue_irq(hyp, vgic_cpu, vcpuid, irq);
sys/arm64/vmm/io/vgic_v3.c
2078
vcpu_notify_event(vm_vcpu(hyp->vm, vcpuid));
sys/arm64/vmm/io/vgic_v3.c
2084
vgic_v3_inject_msi(device_t dev, struct hyp *hyp, uint64_t msg, uint64_t addr)
sys/arm64/vmm/io/vgic_v3.c
2089
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
2100
return (INJECT_IRQ(hyp, -1, msg, true));
sys/arm64/vmm/io/vgic_v3.c
2202
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
421
static struct vgic_v3_irq *vgic_v3_get_irq(struct hyp *, int, uint32_t);
sys/arm64/vmm/io/vgic_v3.c
426
mpidr_to_vcpu(struct hyp *hyp, uint64_t mpidr)
sys/arm64/vmm/io/vgic_v3.c
431
vm = hyp->vm;
sys/arm64/vmm/io/vgic_v3.c
433
hypctx = hyp->ctx[i];
sys/arm64/vmm/io/vgic_v3.c
441
vgic_v3_vminit(device_t dev, struct hyp *hyp)
sys/arm64/vmm/io/vgic_v3.c
445
hyp->vgic = malloc(sizeof(*hyp->vgic), M_VGIC_V3,
sys/arm64/vmm/io/vgic_v3.c
447
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
555
vgic_v3_vmcleanup(device_t dev, struct hyp *hyp)
sys/arm64/vmm/io/vgic_v3.c
557
mtx_destroy(&hyp->vgic->dist_mtx);
sys/arm64/vmm/io/vgic_v3.c
558
free(hyp->vgic, M_VGIC_V3);
sys/arm64/vmm/io/vgic_v3.c
562
vgic_v3_max_cpu_count(device_t dev, struct hyp *hyp)
sys/arm64/vmm/io/vgic_v3.c
568
vgic = hyp->vgic;
sys/arm64/vmm/io/vgic_v3.c
569
max_count = vm_get_maxcpus(hyp->vm);
sys/arm64/vmm/io/vgic_v3.c
599
vgic_v3_queue_irq(struct hyp *hyp, struct vgic_v3_cpu *vgic_cpu,
sys/arm64/vmm/io/vgic_v3.c
603
MPASS(vcpuid < vm_get_maxcpus(hyp->vm));
sys/arm64/vmm/io/vgic_v3.c
670
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
697
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
718
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
736
struct hyp *hyp;
sys/arm64/vmm/io/vgic_v3.c
743
hyp = hypctx->hyp;
sys/arm64/vmm/io/vgic_v3.c
751
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
760
target_hypctx = hyp->ctx[target_vcpu];
sys/arm64/vmm/io/vgic_v3.c
771
notify = vgic_v3_queue_irq(hyp, vgic_cpu, target_vcpu,
sys/arm64/vmm/io/vgic_v3.c
779
vcpu_notify_event(vm_vcpu(hyp->vm, target_vcpu));
sys/arm64/vmm/io/vgic_v3.c
796
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
814
struct hyp *hyp;
sys/arm64/vmm/io/vgic_v3.c
820
hyp = hypctx->hyp;
sys/arm64/vmm/io/vgic_v3.c
827
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
836
target_hypctx = hyp->ctx[target_vcpu];
sys/arm64/vmm/io/vgic_v3.c
848
notify = vgic_v3_queue_irq(hyp, vgic_cpu, target_vcpu,
sys/arm64/vmm/io/vgic_v3.c
856
vcpu_notify_event(vm_vcpu(hyp->vm, target_vcpu));
sys/arm64/vmm/io/vgic_v3.c
871
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
890
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
912
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
941
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vgic_v3.c
958
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu), n);
sys/arm64/vmm/io/vgic_v3.c
974
irq = vgic_v3_get_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu), n);
sys/arm64/vmm/io/vgic_v3.c
979
irq->target_vcpu = mpidr_to_vcpu(hypctx->hyp, irq->mpidr);
sys/arm64/vmm/io/vgic_v3.c
997
struct hyp *hyp;
sys/arm64/vmm/io/vtimer.c
100
hypctx->hyp->vtimer.cntvoff_el2;
sys/arm64/vmm/io/vtimer.c
102
vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vtimer.c
136
vtimer_vminit(struct hyp *hyp)
sys/arm64/vmm/io/vtimer.c
143
if (allow_ecv_phys && (hyp->feats & HYP_FEAT_ECV_POFF) != 0)
sys/arm64/vmm/io/vtimer.c
168
hyp->vtimer.cnthctl_el2 =
sys/arm64/vmm/io/vtimer.c
172
hyp->vtimer.cnthctl_el2 |=
sys/arm64/vmm/io/vtimer.c
178
hyp->vtimer.cnthctl_el2 |=
sys/arm64/vmm/io/vtimer.c
191
hyp->vtimer.cnthctl_el2 =
sys/arm64/vmm/io/vtimer.c
195
hyp->vtimer.cnthctl_el2 =
sys/arm64/vmm/io/vtimer.c
202
hyp->vtimer.cnthctl_el2 |= CNTHCTL_ECV_EN;
sys/arm64/vmm/io/vtimer.c
205
hyp->vtimer.cntvoff_el2 = now;
sys/arm64/vmm/io/vtimer.c
250
vtimer_vmcleanup(struct hyp *hyp)
sys/arm64/vmm/io/vtimer.c
274
vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vtimer.c
277
vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vtimer.c
280
vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vtimer.c
292
hypctx->hyp->vtimer.cntvoff_el2;
sys/arm64/vmm/io/vtimer.c
295
if ((hypctx->hyp->vtimer.cnthctl_el2 & CNTHCTL_ECV_EN) != 0) {
sys/arm64/vmm/io/vtimer.c
307
vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vtimer.c
317
vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vtimer.c
334
hypctx->hyp->vtimer.cntvoff_el2;
sys/arm64/vmm/io/vtimer.c
337
vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu),
sys/arm64/vmm/io/vtimer.c
367
vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(vcpu), timer->irqid, false);
sys/arm64/vmm/io/vtimer.c
384
struct hyp *hyp;
sys/arm64/vmm/io/vtimer.c
390
hyp = hypctx->hyp;
sys/arm64/vmm/io/vtimer.c
393
cntpct_el0 = READ_SPECIALREG(cntpct_el0) - hyp->vtimer.cntvoff_el2;
sys/arm64/vmm/io/vtimer.c
434
struct hyp *hyp;
sys/arm64/vmm/io/vtimer.c
437
hyp = vm_get_cookie(vm);
sys/arm64/vmm/io/vtimer.c
438
*rval = READ_SPECIALREG(cntpct_el0) - hyp->vtimer.cntvoff_el2;
sys/arm64/vmm/io/vtimer.c
484
struct hyp *hyp;
sys/arm64/vmm/io/vtimer.c
490
hyp = hypctx->hyp;
sys/arm64/vmm/io/vtimer.c
503
hyp->vtimer.cntvoff_el2;
sys/arm64/vmm/io/vtimer.c
513
struct hyp *hyp;
sys/arm64/vmm/io/vtimer.c
519
hyp = hypctx->hyp;
sys/arm64/vmm/io/vtimer.c
522
cntpct_el0 = READ_SPECIALREG(cntpct_el0) - hyp->vtimer.cntvoff_el2;
sys/arm64/vmm/io/vtimer.h
37
struct hyp;
sys/arm64/vmm/io/vtimer.h
70
void vtimer_vminit(struct hyp *);
sys/arm64/vmm/io/vtimer.h
73
void vtimer_vmcleanup(struct hyp *);
sys/arm64/vmm/vmm.c
652
struct hyp *hyp;
sys/arm64/vmm/vmm.c
659
hyp = vm->cookie;
sys/arm64/vmm/vmm.c
660
if (!hyp->vgic_attached)
sys/arm64/vmm/vmm_arm64.c
1082
struct hyp *hyp;
sys/arm64/vmm/vmm_arm64.c
1089
hyp = hypctx->hyp;
sys/arm64/vmm/vmm_arm64.c
1150
hyp->vttbr_el2 = pmap_to_ttbr0(pmap);
sys/arm64/vmm/vmm_arm64.c
1160
excp_type = vmm_enter_guest(hyp, hypctx);
sys/arm64/vmm/vmm_arm64.c
1177
vme->u.hyp.exception_nr = excp_type;
sys/arm64/vmm/vmm_arm64.c
1178
vme->u.hyp.esr_el2 = hypctx->tf.tf_esr;
sys/arm64/vmm/vmm_arm64.c
1179
vme->u.hyp.far_el2 = hypctx->exit_info.far_el2;
sys/arm64/vmm/vmm_arm64.c
1180
vme->u.hyp.hpfar_el2 = hypctx->exit_info.hpfar_el2;
sys/arm64/vmm/vmm_arm64.c
1198
struct hyp *hyp;
sys/arm64/vmm/vmm_arm64.c
1201
hyp = arg;
sys/arm64/vmm/vmm_arm64.c
1202
maxcpus = vm_get_maxcpus(hyp->vm);
sys/arm64/vmm/vmm_arm64.c
1204
if (arm64_get_active_vcpu() == hyp->ctx[i]) {
sys/arm64/vmm/vmm_arm64.c
1228
struct hyp *hyp = vmi;
sys/arm64/vmm/vmm_arm64.c
1230
vtimer_vmcleanup(hyp);
sys/arm64/vmm/vmm_arm64.c
1231
vgic_vmcleanup(hyp);
sys/arm64/vmm/vmm_arm64.c
1233
smp_rendezvous(NULL, arm_pcpu_vmcleanup, NULL, hyp);
sys/arm64/vmm/vmm_arm64.c
1236
vmmpmap_remove(hyp->el2_addr, el2_hyp_size(hyp->vm), true);
sys/arm64/vmm/vmm_arm64.c
1238
free(hyp, M_HYP);
sys/arm64/vmm/vmm_arm64.c
1286
panic("arm_getreg: %s%d is running", vm_name(hypctx->hyp->vm),
sys/arm64/vmm/vmm_arm64.c
1306
panic("arm_setreg: %s%d is running", vm_name(hypctx->hyp->vm),
sys/arm64/vmm/vmm_arm64.c
1325
panic("%s: %s%d is running", __func__, vm_name(hypctx->hyp->vm),
sys/arm64/vmm/vmm_arm64.c
484
return (round_page(sizeof(struct hyp) +
sys/arm64/vmm/vmm_arm64.c
512
struct hyp *hyp;
sys/arm64/vmm/vmm_arm64.c
517
hyp = malloc_aligned(size, PAGE_SIZE, M_HYP, M_WAITOK | M_ZERO);
sys/arm64/vmm/vmm_arm64.c
519
hyp->vm = vm;
sys/arm64/vmm/vmm_arm64.c
520
hyp->vgic_attached = false;
sys/arm64/vmm/vmm_arm64.c
524
hyp->feats |= HYP_FEAT_ECV_POFF;
sys/arm64/vmm/vmm_arm64.c
531
hyp->feats |= HYP_FEAT_FGT2;
sys/arm64/vmm/vmm_arm64.c
534
hyp->feats |= HYP_FEAT_FGT;
sys/arm64/vmm/vmm_arm64.c
540
hyp->feats |= HYP_FEAT_HCX;
sys/arm64/vmm/vmm_arm64.c
542
vtimer_vminit(hyp);
sys/arm64/vmm/vmm_arm64.c
543
vgic_vminit(hyp);
sys/arm64/vmm/vmm_arm64.c
546
hyp->el2_addr = el2_map_enter((vm_offset_t)hyp, size,
sys/arm64/vmm/vmm_arm64.c
549
return (hyp);
sys/arm64/vmm/vmm_arm64.c
555
struct hyp *hyp = vmi;
sys/arm64/vmm/vmm_arm64.c
562
KASSERT(vcpuid >= 0 && vcpuid < vm_get_maxcpus(hyp->vm),
sys/arm64/vmm/vmm_arm64.c
564
hyp->ctx[vcpuid] = hypctx;
sys/arm64/vmm/vmm_arm64.c
566
hypctx->hyp = hyp;
sys/arm64/vmm/vmm_arm64.c
607
printf("esr_el2: 0x%016lx\n", vme->u.hyp.esr_el2);
sys/arm64/vmm/vmm_arm64.c
608
printf("far_el2: 0x%016lx\n", vme->u.hyp.far_el2);
sys/arm64/vmm/vmm_arm64.c
609
printf("hpfar_el2: 0x%016lx\n", vme->u.hyp.hpfar_el2);
sys/arm64/vmm/vmm_handlers.c
52
vmm_nvhe_enter_guest(struct hyp *hyp, struct hypctx *hypctx)
sys/arm64/vmm/vmm_handlers.c
54
return (vmm_call_hyp(HYP_ENTER_GUEST, hyp->el2_addr, hypctx->el2_addr));
sys/arm64/vmm/vmm_handlers.c
58
(struct hyp *hyp, struct hypctx *hypctx))
sys/arm64/vmm/vmm_handlers.h
33
struct hyp;
sys/arm64/vmm/vmm_handlers.h
37
uint64_t vmm_enter_guest(struct hyp *, struct hypctx *);
sys/arm64/vmm/vmm_handlers.h
43
uint64_t vmm_vhe_enter_guest(struct hyp *, struct hypctx *);
sys/arm64/vmm/vmm_hyp.c
282
vmm_hyp_reg_restore(struct hypctx *hypctx, struct hyp *hyp, bool guest,
sys/arm64/vmm/vmm_hyp.c
291
if ((hyp->feats & HYP_FEAT_HCX) != 0)
sys/arm64/vmm/vmm_hyp.c
299
if ((hyp->feats & HYP_FEAT_FGT) != 0) {
sys/arm64/vmm/vmm_hyp.c
306
if ((hyp->feats & HYP_FEAT_FGT2) != 0) {
sys/arm64/vmm/vmm_hyp.c
44
vmm_hyp_reg_store(struct hypctx *hypctx, struct hyp *hyp, bool guest,
sys/arm64/vmm/vmm_hyp.c
486
WRITE_SPECIALREG(cnthctl_el2, hyp->vtimer.cnthctl_el2);
sys/arm64/vmm/vmm_hyp.c
487
WRITE_SPECIALREG(cntvoff_el2, hyp->vtimer.cntvoff_el2);
sys/arm64/vmm/vmm_hyp.c
495
hyp->vtimer.cntvoff_el2);
sys/arm64/vmm/vmm_hyp.c
559
vmm_hyp_call_guest(struct hyp *hyp, struct hypctx *hypctx)
sys/arm64/vmm/vmm_hyp.c
571
ecv_poff = (hyp->vtimer.cnthctl_el2 & CNTHCTL_ECV_EN) != 0;
sys/arm64/vmm/vmm_hyp.c
574
if ((hyp->feats & HYP_FEAT_HCX) != 0)
sys/arm64/vmm/vmm_hyp.c
586
vmm_hyp_reg_restore(hypctx, hyp, true, ecv_poff);
sys/arm64/vmm/vmm_hyp.c
589
WRITE_SPECIALREG(vttbr_el2, hyp->vttbr_el2);
sys/arm64/vmm/vmm_hyp.c
602
vmm_hyp_reg_store(hypctx, hyp, true, ecv_poff);
sys/arm64/vmm/vmm_hyp.c
655
if ((hyp->feats & HYP_FEAT_HCX) != 0)
sys/arm64/vmm/vmm_hyp.c
671
VMM_HYP_FUNC(enter_guest)(struct hyp *hyp, struct hypctx *hypctx)
sys/arm64/vmm/vmm_hyp.c
676
ret = vmm_hyp_call_guest(hyp, hypctx);
sys/arm64/vmm/vmm_nvhe.c
95
return (VMM_HYP_FUNC(enter_guest)((struct hyp *)x1,
sys/arm64/vmm/vmm_reset.c
192
if ((el2ctx->hyp->feats & HYP_FEAT_FGT) != 0) {
sys/arm64/vmm/vmm_reset.c
587
if ((el2ctx->hyp->feats & HYP_FEAT_FGT2) != 0) {
sys/riscv/include/vmm.h
250
} hyp;
sys/riscv/vmm/riscv.h
132
void riscv_send_ipi(struct hyp *hyp, cpuset_t *cpus);
sys/riscv/vmm/riscv.h
92
struct hyp *hyp;
sys/riscv/vmm/vmm.c
326
struct hyp *hyp;
sys/riscv/vmm/vmm.c
333
hyp = vm->cookie;
sys/riscv/vmm/vmm.c
334
if (!hyp->aplic_attached)
sys/riscv/vmm/vmm_aplic.c
208
aplic_handle_idc_claimi(struct hyp *hyp, struct aplic *aplic, int cpu_id,
sys/riscv/vmm/vmm_aplic.c
242
aplic_handle_idc(struct hyp *hyp, struct aplic *aplic, int cpu, int reg,
sys/riscv/vmm/vmm_aplic.c
255
error = aplic_handle_idc_claimi(hyp, aplic, cpu, write, val);
sys/riscv/vmm/vmm_aplic.c
265
aplic_mmio_access(struct hyp *hyp, struct aplic *aplic, uint64_t reg,
sys/riscv/vmm/vmm_aplic.c
291
error = aplic_handle_idc(hyp, aplic, cpu, r, write, val);
sys/riscv/vmm/vmm_aplic.c
331
struct hyp *hyp;
sys/riscv/vmm/vmm_aplic.c
338
hyp = hypctx->hyp;
sys/riscv/vmm/vmm_aplic.c
339
aplic = hyp->aplic;
sys/riscv/vmm/vmm_aplic.c
348
error = aplic_mmio_access(hyp, aplic, reg, false, &val);
sys/riscv/vmm/vmm_aplic.c
360
struct hyp *hyp;
sys/riscv/vmm/vmm_aplic.c
367
hyp = hypctx->hyp;
sys/riscv/vmm/vmm_aplic.c
368
aplic = hyp->aplic;
sys/riscv/vmm/vmm_aplic.c
380
error = aplic_mmio_access(hyp, aplic, reg, true, &val);
sys/riscv/vmm/vmm_aplic.c
386
aplic_vminit(struct hyp *hyp)
sys/riscv/vmm/vmm_aplic.c
390
hyp->aplic = malloc(sizeof(*hyp->aplic), M_APLIC,
sys/riscv/vmm/vmm_aplic.c
392
aplic = hyp->aplic;
sys/riscv/vmm/vmm_aplic.c
398
aplic_vmcleanup(struct hyp *hyp)
sys/riscv/vmm/vmm_aplic.c
402
aplic = hyp->aplic;
sys/riscv/vmm/vmm_aplic.c
406
free(hyp->aplic, M_APLIC);
sys/riscv/vmm/vmm_aplic.c
410
aplic_attach_to_vm(struct hyp *hyp, struct vm_aplic_descr *descr)
sys/riscv/vmm/vmm_aplic.c
415
vm = hyp->vm;
sys/riscv/vmm/vmm_aplic.c
422
aplic = hyp->aplic;
sys/riscv/vmm/vmm_aplic.c
429
hyp->aplic_attached = true;
sys/riscv/vmm/vmm_aplic.c
435
aplic_detach_from_vm(struct hyp *hyp)
sys/riscv/vmm/vmm_aplic.c
439
aplic = hyp->aplic;
sys/riscv/vmm/vmm_aplic.c
443
if (hyp->aplic_attached) {
sys/riscv/vmm/vmm_aplic.c
444
hyp->aplic_attached = false;
sys/riscv/vmm/vmm_aplic.c
454
struct hyp *hyp;
sys/riscv/vmm/vmm_aplic.c
457
hyp = hypctx->hyp;
sys/riscv/vmm/vmm_aplic.c
458
aplic = hyp->aplic;
sys/riscv/vmm/vmm_aplic.c
483
aplic_inject_irq(struct hyp *hyp, int vcpuid, uint32_t irqid, bool level)
sys/riscv/vmm/vmm_aplic.c
491
aplic = hyp->aplic;
sys/riscv/vmm/vmm_aplic.c
545
vcpu_notify_event(vm_vcpu(hyp->vm, irq->target_hart));
sys/riscv/vmm/vmm_aplic.c
551
aplic_inject_msi(struct hyp *hyp, uint64_t msg, uint64_t addr)
sys/riscv/vmm/vmm_aplic.h
36
struct hyp;
sys/riscv/vmm/vmm_aplic.h
40
int aplic_attach_to_vm(struct hyp *hyp, struct vm_aplic_descr *descr);
sys/riscv/vmm/vmm_aplic.h
41
void aplic_detach_from_vm(struct hyp *hyp);
sys/riscv/vmm/vmm_aplic.h
42
int aplic_inject_irq(struct hyp *hyp, int vcpuid, uint32_t irqid, bool level);
sys/riscv/vmm/vmm_aplic.h
43
int aplic_inject_msi(struct hyp *hyp, uint64_t msg, uint64_t addr);
sys/riscv/vmm/vmm_aplic.h
44
void aplic_vminit(struct hyp *hyp);
sys/riscv/vmm/vmm_aplic.h
45
void aplic_vmcleanup(struct hyp *hyp);
sys/riscv/vmm/vmm_riscv.c
126
struct hyp *hyp;
sys/riscv/vmm/vmm_riscv.c
129
size = round_page(sizeof(struct hyp) +
sys/riscv/vmm/vmm_riscv.c
131
hyp = malloc_aligned(size, PAGE_SIZE, M_HYP, M_WAITOK | M_ZERO);
sys/riscv/vmm/vmm_riscv.c
132
hyp->vm = vm;
sys/riscv/vmm/vmm_riscv.c
133
hyp->aplic_attached = false;
sys/riscv/vmm/vmm_riscv.c
135
aplic_vminit(hyp);
sys/riscv/vmm/vmm_riscv.c
137
return (hyp);
sys/riscv/vmm/vmm_riscv.c
201
struct hyp *hyp;
sys/riscv/vmm/vmm_riscv.c
204
hyp = vmi;
sys/riscv/vmm/vmm_riscv.c
206
dprintf("%s: hyp %p\n", __func__, hyp);
sys/riscv/vmm/vmm_riscv.c
208
KASSERT(vcpuid >= 0 && vcpuid < vm_get_maxcpus(hyp->vm),
sys/riscv/vmm/vmm_riscv.c
214
hypctx->hyp = hyp;
sys/riscv/vmm/vmm_riscv.c
232
hyp->ctx[vcpuid] = hypctx;
sys/riscv/vmm/vmm_riscv.c
483
vme->u.hyp.scause = trap.scause;
sys/riscv/vmm/vmm_riscv.c
537
riscv_send_ipi(struct hyp *hyp, cpuset_t *cpus)
sys/riscv/vmm/vmm_riscv.c
544
vm = hyp->vm;
sys/riscv/vmm/vmm_riscv.c
546
maxcpus = vm_get_maxcpus(hyp->vm);
sys/riscv/vmm/vmm_riscv.c
550
hypctx = hyp->ctx[i];
sys/riscv/vmm/vmm_riscv.c
729
struct hyp *hyp;
sys/riscv/vmm/vmm_riscv.c
732
hyp = arg;
sys/riscv/vmm/vmm_riscv.c
733
maxcpus = vm_get_maxcpus(hyp->vm);
sys/riscv/vmm/vmm_riscv.c
735
if (riscv_get_active_vcpu() == hyp->ctx[i]) {
sys/riscv/vmm/vmm_riscv.c
761
struct hyp *hyp;
sys/riscv/vmm/vmm_riscv.c
763
hyp = vmi;
sys/riscv/vmm/vmm_riscv.c
767
aplic_vmcleanup(hyp);
sys/riscv/vmm/vmm_riscv.c
769
smp_rendezvous(NULL, riscv_pcpu_vmcleanup, NULL, hyp);
sys/riscv/vmm/vmm_riscv.c
771
free(hyp, M_HYP);
sys/riscv/vmm/vmm_riscv.c
865
panic("%s: %s%d is running", __func__, vm_name(hypctx->hyp->vm),
sys/riscv/vmm/vmm_riscv.c
893
panic("%s: %s%d is running", __func__, vm_name(hypctx->hyp->vm),
sys/riscv/vmm/vmm_riscv.c
915
panic("%s: %s%d is running", __func__, vm_name(hypctx->hyp->vm),
sys/riscv/vmm/vmm_sbi.c
108
vmm_fence_add(hyp->vm, &cpus, &fence);
sys/riscv/vmm/vmm_sbi.c
137
struct hyp *hyp;
sys/riscv/vmm/vmm_sbi.c
151
hyp = hypctx->hyp;
sys/riscv/vmm/vmm_sbi.c
153
active_cpus = vm_active_cpus(hyp->vm);
sys/riscv/vmm/vmm_sbi.c
176
riscv_send_ipi(hyp, &cpus);
sys/riscv/vmm/vmm_sbi.c
52
struct hyp *hyp;
sys/riscv/vmm/vmm_sbi.c
83
hyp = hypctx->hyp;
sys/riscv/vmm/vmm_sbi.c
84
active_cpus = vm_active_cpus(hyp->vm);
sys/riscv/vmm/vmm_sbi.c
85
maxcpus = vm_get_maxcpus(hyp->vm);
sys/riscv/vmm/vmm_sbi.c
87
vcpu = vm_vcpu(hyp->vm, i);
sys/riscv/vmm/vmm_vtimer.c
89
struct hyp *hyp;
sys/riscv/vmm/vmm_vtimer.c
92
hyp = hypctx->hyp;
sys/riscv/vmm/vmm_vtimer.c
95
vcpu_notify_event(vm_vcpu(hyp->vm, hypctx->cpu_id));
usr.sbin/bhyve/aarch64/vmexit.c
275
vmrun->vm_exit->u.hyp.far_el2) != 0)
usr.sbin/bhyve/gdb.c
1154
esr = (EXCP_BRK << ESR_ELx_EC_SHIFT) | vmexit->u.hyp.esr_el2;
usr.sbin/bhyve/riscv/vmexit.c
353
printf("unhandled exception: scause %#lx\n", vme->u.hyp.scause);