diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-01-27 17:25:56 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-01-27 17:25:56 +0000 |
commit | 21ffff5e7f5ac0a54c5b79ff0734ab12b706eb9e (patch) | |
tree | e808043ee460e80919672ddf4d04ed8c08d8b5fb /tools/include/xen-foreign/mkchecker.py | |
parent | db52d0daebd357af6b0aba80026b9745459a596a (diff) | |
download | xen-21ffff5e7f5ac0a54c5b79ff0734ab12b706eb9e.tar.gz xen-21ffff5e7f5ac0a54c5b79ff0734ab12b706eb9e.tar.bz2 xen-21ffff5e7f5ac0a54c5b79ff0734ab12b706eb9e.zip |
Move remaining xen/include/public/foreign files to tools/include/xen-foreign
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
--HG--
rename : xen/include/public/foreign/mkchecker.py => tools/include/xen-foreign/mkchecker.py
rename : xen/include/public/foreign/mkheader.py => tools/include/xen-foreign/mkheader.py
rename : xen/include/public/foreign/reference.size => tools/include/xen-foreign/reference.size
rename : xen/include/public/foreign/structs.py => tools/include/xen-foreign/structs.py
Diffstat (limited to 'tools/include/xen-foreign/mkchecker.py')
-rw-r--r-- | tools/include/xen-foreign/mkchecker.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tools/include/xen-foreign/mkchecker.py b/tools/include/xen-foreign/mkchecker.py new file mode 100644 index 0000000000..66c17b19e9 --- /dev/null +++ b/tools/include/xen-foreign/mkchecker.py @@ -0,0 +1,53 @@ +#!/usr/bin/python + +import sys; +from structs import structs; + +# command line arguments +outfile = sys.argv[1]; +archs = sys.argv[2:]; + +f = open(outfile, "w"); +f.write(''' +/* + * sanity checks for generated foreign headers: + * - verify struct sizes + * + * generated by %s -- DO NOT EDIT + */ +#include <stdio.h> +#include <stdlib.h> +#include <stddef.h> +#include <inttypes.h> +'''); + +for a in archs: + f.write('#include "%s.h"\n' % a); + +f.write('int main(int argc, char *argv[])\n{\n'); + +f.write('\tprintf("\\n");'); +f.write('printf("%-25s |", "structs");\n'); +for a in archs: + f.write('\tprintf("%%8s", "%s");\n' % a); +f.write('\tprintf("\\n");'); + +f.write('\tprintf("\\n");'); +for struct in structs: + f.write('\tprintf("%%-25s |", "%s");\n' % struct); + for a in archs: + s = struct + "_" + a; + f.write('#ifdef %s_has_no_%s\n' % (a, struct)); + f.write('\tprintf("%8s", "-");\n'); + f.write("#else\n"); + f.write('\tprintf("%%8zd", sizeof(struct %s));\n' % s); + f.write("#endif\n"); + + f.write('\tprintf("\\n");\n\n'); + +f.write('\tprintf("\\n");\n'); +f.write('\texit(0);\n'); +f.write('}\n'); + +f.close(); + |