提交 f430ddb6 编写于 作者: D Daniel P. Berrange

Remove virConnectPtr from CPU XML APIs

The virConnectPtr is no longer required for error reporting since
that is recorded in a thread local. Remove use of virConnectPtr
from all APIs in cpu_conf.{h,c} and update all callers to
match
上级 03136638
......@@ -678,7 +678,7 @@ virCapabilitiesFormatXML(virCapsPtr caps)
virBufferAddLit(&xml, " </features>\n");
}
virCPUDefFormatBuf(NULL, &xml, caps->host.cpu, " ",
virCPUDefFormatBuf(&xml, caps->host.cpu, " ",
VIR_CPU_FORMAT_EMBEDED);
virBufferAddLit(&xml, " </cpu>\n");
......
......@@ -31,9 +31,9 @@
#define VIR_FROM_THIS VIR_FROM_CPU
#define virCPUReportError(conn, code, fmt...) \
virReportErrorHelper(conn, VIR_FROM_CPU, code, __FILE__, \
__FUNCTION__, __LINE__, fmt)
#define virCPUReportError(code, fmt...) \
virReportErrorHelper(NULL, VIR_FROM_CPU, code, __FILE__, \
__FUNCTION__, __LINE__, fmt)
VIR_ENUM_IMPL(virCPUMatch, VIR_CPU_MATCH_LAST,
"minimum",
......@@ -69,8 +69,7 @@ virCPUDefFree(virCPUDefPtr def)
#ifndef PROXY
virCPUDefPtr
virCPUDefParseXML(virConnectPtr conn,
const xmlNodePtr node,
virCPUDefParseXML(const xmlNodePtr node,
xmlXPathContextPtr ctxt,
enum virCPUType mode)
{
......@@ -97,7 +96,7 @@ virCPUDefParseXML(virConnectPtr conn,
if (!match) {
if (virXPathBoolean("boolean(./model)", ctxt)) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing match attribute for CPU specification"));
goto error;
}
......@@ -107,7 +106,7 @@ virCPUDefParseXML(virConnectPtr conn,
VIR_FREE(match);
if (def->match < 0) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Invalid match attribute for CPU specification"));
goto error;
}
......@@ -117,7 +116,7 @@ virCPUDefParseXML(virConnectPtr conn,
if (def->type == VIR_CPU_TYPE_HOST) {
def->arch = virXPathString("string(./arch[1])", ctxt);
if (!def->arch) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing CPU architecture"));
goto error;
}
......@@ -125,7 +124,7 @@ virCPUDefParseXML(virConnectPtr conn,
if (!(def->model = virXPathString("string(./model[1])", ctxt)) &&
def->type == VIR_CPU_TYPE_HOST) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing CPU model name"));
goto error;
}
......@@ -137,7 +136,7 @@ virCPUDefParseXML(virConnectPtr conn,
ret = virXPathULong("string(./topology[1]/@sockets)",
ctxt, &ul);
if (ret < 0) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing 'sockets' attribute in CPU topology"));
goto error;
}
......@@ -146,7 +145,7 @@ virCPUDefParseXML(virConnectPtr conn,
ret = virXPathULong("string(./topology[1]/@cores)",
ctxt, &ul);
if (ret < 0) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing 'cores' attribute in CPU topology"));
goto error;
}
......@@ -155,14 +154,14 @@ virCPUDefParseXML(virConnectPtr conn,
ret = virXPathULong("string(./topology[1]/@threads)",
ctxt, &ul);
if (ret < 0) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing 'threads' attribute in CPU topology"));
goto error;
}
def->threads = (unsigned int) ul;
if (!def->sockets || !def->cores || !def->threads) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Invalid CPU topology"));
goto error;
}
......@@ -174,7 +173,7 @@ virCPUDefParseXML(virConnectPtr conn,
if (n > 0) {
if (!def->model) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Non-empty feature list specified without CPU model"));
goto error;
}
......@@ -197,7 +196,7 @@ virCPUDefParseXML(virConnectPtr conn,
VIR_FREE(strpolicy);
if (policy < 0) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Invalid CPU feature policy"));
goto error;
}
......@@ -207,14 +206,14 @@ virCPUDefParseXML(virConnectPtr conn,
if (!(name = virXMLPropString(nodes[i], "name")) || *name == 0) {
VIR_FREE(name);
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Invalid CPU feature name"));
goto error;
}
for (j = 0 ; j < i ; j++) {
if (STREQ(name, def->features[j].name)) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("CPU feature `%s' specified more than once"),
name);
VIR_FREE(name);
......@@ -243,14 +242,13 @@ error:
char *
virCPUDefFormat(virConnectPtr conn,
virCPUDefPtr def,
virCPUDefFormat(virCPUDefPtr def,
const char *indent,
int flags)
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
if (virCPUDefFormatBuf(conn, &buf, def, indent, flags) < 0)
if (virCPUDefFormatBuf(&buf, def, indent, flags) < 0)
goto cleanup;
if (virBufferError(&buf))
......@@ -267,8 +265,7 @@ cleanup:
int
virCPUDefFormatBuf(virConnectPtr conn,
virBufferPtr buf,
virCPUDefFormatBuf(virBufferPtr buf,
virCPUDefPtr def,
const char *indent,
int flags)
......@@ -282,7 +279,7 @@ virCPUDefFormatBuf(virConnectPtr conn,
indent = "";
if (!def->model && def->nfeatures) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Non-empty feature list specified without CPU model"));
return -1;
}
......@@ -291,7 +288,7 @@ virCPUDefFormatBuf(virConnectPtr conn,
if (def->type == VIR_CPU_TYPE_GUEST && def->model) {
const char *match;
if (!(match = virCPUMatchTypeToString(def->match))) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Unexpected CPU match policy %d"), def->match);
return -1;
}
......@@ -320,7 +317,7 @@ virCPUDefFormatBuf(virConnectPtr conn,
virCPUFeatureDefPtr feature = def->features + i;
if (!feature->name) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing CPU feature name"));
return -1;
}
......@@ -330,7 +327,7 @@ virCPUDefFormatBuf(virConnectPtr conn,
policy = virCPUFeaturePolicyTypeToString(feature->policy);
if (!policy) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Unexpected CPU feature policy %d"), feature->policy);
return -1;
}
......@@ -351,8 +348,7 @@ virCPUDefFormatBuf(virConnectPtr conn,
int
virCPUDefAddFeature(virConnectPtr conn,
virCPUDefPtr def,
virCPUDefAddFeature(virCPUDefPtr def,
const char *name,
int policy)
{
......@@ -360,7 +356,7 @@ virCPUDefAddFeature(virConnectPtr conn,
for (i = 0 ; i < def->nfeatures ; i++) {
if (STREQ(name, def->features[i].name)) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("CPU feature `%s' specified more than once"), name);
return -1;
}
......
......@@ -85,8 +85,7 @@ virCPUDefFree(virCPUDefPtr def);
#ifndef PROXY
virCPUDefPtr
virCPUDefParseXML(virConnectPtr conn,
const xmlNodePtr node,
virCPUDefParseXML(const xmlNodePtr node,
xmlXPathContextPtr ctxt,
enum virCPUType mode);
#endif
......@@ -98,21 +97,18 @@ enum virCPUFormatFlags {
char *
virCPUDefFormat(virConnectPtr conn,
virCPUDefPtr def,
virCPUDefFormat(virCPUDefPtr def,
const char *indent,
int flags);
int
virCPUDefFormatBuf(virConnectPtr conn,
virBufferPtr buf,
virCPUDefFormatBuf(virBufferPtr buf,
virCPUDefPtr def,
const char *indent,
int flags);
int
virCPUDefAddFeature(virConnectPtr conn,
virCPUDefPtr cpu,
virCPUDefAddFeature(virCPUDefPtr cpu,
const char *name,
int policy);
......
......@@ -3928,7 +3928,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
if ((node = virXPathNode("./cpu[1]", ctxt)) != NULL) {
xmlNodePtr oldnode = ctxt->node;
ctxt->node = node;
def->cpu = virCPUDefParseXML(NULL, node, ctxt, VIR_CPU_TYPE_GUEST);
def->cpu = virCPUDefParseXML(node, ctxt, VIR_CPU_TYPE_GUEST);
ctxt->node = oldnode;
if (def->cpu == NULL)
......@@ -5341,7 +5341,7 @@ char *virDomainDefFormat(virDomainDefPtr def,
virBufferAddLit(&buf, " </features>\n");
}
if (virCPUDefFormatBuf(NULL, &buf, def->cpu, " ", 0) < 0)
if (virCPUDefFormatBuf(&buf, def->cpu, " ", 0) < 0)
goto cleanup;
virBufferVSprintf(&buf, " <clock offset='%s'/>\n",
......
......@@ -40,14 +40,13 @@ static struct cpuArchDriver *drivers[] = {
static struct cpuArchDriver *
cpuGetSubDriver(virConnectPtr conn,
const char *arch)
cpuGetSubDriver(const char *arch)
{
unsigned int i;
unsigned int j;
if (arch == NULL) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("undefined hardware architecture"));
return NULL;
}
......@@ -65,8 +64,7 @@ cpuGetSubDriver(virConnectPtr conn,
virCPUCompareResult
cpuCompareXML(virConnectPtr conn,
virCPUDefPtr host,
cpuCompareXML(virCPUDefPtr host,
const char *xml)
{
xmlDocPtr doc = NULL;
......@@ -83,11 +81,11 @@ cpuCompareXML(virConnectPtr conn,
ctxt->node = xmlDocGetRootElement(doc);
cpu = virCPUDefParseXML(conn, ctxt->node, ctxt, VIR_CPU_TYPE_AUTO);
cpu = virCPUDefParseXML(ctxt->node, ctxt, VIR_CPU_TYPE_AUTO);
if (cpu == NULL)
goto cleanup;
ret = cpuCompare(conn, host, cpu);
ret = cpuCompare(host, cpu);
cleanup:
virCPUDefFree(cpu);
......@@ -99,17 +97,16 @@ cleanup:
virCPUCompareResult
cpuCompare(virConnectPtr conn,
virCPUDefPtr host,
cpuCompare(virCPUDefPtr host,
virCPUDefPtr cpu)
{
struct cpuArchDriver *driver;
if ((driver = cpuGetSubDriver(conn, host->arch)) == NULL)
if ((driver = cpuGetSubDriver(host->arch)) == NULL)
return VIR_CPU_COMPARE_ERROR;
if (driver->compare == NULL) {
virCPUReportError(conn, VIR_ERR_NO_SUPPORT,
virCPUReportError(VIR_ERR_NO_SUPPORT,
_("cannot compare CPUs of %s architecture"),
host->arch);
return VIR_CPU_COMPARE_ERROR;
......@@ -120,8 +117,7 @@ cpuCompare(virConnectPtr conn,
int
cpuDecode(virConnectPtr conn,
virCPUDefPtr cpu,
cpuDecode(virCPUDefPtr cpu,
const union cpuData *data,
unsigned int nmodels,
const char **models)
......@@ -129,22 +125,22 @@ cpuDecode(virConnectPtr conn,
struct cpuArchDriver *driver;
if (models == NULL && nmodels != 0) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("nonzero nmodels doesn't match with NULL models"));
return -1;
}
if (cpu == NULL) {
virCPUReportError(conn, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("invalid CPU definition"));
return -1;
}
if ((driver = cpuGetSubDriver(conn, cpu->arch)) == NULL)
if ((driver = cpuGetSubDriver(cpu->arch)) == NULL)
return -1;
if (driver->decode == NULL) {
virCPUReportError(conn, VIR_ERR_NO_SUPPORT,
virCPUReportError(VIR_ERR_NO_SUPPORT,
_("cannot decode CPU data for %s architecture"),
cpu->arch);
return -1;
......@@ -155,8 +151,7 @@ cpuDecode(virConnectPtr conn,
int
cpuEncode(virConnectPtr conn,
const char *arch,
cpuEncode(const char *arch,
const virCPUDefPtr cpu,
union cpuData **forced,
union cpuData **required,
......@@ -166,11 +161,11 @@ cpuEncode(virConnectPtr conn,
{
struct cpuArchDriver *driver;
if ((driver = cpuGetSubDriver(conn, arch)) == NULL)
if ((driver = cpuGetSubDriver(arch)) == NULL)
return -1;
if (driver->encode == NULL) {
virCPUReportError(conn, VIR_ERR_NO_SUPPORT,
virCPUReportError(VIR_ERR_NO_SUPPORT,
_("cannot encode CPU data for %s architecture"),
arch);
return -1;
......@@ -182,8 +177,7 @@ cpuEncode(virConnectPtr conn,
void
cpuDataFree(virConnectPtr conn,
const char *arch,
cpuDataFree(const char *arch,
union cpuData *data)
{
struct cpuArchDriver *driver;
......@@ -191,11 +185,11 @@ cpuDataFree(virConnectPtr conn,
if (data == NULL)
return;
if ((driver = cpuGetSubDriver(conn, arch)) == NULL)
if ((driver = cpuGetSubDriver(arch)) == NULL)
return;
if (driver->free == NULL) {
virCPUReportError(conn, VIR_ERR_NO_SUPPORT,
virCPUReportError(VIR_ERR_NO_SUPPORT,
_("cannot free CPU data for %s architecture"),
arch);
return;
......@@ -206,16 +200,15 @@ cpuDataFree(virConnectPtr conn,
union cpuData *
cpuNodeData(virConnectPtr conn,
const char *arch)
cpuNodeData(const char *arch)
{
struct cpuArchDriver *driver;
if ((driver = cpuGetSubDriver(conn, arch)) == NULL)
if ((driver = cpuGetSubDriver(arch)) == NULL)
return NULL;
if (driver->nodeData == NULL) {
virCPUReportError(conn, VIR_ERR_NO_SUPPORT,
virCPUReportError(VIR_ERR_NO_SUPPORT,
_("cannot get node CPU data for %s architecture"),
arch);
return NULL;
......@@ -226,18 +219,17 @@ cpuNodeData(virConnectPtr conn,
virCPUCompareResult
cpuGuestData(virConnectPtr conn,
virCPUDefPtr host,
cpuGuestData(virCPUDefPtr host,
virCPUDefPtr guest,
union cpuData **data)
{
struct cpuArchDriver *driver;
if ((driver = cpuGetSubDriver(conn, host->arch)) == NULL)
if ((driver = cpuGetSubDriver(host->arch)) == NULL)
return VIR_CPU_COMPARE_ERROR;
if (driver->guestData == NULL) {
virCPUReportError(conn, VIR_ERR_NO_SUPPORT,
virCPUReportError(VIR_ERR_NO_SUPPORT,
_("cannot compute guest CPU data for %s architecture"),
host->arch);
return VIR_CPU_COMPARE_ERROR;
......
......@@ -30,9 +30,9 @@
#include "cpu_x86_data.h"
#define virCPUReportError(conn, code, fmt...) \
virReportErrorHelper(conn, VIR_FROM_CPU, code, __FILE__, \
__FUNCTION__, __LINE__, fmt)
#define virCPUReportError(code, fmt...) \
virReportErrorHelper(NULL, VIR_FROM_CPU, code, __FILE__, \
__FUNCTION__, __LINE__, fmt)
union cpuData {
......@@ -85,25 +85,21 @@ struct cpuArchDriver {
extern virCPUCompareResult
cpuCompareXML(virConnectPtr conn,
virCPUDefPtr host,
cpuCompareXML(virCPUDefPtr host,
const char *xml);
extern virCPUCompareResult
cpuCompare (virConnectPtr conn,
virCPUDefPtr host,
cpuCompare (virCPUDefPtr host,
virCPUDefPtr cpu);
extern int
cpuDecode (virConnectPtr conn,
virCPUDefPtr cpu,
cpuDecode (virCPUDefPtr cpu,
const union cpuData *data,
unsigned int nmodels,
const char **models);
extern int
cpuEncode (virConnectPtr conn,
const char *arch,
cpuEncode (const char *arch,
const virCPUDefPtr cpu,
union cpuData **forced,
union cpuData **required,
......@@ -112,17 +108,14 @@ cpuEncode (virConnectPtr conn,
union cpuData **forbidden);
extern void
cpuDataFree (virConnectPtr conn,
const char *arch,
cpuDataFree (const char *arch,
union cpuData *data);
extern union cpuData *
cpuNodeData (virConnectPtr conn,
const char *arch);
cpuNodeData (const char *arch);
extern virCPUCompareResult
cpuGuestData(virConnectPtr conn,
virCPUDefPtr host,
cpuGuestData(virCPUDefPtr host,
virCPUDefPtr guest,
union cpuData **data);
......
......@@ -78,13 +78,13 @@ int cpuMapLoad(const char *arch,
int ret = -1;
if (arch == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("undefined hardware architecture"));
return -1;
}
if ((xml = xmlParseFile(CPUMAPFILE)) == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse CPU map file: %s"),
CPUMAPFILE);
goto cleanup;
......@@ -102,14 +102,14 @@ int cpuMapLoad(const char *arch,
ctxt->node = xmlDocGetRootElement(xml);
if ((ctxt->node = virXPathNode(xpath, ctxt)) == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot find CPU map for %s architecture"), arch);
goto cleanup;
}
if ((feature_cb && load(ctxt, "feature", feature_cb, feature_data) < 0) ||
(model_cb && load(ctxt, "model", model_cb, model_data) < 0)) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse CPU map for %s architecture"), arch);
goto cleanup;
}
......
......@@ -265,7 +265,7 @@ x86DataToCPU(const union cpuData *data,
if ((cpuid = x86DataCpuid(tmp, feature->cpuid[i].function))
&& x86cpuidMatchMasked(cpuid, feature->cpuid + i)) {
x86cpuidClearBits(cpuid, feature->cpuid + i);
if (virCPUDefAddFeature(NULL, cpu, feature->name,
if (virCPUDefAddFeature(cpu, feature->name,
VIR_CPU_FEATURE_REQUIRE) < 0)
goto error;
}
......@@ -334,13 +334,13 @@ x86FeatureLoad(xmlXPathContextPtr ctxt,
feature->name = virXPathString("string(@name)", ctxt);
if (feature->name == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing CPU feature name"));
goto ignore;
}
if (x86FeatureFind(map, feature->name)) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("CPU feature %s already defined"), feature->name);
goto ignore;
}
......@@ -370,7 +370,7 @@ x86FeatureLoad(xmlXPathContextPtr ctxt,
if (ret_fun < 0 || ret_eax == -2 || ret_ebx == -2
|| ret_ecx == -2 || ret_edx == -2) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Invalid cpuid[%d] in %s feature"), i, feature->name);
goto ignore;
}
......@@ -539,7 +539,7 @@ x86ModelFromCPU(const virCPUDefPtr cpu,
if (cpu->type == VIR_CPU_TYPE_HOST
|| policy == VIR_CPU_FEATURE_REQUIRE) {
if ((model = x86ModelFind(map, cpu->model)) == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Unknown CPU model %s"), cpu->model);
goto error;
}
......@@ -558,7 +558,7 @@ x86ModelFromCPU(const virCPUDefPtr cpu,
continue;
if ((feature = x86FeatureFind(map, cpu->features[i].name)) == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Unknown CPU feature %s"), cpu->features[i].name);
goto error;
}
......@@ -647,7 +647,7 @@ x86ModelLoad(xmlXPathContextPtr ctxt,
model->name = virXPathString("string(@name)", ctxt);
if (model->name == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing CPU model name"));
goto ignore;
}
......@@ -658,14 +658,14 @@ x86ModelLoad(xmlXPathContextPtr ctxt,
name = virXPathString("string(./model/@name)", ctxt);
if (name == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Missing ancestor's name in CPU model %s"),
model->name);
goto ignore;
}
if ((ancestor = x86ModelFind(map, name)) == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Ancestor model %s not found for CPU model %s"),
name, model->name);
VIR_FREE(name);
......@@ -691,13 +691,13 @@ x86ModelLoad(xmlXPathContextPtr ctxt,
char *name;
if ((name = virXMLPropString(nodes[i], "name")) == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Missing feature name for CPU model %s"), model->name);
goto ignore;
}
if ((feature = x86FeatureFind(map, name)) == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
_("Feature %s required by CPU model %s not found"),
name, model->name);
VIR_FREE(name);
......@@ -993,7 +993,7 @@ x86Decode(virCPUDefPtr cpu,
}
if (cpuModel == NULL) {
virCPUReportError(NULL, VIR_ERR_INTERNAL_ERROR,
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Cannot find suitable CPU model for given data"));
goto out;
}
......
......@@ -1015,8 +1015,8 @@ qemudCapsInitCPU(virCapsPtr caps,
cpu->cores = nodeinfo.cores;
cpu->threads = nodeinfo.threads;
if (!(data = cpuNodeData(NULL, arch))
|| cpuDecode(NULL, cpu, data, 0, NULL) < 0)
if (!(data = cpuNodeData(arch))
|| cpuDecode(cpu, data, 0, NULL) < 0)
goto error;
caps->host.cpu = cpu;
......@@ -1024,7 +1024,7 @@ qemudCapsInitCPU(virCapsPtr caps,
ret = 0;
cleanup:
cpuDataFree(NULL, arch, data);
cpuDataFree(arch, data);
return ret;
......@@ -2943,7 +2943,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
if (ncpus > 0 && host) {
virCPUCompareResult cmp;
cmp = cpuGuestData(NULL, host, def->cpu, &data);
cmp = cpuGuestData(host, def->cpu, &data);
switch (cmp) {
case VIR_CPU_COMPARE_INCOMPATIBLE:
qemuReportError(VIR_ERR_INTERNAL_ERROR,
......@@ -2959,7 +2959,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
if (VIR_ALLOC(guest) < 0 || !(guest->arch = strdup(ut->machine)))
goto no_memory;
if (cpuDecode(NULL, guest, data, ncpus, cpus) < 0)
if (cpuDecode(guest, data, ncpus, cpus) < 0)
goto cleanup;
virBufferVSprintf(&buf, "%s", guest->model);
......@@ -2995,7 +2995,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
cleanup:
virCPUDefFree(guest);
cpuDataFree(NULL, ut->machine, data);
cpuDataFree(ut->machine, data);
if (cpus) {
for (i = 0; i < ncpus; i++)
......@@ -5026,7 +5026,7 @@ qemuParseCommandLineCPU(virDomainDefPtr dom,
else
feature = strdup(p);
ret = virCPUDefAddFeature(NULL, cpu, feature, policy);
ret = virCPUDefAddFeature(cpu, feature, policy);
VIR_FREE(feature);
if (ret < 0)
goto error;
......
......@@ -8495,7 +8495,7 @@ qemuCPUCompare(virConnectPtr conn,
"%s", _("cannot get host CPU capabilities"));
}
else
ret = cpuCompareXML(conn, driver->caps->host.cpu, xmlDesc);
ret = cpuCompareXML(driver->caps->host.cpu, xmlDesc);
qemuDriverUnlock(driver);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册