Lines Matching refs:error
285 int error; in vie_read_register() local
287 error = vm_get_register(vcpu, reg, rval); in vie_read_register()
289 return (error); in vie_read_register()
322 int error, lhbr; in vie_read_bytereg() local
326 error = vm_get_register(vcpu, reg, &val); in vie_read_bytereg()
336 return (error); in vie_read_bytereg()
343 int error, lhbr; in vie_write_bytereg() local
347 error = vm_get_register(vcpu, reg, &origval); in vie_write_bytereg()
348 if (error == 0) { in vie_write_bytereg()
360 error = vm_set_register(vcpu, reg, val); in vie_write_bytereg()
362 return (error); in vie_write_bytereg()
369 int error; in vie_update_register() local
375 error = vie_read_register(vcpu, reg, &origval); in vie_update_register()
376 if (error) in vie_update_register()
377 return (error); in vie_update_register()
390 error = vm_set_register(vcpu, reg, val); in vie_update_register()
391 return (error); in vie_update_register()
505 int error, size; in emulate_mov() local
511 error = EINVAL; in emulate_mov()
521 error = vie_read_bytereg(vcpu, vie, &byte); in emulate_mov()
522 if (error == 0) in emulate_mov()
523 error = memwrite(vcpu, gpa, byte, size, arg); in emulate_mov()
533 error = vie_read_register(vcpu, reg, &val); in emulate_mov()
534 if (error == 0) { in emulate_mov()
536 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
546 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
547 if (error == 0) in emulate_mov()
548 error = vie_write_bytereg(vcpu, vie, val); in emulate_mov()
557 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
558 if (error == 0) { in emulate_mov()
560 error = vie_update_register(vcpu, reg, val, size); in emulate_mov()
570 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
571 if (error == 0) { in emulate_mov()
573 error = vie_update_register(vcpu, reg, val, size); in emulate_mov()
583 error = vie_read_register(vcpu, VM_REG_GUEST_RAX, &val); in emulate_mov()
584 if (error == 0) { in emulate_mov()
586 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
596 error = memwrite(vcpu, gpa, vie->immediate, size, arg); in emulate_mov()
606 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
612 return (error); in emulate_mov()
619 int error, size; in emulate_movx() local
624 error = EINVAL; in emulate_movx()
638 error = memread(vcpu, gpa, &val, 1, arg); in emulate_movx()
639 if (error) in emulate_movx()
649 error = vie_update_register(vcpu, reg, val, size); in emulate_movx()
659 error = memread(vcpu, gpa, &val, 2, arg); in emulate_movx()
660 if (error) in emulate_movx()
661 return (error); in emulate_movx()
668 error = vie_update_register(vcpu, reg, val, size); in emulate_movx()
681 error = memread(vcpu, gpa, &val, 1, arg); in emulate_movx()
682 if (error) in emulate_movx()
692 error = vie_update_register(vcpu, reg, val, size); in emulate_movx()
697 return (error); in emulate_movx()
710 int error __diagused; in get_gla()
712 error = vie_read_register(vcpu, VM_REG_GUEST_CR0, &cr0); in get_gla()
713 KASSERT(error == 0, ("%s: error %d getting cr0", __func__, error)); in get_gla()
715 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in get_gla()
716 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in get_gla()
718 error = vm_get_seg_desc(vcpu, seg, &desc); in get_gla()
719 KASSERT(error == 0, ("%s: error %d getting segment descriptor %d", in get_gla()
720 __func__, error, seg)); in get_gla()
722 error = vie_read_register(vcpu, gpr, &val); in get_gla()
723 KASSERT(error == 0, ("%s: error %d getting register %d", __func__, in get_gla()
724 error, gpr)); in get_gla()
768 int error, fault, opsize, seg, repeat; in emulate_movs() local
772 error = 0; in emulate_movs()
784 error = vie_read_register(vcpu, VM_REG_GUEST_RCX, &rcx); in emulate_movs()
785 KASSERT(!error, ("%s: error %d getting rcx", __func__, error)); in emulate_movs()
792 error = 0; in emulate_movs()
814 error = get_gla(vcpu, vie, paging, opsize, vie->addrsize, in emulate_movs()
816 if (error || fault) in emulate_movs()
819 error = vm_copy_setup(vcpu, paging, srcaddr, opsize, PROT_READ, in emulate_movs()
821 if (error == 0) { in emulate_movs()
830 error = memwrite(vcpu, gpa, val, opsize, arg); in emulate_movs()
831 if (error) in emulate_movs()
839 error = get_gla(vcpu, vie, paging, opsize, vie->addrsize, in emulate_movs()
842 if (error || fault) in emulate_movs()
845 error = vm_copy_setup(vcpu, paging, dstaddr, opsize, in emulate_movs()
847 if (error == 0) { in emulate_movs()
860 error = memread(vcpu, gpa, &val, opsize, arg); in emulate_movs()
861 if (error) in emulate_movs()
875 error = vm_gla2gpa(vcpu, paging, srcaddr, in emulate_movs()
877 if (error || fault) in emulate_movs()
880 error = vm_gla2gpa(vcpu, paging, dstaddr, in emulate_movs()
882 if (error || fault) in emulate_movs()
885 error = memread(vcpu, srcgpa, &val, opsize, arg); in emulate_movs()
886 if (error) in emulate_movs()
889 error = memwrite(vcpu, dstgpa, val, opsize, arg); in emulate_movs()
890 if (error) in emulate_movs()
895 error = vie_read_register(vcpu, VM_REG_GUEST_RSI, &rsi); in emulate_movs()
896 KASSERT(error == 0, ("%s: error %d getting rsi", __func__, error)); in emulate_movs()
898 error = vie_read_register(vcpu, VM_REG_GUEST_RDI, &rdi); in emulate_movs()
899 KASSERT(error == 0, ("%s: error %d getting rdi", __func__, error)); in emulate_movs()
901 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_movs()
902 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in emulate_movs()
912 error = vie_update_register(vcpu, VM_REG_GUEST_RSI, rsi, in emulate_movs()
914 KASSERT(error == 0, ("%s: error %d updating rsi", __func__, error)); in emulate_movs()
916 error = vie_update_register(vcpu, VM_REG_GUEST_RDI, rdi, in emulate_movs()
918 KASSERT(error == 0, ("%s: error %d updating rdi", __func__, error)); in emulate_movs()
922 error = vie_update_register(vcpu, VM_REG_GUEST_RCX, in emulate_movs()
924 KASSERT(!error, ("%s: error %d updating rcx", __func__, error)); in emulate_movs()
933 KASSERT(error == 0 || error == EFAULT, ("%s: unexpected error %d", in emulate_movs()
934 __func__, error)); in emulate_movs()
935 return (error); in emulate_movs()
943 int error, opsize, repeat; in emulate_stos() local
951 error = vie_read_register(vcpu, VM_REG_GUEST_RCX, &rcx); in emulate_stos()
952 KASSERT(!error, ("%s: error %d getting rcx", __func__, error)); in emulate_stos()
962 error = vie_read_register(vcpu, VM_REG_GUEST_RAX, &val); in emulate_stos()
963 KASSERT(!error, ("%s: error %d getting rax", __func__, error)); in emulate_stos()
965 error = memwrite(vcpu, gpa, val, opsize, arg); in emulate_stos()
966 if (error) in emulate_stos()
967 return (error); in emulate_stos()
969 error = vie_read_register(vcpu, VM_REG_GUEST_RDI, &rdi); in emulate_stos()
970 KASSERT(error == 0, ("%s: error %d getting rdi", __func__, error)); in emulate_stos()
972 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_stos()
973 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in emulate_stos()
980 error = vie_update_register(vcpu, VM_REG_GUEST_RDI, rdi, in emulate_stos()
982 KASSERT(error == 0, ("%s: error %d updating rdi", __func__, error)); in emulate_stos()
986 error = vie_update_register(vcpu, VM_REG_GUEST_RCX, in emulate_stos()
988 KASSERT(!error, ("%s: error %d updating rcx", __func__, error)); in emulate_stos()
1004 int error, size; in emulate_and() local
1009 error = EINVAL; in emulate_and()
1024 error = vie_read_register(vcpu, reg, &val1); in emulate_and()
1025 if (error) in emulate_and()
1029 error = memread(vcpu, gpa, &val2, size, arg); in emulate_and()
1030 if (error) in emulate_and()
1035 error = vie_update_register(vcpu, reg, result, size); in emulate_and()
1053 error = memread(vcpu, gpa, &val1, size, arg); in emulate_and()
1054 if (error) in emulate_and()
1062 error = memwrite(vcpu, gpa, result, size, arg); in emulate_and()
1067 if (error) in emulate_and()
1068 return (error); in emulate_and()
1070 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_and()
1071 if (error) in emulate_and()
1072 return (error); in emulate_and()
1084 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_and()
1085 return (error); in emulate_and()
1092 int error, size; in emulate_or() local
1097 error = EINVAL; in emulate_or()
1112 error = vie_read_register(vcpu, reg, &val1); in emulate_or()
1113 if (error) in emulate_or()
1117 error = memread(vcpu, gpa, &val2, size, arg); in emulate_or()
1118 if (error) in emulate_or()
1123 error = vie_update_register(vcpu, reg, result, size); in emulate_or()
1141 error = memread(vcpu, gpa, &val1, size, arg); in emulate_or()
1142 if (error) in emulate_or()
1150 error = memwrite(vcpu, gpa, result, size, arg); in emulate_or()
1155 if (error) in emulate_or()
1156 return (error); in emulate_or()
1158 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_or()
1159 if (error) in emulate_or()
1160 return (error); in emulate_or()
1172 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_or()
1173 return (error); in emulate_or()
1180 int error, size; in emulate_cmp() local
1205 error = vie_read_register(vcpu, reg, ®op); in emulate_cmp()
1206 if (error) in emulate_cmp()
1207 return (error); in emulate_cmp()
1210 error = memread(vcpu, gpa, &memop, size, arg); in emulate_cmp()
1211 if (error) in emulate_cmp()
1212 return (error); in emulate_cmp()
1249 error = memread(vcpu, gpa, &op1, size, arg); in emulate_cmp()
1250 if (error) in emulate_cmp()
1251 return (error); in emulate_cmp()
1258 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_cmp()
1259 if (error) in emulate_cmp()
1260 return (error); in emulate_cmp()
1264 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_cmp()
1265 return (error); in emulate_cmp()
1272 int error, size; in emulate_test() local
1276 error = EINVAL; in emulate_test()
1299 error = memread(vcpu, gpa, &op1, size, arg); in emulate_test()
1300 if (error) in emulate_test()
1301 return (error); in emulate_test()
1308 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_test()
1309 if (error) in emulate_test()
1310 return (error); in emulate_test()
1319 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_test()
1320 return (error); in emulate_test()
1330 int error; in emulate_bextr() local
1333 error = EINVAL; in emulate_bextr()
1352 error = memread(vcpu, gpa, &src1, size, arg); in emulate_bextr()
1353 if (error) in emulate_bextr()
1354 return (error); in emulate_bextr()
1355 error = vie_read_register(vcpu, gpr_map[vie->vex_reg], &src2); in emulate_bextr()
1356 if (error) in emulate_bextr()
1357 return (error); in emulate_bextr()
1358 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_bextr()
1359 if (error) in emulate_bextr()
1360 return (error); in emulate_bextr()
1384 error = vie_update_register(vcpu, gpr_map[vie->reg], dst, size); in emulate_bextr()
1385 if (error) in emulate_bextr()
1386 return (error); in emulate_bextr()
1395 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, in emulate_bextr()
1397 return (error); in emulate_bextr()
1404 int error, size; in emulate_add() local
1409 error = EINVAL; in emulate_add()
1423 error = vie_read_register(vcpu, reg, &val1); in emulate_add()
1424 if (error) in emulate_add()
1428 error = memread(vcpu, gpa, &val2, size, arg); in emulate_add()
1429 if (error) in emulate_add()
1434 error = vie_update_register(vcpu, reg, nval, size); in emulate_add()
1440 if (!error) { in emulate_add()
1442 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, in emulate_add()
1444 if (error) in emulate_add()
1445 return (error); in emulate_add()
1449 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, in emulate_add()
1453 return (error); in emulate_add()
1460 int error, size; in emulate_sub() local
1465 error = EINVAL; in emulate_sub()
1479 error = vie_read_register(vcpu, reg, &val1); in emulate_sub()
1480 if (error) in emulate_sub()
1484 error = memread(vcpu, gpa, &val2, size, arg); in emulate_sub()
1485 if (error) in emulate_sub()
1490 error = vie_update_register(vcpu, reg, nval, size); in emulate_sub()
1496 if (!error) { in emulate_sub()
1498 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, in emulate_sub()
1500 if (error) in emulate_sub()
1501 return (error); in emulate_sub()
1505 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, in emulate_sub()
1509 return (error); in emulate_sub()
1524 int error, fault, size, stackaddrsize, pushop; in emulate_stack_op() local
1551 error = vm_get_seg_desc(vcpu, VM_REG_GUEST_SS, &ss_desc); in emulate_stack_op()
1552 KASSERT(error == 0, ("%s: error %d getting SS descriptor", in emulate_stack_op()
1553 __func__, error)); in emulate_stack_op()
1560 error = vie_read_register(vcpu, VM_REG_GUEST_CR0, &cr0); in emulate_stack_op()
1561 KASSERT(error == 0, ("%s: error %d getting cr0", __func__, error)); in emulate_stack_op()
1563 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_stack_op()
1564 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in emulate_stack_op()
1566 error = vie_read_register(vcpu, VM_REG_GUEST_RSP, &rsp); in emulate_stack_op()
1567 KASSERT(error == 0, ("%s: error %d getting rsp", __func__, error)); in emulate_stack_op()
1589 error = vm_copy_setup(vcpu, paging, stack_gla, size, in emulate_stack_op()
1592 if (error || fault) in emulate_stack_op()
1593 return (error); in emulate_stack_op()
1596 error = memread(vcpu, mmio_gpa, &val, size, arg); in emulate_stack_op()
1597 if (error == 0) in emulate_stack_op()
1601 error = memwrite(vcpu, mmio_gpa, val, size, arg); in emulate_stack_op()
1606 if (error == 0) { in emulate_stack_op()
1607 error = vie_update_register(vcpu, VM_REG_GUEST_RSP, rsp, in emulate_stack_op()
1609 KASSERT(error == 0, ("error %d updating rsp", error)); in emulate_stack_op()
1611 return (error); in emulate_stack_op()
1619 int error; in emulate_push() local
1630 error = emulate_stack_op(vcpu, mmio_gpa, vie, paging, memread, in emulate_push()
1632 return (error); in emulate_push()
1640 int error; in emulate_pop() local
1651 error = emulate_stack_op(vcpu, mmio_gpa, vie, paging, memread, in emulate_pop()
1653 return (error); in emulate_pop()
1661 int error; in emulate_group1() local
1665 error = emulate_or(vcpu, gpa, vie, in emulate_group1()
1669 error = emulate_and(vcpu, gpa, vie, in emulate_group1()
1673 error = emulate_cmp(vcpu, gpa, vie, in emulate_group1()
1677 error = EINVAL; in emulate_group1()
1681 return (error); in emulate_group1()
1690 int error, bitmask, bitoff; in emulate_bittest() local
1701 error = vie_read_register(vcpu, VM_REG_GUEST_RFLAGS, &rflags); in emulate_bittest()
1702 KASSERT(error == 0, ("%s: error %d getting rflags", __func__, error)); in emulate_bittest()
1704 error = memread(vcpu, gpa, &val, vie->opsize, memarg); in emulate_bittest()
1705 if (error) in emulate_bittest()
1706 return (error); in emulate_bittest()
1721 error = vie_update_register(vcpu, VM_REG_GUEST_RFLAGS, rflags, 8); in emulate_bittest()
1722 KASSERT(error == 0, ("%s: error %d updating rflags", __func__, error)); in emulate_bittest()
1732 int error; in emulate_twob_group15() local
1742 error = 0; in emulate_twob_group15()
1748 error = memread(vcpu, gpa, &buf, 1, memarg); in emulate_twob_group15()
1752 error = EINVAL; in emulate_twob_group15()
1756 return (error); in emulate_twob_group15()
1764 int error; in vmm_emulate_instruction() local
1771 error = emulate_group1(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1775 error = emulate_pop(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1779 error = emulate_push(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1783 error = emulate_cmp(vcpu, gpa, vie, in vmm_emulate_instruction()
1787 error = emulate_mov(vcpu, gpa, vie, in vmm_emulate_instruction()
1792 error = emulate_movx(vcpu, gpa, vie, in vmm_emulate_instruction()
1796 error = emulate_movs(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1800 error = emulate_stos(vcpu, gpa, vie, paging, memread, in vmm_emulate_instruction()
1804 error = emulate_and(vcpu, gpa, vie, in vmm_emulate_instruction()
1808 error = emulate_or(vcpu, gpa, vie, in vmm_emulate_instruction()
1812 error = emulate_sub(vcpu, gpa, vie, in vmm_emulate_instruction()
1816 error = emulate_bittest(vcpu, gpa, vie, in vmm_emulate_instruction()
1820 error = emulate_twob_group15(vcpu, gpa, vie, in vmm_emulate_instruction()
1824 error = emulate_add(vcpu, gpa, vie, memread, in vmm_emulate_instruction()
1828 error = emulate_test(vcpu, gpa, vie, in vmm_emulate_instruction()
1832 error = emulate_bextr(vcpu, gpa, vie, paging, in vmm_emulate_instruction()
1836 error = EINVAL; in vmm_emulate_instruction()
1840 return (error); in vmm_emulate_instruction()
2112 goto error; in _vm_gla2gpa()
2173 goto error; in _vm_gla2gpa()
2202 goto error; in _vm_gla2gpa()
2257 error: in _vm_gla2gpa()
2288 int error, prot; in vmm_fetch_instruction() local
2294 error = vm_copy_setup(vcpu, paging, rip, inst_length, prot, in vmm_fetch_instruction()
2296 if (error || *faultptr) in vmm_fetch_instruction()
2297 return (error); in vmm_fetch_instruction()
2815 int error; in verify_gla() local
2826 error = vm_get_register(vcpu, vie->base_register, &base); in verify_gla()
2827 if (error) { in verify_gla()
2829 error, vie->base_register); in verify_gla()
2843 error = vm_get_register(vcpu, vie->index_register, &idx); in verify_gla()
2844 if (error) { in verify_gla()
2846 error, vie->index_register); in verify_gla()
2875 error = vm_get_seg_desc(vcpu, seg, &desc); in verify_gla()
2876 if (error) { in verify_gla()
2878 " descriptor %d", error, in verify_gla()