diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index be34576204..729d905e2d 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -259,6 +259,24 @@ virDomainCapsCPUModelsAdd(virDomainCapsCPUModelsPtr cpuModels, } +virDomainCapsCPUModelPtr +virDomainCapsCPUModelsGet(virDomainCapsCPUModelsPtr cpuModels, + const char *name) +{ + size_t i; + + if (!cpuModels) + return NULL; + + for (i = 0; i < cpuModels->nmodels; i++) { + if (STREQ(cpuModels->models[i].name, name)) + return cpuModels->models + i; + } + + return NULL; +} + + int virDomainCapsEnumSet(virDomainCapsEnumPtr capsEnum, const char *capsEnumName, diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index 8c71dec21e..07640ed67f 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -179,6 +179,10 @@ int virDomainCapsCPUModelsAdd(virDomainCapsCPUModelsPtr cpuModels, ssize_t nameLen, virDomainCapsCPUUsable usable, char **blockers); +virDomainCapsCPUModelPtr +virDomainCapsCPUModelsGet(virDomainCapsCPUModelsPtr cpuModels, + const char *name); + # define VIR_DOMAIN_CAPS_ENUM_SET(capsEnum, ...) \ do { \ diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index f589666562..047e3b1112 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -829,16 +829,10 @@ bool virCPUModelIsAllowed(const char *model, virDomainCapsCPUModelsPtr models) { - size_t i; - if (!models) return true; - for (i = 0; i < models->nmodels; i++) { - if (STREQ(models->models[i].name, model)) - return true; - } - return false; + return !!virDomainCapsCPUModelsGet(models, model); } diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 26c5ddb405..4c56f17e29 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -174,6 +174,7 @@ virDomainCapsCPUModelsAdd; virDomainCapsCPUModelsAddSteal; virDomainCapsCPUModelsCopy; virDomainCapsCPUModelsFilter; +virDomainCapsCPUModelsGet; virDomainCapsCPUModelsNew; virDomainCapsCPUUsableTypeFromString; virDomainCapsCPUUsableTypeToString;