From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> Move the LXC driver code related to the virDomainObjPtr private data into separate lxc_domain.{c,h} files to reduce the size of lxc_driver.c Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> --- src/Makefile.am | 1 + src/lxc/lxc_domain.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/lxc/lxc_domain.h | 37 +++++++++++++++++++++++++++++++++++ src/lxc/lxc_driver.c | 33 ++----------------------------- 4 files changed, 93 insertions(+), 31 deletions(-) create mode 100644 src/lxc/lxc_domain.c create mode 100644 src/lxc/lxc_domain.h diff --git a/src/Makefile.am b/src/Makefile.am index bfe74d3..e18b0dc 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -350,6 +350,7 @@ endif LXC_DRIVER_SOURCES = \ lxc/lxc_conf.c lxc/lxc_conf.h \ lxc/lxc_container.c lxc/lxc_container.h \ + lxc/lxc_domain.c lxc/lxc_domain.h \ lxc/lxc_driver.c lxc/lxc_driver.h LXC_CONTROLLER_SOURCES = \ diff --git a/src/lxc/lxc_domain.c b/src/lxc/lxc_domain.c new file mode 100644 index 0000000..75fd74f --- /dev/null +++ b/src/lxc/lxc_domain.c @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2010-2012 Red Hat, Inc. + * Copyright IBM Corp. 2008 + * + * lxc_domain.h: LXC domain helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <config.h> + +#include "lxc_domain.h" + +#include "memory.h" + +static void *lxcDomainObjPrivateAlloc(void) +{ + lxcDomainObjPrivatePtr priv; + + if (VIR_ALLOC(priv) < 0) + return NULL; + + priv->monitor = -1; + priv->monitorWatch = -1; + + return priv; +} + +static void lxcDomainObjPrivateFree(void *data) +{ + lxcDomainObjPrivatePtr priv = data; + + VIR_FREE(priv); +} + + +void lxcDomainSetPrivateDataHooks(virCapsPtr caps) +{ + caps->privateDataAllocFunc = lxcDomainObjPrivateAlloc; + caps->privateDataFreeFunc = lxcDomainObjPrivateFree; +} diff --git a/src/lxc/lxc_domain.h b/src/lxc/lxc_domain.h new file mode 100644 index 0000000..e97b2b4 --- /dev/null +++ b/src/lxc/lxc_domain.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2010-2012 Red Hat, Inc. + * Copyright IBM Corp. 2008 + * + * lxc_domain.h: LXC domain helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +#ifndef __LXC_DOMAIN_H__ +# define __LXC_DOMAIN_H__ + +# include "lxc_conf.h" + +typedef struct _lxcDomainObjPrivate lxcDomainObjPrivate; +typedef lxcDomainObjPrivate *lxcDomainObjPrivatePtr; +struct _lxcDomainObjPrivate { + int monitor; + int monitorWatch; +}; + +void lxcDomainSetPrivateDataHooks(virCapsPtr caps); + +#endif /* __LXC_DOMAIN_H__ */ diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index c341125..d3895d5 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -40,6 +40,7 @@ #include "datatypes.h" #include "lxc_conf.h" #include "lxc_container.h" +#include "lxc_domain.h" #include "lxc_driver.h" #include "memory.h" #include "util.h" @@ -69,14 +70,6 @@ #define LXC_NB_MEM_PARAM 3 -typedef struct _lxcDomainObjPrivate lxcDomainObjPrivate; -typedef lxcDomainObjPrivate *lxcDomainObjPrivatePtr; -struct _lxcDomainObjPrivate { - int monitor; - int monitorWatch; -}; - - static int lxcStartup(int privileged); static int lxcShutdown(void); static lxc_driver_t *lxc_driver = NULL; @@ -92,27 +85,6 @@ static void lxcDriverUnlock(lxc_driver_t *driver) virMutexUnlock(&driver->lock); } -static void *lxcDomainObjPrivateAlloc(void) -{ - lxcDomainObjPrivatePtr priv; - - if (VIR_ALLOC(priv) < 0) - return NULL; - - priv->monitor = -1; - priv->monitorWatch = -1; - - return priv; -} - -static void lxcDomainObjPrivateFree(void *data) -{ - lxcDomainObjPrivatePtr priv = data; - - VIR_FREE(priv); -} - - static void lxcDomainEventQueue(lxc_driver_t *driver, virDomainEventPtr event); @@ -2678,8 +2650,7 @@ static int lxcStartup(int privileged) if ((lxc_driver->caps = lxcCapsInit(lxc_driver)) == NULL) goto cleanup; - lxc_driver->caps->privateDataAllocFunc = lxcDomainObjPrivateAlloc; - lxc_driver->caps->privateDataFreeFunc = lxcDomainObjPrivateFree; + lxcDomainSetPrivateDataHooks(lxc_driver->caps); if (lxcProcessAutoDestroyInit(lxc_driver) < 0) goto cleanup; -- 1.7.10.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list