mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-03 10:25:16 +00:00
Add ability to store other metadata in the qemu capabilities object
Add struct fields and APIs to allow the qemu capabilities object to store version, arch, machines & cpu names, etc Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
c29ce35af6
commit
116e2facde
@ -183,6 +183,18 @@ struct _qemuCaps {
|
|||||||
virObject object;
|
virObject object;
|
||||||
|
|
||||||
virBitmapPtr flags;
|
virBitmapPtr flags;
|
||||||
|
|
||||||
|
unsigned int version;
|
||||||
|
unsigned int kvmVersion;
|
||||||
|
|
||||||
|
char *arch;
|
||||||
|
|
||||||
|
size_t ncpuDefinitions;
|
||||||
|
char **cpuDefinitions;
|
||||||
|
|
||||||
|
size_t nmachineTypes;
|
||||||
|
char **machineTypes;
|
||||||
|
char **machineAliases;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1718,6 +1730,21 @@ no_memory:
|
|||||||
void qemuCapsDispose(void *obj)
|
void qemuCapsDispose(void *obj)
|
||||||
{
|
{
|
||||||
qemuCapsPtr caps = obj;
|
qemuCapsPtr caps = obj;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
VIR_FREE(caps->arch);
|
||||||
|
|
||||||
|
for (i = 0 ; i < caps->nmachineTypes ; i++) {
|
||||||
|
VIR_FREE(caps->machineTypes[i]);
|
||||||
|
VIR_FREE(caps->machineAliases[i]);
|
||||||
|
}
|
||||||
|
VIR_FREE(caps->machineTypes);
|
||||||
|
VIR_FREE(caps->machineAliases);
|
||||||
|
|
||||||
|
for (i = 0 ; i < caps->ncpuDefinitions ; i++) {
|
||||||
|
VIR_FREE(caps->cpuDefinitions[i]);
|
||||||
|
}
|
||||||
|
VIR_FREE(caps->cpuDefinitions);
|
||||||
|
|
||||||
virBitmapFree(caps->flags);
|
virBitmapFree(caps->flags);
|
||||||
}
|
}
|
||||||
@ -1768,3 +1795,54 @@ qemuCapsGet(qemuCapsPtr caps,
|
|||||||
else
|
else
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char *qemuCapsGetArch(qemuCapsPtr caps)
|
||||||
|
{
|
||||||
|
return caps->arch;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int qemuCapsGetVersion(qemuCapsPtr caps)
|
||||||
|
{
|
||||||
|
return caps->version;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int qemuCapsGetKVMVersion(qemuCapsPtr caps)
|
||||||
|
{
|
||||||
|
return caps->kvmVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
size_t qemuCapsGetCPUDefinitions(qemuCapsPtr caps,
|
||||||
|
char ***names)
|
||||||
|
{
|
||||||
|
*names = caps->cpuDefinitions;
|
||||||
|
return caps->ncpuDefinitions;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
size_t qemuCapsGetMachineTypes(qemuCapsPtr caps,
|
||||||
|
char ***names)
|
||||||
|
{
|
||||||
|
*names = caps->machineTypes;
|
||||||
|
return caps->nmachineTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char *qemuCapsGetCanonicalMachine(qemuCapsPtr caps,
|
||||||
|
const char *name)
|
||||||
|
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0 ; i < caps->nmachineTypes ; i++) {
|
||||||
|
if (!caps->machineAliases[i])
|
||||||
|
continue;
|
||||||
|
if (STREQ(caps->machineAliases[i], name))
|
||||||
|
return caps->machineTypes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
@ -164,6 +164,16 @@ bool qemuCapsGet(qemuCapsPtr caps,
|
|||||||
|
|
||||||
char *qemuCapsFlagsString(qemuCapsPtr caps);
|
char *qemuCapsFlagsString(qemuCapsPtr caps);
|
||||||
|
|
||||||
|
const char *qemuCapsGetArch(qemuCapsPtr caps);
|
||||||
|
unsigned int qemuCapsGetVersion(qemuCapsPtr caps);
|
||||||
|
unsigned int qemuCapsGetKVMVersion(qemuCapsPtr caps);
|
||||||
|
size_t qemuCapsGetCPUDefinitions(qemuCapsPtr caps,
|
||||||
|
char ***names);
|
||||||
|
size_t qemuCapsGetMachineTypes(qemuCapsPtr caps,
|
||||||
|
char ***names);
|
||||||
|
const char *qemuCapsGetCanonicalMachine(qemuCapsPtr caps,
|
||||||
|
const char *name);
|
||||||
|
|
||||||
virCapsPtr qemuCapsInit(virCapsPtr old_caps);
|
virCapsPtr qemuCapsInit(virCapsPtr old_caps);
|
||||||
|
|
||||||
int qemuCapsProbeMachineTypes(const char *binary,
|
int qemuCapsProbeMachineTypes(const char *binary,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user