Lines Matching refs:vte
323 static MemTxResult get_vte(GICv3ITSState *s, uint32_t vpeid, VTEntry *vte) in get_vte() argument
332 vte->valid = false; in get_vte()
341 vte->valid = FIELD_EX64(vteval, VTE, VALID); in get_vte()
342 vte->vptsize = FIELD_EX64(vteval, VTE, VPTSIZE); in get_vte()
343 vte->vptaddr = FIELD_EX64(vteval, VTE, VPTADDR); in get_vte()
344 vte->rdbase = FIELD_EX64(vteval, VTE, RDBASE); in get_vte()
345 trace_gicv3_its_vte_read(vpeid, vte->valid, vte->vptsize, in get_vte()
346 vte->vptaddr, vte->rdbase); in get_vte()
443 uint32_t vpeid, VTEntry *vte) in lookup_vte() argument
450 if (get_vte(s, vpeid, vte) != MEMTX_OK) { in lookup_vte()
453 if (!vte->valid) { in lookup_vte()
459 if (vte->rdbase >= s->gicv3->num_cpu) { in lookup_vte()
482 VTEntry vte = {}; in process_its_cmd_virt() local
485 cmdres = lookup_vte(s, __func__, ite->vpeid, &vte); in process_its_cmd_virt()
491 ite->intid >= (1ULL << (vte.vptsize + 1))) { in process_its_cmd_virt()
501 gicv3_redist_process_vlpi(&s->gicv3->cpu[vte.rdbase], ite->intid, in process_its_cmd_virt()
502 vte.vptaddr << 16, ite->doorbell, irqlevel); in process_its_cmd_virt()
937 static bool update_vte(GICv3ITSState *s, uint32_t vpeid, const VTEntry *vte) in update_vte() argument
944 trace_gicv3_its_vte_write(vpeid, vte->valid, vte->vptsize, vte->vptaddr, in update_vte()
945 vte->rdbase); in update_vte()
947 if (vte->valid) { in update_vte()
949 vteval = FIELD_DP64(vteval, VTE, VPTSIZE, vte->vptsize); in update_vte()
950 vteval = FIELD_DP64(vteval, VTE, VPTADDR, vte->vptaddr); in update_vte()
951 vteval = FIELD_DP64(vteval, VTE, RDBASE, vte->rdbase); in update_vte()
968 VTEntry vte = {}; in process_vmapp() local
976 vte.rdbase = FIELD_EX64(cmdpkt[2], VMAPP_2, RDBASE); in process_vmapp()
977 vte.valid = FIELD_EX64(cmdpkt[2], VMAPP_2, V); in process_vmapp()
978 vte.vptsize = FIELD_EX64(cmdpkt[3], VMAPP_3, VPTSIZE); in process_vmapp()
979 vte.vptaddr = FIELD_EX64(cmdpkt[3], VMAPP_3, VPTADDR); in process_vmapp()
981 trace_gicv3_its_cmd_vmapp(vpeid, vte.rdbase, vte.valid, in process_vmapp()
982 vte.vptaddr, vte.vptsize); in process_vmapp()
990 if (vte.vptsize > FIELD_EX64(s->typer, GITS_TYPER, IDBITS)) { in process_vmapp()
992 "%s: invalid VPT_size 0x%x\n", __func__, vte.vptsize); in process_vmapp()
996 if (vte.valid && vte.rdbase >= s->gicv3->num_cpu) { in process_vmapp()
998 "%s: invalid rdbase 0x%x\n", __func__, vte.rdbase); in process_vmapp()
1009 return update_vte(s, vpeid, &vte) ? CMD_CONTINUE_OK : CMD_STALL; in process_vmapp()
1033 VTEntry vte = {}; in vmovp_callback() local
1036 cmdres = lookup_vte(s, __func__, cbdata->vpeid, &vte); in vmovp_callback()
1050 vte.rdbase = cbdata->rdbase; in vmovp_callback()
1051 if (!update_vte(s, cbdata->vpeid, &vte)) { in vmovp_callback()
1165 VTEntry vte; in process_vinvall() local
1177 cmdres = lookup_vte(s, __func__, vpeid, &vte); in process_vinvall()
1182 gicv3_redist_vinvall(&s->gicv3->cpu[vte.rdbase], vte.vptaddr << 16); in process_vinvall()
1192 VTEntry vte = {}; in process_inv() local
1222 cmdres = lookup_vte(s, __func__, ite.vpeid, &vte); in process_inv()
1227 ite.intid >= (1ULL << (vte.vptsize + 1))) { in process_inv()
1232 gicv3_redist_inv_vlpi(&s->gicv3->cpu[vte.rdbase], ite.intid, in process_inv()
1233 vte.vptaddr << 16); in process_inv()