Lines Matching refs:error
299 int error; in vie_read_register() local
301 error = vm_get_register(vcpu, reg, rval); in vie_read_register()
303 return (error); in vie_read_register()
336 int error, lhbr; in vie_read_bytereg() local
340 error = vm_get_register(vcpu, reg, &val); in vie_read_bytereg()
350 return (error); in vie_read_bytereg()
357 int error, lhbr; in vie_write_bytereg() local
361 error = vm_get_register(vcpu, reg, &origval); in vie_write_bytereg()
362 if (error == 0) { in vie_write_bytereg()
374 error = vm_set_register(vcpu, reg, val); in vie_write_bytereg()
376 return (error); in vie_write_bytereg()
383 int error; in vie_update_register() local
389 error = vie_read_register(vcpu, reg, &origval); in vie_update_register()
390 if (error) in vie_update_register()
391 return (error); in vie_update_register()
404 error = vm_set_register(vcpu, reg, val); in vie_update_register()
405 return (error); in vie_update_register()
519 int error, size; in emulate_mov() local
525 error = EINVAL; in emulate_mov()
535 error = vie_read_bytereg(vcpu, vie, &byte); in emulate_mov()
536 if (error == 0) in emulate_mov()
537 error = memwrite(vcpu, gpa, byte, size, arg); in emulate_mov()
547 error = vie_read_register(vcpu, reg, &val); in emulate_mov()
548 if (error == 0) { in emulate_mov()
550 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
560 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
561 if (error == 0) in emulate_mov()
562 error = vie_write_bytereg(vcpu, vie, val); in emulate_mov()
571 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
572 if (error == 0) { in emulate_mov()
574 error = vie_update_register(vcpu, reg, val, size); in emulate_mov()
584 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
585 if (error == 0) { in emulate_mov()
587 error = vie_update_register(vcpu, reg, val, size); in emulate_mov()
597 error = vie_read_register(vcpu, VM_REG_GUEST_RAX, &val); in emulate_mov()
598 if (error == 0) { in emulate_mov()
600 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
610 error = memwrite(vcpu, gpa, vie->immediate, size, arg); in emulate_mov()
620 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
626 return (error); in emulate_mov()
633 int error, size; in emulate_movx() local
638 error = EINVAL; in emulate_movx()
652 error = memread(vcpu, gpa, &val, 1, arg); in emulate_movx()
653 if (error) in emulate_movx()
663 error = vie_update_register(vcpu, reg, val, size); in emulate_movx()
673 error = memread(vcpu, gpa, &val, 2, arg); in emulate_movx()
674 if (error) in emulate_movx()
675 return (error); in emulate_movx()
682 error = vie_update_register(vcpu, reg, val, size); in emulate_movx()
695 error = memread(vcpu, gpa, &val, 1, arg); in emulate_movx()
696 if (error) in emulate_movx()
706 error = vie_update_register(vcpu, reg, val, size); in emulate_movx()
711 return (error); in emulate_movx()
724 int error __diagused; in get_gla()
726 error = vie_read_register(vcpu, VM_REG_GUEST_CR0, &cr0); in get_gla()
727 KASSERT(error == 0, ("%s: error %d getting cr0", __func__, error)); in get_gla()
729 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in get_gla()
730 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in get_gla()
732 error = vm_get_seg_desc(vcpu, seg, &desc); in get_gla()
733 KASSERT(error == 0, ("%s: error %d getting segment descriptor %d", in get_gla()
734 __func__, error, seg)); in get_gla()
736 error = vie_read_register(vcpu, gpr, &val); in get_gla()
737 KASSERT(error == 0, ("%s: error %d getting register %d", __func__, in get_gla()
738 error, gpr)); in get_gla()
782 int error, fault, opsize, seg, repeat; in emulate_movs() local
786 error = 0; in emulate_movs()
798 error = vie_read_register(vcpu, VM_REG_GUEST_RCX, &rcx); in emulate_movs()
799 KASSERT(!error, ("%s: error %d getting rcx", __func__, error)); in emulate_movs()
806 error = 0; in emulate_movs()
828 error = get_gla(vcpu, vie, paging, opsize, vie->addrsize, in emulate_movs()
830 if (error || fault) in emulate_movs()
833 error = vm_copy_setup(vcpu, paging, srcaddr, opsize, PROT_READ, in emulate_movs()
835 if (error == 0) { in emulate_movs()
844 error = memwrite(vcpu, gpa, val, opsize, arg); in emulate_movs()
845 if (error) in emulate_movs()
853 error = get_gla(vcpu, vie, paging, opsize, vie->addrsize, in emulate_movs()
856 if (error || fault) in emulate_movs()
859 error = vm_copy_setup(vcpu, paging, dstaddr, opsize, in emulate_movs()
861 if (error == 0) { in emulate_movs()
874 error = memread(vcpu, gpa, &val, opsize, arg); in emulate_movs()
875 if (error) in emulate_movs()
889 error = vm_gla2gpa(vcpu, paging, srcaddr, in emulate_movs()
891 if (error || fault) in emulate_movs()
894 error = vm_gla2gpa(vcpu, paging, dstaddr, in emulate_movs()
896 if (error || fault) in emulate_movs()
899 error = memread(vcpu, srcgpa, &val, opsize, arg); in emulate_movs()
900 if (error) in emulate_movs()
903 error = memwrite(vcpu, dstgpa, val, opsize, arg); in emulate_movs()
904 if (error) in emulate_movs()
909 error = vie_read_register(vcpu, VM_REG_GUEST_RSI, &rsi); in emulate_movs()
910 KASSERT(error == 0, ("%s: error %d getting rsi", __func__, error)); in emulate_movs()
912 error = vie_read_register(vcpu, VM_REG_GUEST_RDI, &rdi); in emulate_movs()
913 KASSERT(error == 0, ("%s: error %d getting rdi", __func__, error)); in emulate_movs()
915 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_movs()
916 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in emulate_movs()
926 error = vie_update_register(vcpu, VM_REG_GUEST_RSI, rsi, in emulate_movs()
928 KASSERT(error == 0, ("%s: error %d updating rsi", __func__, error)); in emulate_movs()
930 error = vie_update_register(vcpu, VM_REG_GUEST_RDI, rdi, in emulate_movs()
932 KASSERT(error == 0, ("%s: error %d updating rdi", __func__, error)); in emulate_movs()
936 error = vie_update_register(vcpu, VM_REG_GUEST_RCX, in emulate_movs()
938 KASSERT(!error, ("%s: error %d updating rcx", __func__, error)); in emulate_movs()
947 KASSERT(error == 0 || error == EFAULT, ("%s: unexpected error %d", in emulate_movs()
948 __func__, error)); in emulate_movs()
949 return (error); in emulate_movs()
957 int error, opsize, repeat; in emulate_stos() local
965 error = vie_read_register(vcpu, VM_REG_GUEST_RCX, &rcx); in emulate_stos()
966 KASSERT(!error, ("%s: error %d getting rcx", __func__, error)); in emulate_stos()
976 error = vie_read_register(vcpu, VM_REG_GUEST_RAX, &val); in emulate_stos()
977 KASSERT(!error, ("%s: error %d getting rax", __func__, error)); in emulate_stos()
979 error = memwrite(vcpu, gpa, val, opsize, arg); in emulate_stos()
980 if (error) in emulate_stos()
981 return (error); in emulate_stos()
983 error = vie_read_register(vcpu, VM_REG_GUEST_RDI, &rdi); in emulate_stos()
984 KASSERT(error == 0, ("%s: error %d getting rdi", __func__, error)); in emulate_stos()
986 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_stos()
987 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in emulate_stos()
994 error = vie_update_register(vcpu, VM_REG_GUEST_RDI, rdi, in emulate_stos()
996 KASSERT(error == 0, ("%s: error %d updating rdi", __func__, error)); in emulate_stos()
1000 error = vie_update_register(vcpu, VM_REG_GUEST_RCX, in emulate_stos()
1002 KASSERT(!error, ("%s: error %d updating rcx", __func__, error)); in emulate_stos()
1018 int error, size; in emulate_and() local
1023 error = EINVAL; in emulate_and()
1038 error = vie_read_register(vcpu, reg, &val1); in emulate_and()
1039 if (error) in emulate_and()
1043 error = memread(vcpu, gpa, &val2, size, arg); in emulate_and()
1044 if (error) in emulate_and()
1049 error = vie_update_register(vcpu, reg, result, size); in emulate_and()
1067 error = memread(vcpu, gpa, &val1, size, arg); in emulate_and()
1068 if (error) in emulate_and()
1076 error = memwrite(vcpu, gpa, result, size, arg); in emulate_and()
1081 if (error) in emulate_and()
1082 return (error); in emulate_and()
1084 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_and()
1085 if (error) in emulate_and()
1086 return (error); in emulate_and()
1098 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_and()
1099 return (error); in emulate_and()
1106 int error, size; in emulate_or() local
1111 error = EINVAL; in emulate_or()
1126 error = vie_read_register(vcpu, reg, &val1); in emulate_or()
1127 if (error) in emulate_or()
1131 error = memread(vcpu, gpa, &val2, size, arg); in emulate_or()
1132 if (error) in emulate_or()
1137 error = vie_update_register(vcpu, reg, result, size); in emulate_or()
1155 error = memread(vcpu, gpa, &val1, size, arg); in emulate_or()
1156 if (error) in emulate_or()
1164 error = memwrite(vcpu, gpa, result, size, arg); in emulate_or()
1169 if (error) in emulate_or()
1170 return (error); in emulate_or()
1172 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_or()
1173 if (error) in emulate_or()
1174 return (error); in emulate_or()
1186 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_or()
1187 return (error); in emulate_or()
1194 int error, size; in emulate_cmp() local
1219 error = vie_read_register(vcpu, reg, ®op); in emulate_cmp()
1220 if (error) in emulate_cmp()
1221 return (error); in emulate_cmp()
1224 error = memread(vcpu, gpa, &memop, size, arg); in emulate_cmp()
1225 if (error) in emulate_cmp()
1226 return (error); in emulate_cmp()
1263 error = memread(vcpu, gpa, &op1, size, arg); in emulate_cmp()
1264 if (error) in emulate_cmp()
1265 return (error); in emulate_cmp()
1272 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_cmp()
1273 if (error) in emulate_cmp()
1274 return (error); in emulate_cmp()
1278 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_cmp()
1279 return (error); in emulate_cmp()
1286 int error, size; in emulate_test() local
1290 error = EINVAL; in emulate_test()
1313 error = memread(vcpu, gpa, &op1, size, arg); in emulate_test()
1314 if (error) in emulate_test()
1315 return (error); in emulate_test()
1322 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_test()
1323 if (error) in emulate_test()
1324 return (error); in emulate_test()
1333 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_test()
1334 return (error); in emulate_test()
1344 int error; in emulate_bextr() local
1347 error = EINVAL; in emulate_bextr()
1366 error = memread(vcpu, gpa, &src1, size, arg); in emulate_bextr()
1367 if (error) in emulate_bextr()
1368 return (error); in emulate_bextr()
1369 error = vie_read_register(vcpu, gpr_map[vie->vex_reg], &src2); in emulate_bextr()
1370 if (error) in emulate_bextr()
1371 return (error); in emulate_bextr()
1372 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_bextr()
1373 if (error) in emulate_bextr()
1374 return (error); in emulate_bextr()
1398 error = vie_update_register(vcpu, gpr_map[vie->reg], dst, size); in emulate_bextr()
1399 if (error) in emulate_bextr()
1400 return (error); in emulate_bextr()
1409 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, in emulate_bextr()
1411 return (error); in emulate_bextr()
1418 int error, size; in emulate_add() local
1423 error = EINVAL; in emulate_add()
1437 error = vie_read_register(vcpu, reg, &val1); in emulate_add()
1438 if (error) in emulate_add()
1442 error = memread(vcpu, gpa, &val2, size, arg); in emulate_add()
1443 if (error) in emulate_add()
1448 error = vie_update_register(vcpu, reg, nval, size); in emulate_add()
1454 if (!error) { in emulate_add()
1456 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, in emulate_add()
1458 if (error) in emulate_add()
1459 return (error); in emulate_add()
1463 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, in emulate_add()
1467 return (error); in emulate_add()
1474 int error, size; in emulate_sub() local
1479 error = EINVAL; in emulate_sub()
1493 error = vie_read_register(vcpu, reg, &val1); in emulate_sub()
1494 if (error) in emulate_sub()
1498 error = memread(vcpu, gpa, &val2, size, arg); in emulate_sub()
1499 if (error) in emulate_sub()
1504 error = vie_update_register(vcpu, reg, nval, size); in emulate_sub()
1510 if (!error) { in emulate_sub()
1512 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, in emulate_sub()
1514 if (error) in emulate_sub()
1515 return (error); in emulate_sub()
1519 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, in emulate_sub()
1523 return (error); in emulate_sub()
1538 int error, fault, size, stackaddrsize, pushop; in emulate_stack_op() local
1565 error = vm_get_seg_desc(vcpu, VM_REG_GUEST_SS, &ss_desc); in emulate_stack_op()
1566 KASSERT(error == 0, ("%s: error %d getting SS descriptor", in emulate_stack_op()
1567 __func__, error)); in emulate_stack_op()
1574 error = vie_read_register(vcpu, VM_REG_GUEST_CR0, &cr0); in emulate_stack_op()
1575 KASSERT(error == 0, ("%s: error %d getting cr0", __func__, error)); in emulate_stack_op()
1577 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_stack_op()
1578 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in emulate_stack_op()
1580 error = vie_read_register(vcpu, VM_REG_GUEST_RSP, &rsp); in emulate_stack_op()
1581 KASSERT(error == 0, ("%s: error %d getting rsp", __func__, error)); in emulate_stack_op()
1603 error = vm_copy_setup(vcpu, paging, stack_gla, size, in emulate_stack_op()
1606 if (error || fault) in emulate_stack_op()
1607 return (error); in emulate_stack_op()
1610 error = memread(vcpu, mmio_gpa, &val, size, arg); in emulate_stack_op()
1611 if (error == 0) in emulate_stack_op()
1615 error = memwrite(vcpu, mmio_gpa, val, size, arg); in emulate_stack_op()
1620 if (error == 0) { in emulate_stack_op()
1621 error = vie_update_register(vcpu, VM_REG_GUEST_RSP, rsp, in emulate_stack_op()
1623 KASSERT(error == 0, ("error %d updating rsp", error)); in emulate_stack_op()
1625 return (error); in emulate_stack_op()
1633 int error; in emulate_push() local
1644 error = emulate_stack_op(vcpu, mmio_gpa, vie, paging, memread, in emulate_push()
1646 return (error); in emulate_push()
1654 int error; in emulate_pop() local
1665 error = emulate_stack_op(vcpu, mmio_gpa, vie, paging, memread, in emulate_pop()
1667 return (error); in emulate_pop()
1675 int error; in emulate_group1() local
1679 error = emulate_or(vcpu, gpa, vie, in emulate_group1()
1683 error = emulate_and(vcpu, gpa, vie, in emulate_group1()
1687 error = emulate_cmp(vcpu, gpa, vie, in emulate_group1()
1691 error = EINVAL; in emulate_group1()
1695 return (error); in emulate_group1()
1704 int error, bitmask, bitoff; in emulate_bittest() local
1715 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_bittest()
1716 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in emulate_bittest()
1718 error = memread(vcpu, gpa, &val, vie->opsize, memarg); in emulate_bittest()
1719 if (error) in emulate_bittest()
1720 return (error); in emulate_bittest()
1735 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_bittest()
1736 KASSERT(error == 0, ("%s: error %d updating rflags", __func__, error)); in emulate_bittest()
1746 int error; in emulate_twob_group15() local
1756 error = 0; in emulate_twob_group15()
1762 error = memread(vcpu, gpa, &buf, 1, memarg); in emulate_twob_group15()
1766 error = EINVAL; in emulate_twob_group15()
1770 return (error); in emulate_twob_group15()
1778 int error; in vmm_emulate_instruction() local
1785 error = emulate_group1(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1789 error = emulate_pop(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1793 error = emulate_push(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1797 error = emulate_cmp(vcpu, gpa, vie, in vmm_emulate_instruction()
1801 error = emulate_mov(vcpu, gpa, vie, in vmm_emulate_instruction()
1806 error = emulate_movx(vcpu, gpa, vie, in vmm_emulate_instruction()
1810 error = emulate_movs(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1814 error = emulate_stos(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1818 error = emulate_and(vcpu, gpa, vie, in vmm_emulate_instruction()
1822 error = emulate_or(vcpu, gpa, vie, in vmm_emulate_instruction()
1826 error = emulate_sub(vcpu, gpa, vie, in vmm_emulate_instruction()
1830 error = emulate_bittest(vcpu, gpa, vie, in vmm_emulate_instruction()
1834 error = emulate_twob_group15(vcpu, gpa, vie, in vmm_emulate_instruction()
1838 error = emulate_add(vcpu, gpa, vie, memread, in vmm_emulate_instruction()
1842 error = emulate_test(vcpu, gpa, vie, in vmm_emulate_instruction()
1846 error = emulate_bextr(vcpu, gpa, vie, paging, in vmm_emulate_instruction()
1850 error = EINVAL; in vmm_emulate_instruction()
1854 return (error); in vmm_emulate_instruction()
2126 goto error; in _vm_gla2gpa()
2187 goto error; in _vm_gla2gpa()
2216 goto error; in _vm_gla2gpa()
2271 error: in _vm_gla2gpa()
2302 int error, prot; in vmm_fetch_instruction() local
2308 error = vm_copy_setup(vcpu, paging, rip, inst_length, prot, in vmm_fetch_instruction()
2310 if (error || *faultptr) in vmm_fetch_instruction()
2311 return (error); in vmm_fetch_instruction()
2829 int error; in verify_gla() local
2840 error = vm_get_register(vcpu, vie->base_register, &base); in verify_gla()
2841 if (error) { in verify_gla()
2843 error, vie->base_register); in verify_gla()
2857 error = vm_get_register(vcpu, vie->index_register, &idx); in verify_gla()
2858 if (error) { in verify_gla()
2860 error, vie->index_register); in verify_gla()
2889 error = vm_get_seg_desc(vcpu, seg, &desc); in verify_gla()
2890 if (error) { in verify_gla()
2892 " descriptor %d", error, in verify_gla()