cpuGetModels: Switch to virArch

Our internal APIs mostly use virArch rather than strings. Switching
cpuGetModels to virArch will save us from unnecessary conversions in the
future.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
Jiri Denemark 2016-04-29 10:38:03 +02:00
parent 1fc90ae934
commit 350e3fee0e
5 changed files with 27 additions and 18 deletions

View File

@ -747,7 +747,7 @@ cpuModelIsAllowed(const char *model,
/**
* cpuGetModels:
*
* @archName: CPU architecture string
* @arch: CPU architecture
* @models: where to store the NULL-terminated list of supported models
*
* Fetches all CPU models supported by libvirt on @archName.
@ -755,26 +755,17 @@ cpuModelIsAllowed(const char *model,
* Returns number of supported CPU models or -1 on error.
*/
int
cpuGetModels(const char *archName, char ***models)
cpuGetModels(virArch arch, char ***models)
{
struct cpuArchDriver *driver;
virArch arch;
VIR_DEBUG("arch=%s", archName);
arch = virArchFromString(archName);
if (arch == VIR_ARCH_NONE) {
virReportError(VIR_ERR_INVALID_ARG,
_("cannot find architecture %s"),
archName);
return -1;
}
VIR_DEBUG("arch=%s", virArchToString(arch));
driver = cpuGetSubDriver(arch);
if (driver == NULL) {
virReportError(VIR_ERR_INVALID_ARG,
_("cannot find a driver for the architecture %s"),
archName);
virArchToString(arch));
return -1;
}

View File

@ -199,8 +199,7 @@ cpuModelIsAllowed(const char *model,
ATTRIBUTE_NONNULL(1);
int
cpuGetModels(const char *arch, char ***models)
ATTRIBUTE_NONNULL(1);
cpuGetModels(virArch arch, char ***models);
/* cpuDataFormat and cpuDataParse are implemented for unit tests only and
* have no real-life usage

View File

@ -678,7 +678,7 @@ typedef char *
typedef int
(*virDrvConnectGetCPUModelNames)(virConnectPtr conn,
const char *args,
const char *archName,
char ***models,
unsigned int flags);

View File

@ -18369,14 +18369,23 @@ qemuNodeSuspendForDuration(virConnectPtr conn,
static int
qemuConnectGetCPUModelNames(virConnectPtr conn,
const char *arch,
const char *archName,
char ***models,
unsigned int flags)
{
virArch arch;
virCheckFlags(0, -1);
if (virConnectGetCPUModelNamesEnsureACL(conn) < 0)
return -1;
if (!(arch = virArchFromString(archName))) {
virReportError(VIR_ERR_INVALID_ARG,
_("cannot find architecture %s"),
archName);
return -1;
}
return cpuGetModels(arch, models);
}

View File

@ -5893,11 +5893,21 @@ testDomainScreenshot(virDomainPtr dom ATTRIBUTE_UNUSED,
static int
testConnectGetCPUModelNames(virConnectPtr conn ATTRIBUTE_UNUSED,
const char *arch,
const char *archName,
char ***models,
unsigned int flags)
{
virArch arch;
virCheckFlags(0, -1);
if (!(arch = virArchFromString(archName))) {
virReportError(VIR_ERR_INVALID_ARG,
_("cannot find architecture %s"),
archName);
return -1;
}
return cpuGetModels(arch, models);
}