提交 4e6f58b8 编写于 作者: J Jiri Denemark

conf: Introduce virCPUDefCheckFeatures

This API can be used to check whether a CPU definition contains features
matching a given filter.
Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
上级 bf6c2830
......@@ -930,6 +930,39 @@ virCPUDefFilterFeatures(virCPUDefPtr cpu,
}
/**
* virCPUDefCheckFeatures:
*
* Check CPU features for which @filter reports true and store them in a NULL
* terminated list returned via @features.
*
* Returns the number of features matching @filter or -1 on error.
*/
int
virCPUDefCheckFeatures(virCPUDefPtr cpu,
virCPUDefFeatureFilter filter,
void *opaque,
char ***features)
{
VIR_AUTOSTRINGLIST list = NULL;
size_t n = 0;
size_t i;
*features = NULL;
for (i = 0; i < cpu->nfeatures; i++) {
if (filter(cpu->features[i].name, opaque)) {
if (virStringListAdd(&list, cpu->features[i].name) < 0)
return -1;
n++;
}
}
VIR_STEAL_PTR(*features, list);
return n;
}
bool
virCPUDefIsEqual(virCPUDefPtr src,
virCPUDefPtr dst,
......
......@@ -224,6 +224,12 @@ virCPUDefFilterFeatures(virCPUDefPtr cpu,
virCPUDefFeatureFilter filter,
void *opaque);
int
virCPUDefCheckFeatures(virCPUDefPtr cpu,
virCPUDefFeatureFilter filter,
void *opaque,
char ***features);
virCPUDefPtr *
virCPUDefListParse(const char **xmlCPUs,
unsigned int ncpus,
......
......@@ -73,6 +73,7 @@ virCapabilitiesSetNetPrefix;
virCPUCacheModeTypeFromString;
virCPUCacheModeTypeToString;
virCPUDefAddFeature;
virCPUDefCheckFeatures;
virCPUDefCopy;
virCPUDefCopyModel;
virCPUDefCopyModelFilter;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册