libxl: Move detection of autoballoon to libxl_conf

Detecting whether or not to autoballoon is configuration related,
so move the code to libxl_conf.
This commit is contained in:
Jim Fehlig 2013-08-30 11:11:08 -06:00
parent 11e80ddfe4
commit c9d5432d85
3 changed files with 26 additions and 24 deletions

View File

@ -978,6 +978,28 @@ error:
return -1;
}
bool
libxlGetAutoballoonConf(libxlDriverPrivatePtr driver)
{
const libxl_version_info *info;
regex_t regex;
int ret;
info = libxl_get_version_info(driver->ctx);
if (!info)
return true; /* default to on */
ret = regcomp(&regex,
"(^| )dom0_mem=((|min:|max:)[0-9]+[bBkKmMgG]?,?)+($| )",
REG_NOSUB | REG_EXTENDED);
if (ret)
return true;
ret = regexec(&regex, info->commandline, 0, NULL, 0);
regfree(&regex);
return ret == REG_NOMATCH;
}
virCapsPtr
libxlMakeCapabilities(libxl_ctx *ctx)
{

View File

@ -120,6 +120,9 @@ struct _libxlSavefileHeader {
uint32_t unused[10];
};
bool
libxlGetAutoballoonConf(libxlDriverPrivatePtr driver);
virCapsPtr
libxlMakeCapabilities(libxl_ctx *ctx);

View File

@ -1207,29 +1207,6 @@ libxlStateCleanup(void)
return 0;
}
static bool
libxlGetAutoballoon(libxlDriverPrivatePtr driver)
{
const libxl_version_info *info;
regex_t regex;
int ret;
info = libxl_get_version_info(driver->ctx);
if (!info)
return true; /* default to on */
ret = regcomp(&regex,
"(^| )dom0_mem=((|min:|max:)[0-9]+[bBkKmMgG]?,?)+($| )",
REG_NOSUB | REG_EXTENDED);
if (ret)
return true;
ret = regexec(&regex, info->commandline, 0, NULL, 0);
regfree(&regex);
return ret == REG_NOMATCH;
}
static int
libxlStateInitialize(bool privileged,
virStateInhibitCallback callback ATTRIBUTE_UNUSED,
@ -1376,7 +1353,7 @@ libxlStateInitialize(bool privileged,
}
/* setup autoballoon */
libxl_driver->autoballoon = libxlGetAutoballoon(libxl_driver);
libxl_driver->autoballoon = libxlGetAutoballoonConf(libxl_driver);
/* Load running domains first. */
if (virDomainObjListLoadAllConfigs(libxl_driver->domains,