stubdom: make compilation independent of tools/ by building our own copy of the includes
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 9 Jul 2008 10:51:46 +0000 (11:51 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 9 Jul 2008 10:51:46 +0000 (11:51 +0100)
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
stubdom/Makefile
tools/include/xen-sys/MiniOS/privcmd.h [new file with mode: 0644]

index 191cdf19aebc942b45538212271a58375e9e342c..d02528957e26616cb84722c478b84d5a7c856ad0 100644 (file)
@@ -52,6 +52,7 @@ TARGET_CFLAGS += -nostdinc
 TARGET_CPPFLAGS += -isystem $(realpath $(MINI_OS)/include/posix)
 TARGET_CPPFLAGS += -isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include
 TARGET_CPPFLAGS += -isystem $(GCC_INSTALL)include
+TARGET_CPPFLAGS += -I$(CURDIR)/include
 
 TARGET_LDFLAGS += -nostdlib -L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib
 
@@ -144,9 +145,15 @@ lwip-cvs:
 .PHONY: $(CROSS_ROOT)
 $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
 
-.PHONY: mk-symlinks
-mk-symlinks:
-       [ -h include ] || ln -sf ../tools/include .
+.PHONY: mk-headers
+mk-headers:
+       mkdir -p include/xen && \
+          ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/xen/include/public/*.h)) include/xen && \
+          ( [ -h include/xen/sys ] || ln -sf ../../$(XEN_ROOT)/tools/include/xen-sys/MiniOS include/xen/sys ) && \
+         mkdir -p include/xen-foreign && \
+         ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/tools/include/xen-foreign/*)) include/xen-foreign/ && \
+         $(MAKE) -C include/xen-foreign/ && \
+         ( [ -h include/xen/foreign ] || ln -sf ../xen-foreign include/xen/foreign )
        mkdir -p libxc
        [ -h libxc/Makefile ] || ( cd libxc && \
          ln -sf ../$(XEN_ROOT)/tools/libxc/*.h . && \
@@ -177,7 +184,7 @@ $(TARGETS_MINIOS): mini-os-%:
 
 .PHONY: libxc
 libxc: libxc/libxenctrl.a libxc/libxenguest.a
-libxc/libxenctrl.a libxc/libxenguest.a:: cross-zlib mk-symlinks
+libxc/libxenctrl.a libxc/libxenguest.a:: cross-zlib mk-headers
        CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C libxc
 
 #######
@@ -185,7 +192,7 @@ libxc/libxenctrl.a libxc/libxenguest.a:: cross-zlib mk-symlinks
 #######
 
 .PHONY: ioemu
-ioemu: cross-zlib cross-libpci mk-symlinks libxc
+ioemu: cross-zlib cross-libpci mk-headers libxc
        [ -f ioemu/config-host.mak ] || \
          ( cd ioemu ; \
           XEN_TARGET_ARCH=$(XEN_TARGET_ARCH) CFLAGS="$(TARGET_CFLAGS)" sh configure --prefix=/usr --enable-stubdom $(IOEMU_OPTIONS))
@@ -196,7 +203,7 @@ ioemu: cross-zlib cross-libpci mk-symlinks libxc
 ######
 
 .PHONY: caml
-caml: cross-newlib mk-symlinks
+caml: cross-newlib mk-headers
        CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-cvs 
 
 ###
@@ -204,7 +211,7 @@ caml: cross-newlib mk-symlinks
 ###
 
 .PHONY: c
-c: cross-newlib mk-symlinks
+c: cross-newlib mk-headers
        CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-cvs 
 
 ######
@@ -218,7 +225,7 @@ grub-cvs:
        done
 
 .PHONY: grub
-grub: grub-cvs cross-newlib mk-symlinks
+grub: grub-cvs cross-newlib mk-headers
        CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@
 
 ########
diff --git a/tools/include/xen-sys/MiniOS/privcmd.h b/tools/include/xen-sys/MiniOS/privcmd.h
new file mode 100644 (file)
index 0000000..97e0ceb
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef __MINIOS_PUBLIC_PRIVCMD_H__
+#define __MINIOS_PUBLIC_PRIVCMD_H__
+
+#include <sys/types.h>
+
+typedef struct privcmd_hypercall
+{
+       u64 op;
+       u64 arg[5];
+} privcmd_hypercall_t;
+
+typedef struct privcmd_mmap_entry {
+       u64 va;
+       u64 mfn;
+       u64 npages;
+} privcmd_mmap_entry_t; 
+
+#endif /* __MINIOS_PUBLIC_PRIVCMD_H__ */