提交 d8d71323 编写于 作者: J Jim Fehlig

libxl: move libxlDoNodeGetInfo to libxl_conf

Move libxlDoNodeGetInfo from libxl_driver to libxl_conf
for use by other libxl modules.  For consistency, rename to
libxlDriverNodeGetInfo.
Signed-off-by: NJim Fehlig <jfehlig@suse.com>
上级 f1d16501
...@@ -1223,6 +1223,42 @@ error: ...@@ -1223,6 +1223,42 @@ error:
return -1; return -1;
} }
int
libxlDriverNodeGetInfo(libxlDriverPrivatePtr driver, virNodeInfoPtr info)
{
libxl_physinfo phy_info;
virArch hostarch = virArchFromHost();
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
int ret = -1;
if (libxl_get_physinfo(cfg->ctx, &phy_info)) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("libxl_get_physinfo_info failed"));
goto cleanup;
}
if (virStrcpyStatic(info->model, virArchToString(hostarch)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("machine type %s too big for destination"),
virArchToString(hostarch));
goto cleanup;
}
info->memory = phy_info.total_pages * (cfg->verInfo->pagesize / 1024);
info->cpus = phy_info.nr_cpus;
info->nodes = phy_info.nr_nodes;
info->cores = phy_info.cores_per_socket;
info->threads = phy_info.threads_per_core;
info->sockets = 1;
info->mhz = phy_info.cpu_khz / 1000;
ret = 0;
cleanup:
virObjectUnref(cfg);
return ret;
}
virCapsPtr virCapsPtr
libxlMakeCapabilities(libxl_ctx *ctx) libxlMakeCapabilities(libxl_ctx *ctx)
{ {
......
...@@ -138,6 +138,10 @@ libxlDriverConfigNew(void); ...@@ -138,6 +138,10 @@ libxlDriverConfigNew(void);
libxlDriverConfigPtr libxlDriverConfigPtr
libxlDriverConfigGet(libxlDriverPrivatePtr driver); libxlDriverConfigGet(libxlDriverPrivatePtr driver);
int
libxlDriverNodeGetInfo(libxlDriverPrivatePtr driver,
virNodeInfoPtr info);
virCapsPtr virCapsPtr
libxlMakeCapabilities(libxl_ctx *ctx); libxlMakeCapabilities(libxl_ctx *ctx);
......
...@@ -132,43 +132,6 @@ cleanup: ...@@ -132,43 +132,6 @@ cleanup:
return ret; return ret;
} }
static int
libxlDoNodeGetInfo(libxlDriverPrivatePtr driver, virNodeInfoPtr info)
{
libxl_physinfo phy_info;
virArch hostarch = virArchFromHost();
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
int ret = -1;
if (libxl_get_physinfo(cfg->ctx, &phy_info)) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("libxl_get_physinfo_info failed"));
goto cleanup;
}
if (virStrcpyStatic(info->model, virArchToString(hostarch)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("machine type %s too big for destination"),
virArchToString(hostarch));
goto cleanup;
}
info->memory = phy_info.total_pages * (cfg->verInfo->pagesize / 1024);
info->cpus = phy_info.nr_cpus;
info->nodes = phy_info.nr_nodes;
info->cores = phy_info.cores_per_socket;
info->threads = phy_info.threads_per_core;
info->sockets = 1;
info->mhz = phy_info.cpu_khz / 1000;
ret = 0;
cleanup:
virObjectUnref(cfg);
return ret;
}
/* /*
* Handle previously registered event notification from libxenlight. * Handle previously registered event notification from libxenlight.
* *
...@@ -362,7 +325,7 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm) ...@@ -362,7 +325,7 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
size_t i; size_t i;
int ret = -1; int ret = -1;
if (libxlDoNodeGetInfo(driver, &nodeinfo) < 0) if (libxlDriverNodeGetInfo(driver, &nodeinfo) < 0)
goto cleanup; goto cleanup;
cpumaplen = VIR_CPU_MAPLEN(VIR_NODEINFO_MAXCPUS(nodeinfo)); cpumaplen = VIR_CPU_MAPLEN(VIR_NODEINFO_MAXCPUS(nodeinfo));
...@@ -1070,7 +1033,7 @@ libxlNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info) ...@@ -1070,7 +1033,7 @@ libxlNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info)
if (virNodeGetInfoEnsureACL(conn) < 0) if (virNodeGetInfoEnsureACL(conn) < 0)
return -1; return -1;
return libxlDoNodeGetInfo(conn->privateData, info); return libxlDriverNodeGetInfo(conn->privateData, info);
} }
static char * static char *
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册