Beispiel #1
0
int
vmm_stat_copy(struct vm *vm, int vcpu, int *num_stats, uint64_t *buf)
{
	int i;
	uint64_t *stats;

	if (vcpu < 0 || vcpu >= VM_MAXCPU)
		return (EINVAL);
		
	stats = vcpu_stats(vm, vcpu);
	for (i = 0; i < vst_num_elems; i++)
		buf[i] = stats[i];
	*num_stats = vst_num_elems;
	return (0);
}
Beispiel #2
0
int
vmm_stat_copy(struct vm *vm, int vcpu, int *num_stats, uint64_t *buf)
{
	struct vmm_stat_type *vst;
	uint64_t *stats;
	int i;

	if (vcpu < 0 || vcpu >= VM_MAXCPU)
		return (EINVAL);

	/* Let stats functions update their counters */
	for (i = 0; i < vst_num_types; i++) {
		vst = vsttab[i];
		if (vst->func != NULL)
			(*vst->func)(vm, vcpu, vst);
	}

	/* Copy over the stats */
	stats = vcpu_stats(vm, vcpu);
	for (i = 0; i < vst_num_elems; i++)
		buf[i] = stats[i];
	*num_stats = vst_num_elems;
	return (0);
}