From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:47844) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QXHK5-0006xk-CP for qemu-devel@nongnu.org; Thu, 16 Jun 2011 14:29:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QXHK1-0001I2-Sh for qemu-devel@nongnu.org; Thu, 16 Jun 2011 14:29:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:64740) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QXHK1-0001Hm-AT for qemu-devel@nongnu.org; Thu, 16 Jun 2011 14:29:41 -0400 Date: Thu, 16 Jun 2011 15:29:37 -0300 From: Luiz Capitulino Message-ID: <20110616152937.0f654a95@doriath> In-Reply-To: <1308081985-32394-2-git-send-email-mdroth@linux.vnet.ibm.com> References: <1308081985-32394-1-git-send-email-mdroth@linux.vnet.ibm.com> <1308081985-32394-2-git-send-email-mdroth@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 1/5] guest agent: command state class List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Roth Cc: aliguori@linux.vnet.ibm.com, agl@linux.vnet.ibm.com, qemu-devel@nongnu.org, Jes.Sorensen@redhat.com On Tue, 14 Jun 2011 15:06:21 -0500 Michael Roth wrote: > > Signed-off-by: Michael Roth > --- > qga/guest-agent-command-state.c | 73 +++++++++++++++++++++++++++++++++++++++ > qga/guest-agent-core.h | 25 +++++++++++++ It's not possible to build this. I see that the last patch has the Makefile changes, but what we want is that a patch introducing a .c file also updates the Makefile, so that the .c file can be built. > 2 files changed, 98 insertions(+), 0 deletions(-) > create mode 100644 qga/guest-agent-command-state.c > create mode 100644 qga/guest-agent-core.h > > diff --git a/qga/guest-agent-command-state.c b/qga/guest-agent-command-state.c > new file mode 100644 > index 0000000..969da23 > --- /dev/null > +++ b/qga/guest-agent-command-state.c > @@ -0,0 +1,73 @@ > +/* > + * QEMU Guest Agent command state interfaces > + * > + * Copyright IBM Corp. 2011 > + * > + * Authors: > + * Michael Roth > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > +#include > +#include "qga/guest-agent-core.h" > + > +struct GACommandState { > + GSList *groups; > +}; > + > +typedef struct GACommandGroup { > + void (*init)(void); > + void (*cleanup)(void); > +} GACommandGroup; > + > +/* handle init/cleanup for stateful guest commands */ > + > +void ga_command_state_add(GACommandState *cs, > + void (*init)(void), > + void (*cleanup)(void)) > +{ > + GACommandGroup *cg = g_malloc0(sizeof(GACommandGroup)); This is linked against qemu-ga only, right? Otherwise I think we should use qemu_mallocz(). And you probably want to check against NULL. > + cg->init = init; > + cg->cleanup = cleanup; > + cs->groups = g_slist_append(cs->groups, cg); Not that I'm asking to you change anything here, but we're going to get a funny mix with QObjects :) > +} > + > +static void ga_command_group_init(gpointer opaque, gpointer unused) > +{ > + GACommandGroup *cg = opaque; > + > + g_assert(cg); > + if (cg->init) { > + cg->init(); > + } > +} > + > +void ga_command_state_init_all(GACommandState *cs) > +{ > + g_assert(cs); > + g_slist_foreach(cs->groups, ga_command_group_init, NULL); > +} > + > +static void ga_command_group_cleanup(gpointer opaque, gpointer unused) > +{ > + GACommandGroup *cg = opaque; > + > + g_assert(cg); > + if (cg->cleanup) { > + cg->cleanup(); > + } > +} > + > +void ga_command_state_cleanup_all(GACommandState *cs) > +{ > + g_assert(cs); > + g_slist_foreach(cs->groups, ga_command_group_cleanup, NULL); > +} > + > +GACommandState *ga_command_state_new(void) > +{ > + GACommandState *cs = g_malloc0(sizeof(GACommandState)); > + cs->groups = NULL; > + return cs; > +} > diff --git a/qga/guest-agent-core.h b/qga/guest-agent-core.h > new file mode 100644 > index 0000000..688f120 > --- /dev/null > +++ b/qga/guest-agent-core.h > @@ -0,0 +1,25 @@ > +/* > + * QEMU Guest Agent core declarations > + * > + * Copyright IBM Corp. 2011 > + * > + * Authors: > + * Adam Litke > + * Michael Roth > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > +#include "qapi/qmp-core.h" > +#include "qemu-common.h" > + > +#define QGA_VERSION "1.0" > + > +typedef struct GACommandState GACommandState; > + > +void ga_command_state_add(GACommandState *cs, > + void (*init)(void), > + void (*cleanup)(void)); > +void ga_command_state_init_all(GACommandState *cs); > +void ga_command_state_cleanup_all(GACommandState *cs); > +GACommandState *ga_command_state_new(void);