vmm.h (4e27d36d38f4c3b12bcc1855c5d41527d08d1ce0) vmm.h (c3498942a588dda8ae4e7bd9d03d53baa2cbf39a)
1/*-
2 * Copyright (c) 2011 NetApp, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 181 unchanged lines hidden (view full) ---

190int vm_run(struct vm *vm, struct vm_run *vmrun);
191int vm_suspend(struct vm *vm, enum vm_suspend_how how);
192int vm_inject_nmi(struct vm *vm, int vcpu);
193int vm_nmi_pending(struct vm *vm, int vcpuid);
194void vm_nmi_clear(struct vm *vm, int vcpuid);
195int vm_inject_extint(struct vm *vm, int vcpu);
196int vm_extint_pending(struct vm *vm, int vcpuid);
197void vm_extint_clear(struct vm *vm, int vcpuid);
1/*-
2 * Copyright (c) 2011 NetApp, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 181 unchanged lines hidden (view full) ---

190int vm_run(struct vm *vm, struct vm_run *vmrun);
191int vm_suspend(struct vm *vm, enum vm_suspend_how how);
192int vm_inject_nmi(struct vm *vm, int vcpu);
193int vm_nmi_pending(struct vm *vm, int vcpuid);
194void vm_nmi_clear(struct vm *vm, int vcpuid);
195int vm_inject_extint(struct vm *vm, int vcpu);
196int vm_extint_pending(struct vm *vm, int vcpuid);
197void vm_extint_clear(struct vm *vm, int vcpuid);
198uint64_t *vm_guest_msrs(struct vm *vm, int cpu);
199struct vlapic *vm_lapic(struct vm *vm, int cpu);
200struct vioapic *vm_ioapic(struct vm *vm);
201struct vhpet *vm_hpet(struct vm *vm);
202int vm_get_capability(struct vm *vm, int vcpu, int type, int *val);
203int vm_set_capability(struct vm *vm, int vcpu, int type, int val);
204int vm_get_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state *state);
205int vm_set_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state state);
206int vm_apicid2vcpuid(struct vm *vm, int apicid);

--- 274 unchanged lines hidden (view full) ---

481 VM_EXITCODE_INST_EMUL,
482 VM_EXITCODE_SPINUP_AP,
483 VM_EXITCODE_DEPRECATED1, /* used to be SPINDOWN_CPU */
484 VM_EXITCODE_RENDEZVOUS,
485 VM_EXITCODE_IOAPIC_EOI,
486 VM_EXITCODE_SUSPENDED,
487 VM_EXITCODE_INOUT_STR,
488 VM_EXITCODE_TASK_SWITCH,
198struct vlapic *vm_lapic(struct vm *vm, int cpu);
199struct vioapic *vm_ioapic(struct vm *vm);
200struct vhpet *vm_hpet(struct vm *vm);
201int vm_get_capability(struct vm *vm, int vcpu, int type, int *val);
202int vm_set_capability(struct vm *vm, int vcpu, int type, int val);
203int vm_get_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state *state);
204int vm_set_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state state);
205int vm_apicid2vcpuid(struct vm *vm, int apicid);

--- 274 unchanged lines hidden (view full) ---

480 VM_EXITCODE_INST_EMUL,
481 VM_EXITCODE_SPINUP_AP,
482 VM_EXITCODE_DEPRECATED1, /* used to be SPINDOWN_CPU */
483 VM_EXITCODE_RENDEZVOUS,
484 VM_EXITCODE_IOAPIC_EOI,
485 VM_EXITCODE_SUSPENDED,
486 VM_EXITCODE_INOUT_STR,
487 VM_EXITCODE_TASK_SWITCH,
489 VM_EXITCODE_SVM,
490 VM_EXITCODE_MAX
491};
492
493struct vm_inout {
494 uint16_t bytes:3; /* 1 or 2 or 4 */
495 uint16_t in:1;
496 uint16_t string:1;
497 uint16_t rep:1;

--- 61 unchanged lines hidden (view full) ---

559 uint64_t exit_qualification;
560 /*
561 * 'inst_error' and 'inst_type' are valid
562 * only if 'status' is non-zero.
563 */
564 int inst_type;
565 int inst_error;
566 } vmx;
488 VM_EXITCODE_MAX
489};
490
491struct vm_inout {
492 uint16_t bytes:3; /* 1 or 2 or 4 */
493 uint16_t in:1;
494 uint16_t string:1;
495 uint16_t rep:1;

--- 61 unchanged lines hidden (view full) ---

557 uint64_t exit_qualification;
558 /*
559 * 'inst_error' and 'inst_type' are valid
560 * only if 'status' is non-zero.
561 */
562 int inst_type;
563 int inst_error;
564 } vmx;
567 /*
568 * SVM specific payload.
569 */
570 struct {
565 struct {
571 uint64_t exitcode;
572 uint64_t exitinfo1;
573 uint64_t exitinfo2;
574 } svm;
575 struct {
576 uint32_t code; /* ecx value */
577 uint64_t wval;
578 } msr;
579 struct {
580 int vcpu;
581 uint64_t rip;
582 } spinup_ap;
583 struct {

--- 43 unchanged lines hidden ---
566 uint32_t code; /* ecx value */
567 uint64_t wval;
568 } msr;
569 struct {
570 int vcpu;
571 uint64_t rip;
572 } spinup_ap;
573 struct {

--- 43 unchanged lines hidden ---