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

View File

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

View File

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

View File

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

View File

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