diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-12-17 06:27:56 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-12-17 06:27:56 +0000 |
commit | ab562bd46c7041d82523322dde38d42494fb37ca (patch) | |
tree | d249f5ba799f603f43370f9eccac5b98821762b3 /tools/memshr/Makefile | |
parent | 7e31226c7a62a1b88727b9e718eb11b745de16ab (diff) | |
download | xen-ab562bd46c7041d82523322dde38d42494fb37ca.tar.gz xen-ab562bd46c7041d82523322dde38d42494fb37ca.tar.bz2 xen-ab562bd46c7041d82523322dde38d42494fb37ca.zip |
Generic bi-directional map, and related initialisation functions. At the moment
a single map is used to store mappings between sharing handles and disk blocks.
This is used to share pages which store data read of the same blocks on
(virtual) disk.
Note that the map is stored in a shared memory region, as it needs to be
accessed by multiple tapdisk processes. This complicates memory allocation
(malloc cannot be used), prevents poniters to be stored directly (as the shared
memory region might and is mapped at different base address) and finally pthread
locks need to be multi-process aware.
Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
Diffstat (limited to 'tools/memshr/Makefile')
-rw-r--r-- | tools/memshr/Makefile | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/memshr/Makefile b/tools/memshr/Makefile new file mode 100644 index 0000000000..e7cf33b360 --- /dev/null +++ b/tools/memshr/Makefile @@ -0,0 +1,47 @@ +XEN_ROOT = ../.. +include $(XEN_ROOT)/tools/Rules.mk + +LIBMEMSHR-BUILD := libmemshr.a + +CFLAGS += -Werror +CFLAGS += -Wno-unused +CFLAGS += -I../include +CFLAGS += $(CFLAGS_libxenctrl) +CFLAGS += -D_GNU_SOURCE +CFLAGS += -fPIC +CFLAGS += -g + +# Get gcc to generate the dependencies for us. +CFLAGS += -Wp,-MD,.$(@F).d +DEPS = .*.d + +LIB-SRCS := interface.c +LIB-SRCS += shm.c +LIB-SRCS += bidir-hash.c + +LIB-OBJS := interface.o +LIB-OBJS += shm.o +LIB-OBJS += bidir-hash-fgprtshr.o +LIB-OBJS += bidir-hash-blockshr.o + +all: build + +build: $(LIBMEMSHR-BUILD) + +bidir-hash-fgprtshr.o: bidir-hash.c + $(CC) $(CFLAGS) -DFINGERPRINT_MAP -c -o $*.o bidir-hash.c + +bidir-hash-blockshr.o: bidir-hash.c + $(CC) $(CFLAGS) -DBLOCK_MAP -c -o $*.o bidir-hash.c + +libmemshr.a: $(LIB-OBJS) + $(AR) rc $@ $^ + +install: all + +clean: + rm -rf *.a *.o *~ $(DEPS) + +.PHONY: all build clean install + +-include $(DEPS) |