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 --- |