summaryrefslogtreecommitdiffstats
path: root/sys/xen/interface/foreign
diff options
context:
space:
mode:
Diffstat (limited to 'sys/xen/interface/foreign')
-rw-r--r--sys/xen/interface/foreign/Makefile37
-rw-r--r--sys/xen/interface/foreign/mkchecker.py58
-rw-r--r--sys/xen/interface/foreign/mkheader.py167
-rw-r--r--sys/xen/interface/foreign/reference.size17
-rw-r--r--sys/xen/interface/foreign/structs.py58
5 files changed, 0 insertions, 337 deletions
diff --git a/sys/xen/interface/foreign/Makefile b/sys/xen/interface/foreign/Makefile
deleted file mode 100644
index 7bde873..0000000
--- a/sys/xen/interface/foreign/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-XEN_ROOT=../../../..
-include $(XEN_ROOT)/Config.mk
-
-architectures := x86_32 x86_64 ia64
-headers := $(patsubst %, %.h, $(architectures))
-scripts := $(wildcard *.py)
-
-.PHONY: all clean check-headers
-all: $(headers) check-headers
-
-clean:
- rm -f $(headers)
- rm -f checker checker.c $(XEN_TARGET_ARCH).size
- rm -f *.pyc *.o *~
-
-ifeq ($(CROSS_COMPILE)$(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
-check-headers: checker
- ./checker > $(XEN_TARGET_ARCH).size
- diff -u reference.size $(XEN_TARGET_ARCH).size
-checker: checker.c $(headers)
- $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
-else
-check-headers:
- @echo "cross build: skipping check"
-endif
-
-x86_32.h: ../arch-x86/xen-x86_32.h ../arch-x86/xen.h ../xen.h $(scripts)
- python mkheader.py $* $@ $(filter %.h,$^)
-
-x86_64.h: ../arch-x86/xen-x86_64.h ../arch-x86/xen.h ../xen.h $(scripts)
- python mkheader.py $* $@ $(filter %.h,$^)
-
-ia64.h: ../arch-ia64.h ../xen.h $(scripts)
- python mkheader.py $* $@ $(filter %.h,$^)
-
-checker.c: $(scripts)
- python mkchecker.py $(XEN_TARGET_ARCH) $@ $(architectures)
diff --git a/sys/xen/interface/foreign/mkchecker.py b/sys/xen/interface/foreign/mkchecker.py
deleted file mode 100644
index 9da1e2b..0000000
--- a/sys/xen/interface/foreign/mkchecker.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/python
-
-import sys;
-from structs import structs;
-
-# command line arguments
-arch = sys.argv[1];
-outfile = sys.argv[2];
-archs = sys.argv[3:];
-
-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>
-#include "../xen.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:
- if a == arch:
- s = struct; # native
- else:
- 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();
-
diff --git a/sys/xen/interface/foreign/mkheader.py b/sys/xen/interface/foreign/mkheader.py
deleted file mode 100644
index 3d75a7a..0000000
--- a/sys/xen/interface/foreign/mkheader.py
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/python
-
-import sys, re;
-from structs import unions, structs, defines;
-
-# command line arguments
-arch = sys.argv[1];
-outfile = sys.argv[2];
-infiles = sys.argv[3:];
-
-
-###########################################################################
-# configuration #2: architecture information
-
-inttypes = {};
-header = {};
-footer = {};
-
-# x86_32
-inttypes["x86_32"] = {
- "unsigned long" : "uint32_t",
- "long" : "uint32_t",
- "xen_pfn_t" : "uint32_t",
-};
-header["x86_32"] = """
-#define __i386___X86_32 1
-#pragma pack(4)
-""";
-footer["x86_32"] = """
-#pragma pack()
-""";
-
-# x86_64
-inttypes["x86_64"] = {
- "unsigned long" : "__align8__ uint64_t",
- "long" : "__align8__ uint64_t",
- "xen_pfn_t" : "__align8__ uint64_t",
-};
-header["x86_64"] = """
-#ifdef __GNUC__
-# define __DECL_REG(name) union { uint64_t r ## name, e ## name; }
-# define __align8__ __attribute__((aligned (8)))
-#else
-# define __DECL_REG(name) uint64_t r ## name
-# define __align8__ FIXME
-#endif
-#define __x86_64___X86_64 1
-""";
-
-# ia64
-inttypes["ia64"] = {
- "unsigned long" : "__align8__ uint64_t",
- "long" : "__align8__ uint64_t",
- "xen_pfn_t" : "__align8__ uint64_t",
- "long double" : "__align16__ ldouble_t",
-};
-header["ia64"] = """
-#define __align8__ __attribute__((aligned (8)))
-#define __align16__ __attribute__((aligned (16)))
-typedef unsigned char ldouble_t[16];
-""";
-
-
-###########################################################################
-# main
-
-input = "";
-output = "";
-fileid = re.sub("[-.]", "_", "__FOREIGN_%s__" % outfile.upper());
-
-# read input header files
-for name in infiles:
- f = open(name, "r");
- input += f.read();
- f.close();
-
-# add header
-output += """
-/*
- * public xen defines and struct for %s
- * generated by %s -- DO NOT EDIT
- */
-
-#ifndef %s
-#define %s 1
-
-""" % (arch, sys.argv[0], fileid, fileid)
-
-if arch in header:
- output += header[arch];
- output += "\n";
-
-# add defines to output
-for line in re.findall("#define[^\n]+", input):
- for define in defines:
- regex = "#define\s+%s\\b" % define;
- match = re.search(regex, line);
- if None == match:
- continue;
- if define.upper()[0] == define[0]:
- replace = define + "_" + arch.upper();
- else:
- replace = define + "_" + arch;
- regex = "\\b%s\\b" % define;
- output += re.sub(regex, replace, line) + "\n";
-output += "\n";
-
-# delete defines, comments, empty lines
-input = re.sub("#define[^\n]+\n", "", input);
-input = re.compile("/\*(.*?)\*/", re.S).sub("", input)
-input = re.compile("\n\s*\n", re.S).sub("\n", input);
-
-# add unions to output
-for union in unions:
- regex = "union\s+%s\s*\{(.*?)\n\};" % union;
- match = re.search(regex, input, re.S)
- if None == match:
- output += "#define %s_has_no_%s 1\n" % (arch, union);
- else:
- output += "union %s_%s {%s\n};\n" % (union, arch, match.group(1));
- output += "\n";
-
-# add structs to output
-for struct in structs:
- regex = "struct\s+%s\s*\{(.*?)\n\};" % struct;
- match = re.search(regex, input, re.S)
- if None == match:
- output += "#define %s_has_no_%s 1\n" % (arch, struct);
- else:
- output += "struct %s_%s {%s\n};\n" % (struct, arch, match.group(1));
- output += "typedef struct %s_%s %s_%s_t;\n" % (struct, arch, struct, arch);
- output += "\n";
-
-# add footer
-if arch in footer:
- output += footer[arch];
- output += "\n";
-output += "#endif /* %s */\n" % fileid;
-
-# replace: defines
-for define in defines:
- if define.upper()[0] == define[0]:
- replace = define + "_" + arch.upper();
- else:
- replace = define + "_" + arch;
- output = re.sub("\\b%s\\b" % define, replace, output);
-
-# replace: unions
-for union in unions:
- output = re.sub("\\b(union\s+%s)\\b" % union, "\\1_%s" % arch, output);
-
-# replace: structs + struct typedefs
-for struct in structs:
- output = re.sub("\\b(struct\s+%s)\\b" % struct, "\\1_%s" % arch, output);
- output = re.sub("\\b(%s)_t\\b" % struct, "\\1_%s_t" % arch, output);
-
-# replace: integer types
-integers = inttypes[arch].keys();
-integers.sort(lambda a, b: cmp(len(b),len(a)));
-for type in integers:
- output = re.sub("\\b%s\\b" % type, inttypes[arch][type], output);
-
-# print results
-f = open(outfile, "w");
-f.write(output);
-f.close;
-
diff --git a/sys/xen/interface/foreign/reference.size b/sys/xen/interface/foreign/reference.size
deleted file mode 100644
index f35d281..0000000
--- a/sys/xen/interface/foreign/reference.size
+++ /dev/null
@@ -1,17 +0,0 @@
-
-structs | x86_32 x86_64 ia64
-
-start_info | 1104 1152 1152
-trap_info | 8 16 -
-pt_fpreg | - - 16
-cpu_user_regs | 68 200 496
-xen_ia64_boot_param | - - 96
-ia64_tr_entry | - - 32
-vcpu_extra_regs | - - 536
-vcpu_guest_context | 2800 5168 1056
-arch_vcpu_info | 24 16 0
-vcpu_time_info | 32 32 32
-vcpu_info | 64 64 48
-arch_shared_info | 268 280 272
-shared_info | 2584 3368 4384
-
diff --git a/sys/xen/interface/foreign/structs.py b/sys/xen/interface/foreign/structs.py
deleted file mode 100644
index 7d51ca8..0000000
--- a/sys/xen/interface/foreign/structs.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# configuration: what needs translation
-
-unions = [ "vcpu_cr_regs",
- "vcpu_ar_regs" ];
-
-structs = [ "start_info",
- "trap_info",
- "pt_fpreg",
- "cpu_user_regs",
- "xen_ia64_boot_param",
- "ia64_tr_entry",
- "vcpu_tr_regs",
- "vcpu_guest_context_regs",
- "vcpu_guest_context",
- "arch_vcpu_info",
- "vcpu_time_info",
- "vcpu_info",
- "arch_shared_info",
- "shared_info" ];
-
-defines = [ "__i386__",
- "__x86_64__",
-
- "FLAT_RING1_CS",
- "FLAT_RING1_DS",
- "FLAT_RING1_SS",
-
- "FLAT_RING3_CS64",
- "FLAT_RING3_DS64",
- "FLAT_RING3_SS64",
- "FLAT_KERNEL_CS64",
- "FLAT_KERNEL_DS64",
- "FLAT_KERNEL_SS64",
-
- "FLAT_KERNEL_CS",
- "FLAT_KERNEL_DS",
- "FLAT_KERNEL_SS",
-
- # x86_{32,64}
- "_VGCF_i387_valid",
- "VGCF_i387_valid",
- "_VGCF_in_kernel",
- "VGCF_in_kernel",
- "_VGCF_failsafe_disables_events",
- "VGCF_failsafe_disables_events",
- "_VGCF_syscall_disables_events",
- "VGCF_syscall_disables_events",
- "_VGCF_online",
- "VGCF_online",
-
- # ia64
- "VGCF_EXTRA_REGS",
-
- # all archs
- "xen_pfn_to_cr3",
- "MAX_VIRT_CPUS",
- "MAX_GUEST_CMDLINE" ];
-
OpenPOWER on IntegriCloud