Lines Matching defs:vcpuid

275 vie_read_register(void *vm, int vcpuid, enum vm_reg_name reg, uint64_t *rval)
279 error = vm_get_register(vm, vcpuid, reg, rval);
311 vie_read_bytereg(void *vm, int vcpuid, struct vie *vie, uint8_t *rval)
318 error = vm_get_register(vm, vcpuid, reg, &val);
332 vie_write_bytereg(void *vm, int vcpuid, struct vie *vie, uint8_t byte)
339 error = vm_get_register(vm, vcpuid, reg, &origval);
352 error = vm_set_register(vm, vcpuid, reg, val);
358 vie_update_register(void *vm, int vcpuid, enum vm_reg_name reg,
367 error = vie_read_register(vm, vcpuid, reg, &origval);
382 error = vm_set_register(vm, vcpuid, reg, val);
494 emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
513 error = vie_read_bytereg(vm, vcpuid, vie, &byte);
515 error = memwrite(vm, vcpuid, gpa, byte, size, arg);
525 error = vie_read_register(vm, vcpuid, reg, &val);
528 error = memwrite(vm, vcpuid, gpa, val, size, arg);
538 error = memread(vm, vcpuid, gpa, &val, size, arg);
540 error = vie_write_bytereg(vm, vcpuid, vie, val);
549 error = memread(vm, vcpuid, gpa, &val, size, arg);
552 error = vie_update_register(vm, vcpuid, reg, val, size);
562 error = memread(vm, vcpuid, gpa, &val, size, arg);
565 error = vie_update_register(vm, vcpuid, reg, val, size);
575 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RAX, &val);
578 error = memwrite(vm, vcpuid, gpa, val, size, arg);
588 error = memwrite(vm, vcpuid, gpa, vie->immediate, size, arg);
598 error = memwrite(vm, vcpuid, gpa, val, size, arg);
608 emulate_movx(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
631 error = memread(vm, vcpuid, gpa, &val, 1, arg);
642 error = vie_update_register(vm, vcpuid, reg, val, size);
652 error = memread(vm, vcpuid, gpa, &val, 2, arg);
661 error = vie_update_register(vm, vcpuid, reg, val, size);
674 error = memread(vm, vcpuid, gpa, &val, 1, arg);
685 error = vie_update_register(vm, vcpuid, reg, val, size);
697 get_gla(void *vm, int vcpuid, struct vie *vie, struct vm_guest_paging *paging,
705 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_CR0, &cr0);
708 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
711 error = vm_get_seg_desc(vm, vcpuid, seg, &desc);
715 error = vie_read_register(vm, vcpuid, gpr, &val);
722 vm_inject_ss(vm, vcpuid, 0);
724 vm_inject_gp(vm, vcpuid);
730 vm_inject_ss(vm, vcpuid, 0);
732 vm_inject_gp(vm, vcpuid);
737 vm_inject_ac(vm, vcpuid, 0);
750 emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
777 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RCX, &rcx);
807 error = get_gla(vm, vcpuid, vie, paging, opsize, vie->addrsize,
812 error = vm_copy_setup(vm, vcpuid, paging, srcaddr, opsize, PROT_READ,
821 vm_copyin(vm, vcpuid, copyinfo, &val, opsize);
822 vm_copy_teardown(vm, vcpuid, copyinfo, nitems(copyinfo));
823 error = memwrite(vm, vcpuid, gpa, val, opsize, arg);
832 error = get_gla(vm, vcpuid, vie, paging, opsize, vie->addrsize,
838 error = vm_copy_setup(vm, vcpuid, paging, dstaddr, opsize,
853 error = memread(vm, vcpuid, gpa, &val, opsize, arg);
857 vm_copyout(vm, vcpuid, &val, copyinfo, opsize);
858 vm_copy_teardown(vm, vcpuid, copyinfo, nitems(copyinfo));
868 error = vm_gla2gpa(vm, vcpuid, paging, srcaddr,
873 error = vm_gla2gpa(vm, vcpuid, paging, dstaddr,
878 error = memread(vm, vcpuid, srcgpa, &val, opsize, arg);
882 error = memwrite(vm, vcpuid, dstgpa, val, opsize, arg);
888 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RSI, &rsi);
891 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RDI, &rdi);
894 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
905 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RSI, rsi,
909 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RDI, rdi,
915 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RCX,
923 vm_restart_instruction(vm, vcpuid);
932 emulate_stos(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
944 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RCX, &rcx);
955 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RAX, &val);
958 error = memwrite(vm, vcpuid, gpa, val, opsize, arg);
962 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RDI, &rdi);
965 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
973 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RDI, rdi,
979 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RCX,
987 vm_restart_instruction(vm, vcpuid);
994 emulate_and(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1017 error = vie_read_register(vm, vcpuid, reg, &val1);
1022 error = memread(vm, vcpuid, gpa, &val2, size, arg);
1028 error = vie_update_register(vm, vcpuid, reg, result, size);
1046 error = memread(vm, vcpuid, gpa, &val1, size, arg);
1055 error = memwrite(vm, vcpuid, gpa, result, size, arg);
1063 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
1077 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8);
1082 emulate_or(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1105 error = vie_read_register(vm, vcpuid, reg, &val1);
1110 error = memread(vm, vcpuid, gpa, &val2, size, arg);
1116 error = vie_update_register(vm, vcpuid, reg, result, size);
1134 error = memread(vm, vcpuid, gpa, &val1, size, arg);
1143 error = memwrite(vm, vcpuid, gpa, result, size, arg);
1151 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
1165 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8);
1170 emulate_cmp(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1198 error = vie_read_register(vm, vcpuid, reg, &regop);
1203 error = memread(vm, vcpuid, gpa, &memop, size, arg);
1242 error = memread(vm, vcpuid, gpa, &op1, size, arg);
1251 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
1257 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8);
1262 emulate_test(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1286 error = memread(vm, vcpuid, gpa, &op1, size, arg);
1295 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
1306 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8);
1311 emulate_add(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1333 error = vie_read_register(vm, vcpuid, reg, &val1);
1338 error = memread(vm, vcpuid, gpa, &val2, size, arg);
1344 error = vie_update_register(vm, vcpuid, reg, nval, size);
1352 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS,
1359 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS,
1367 emulate_sub(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1389 error = vie_read_register(vm, vcpuid, reg, &val1);
1394 error = memread(vm, vcpuid, gpa, &val2, size, arg);
1400 error = vie_update_register(vm, vcpuid, reg, nval, size);
1408 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS,
1415 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS,
1423 emulate_stack_op(void *vm, int vcpuid, uint64_t mmio_gpa, struct vie *vie,
1461 error = vm_get_seg_desc(vm, vcpuid, VM_REG_GUEST_SS, &ss_desc);
1470 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_CR0, &cr0);
1473 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
1476 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RSP, &rsp);
1485 vm_inject_ss(vm, vcpuid, 0);
1490 vm_inject_ss(vm, vcpuid, 0);
1495 vm_inject_ac(vm, vcpuid, 0);
1499 error = vm_copy_setup(vm, vcpuid, paging, stack_gla, size,
1506 error = memread(vm, vcpuid, mmio_gpa, &val, size, arg);
1508 vm_copyout(vm, vcpuid, &val, copyinfo, size);
1510 vm_copyin(vm, vcpuid, copyinfo, &val, size);
1511 error = memwrite(vm, vcpuid, mmio_gpa, val, size, arg);
1514 vm_copy_teardown(vm, vcpuid, copyinfo, nitems(copyinfo));
1517 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RSP, rsp,
1525 emulate_push(void *vm, int vcpuid, uint64_t mmio_gpa, struct vie *vie,
1540 error = emulate_stack_op(vm, vcpuid, mmio_gpa, vie, paging, memread,
1546 emulate_pop(void *vm, int vcpuid, uint64_t mmio_gpa, struct vie *vie,
1561 error = emulate_stack_op(vm, vcpuid, mmio_gpa, vie, paging, memread,
1567 emulate_group1(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1575 error = emulate_or(vm, vcpuid, gpa, vie,
1579 error = emulate_and(vm, vcpuid, gpa, vie,
1583 error = emulate_cmp(vm, vcpuid, gpa, vie,
1595 emulate_bittest(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1610 error = vie_read_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, &rflags);
1613 error = memread(vm, vcpuid, gpa, &val, vie->opsize, memarg);
1630 error = vie_update_register(vm, vcpuid, VM_REG_GUEST_RFLAGS, rflags, 8);
1637 emulate_twob_group15(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1656 error = memread(vm, vcpuid, gpa, &buf, 1, memarg);
1668 vmm_emulate_instruction(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
1679 error = emulate_group1(vm, vcpuid, gpa, vie, paging, memread,
1683 error = emulate_pop(vm, vcpuid, gpa, vie, paging, memread,
1687 error = emulate_push(vm, vcpuid, gpa, vie, paging, memread,
1691 error = emulate_cmp(vm, vcpuid, gpa, vie,
1695 error = emulate_mov(vm, vcpuid, gpa, vie,
1700 error = emulate_movx(vm, vcpuid, gpa, vie,
1704 error = emulate_movs(vm, vcpuid, gpa, vie, paging, memread,
1708 error = emulate_stos(vm, vcpuid, gpa, vie, paging, memread,
1712 error = emulate_and(vm, vcpuid, gpa, vie,
1716 error = emulate_or(vm, vcpuid, gpa, vie,
1720 error = emulate_sub(vm, vcpuid, gpa, vie,
1724 error = emulate_bittest(vm, vcpuid, gpa, vie,
1728 error = emulate_twob_group15(vm, vcpuid, gpa, vie,
1732 error = emulate_add(vm, vcpuid, gpa, vie, memread,
1736 error = emulate_test(vm, vcpuid, gpa, vie,
1955 vm_gla2gpa(struct vm *vm, int vcpuid, struct vm_guest_paging *paging,
1982 vm_inject_gp(vm, vcpuid);
1997 ptpbase32 = ptp_hold(vm, vcpuid, ptpphys, PAGE_SIZE,
2014 vm_inject_pf(vm, vcpuid, pfcode, gla);
2057 ptpbase = ptp_hold(vm, vcpuid, ptpphys, sizeof(*ptpbase) * 4,
2068 vm_inject_pf(vm, vcpuid, pfcode, gla);
2081 ptpbase = ptp_hold(vm, vcpuid, ptpphys, PAGE_SIZE, &cookie);
2095 vm_inject_pf(vm, vcpuid, pfcode, gla);
2110 vm_inject_pf(vm, vcpuid, pfcode, gla);
2142 vmm_fetch_instruction(struct vm *vm, int vcpuid, struct vm_guest_paging *paging,
2152 error = vm_copy_setup(vm, vcpuid, paging, rip, inst_length, prot,
2157 vm_copyin(vm, vcpuid, copyinfo, vie->inst, inst_length);
2158 vm_copy_teardown(vm, vcpuid, copyinfo, nitems(copyinfo));