Lines Matching +full:gpa +full:- +full:0
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
114 #define VM_INTINFO_VECTOR(info) ((info) & 0xff)
115 #define VM_INTINFO_DEL_ERRCODE 0x800
116 #define VM_INTINFO_RSVD 0x7ffff000
117 #define VM_INTINFO_VALID 0x80000000
118 #define VM_INTINFO_TYPE 0x700
119 #define VM_INTINFO_HWINTR (0 << 8)
144 (SPECNAMELEN - VM_MAX_PREFIXLEN - VM_MAX_SUFFIXLEN - 1)
201 vmi_init_func_t init; /* vm-specific initialization */
247 int vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t off,
249 int vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len);
252 int vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa);
253 int vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len);
262 int vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid,
267 void *vm_gpa_hold(struct vcpu *vcpu, vm_paddr_t gpa, size_t len,
269 void *vm_gpa_hold_global(struct vm *vm, vm_paddr_t gpa, size_t len,
272 bool vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa);
346 return (CPU_ISSET(vcpu_vcpuid(vcpu), info->rptr)); in vcpu_rendezvous_pending()
353 return (*info->sptr); in vcpu_suspended()
360 return (*info->iptr); in vcpu_reqidle()
398 return (td->td_ast != 0 || td->td_owepreempt != 0); in vcpu_should_yield()
411 * Inject exception 'vector' into the guest vcpu. This function returns 0 on
412 * success and non-zero on failure.
415 * this function directly because they enforce the trap-like or fault-like
425 * This function is called after a VM-exit that occurred during exception or
427 * in Figure 15-1, "EXITINTINFO for All Intercepts", APM, Vol 2.
429 * If a VM-exit handler completes the event delivery successfully then it
432 * call this function with 'intinfo=0' to indicate that the external event
435 * Return value is 0 on success and non-zero on failure.
440 * This function is called before every VM-entry to retrieve a pending
444 * Returns 0 if there are no events that need to be injected into the guest
445 * and non-zero otherwise.
461 uint64_t gpa; member
473 * 0 0 Success
474 * 0 1 An exception was injected into the guest
478 * the return value is 0. The 'copyinfo[]' resources should be freed by calling
516 * The 'access' field has the format specified in Table 21-2 of the Intel
520 * bit 16 - Segment Unusable.
527 #define SEG_DESC_TYPE(access) ((access) & 0x001f)
528 #define SEG_DESC_DPL(access) (((access) >> 5) & 0x3)
529 #define SEG_DESC_PRESENT(access) (((access) & 0x0080) ? 1 : 0)
530 #define SEG_DESC_DEF32(access) (((access) & 0x4000) ? 1 : 0)
531 #define SEG_DESC_GRANULARITY(access) (((access) & 0x8000) ? 1 : 0)
532 #define SEG_DESC_UNUSABLE(access) (((access) & 0x10000) ? 1 : 0)
537 CPU_MODE_COMPATIBILITY, /* IA-32E mode (CS.L = 0) */
538 CPU_MODE_64BIT, /* IA-32E mode (CS.L = 1) */
674 uint64_t count; /* rep=1 (%rcx), rep=0 (1) */
698 int inst_length; /* 0 means unknown */
704 uint64_t gpa; member
708 uint64_t gpa; member
717 * exitcode to represent the VM-exit.
729 * only if 'status' is non-zero.
771 * The destination vCPU mask is saved in vcpu->cpuset
789 vm_inject_fault(vcpu, IDT_UD, 0, 0); in vm_inject_ud()
795 vm_inject_fault(vcpu, IDT_GP, 1, 0); in vm_inject_gp()