Move libxlDomainAutoCoreDump from libxl_driver to libxl_domain for use by other libxl modules. Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> --- src/libxl/libxl_domain.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/libxl/libxl_domain.h | 4 ++++ src/libxl/libxl_driver.c | 44 -------------------------------------------- 3 files changed, 48 insertions(+), 44 deletions(-) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 3608fbb..dceba9f 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -755,3 +755,47 @@ error: } return -1; } + +/* + * Core dump domain to default dump path. + * + * virDomainObjPtr must be locked on invocation + */ +int +libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver, + virDomainObjPtr vm) +{ + libxlDomainObjPrivatePtr priv = vm->privateData; + libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); + time_t curtime = time(NULL); + char timestr[100]; + struct tm time_info; + char *dumpfile = NULL; + int ret = -1; + + localtime_r(&curtime, &time_info); + strftime(timestr, sizeof(timestr), "%Y-%m-%d-%H:%M:%S", &time_info); + + if (virAsprintf(&dumpfile, "%s/%s-%s", + cfg->autoDumpDir, + vm->def->name, + timestr) < 0) + goto cleanup; + + if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0) + goto cleanup; + + /* Unlock virDomainObj while dumping core */ + virObjectUnlock(vm); + libxl_domain_core_dump(priv->ctx, vm->def->id, dumpfile, NULL); + virObjectLock(vm); + + ignore_value(libxlDomainObjEndJob(driver, vm)); + ret = 0; + +cleanup: + VIR_FREE(dumpfile); + virObjectUnref(cfg); + + return ret; +} diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h index 1ac9174..a50efd3 100644 --- a/src/libxl/libxl_domain.h +++ b/src/libxl/libxl_domain.h @@ -119,4 +119,8 @@ libxlDomainCleanupJob(libxlDriverPrivatePtr driver, int libxlDomainEventsRegister(virDomainObjPtr vm); +int +libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver, + virDomainObjPtr vm); + #endif /* LIBXL_DOMAIN_H */ diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index ed1d6b2..033d678c 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -166,50 +166,6 @@ cleanup: /* - * Core dump domain to default dump path. - * - * virDomainObjPtr must be locked on invocation - */ -static int -libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver, - virDomainObjPtr vm) -{ - libxlDomainObjPrivatePtr priv = vm->privateData; - libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); - time_t curtime = time(NULL); - char timestr[100]; - struct tm time_info; - char *dumpfile = NULL; - int ret = -1; - - localtime_r(&curtime, &time_info); - strftime(timestr, sizeof(timestr), "%Y-%m-%d-%H:%M:%S", &time_info); - - if (virAsprintf(&dumpfile, "%s/%s-%s", - cfg->autoDumpDir, - vm->def->name, - timestr) < 0) - goto cleanup; - - if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0) - goto cleanup; - - /* Unlock virDomainObj while dumping core */ - virObjectUnlock(vm); - libxl_domain_core_dump(priv->ctx, vm->def->id, dumpfile, NULL); - virObjectLock(vm); - - ignore_value(libxlDomainObjEndJob(driver, vm)); - ret = 0; - -cleanup: - VIR_FREE(dumpfile); - virObjectUnref(cfg); - - return ret; -} - -/* * Handle previously registered event notification from libxenlight. * * Note: Xen 4.3 removed the const from the event handler signature. -- 1.8.1.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list