On Sat, Mar 12, 2011 at 1:05 AM, Anthony Liguori <aligu...@us.ibm.com> wrote: > Signed-off-by: Anthony Liguori <aligu...@us.ibm.com> > --- > v1 -> v2 > - update code generator to use multiline > - proxy command support > - async command support > > diff --git a/Makefile b/Makefile > index 47a755d..5170675 100644 > --- a/Makefile > +++ b/Makefile > @@ -4,7 +4,7 @@ GENERATED_HEADERS = config-host.h trace.h qemu-options.def > ifeq ($(TRACE_BACKEND),dtrace) > GENERATED_HEADERS += trace-dtrace.h > endif > -GENERATED_HEADERS += qmp-types.h qmp-marshal-types.h qmp.h > +GENERATED_HEADERS += qmp-types.h qmp-marshal-types.h qmp.h libqmp.h > > ifneq ($(wildcard config-host.mak),) > # Put the all: rule here so that config-host.mak can contain dependencies. > @@ -165,9 +165,16 @@ qmp.h: $(SRC_PATH)/qmp-schema.json $(SRC_PATH)/qmp-gen.py > qmp-marshal.c: $(SRC_PATH)/qmp-schema.json $(SRC_PATH)/qmp-gen.py > $(call quiet-command,python $(SRC_PATH)/qmp-gen.py --body < $< > $@, " > GEN $@") > > +libqmp.h: $(SRC_PATH)/qmp-schema.json $(SRC_PATH)/qmp-gen.py > + $(call quiet-command,python $(SRC_PATH)/qmp-gen.py --lib-header < $< > > $@, " GEN $@") > + > +libqmp.c: $(SRC_PATH)/qmp-schema.json $(SRC_PATH)/qmp-gen.py > + $(call quiet-command,python $(SRC_PATH)/qmp-gen.py --lib-body < $< > > $@, " GEN $@") > + > qmp-types.o: qmp-types.c qmp-types.h > qmp-marshal-types.o: qmp-marshal-types.c qmp-marshal-types.h qmp-types.h > qmp-marshal.o: qmp-marshal.c qmp.h qmp-types.h qmp-marshal-types.h > +libqmp.o: libqmp.c libqmp.h qmp-types.h > > version.o: $(SRC_PATH)/version.rc config-host.mak > $(call quiet-command,$(WINDRES) -I. -o $@ $<," RC $(TARGET_DIR)$@") > diff --git a/libqmp-core.c b/libqmp-core.c > new file mode 100644 > index 0000000..4613d4f > --- /dev/null > +++ b/libqmp-core.c > @@ -0,0 +1,361 @@ > +/* > + * QAPI > + * > + * Copyright IBM, Corp. 2011 > + * > + * Authors: > + * Anthony Liguori <aligu...@us.ibm.com> > + * > + * This work is licensed under the terms of the GNU LGPL, version 2. See > + * the COPYING.LIB file in the top-level directory. > + */ > +#include "libqmp.h" > +#include "libqmp-internal.h" > +#include "libqmp-core.h" > +#include "json-streamer.h" > +#include "json-parser.h" > +#include "dirent.h" > +#include <sys/socket.h> > +#include <sys/un.h> > +#include <assert.h> > + > +#ifndef container_of > +#define offset_of(type, field) \ > + ((unsigned long)(&((type *)0)->field)) > +#define container_of(obj, type, field) \ > + ((type *)(((char *)obj) - offsetof(type, field))) > +#endif
Why not use the existing definitions?