VM_MAXCPU
uint8_t apic_page[VM_MAXCPU][PAGE_SIZE];
struct svm_vcpu vcpu[VM_MAXCPU];
uint64_t host_msrs[VM_MAXCPU][SVM_HOST_MSR_NUM];
if (vpid > VM_MAXCPU)
if (num <= 0 || num > VM_MAXCPU)
uint16_t vpid[VM_MAXCPU];
vpid_alloc(vpid, VM_MAXCPU);
struct vmcs vmcs[VM_MAXCPU]; /* one vmcs per virtual cpu */
struct apic_page apic_page[VM_MAXCPU]; /* one apic page per vcpu */
uint8_t *msr_bitmap[VM_MAXCPU]; /* one MSR bitmap per vCPU */
struct pir_desc pir_desc[VM_MAXCPU];
uint64_t guest_msrs[VM_MAXCPU][GUEST_MSR_NUM];
uint64_t host_msrs[VM_MAXCPU][GUEST_MSR_NUM];
uint64_t tsc_offset_active[VM_MAXCPU];
vmcs_state_t vmcs_state[VM_MAXCPU];
uintptr_t vmcs_pa[VM_MAXCPU];
struct vmxctx ctx[VM_MAXCPU];
struct vmxcap cap[VM_MAXCPU];
struct vmxstate state[VM_MAXCPU];
for (uint_t i = 0; i < VM_MAXCPU; i++) {
for (uint_t i = 0; i < VM_MAXCPU; i++) {
kstat_t *vmm_kstat_vcpu[VM_MAXCPU];
struct vcpu vcpu[VM_MAXCPU]; /* (i) guest vcpus */
ASSERT3S(vcpuid, <, VM_MAXCPU);
ASSERT3S(cpu, <, VM_MAXCPU);
ASSERT3U(vcpuid, <, VM_MAXCPU);
req->vdr_vcpuid >= VM_MAXCPU) {
VERIFY(vcpuid >= 0 && vcpuid <= VM_MAXCPU);
if (vcpuid != -1 && (vcpuid < 0 || vcpuid >= VM_MAXCPU)) {
if (vcpuid < 0 || vcpuid >= VM_MAXCPU) {
for (uint_t i = 0; i < VM_MAXCPU; i++) {
vm->maxcpus = VM_MAXCPU; /* XXX temp to keep code working */
vm->maxcpus = VM_MAXCPU; /* XXX temp to keep code working */
if (vcpuid < 0 || vcpuid > VM_MAXCPU) {
if (vcpuid < 0 || vcpuid > VM_MAXCPU) {
for (uint_t i = 0; i < VM_MAXCPU; i++) {
for (uint_t i = 0; i < VM_MAXCPU; i++) {
for (uint_t i = 0; i < VM_MAXCPU; i++) {
for (uint_t i = 0; i < VM_MAXCPU; i++) {
for (uint_t i = 0; i < VM_MAXCPU; i++) {
for (uint_t i = 0; i < VM_MAXCPU; i++) {
ASSERT(vcpu >= 0 && vcpu < VM_MAXCPU);
ASSERT(vcpu >= 0 && vcpu < VM_MAXCPU);
#define MAX_VMM_STAT_ELEMS (64 + VM_MAXCPU) /* arbitrary */