summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2015-01-21 10:49:22 +0300
committerDavid Vrabel <david.vrabel@citrix.com>2015-03-16 17:49:13 +0300
commit9b4ade226f7468bb26f98b6cd01cb5b8a05fc96d (patch)
tree8f3de75f4cf3ad1eb3a6523dc89babbba46eb160 /scripts
parentb6a473a7e1d4f81fc3e355c95982820bb8eae97d (diff)
downloadlinux-9b4ade226f7468bb26f98b6cd01cb5b8a05fc96d.tar.xz
xen: build infrastructure for generating hypercall depending symbols
Today there are several places in the kernel which build tables containing one entry for each possible Xen hypercall. Create an infrastructure to be able to generate these tables at build time. Based-on-patch-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com> Acked-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/xen-hypercalls.sh12
1 files changed, 12 insertions, 0 deletions
diff --git a/scripts/xen-hypercalls.sh b/scripts/xen-hypercalls.sh
new file mode 100644
index 000000000000..676d9226814f
--- /dev/null
+++ b/scripts/xen-hypercalls.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+out="$1"
+shift
+in="$@"
+
+for i in $in; do
+ eval $CPP $LINUXINCLUDE -dD -imacros "$i" -x c /dev/null
+done | \
+awk '$1 == "#define" && $2 ~ /__HYPERVISOR_[a-z][a-z_0-9]*/ { v[$3] = $2 }
+ END { print "/* auto-generated by scripts/xen-hypercall.sh */"
+ for (i in v) if (!(v[i] in v))
+ print "HYPERCALL("substr(v[i], 14)")"}' | sort -u >$out