Home | History | Annotate | Download | only in libnvmm

Lines Matching defs:gva

124     gvaddr_t gva, gpaddr_t *gpa, bool has_pse, nvmm_prot_t *prot)
139 pte = pdir[pte32_l2idx(gva)];
150 *gpa = *gpa + (gva & PTE32_L1_MASK);
159 pte = pdir[pte32_l1idx(gva)];
197 gvaddr_t gva, gpaddr_t *gpa, nvmm_prot_t *prot)
212 pte = pdir[pte32_pae_l3idx(gva)];
225 pte = pdir[pte32_pae_l2idx(gva)];
236 *gpa = *gpa + (gva & PTE32_PAE_L1_MASK);
245 pte = pdir[pte32_pae_l1idx(gva)];
288 x86_gva_64bit_canonical(gvaddr_t gva)
292 return (gva & SIGN_EXTEND) == 0 || (gva & SIGN_EXTEND) == SIGN_EXTEND;
297 gvaddr_t gva, gpaddr_t *gpa, nvmm_prot_t *prot)
307 if (!x86_gva_64bit_canonical(gva))
315 pte = pdir[pte64_l4idx(gva)];
332 pte = pdir[pte64_l3idx(gva)];
343 *gpa = *gpa + (gva & (PTE64_L2_MASK|PTE64_L1_MASK));
352 pte = pdir[pte64_l2idx(gva)];
363 *gpa = *gpa + (gva & PTE64_L1_MASK);
372 pte = pdir[pte64_l1idx(gva)];
390 gvaddr_t gva, gpaddr_t *gpa, nvmm_prot_t *prot)
400 *gpa = gva;
404 off = (gva & PAGE_MASK);
405 gva &= ~PAGE_MASK;
414 ret = x86_gva_to_gpa_64bit(mach, cr3, gva, gpa, prot);
417 ret = x86_gva_to_gpa_32bit_pae(mach, cr3, gva, gpa, prot);
420 ret = x86_gva_to_gpa_32bit(mach, cr3, gva, gpa, has_pse, prot);
436 gvaddr_t gva, gpaddr_t *gpa, nvmm_prot_t *prot)
446 return x86_gva_to_gpa(mach, state, gva, gpa, prot);
484 segment_check(struct nvmm_x64_state_seg *seg, gvaddr_t gva, size_t size)
501 if (__predict_false(gva + size > limit)) {
513 segment_apply(struct nvmm_x64_state_seg *seg, gvaddr_t *gva)
515 *gva += seg->base;
558 gvaddr_t gva, uint8_t *data, size_t size)
568 ret = x86_gva_to_gpa(mach, state, gva, &gpa, &prot);
577 if ((gva & PAGE_MASK) + size > PAGE_SIZE) {
578 remain = ((gva & PAGE_MASK) + size - PAGE_SIZE);
604 ret = read_guest_memory(mach, vcpu, gva + size,
615 gvaddr_t gva, uint8_t *data, size_t size)
625 ret = x86_gva_to_gpa(mach, state, gva, &gpa, &prot);
634 if ((gva & PAGE_MASK) + size > PAGE_SIZE) {
635 remain = ((gva & PAGE_MASK) + size - PAGE_SIZE);
661 ret = write_guest_memory(mach, vcpu, gva + size,
678 struct nvmm_io *io, gvaddr_t gva, uint64_t cnt)
691 ret = read_guest_memory(mach, vcpu, gva, iobuf, iosize);
702 ret = write_guest_memory(mach, vcpu, gva, iobuf, iosize);
719 gvaddr_t gva = 0; /* GCC */
755 * Determine GVA.
764 gva = state->gprs[reg];
765 gva &= size_to_mask(exit->u.io.address_size);
781 segment_apply(&state->segs[seg], &gva);
784 ret = segment_check(&state->segs[seg], gva, io.size);
787 segment_apply(&state->segs[seg], &gva);
791 iocnt = assist_io_batch(mach, vcpu, &io, gva, cnt);
802 ret = read_guest_memory(mach, vcpu, gva, io.data,
819 ret = write_guest_memory(mach, vcpu, gva, io.data,
3044 gvaddr_t gva = 0;
3051 gva += gpr_read_address(instr, state, sib->bas->num);
3054 gva += sib->scale * reg;
3061 gva = gpr_read_address(instr, state, store->u.reg->num);
3064 gva = gpr_read_address(instr, state, store->u.dualreg.reg1) +
3067 gva = store->u.dmo;
3071 gva += store->disp.data;
3086 segment_apply(&state->segs[seg], &gva);
3089 ret = segment_check(&state->segs[seg], gva, size);
3092 segment_apply(&state->segs[seg], &gva);
3095 *gvap = gva;
3105 gvaddr_t gva;
3110 gva = state->gprs[NVMM_X64_GPR_RIP];
3112 ret = segment_check(&state->segs[NVMM_X64_SEG_CS], gva,
3116 segment_apply(&state->segs[NVMM_X64_SEG_CS], &gva);
3119 ret = read_guest_memory(mach, vcpu, gva, inst_bytes, fetchsize);
3163 gvaddr_t gva;
3168 gva = state->gprs[NVMM_X64_GPR_RIP];
3170 ret = segment_check(&state->segs[NVMM_X64_SEG_CS], gva,
3174 segment_apply(&state->segs[NVMM_X64_SEG_CS], &gva);
3177 ret = read_guest_memory(mach, vcpu, gva, exit->u.mem.inst_bytes,
3194 gvaddr_t gva;
3202 ret = store_to_gva(state, instr, &instr->src, &gva, size);
3205 ret = read_guest_memory(mach, vcpu, gva, data, size);
3210 ret = store_to_gva(state, instr, &instr->dst, &gva, size);
3213 ret = write_guest_memory(mach, vcpu, gva, data, size);
3240 gvaddr_t gva;
3248 ret = store_to_gva(state, instr, &instr->src, &gva, size);
3251 ret = read_guest_memory(mach, vcpu, gva, data1, size);
3256 ret = store_to_gva(state, instr, &instr->dst, &gva, size);
3259 ret = read_guest_memory(mach, vcpu, gva, data2, size);