Lines Matching defs:err

87     errval_t err = invoke_dispatcher_vmwrite(g->dcb_cap, VMX_EXIT_MSR_STORE_F, g->msr_area_pa);
88 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_EXIT_MSR_STORE_CNT, VMX_MSR_COUNT);
89 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_ENTRY_MSR_LOAD_F, g->msr_area_pa);
90 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_ENTRY_MSR_LOAD_CNT, VMX_MSR_COUNT);
91 assert(err_is_ok(err));
118 errval_t err;
125 err = LIB_ERR_MALLOC_FAIL;
130 err = LIB_ERR_MALLOC_FAIL;
135 err = memobj_create_one_frame(memobj, size, 0);
136 if (err_is_fail(err)) {
137 err = err_push(err, LIB_ERR_MEMOBJ_CREATE_ANON);
140 err = memobj->m.f.fill(&memobj->m, 0, frame, size);
141 if (err_is_fail(err)) {
142 err = err_push(err, LIB_ERR_MEMOBJ_FILL);
145 err = vregion_map_fixed(vregion, vspace, &memobj->m, 0, size, vaddr,
147 if (err_is_fail(err)) {
148 err = LIB_ERR_VSPACE_MAP;
151 err = memobj->m.f.pagefault(&memobj->m, vregion, 0, 0);
152 if (err_is_fail(err)) {
153 err = err_push(err, LIB_ERR_MEMOBJ_PAGEFAULT_HANDLER);
166 return err;
177 errval_t err;
194 err = memobj_create_anon(memobj, GUEST_VSPACE_SIZE, 0);
195 if (err_is_fail(err)) {
196 return err_push(err, LIB_ERR_MEMOBJ_CREATE_ANON);
198 err = vregion_map(vregion, get_current_vspace(), &memobj->m, 0,
200 if (err_is_fail(err)) {
201 return err_push(err, LIB_ERR_VREGION_MAP);
209 err = memobj->m.f.fill(&memobj->m, vaddr, frame, size);
210 if (err_is_fail(err)) {
211 return err_push(err, LIB_ERR_MEMOBJ_FILL);
213 err = memobj->m.f.pagefault(&memobj->m, vregion, vaddr, 0);
214 if (err_is_fail(err)) {
215 return err_push(err, LIB_ERR_MEMOBJ_PAGEFAULT_HANDLER);
225 errval_t err;
240 err = driverkit_hwmodel_frame_alloc(&cap, bytes, node_id_ram, nodes_data);
241 if (err_is_fail(err)) {
242 return err;
246 if (err_is_fail(err)) {
247 return err_push(err, LIB_ERR_SLOT_ALLOC);
249 err = frame_create(cap, bytes, NULL);
250 if (err_is_fail(err)) {
251 return err_push(err, LIB_ERR_FRAME_CREATE);
256 err = guest_vspace_map_wrapper(&g->vspace, guest_paddr, cap, bytes);
257 if (err_is_fail(err)) {
258 return err;
263 err = slot_alloc(&host_cap);
264 if (err_is_fail(err)) {
265 return err;
267 err = cap_copy(host_cap, cap);
268 if (err_is_fail(err)) {
269 return err;
273 err = vspace_map_wrapper(guest_to_host(guest_paddr), host_cap, bytes);
274 if (err_is_fail(err)) {
275 return err;
470 errval_t err;
474 err = lmp_endpoint_recv(g->monitor_ep, &buf, NULL);
475 assert(err_is_ok(err));
485 err = lmp_endpoint_register(g->monitor_ep, get_default_waitset(), cl);
486 assert(err_is_ok(err));
493 errval_t err;
497 err = guest_slot_alloc(self, &vnode_cap);
498 assert(err_is_ok(err));
499 err = vnode_create(vnode_cap, ObjType_VNode_x86_64_pml4);
500 assert(err_is_ok(err));
504 err = pmap_x86_64_init(pmap, &self->vspace, vnode_cap, NULL);
505 assert(err_is_ok(err));
506 err = vspace_init(&self->vspace, pmap);
507 assert(err_is_ok(err));
510 err = guest_slot_alloc(self, &self->dcb_cap);
511 assert(err_is_ok(err));
512 err = dispatcher_create(self->dcb_cap);
513 assert(err_is_ok(err));
519 err = endpoint_create(LMP_RECV_LENGTH, &ep_cap, &self->monitor_ep);
520 assert(err_is_ok(err));
527 err = lmp_endpoint_register(self->monitor_ep, get_default_waitset(), cl);
528 assert(err_is_ok(err));
531 err = invoke_dispatcher_setup_guest(self->dcb_cap, ep_cap, vnode_cap,
533 assert(err_is_ok(err));
538 err = 0;
539 err += invoke_dispatcher_vmwrite(self->dcb_cap, VMX_IOBMP_A_F, self->iobmp_a_pa);
540 err += invoke_dispatcher_vmwrite(self->dcb_cap, VMX_IOBMP_B_F, self->iobmp_b_pa);
541 err += invoke_dispatcher_vmwrite(self->dcb_cap, VMX_MSRBMP_F, self->msrpm_pa);
542 assert(err_is_ok(err));
553 err = alloc_guest_mem(self, 0x0, 0x80000000);
556 err = alloc_guest_mem(self, 0x0, GUEST_VSPACE_SIZE);
558 assert_err(err, "alloc_guest_mem");
577 errval_t err = invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, 0x8200);
578 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_CS_SEL, 0x0);
579 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_CS_BASE, 0x0);
580 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_CS_LIM, 0xffff);
581 assert(err_is_ok(err));
619 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_ENTRY_INTR_INFO, &info);
620 assert(err_is_ok(err));
652 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RFLAGS, &guest_rflags);
653 assert(err_is_ok(err));
673 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RFLAGS, &guest_rflags);
677 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_ENTRY_INTR_INFO, info);
679 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_ACTIV_STATE, 0x0);
680 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_INTR_STATE, 0x0);
681 assert(err_is_ok(err));
696 errval_t err;
699 err = two_level_slot_alloc_init(&g->slot_alloc);
700 assert_err(err, "two_level_slot_alloc_init");
705 err = guest_slot_alloc(g, &g->vmcb_cap);
706 assert_err(err, "guest_cspace_alloc");
707 err = frame_create(g->vmcb_cap, VMCB_SIZE, NULL);
708 assert_err(err, "frame_create");
709 err = frame_identify(g->vmcb_cap, &fi);
710 assert_err(err, "frame_identify");
712 err = vspace_map_one_frame_attr((void**)&g->vmcb_va, VMCB_SIZE, g->vmcb_cap,
715 if (err_is_fail(err)) {
716 DEBUG_ERR(err, "vspace_map_one_frame_attr failed");
720 err = frame_alloc(&g->ctrl_cap, sizeof(struct guest_control), NULL);
721 assert_err(err, "frame_alloc");
723 err = vspace_map_one_frame_attr((void**)&g->ctrl, size, g->ctrl_cap,
726 if (err_is_fail(err)) {
727 DEBUG_ERR(err, "vspace_map_one_frame_attr failed");
733 err = frame_alloc(&g->iopm_cap, IOPM_SIZE, NULL);
734 assert_err(err, "frame_alloc");
735 err = frame_identify(g->iopm_cap, &fi);
736 assert_err(err, "frame_identify");
738 err = vspace_map_one_frame_attr((void**)&g->iopm_va, IOPM_SIZE, g->iopm_cap,
741 if (err_is_fail(err)) {
742 DEBUG_ERR(err, "vspace_map_one_frame_attr failed");
746 err = frame_alloc(&g->iobmp_a_cap, IOBMP_A_SIZE, NULL);
747 assert_err(err, "frame_alloc");
748 err = frame_identify(g->iobmp_a_cap, &fi);
749 assert_err(err, "frame_identify");
751 err = vspace_map_one_frame_attr((void**)&g->iobmp_a_va, IOBMP_A_SIZE, g->iobmp_a_cap,
754 if (err_is_fail(err)) {
755 DEBUG_ERR(err, "vspace_map_one_frame_attr failed");
759 err = frame_alloc(&g->iobmp_b_cap, IOBMP_B_SIZE, NULL);
760 assert_err(err, "frame_alloc");
761 err = frame_identify(g->iobmp_b_cap, &fi);
762 assert_err(err, "frame_identify");
764 err = vspace_map_one_frame_attr((void**)&g->iobmp_b_va, IOBMP_B_SIZE, g->iobmp_b_cap,
767 if (err_is_fail(err)) {
768 DEBUG_ERR(err, "vspace_map_one_frame_attr failed");
772 err = frame_alloc(&g->msr_area_cap, VMX_MSR_AREA_SIZE, NULL);
773 assert_err(err, "frame_alloc");
774 err = frame_identify(g->msr_area_cap, &fi);
775 assert_err(err, "frame_identify");
777 err = vspace_map_one_frame_attr((void**)&g->msr_area_va, VMX_MSR_AREA_SIZE,
781 if (err_is_fail(err)) {
782 DEBUG_ERR(err, "vspace_map_one_frame_attr failed");
786 err = frame_alloc(&g->msrpm_cap, MSRPM_SIZE, NULL);
787 assert_err(err, "frame_alloc");
788 err = frame_identify(g->msrpm_cap, &fi);
789 assert_err(err, "frame_identify");
791 err = vspace_map_one_frame_attr((void**)&g->msrpm_va, MSRPM_SIZE,
795 if (err_is_fail(err)) {
796 DEBUG_ERR(err, "vspace_map_one_frame_attr failed");
895 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_EXEC_SEC_PROC, &sp_controls);
896 assert(err_is_ok(err));
907 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_EXEC_SEC_PROC, &sec_proc_ctrls);
910 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_EXEC_PRIM_PROC, &prim_proc_ctrls);
912 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_EXEC_SEC_PROC,
915 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_EXEC_SEC_PROC,
918 assert(err_is_ok(err));
927 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR0, &cr0_shadow);
928 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_CR0_RD_SHADOW, cr0_shadow);
929 assert(err_is_ok(err));
946 errval_t err;
974 err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR0, &guest_cr0);
975 assert(err_is_ok(err));
985 err = thread_detach(t);
986 assert(err_is_ok(err));
1035 err = invoke_dispatcher(g->dcb_cap, NULL_CAP, NULL_CAP, NULL_CAP, NULL_CAP, run);
1036 assert_err(err, "dispatcher_make_runnable");
1098 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GPADDR_F, &gpaddr);
1102 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR0, &guest_cr0);
1103 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR3, &guest_cr3);
1104 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR4, &guest_cr4);
1107 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_EFER_F, &guest_efer);
1108 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
1112 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CS_SEL, &guest_cs_sel);
1113 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CS_BASE, &guest_cs_base);
1114 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CS_LIM, &guest_cs_lim);
1115 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CS_ACCESS, &guest_cs_access);
1119 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_DS_SEL, &guest_ds_sel);
1120 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_DS_BASE, &guest_ds_base);
1121 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_DS_LIM, &guest_ds_lim);
1122 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_DS_ACCESS, &guest_ds_access);
1126 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_ES_SEL, &guest_es_sel);
1127 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_ES_BASE, &guest_es_base);
1128 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_ES_LIM, &guest_es_lim);
1129 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_ES_ACCESS, &guest_es_access);
1133 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_SS_SEL, &guest_ss_sel);
1134 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_SS_BASE, &guest_ss_base);
1135 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_SS_LIM, &guest_ss_lim);
1136 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_SS_ACCESS, &guest_ss_access);
1137 assert(err_is_ok(err));
1175 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR3, &guest_cr3);
1176 assert(err_is_ok(err));
1225 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR4, &guest_cr4);
1236 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR3, &guest_cr3);
1237 assert(err_is_ok(err));
1266 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR0, &guest_cr0);
1278 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CS_BASE, &guest_cs_base);
1279 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
1289 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_EFER_F, &guest_efer);
1300 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CS_ACCESS, &cs_access_rights);
1301 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
1321 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
1328 assert(err_is_ok(err));
1397 errval_t err = 0;
1428 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR0, &val);
1467 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_CR0, val);
1486 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
1487 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip + 3);
1488 assert(err_is_ok(err));
1505 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR0, &guest_cr0);
1540 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_DS_BASE, &guest_ds_base);
1559 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_GDTR_LIM,
1561 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_GDTR_BASE,
1571 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_IDTR_LIM,
1573 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_IDTR_BASE,
1589 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
1591 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip + 7);
1593 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip + 5);
1595 assert(err_is_ok(err));
1604 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RFLAGS, &guest_rflags);
1606 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RFLAGS,
1609 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RFLAGS,
1612 assert(err_is_ok(err));
1640 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_CR0, &guest_cr0);
1758 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_DS_BASE, &guest_ds_base);
1828 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_DS_BASE, &guest_ds_base);
1933 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_ES_BASE, &es_guest_base);
2080 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
2081 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip + 2);
2082 assert(err_is_ok(err));
2111 errval_t err = 0;
2113 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_EXIT_QUAL, &saved_exit_qual);
2115 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_EXIT_INSTR_LEN, &instr_len);
2116 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
2324 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, saved_rip);
2325 assert(err_is_ok(err));
2336 errval_t err = 0;
2354 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_SYSENTER_CS, val);
2361 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_SYSENTER_ESP, val);
2368 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_SYSENTER_EIP, val);
2375 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_EFER_F, val);
2382 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_FS_BASE, val);
2389 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_GS_BASE, val);
2431 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_SYSENTER_CS, &val);
2438 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_SYSENTER_ESP, &val);
2445 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_SYSENTER_EIP, &val);
2452 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_EFER_F, &val);
2459 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_FS_BASE, &val);
2466 err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_GS_BASE, &val);
2522 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
2523 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip + 2);
2524 assert(err_is_ok(err));
2605 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
2606 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip + 2);
2607 assert(err_is_ok(err));
2624 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
2625 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip + 3);
2626 assert(err_is_ok(err));
2642 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
2643 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip + 1);
2652 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RFLAGS, &guest_rflags);
2653 assert(err_is_ok(err));
2825 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_GPADDR_F, &fault_addr);
2826 assert(err_is_ok(err));
2866 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
2867 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip +
2869 assert(err_is_ok(err));
2906 err += invoke_dispatcher_vmread(g->dcb_cap, VMX_GUEST_RIP, &guest_rip);
2907 err += invoke_dispatcher_vmwrite(g->dcb_cap, VMX_GUEST_RIP, guest_rip +
2909 assert(err_is_ok(err));
2972 errval_t err = invoke_dispatcher_vmread(g->dcb_cap, VMX_EXIT_REASON,
2974 assert(err_is_ok(err));