KVM: Add kvm_vcpu_get_idx to get vcpu index in kvm->vcpus
There are occasional needs to use the index of vcpu in the kvm->vcpus array to map something related to a VCPU. For example, unlike the vcpu->vcpu_id, the vcpu index is guaranteed to not be sparse across all vcpus which is useful when allocating a memory area for each vcpu. Signed-off-by: Christoffer Dall <cdall@linaro.org> Reviewed-by: Eric Auger <eric.auger@redhat.com>
This commit is contained in:
parent
443c3a9e68
commit
497d72d80a
|
@ -490,6 +490,17 @@ static inline struct kvm_vcpu *kvm_get_vcpu_by_id(struct kvm *kvm, int id)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int kvm_vcpu_get_idx(struct kvm_vcpu *vcpu)
|
||||||
|
{
|
||||||
|
struct kvm_vcpu *tmp;
|
||||||
|
int idx;
|
||||||
|
|
||||||
|
kvm_for_each_vcpu(idx, tmp, vcpu->kvm)
|
||||||
|
if (tmp == vcpu)
|
||||||
|
return idx;
|
||||||
|
BUG();
|
||||||
|
}
|
||||||
|
|
||||||
#define kvm_for_each_memslot(memslot, slots) \
|
#define kvm_for_each_memslot(memslot, slots) \
|
||||||
for (memslot = &slots->memslots[0]; \
|
for (memslot = &slots->memslots[0]; \
|
||||||
memslot < slots->memslots + KVM_MEM_SLOTS_NUM && memslot->npages;\
|
memslot < slots->memslots + KVM_MEM_SLOTS_NUM && memslot->npages;\
|
||||||
|
|
Loading…
Reference in New Issue