cpu_x86: Introduce virCPUx86DataAddFeature

The API is useful for creating virCPUData in a hypervisor driver from
data we got by querying the hypervisor.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
Jiri Denemark 2017-02-02 20:30:04 +01:00
parent 8da3ca8419
commit 14aeba2dfd
3 changed files with 26 additions and 0 deletions

View File

@ -2756,6 +2756,28 @@ virCPUx86DataSetVendor(virCPUDataPtr cpuData,
}
int
virCPUx86DataAddFeature(virCPUDataPtr cpuData,
const char *name)
{
virCPUx86FeaturePtr feature;
virCPUx86MapPtr map;
if (!(map = virCPUx86GetMap()))
return -1;
/* ignore unknown features */
if (!(feature = x86FeatureFind(map, name)) &&
!(feature = x86FeatureFindInternal(name)))
return 0;
if (x86DataAdd(&cpuData->data.x86, &feature->data) < 0)
return -1;
return 0;
}
struct cpuArchDriver cpuDriverX86 = {
.name = "x86",
.arch = archs,

View File

@ -39,4 +39,7 @@ int virCPUx86DataSetSignature(virCPUDataPtr cpuData,
int virCPUx86DataSetVendor(virCPUDataPtr cpuData,
const char *vendor);
int virCPUx86DataAddFeature(virCPUDataPtr cpuData,
const char *name);
#endif /* __VIR_CPU_X86_H__ */

View File

@ -1003,6 +1003,7 @@ virCPUUpdate;
# cpu/cpu_x86.h
virCPUx86DataAddCPUID;
virCPUx86DataAddFeature;
virCPUx86DataSetSignature;
virCPUx86DataSetVendor;