ia64/xen-unstable

view xen/include/Makefile @ 15812:86a154e1ef5d

[HVM] Shadow: don't shadow the p2m table.
For HVM vcpus with paging disabled, we used to shadow the p2m table,
and skip the p2m lookup to go from gfn to mfn. Instead, we now
provide a simple pagetable that gives a one-to-one mapping of 4GB, and
shadow that, making the translations from gfn to mfn via the p2m.
This removes the paging-disabled special-case code from the shadow
fault handler, and allows us to expand the p2m interface, since all HVM
translations now go through the same p2m lookups.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
author Tim Deegan <Tim.Deegan@xensource.com>
date Fri Aug 31 11:06:22 2007 +0100 (2007-08-31)
parents d0acb5a3e8d8
children 08295dc13166
line source
1 ifneq ($(CONFIG_COMPAT),)
3 compat-arch-$(CONFIG_X86) := x86_32
5 headers-y := \
6 compat/callback.h \
7 compat/elfnote.h \
8 compat/event_channel.h \
9 compat/features.h \
10 compat/grant_table.h \
11 compat/kexec.h \
12 compat/memory.h \
13 compat/nmi.h \
14 compat/physdev.h \
15 compat/platform.h \
16 compat/sched.h \
17 compat/trace.h \
18 compat/vcpu.h \
19 compat/version.h \
20 compat/xen.h \
21 compat/xencomm.h \
22 compat/xenoprof.h
23 headers-$(CONFIG_X86) += compat/arch-x86/xen.h
24 headers-$(CONFIG_X86) += compat/arch-x86/xen-$(compat-arch-y).h
25 headers-y += compat/arch-$(compat-arch-y).h compat/xlat.h
27 cppflags-y := -include public/xen-compat.h
28 cppflags-$(CONFIG_X86) += -m32
30 # 8-byte types are 4-byte aligned on x86_32 ...
31 prefix-$(CONFIG_X86) := \#pragma pack(4)
32 suffix-$(CONFIG_X86) := \#pragma pack()
34 endif
36 .PHONY: all
37 all: $(headers-y)
39 compat/%.h: compat/%.i Makefile
40 id=_$$(echo $@ | tr '[:lower:]-/.' '[:upper:]___'); \
41 echo "#ifndef $$id" >$@.new; \
42 echo "#define $$id" >>$@.new; \
43 echo "#include <xen/compat.h>" >>$@.new; \
44 $(if $(filter-out compat/arch-%.h,$@),echo "#include <$(patsubst compat/%,public/%,$@)>" >>$@.new;) \
45 $(if $(prefix-y),echo "$(prefix-y)" >>$@.new;) \
46 grep -v '^# [0-9]' $< | \
47 $(BASEDIR)/tools/compat-build-header.py | uniq >>$@.new; \
48 $(if $(suffix-y),echo "$(suffix-y)" >>$@.new;) \
49 echo "#endif /* $$id */" >>$@.new
50 mv -f $@.new $@
52 compat/%.i: compat/%.c Makefile
53 $(CPP) $(CFLAGS) $(cppflags-y) -o $@ $<
55 compat/%.c: public/%.h xlat.lst Makefile
56 mkdir -p $(@D)
57 grep -v 'DEFINE_XEN_GUEST_HANDLE(long)' $< | \
58 $(BASEDIR)/tools/compat-build-source.py >$@.new
59 mv -f $@.new $@
61 compat/xlat.h: xlat.lst $(filter-out compat/xlat.h,$(headers-y)) $(BASEDIR)/tools/get-fields.sh Makefile
62 grep -v '^[ ]*#' xlat.lst | \
63 while read what name hdr; do \
64 /bin/bash $(BASEDIR)/tools/get-fields.sh "$$what" compat_$$name $$(echo compat/$$hdr | sed 's,@arch@,$(compat-arch-y),g') || exit $$?; \
65 done >$@.new
66 mv -f $@.new $@
68 clean::
69 rm -rf compat