aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-02-22 08:57:59 +0000
committerIan Campbell <ian.campbell@citrix.com>2013-02-22 12:14:53 +0000
commit08551b90080e0e9a60a6e7f2a7855aa970f0643f (patch)
tree9275a703dcb6b44f423cc732a3b0588a6f256307
parentfe47f73c59f566cc428038831c7d48b8f08bbc75 (diff)
downloadxen-08551b90080e0e9a60a6e7f2a7855aa970f0643f.tar.gz
xen-08551b90080e0e9a60a6e7f2a7855aa970f0643f.tar.bz2
xen-08551b90080e0e9a60a6e7f2a7855aa970f0643f.zip
xen: arm64: add to foreign struct checks
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-rw-r--r--.gitignore1
-rw-r--r--tools/include/xen-foreign/Makefile5
-rw-r--r--tools/include/xen-foreign/mkheader.py13
-rw-r--r--tools/include/xen-foreign/reference.size20
-rw-r--r--tools/include/xen-foreign/structs.py1
5 files changed, 29 insertions, 11 deletions
diff --git a/.gitignore b/.gitignore
index 3834e4b8bb..fce8c892cd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -367,6 +367,7 @@ tools/include/xen-foreign/structs.pyc
tools/include/xen-foreign/x86_32.h
tools/include/xen-foreign/x86_64.h
tools/include/xen-foreign/arm32.h
+tools/include/xen-foreign/arm64.h
.git
tools/misc/xen-hptool
diff --git a/tools/include/xen-foreign/Makefile b/tools/include/xen-foreign/Makefile
index 5bc2d46b3e..8e0be83f1d 100644
--- a/tools/include/xen-foreign/Makefile
+++ b/tools/include/xen-foreign/Makefile
@@ -3,7 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
ROOT = $(XEN_ROOT)/xen/include/public
-architectures := arm32 x86_32 x86_64
+architectures := arm32 arm64 x86_32 x86_64
headers := $(patsubst %, %.h, $(architectures))
.PHONY: all clean check-headers
@@ -25,6 +25,9 @@ check-headers: checker
arm32.h: mkheader.py structs.py $(ROOT)/arch-arm.h
$(PYTHON) $< $* $@ $(filter %.h,$^)
+arm64.h: mkheader.py structs.py $(ROOT)/arch-arm.h
+ $(PYTHON) $< $* $@ $(filter %.h,$^)
+
x86_32.h: mkheader.py structs.py $(ROOT)/arch-x86/xen-x86_32.h $(ROOT)/arch-x86/xen.h $(ROOT)/xen.h
$(PYTHON) $< $* $@ $(filter %.h,$^)
diff --git a/tools/include/xen-foreign/mkheader.py b/tools/include/xen-foreign/mkheader.py
index e3e61f3913..c63db31c6e 100644
--- a/tools/include/xen-foreign/mkheader.py
+++ b/tools/include/xen-foreign/mkheader.py
@@ -27,6 +27,16 @@ header["arm32"] = """
#define __arm___ARM32 1
""";
+inttypes["arm64"] = {
+ "unsigned long" : "__danger_unsigned_long_on_arm64",
+ "long" : "__danger_long_on_arm64",
+ "xen_pfn_t" : "uint64_t",
+ "xen_ulong_t" : "uint64_t",
+};
+header["arm64"] = """
+#define __aarch64___ARM64 1
+""";
+
# x86_32
inttypes["x86_32"] = {
"unsigned long" : "uint32_t",
@@ -59,6 +69,9 @@ header["x86_64"] = """
#endif
#define __x86_64___X86_64 1
""";
+footer["x86_64"] = """
+#undef __DECL_REG
+"""
###########################################################################
# main
diff --git a/tools/include/xen-foreign/reference.size b/tools/include/xen-foreign/reference.size
index 9f1bfac0c3..1d75ff330e 100644
--- a/tools/include/xen-foreign/reference.size
+++ b/tools/include/xen-foreign/reference.size
@@ -1,13 +1,13 @@
-structs | arm32 x86_32 x86_64
+structs | arm32 arm64 x86_32 x86_64
-start_info | - 1112 1168
-trap_info | - 8 16
-cpu_user_regs | 160 68 200
-vcpu_guest_context | 180 2800 5168
-arch_vcpu_info | - 24 16
-vcpu_time_info | - 32 32
-vcpu_info | - 64 64
-arch_shared_info | - 268 280
-shared_info | - 2584 3368
+start_info | - - 1112 1168
+trap_info | - - 8 16
+cpu_user_regs | 160 160 68 200
+vcpu_guest_context | 180 160 2800 5168
+arch_vcpu_info | - - 24 16
+vcpu_time_info | - - 32 32
+vcpu_info | - - 64 64
+arch_shared_info | - - 268 280
+shared_info | - - 2584 3368
diff --git a/tools/include/xen-foreign/structs.py b/tools/include/xen-foreign/structs.py
index 51a77c0ad8..5aec2c5cc2 100644
--- a/tools/include/xen-foreign/structs.py
+++ b/tools/include/xen-foreign/structs.py
@@ -14,6 +14,7 @@ structs = [ "start_info",
"shared_info" ];
defines = [ "__arm__",
+ "__aarch64__",
"__i386__",
"__x86_64__",