From edcf14be9c35ce4ae274b888a1711e4869cb55d0 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Wed, 18 Sep 2024 09:25:52 +0200 Subject: [PATCH] qemu: Move domain-related functions to qemu_domain Signed-off-by: Martin Kletzander Reviewed-by: Michal Privoznik --- src/qemu/qemu_conf.c | 58 ------------------------------------------ src/qemu/qemu_conf.h | 8 ------ src/qemu/qemu_domain.c | 58 ++++++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_domain.h | 9 +++++++ 4 files changed, 67 insertions(+), 66 deletions(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index b36bede6c3..0d90a87392 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1603,64 +1603,6 @@ qemuGetDomainHupageMemPath(virQEMUDriver *driver, } -int -qemuGetMemoryBackingDomainPath(virQEMUDriver *driver, - const virDomainDef *def, - char **path) -{ - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); - const char *root = driver->embeddedRoot; - g_autofree char *shortName = NULL; - - if (!(shortName = virDomainDefGetShortName(def))) - return -1; - - if (root && !STRPREFIX(cfg->memoryBackingDir, root)) { - g_autofree char * hash = virDomainDriverGenerateRootHash("qemu", root); - *path = g_strdup_printf("%s/%s-%s", cfg->memoryBackingDir, hash, shortName); - } else { - *path = g_strdup_printf("%s/%s", cfg->memoryBackingDir, shortName); - } - - return 0; -} - - -/** - * qemuGetMemoryBackingPath: - * @driver: the qemu driver - * @def: domain definition - * @alias: memory object alias - * @memPath: constructed path - * - * Constructs path to memory backing dir and stores it at @memPath. - * - * Returns: 0 on success, - * -1 otherwise (with error reported). - */ -int -qemuGetMemoryBackingPath(virQEMUDriver *driver, - const virDomainDef *def, - const char *alias, - char **memPath) -{ - g_autofree char *domainPath = NULL; - - if (!alias) { - /* This should never happen (TM) */ - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("memory device alias is not assigned")); - return -1; - } - - if (qemuGetMemoryBackingDomainPath(driver, def, &domainPath) < 0) - return -1; - - *memPath = g_strdup_printf("%s/%s", domainPath, alias); - return 0; -} - - int qemuHugepageMakeBasedir(virQEMUDriver *driver, virHugeTLBFS *hugepage) diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index aa1e1a626c..c98b6137c1 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -368,14 +368,6 @@ int qemuGetDomainHupageMemPath(virQEMUDriver *driver, unsigned long long pagesize, char **memPath); -int qemuGetMemoryBackingDomainPath(virQEMUDriver *driver, - const virDomainDef *def, - char **path); -int qemuGetMemoryBackingPath(virQEMUDriver *driver, - const virDomainDef *def, - const char *alias, - char **memPath); - int qemuHugepageMakeBasedir(virQEMUDriver *driver, virHugeTLBFS *hugepage); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index ed305d9427..cd891fd58f 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1735,6 +1735,64 @@ qemuDomainSecretPrepare(virQEMUDriver *driver, } +int +qemuGetMemoryBackingDomainPath(virQEMUDriver *driver, + const virDomainDef *def, + char **path) +{ + g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); + const char *root = driver->embeddedRoot; + g_autofree char *shortName = NULL; + + if (!(shortName = virDomainDefGetShortName(def))) + return -1; + + if (root && !STRPREFIX(cfg->memoryBackingDir, root)) { + g_autofree char * hash = virDomainDriverGenerateRootHash("qemu", root); + *path = g_strdup_printf("%s/%s-%s", cfg->memoryBackingDir, hash, shortName); + } else { + *path = g_strdup_printf("%s/%s", cfg->memoryBackingDir, shortName); + } + + return 0; +} + + +/** + * qemuGetMemoryBackingPath: + * @driver: the qemu driver + * @def: domain definition + * @alias: memory object alias + * @memPath: constructed path + * + * Constructs path to memory backing dir and stores it at @memPath. + * + * Returns: 0 on success, + * -1 otherwise (with error reported). + */ +int +qemuGetMemoryBackingPath(virQEMUDriver *driver, + const virDomainDef *def, + const char *alias, + char **memPath) +{ + g_autofree char *domainPath = NULL; + + if (!alias) { + /* This should never happen (TM) */ + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("memory device alias is not assigned")); + return -1; + } + + if (qemuGetMemoryBackingDomainPath(driver, def, &domainPath) < 0) + return -1; + + *memPath = g_strdup_printf("%s/%s", domainPath, alias); + return 0; +} + + /* This is the old way of setting up per-domain directories */ static void qemuDomainSetPrivatePathsOld(virQEMUDriver *driver, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index d799f6c086..9d897b761e 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -936,6 +936,15 @@ void qemuDomainCleanupStorageSourceFD(virStorageSource *src); void qemuDomainStartupCleanup(virDomainObj *vm); +int qemuGetMemoryBackingDomainPath(virQEMUDriver *driver, + const virDomainDef *def, + char **path); + +int qemuGetMemoryBackingPath(virQEMUDriver *driver, + const virDomainDef *def, + const char *alias, + char **memPath); + int qemuDomainSecretPrepare(virQEMUDriver *driver, virDomainObj *vm) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);