I'm trying to understand some of the changes that were made to the
shadow page table code a couple weeks ago to add support for 64-bit
modes: changesets f261f14b9781f949f95a328433eff187c677a70b and
0bcfd66a431ebfc70fc068a134e684568ac02966, committed on July 11.
I'm trying to make sense of what seems to be some code duplication. In
xen/arch/x86, there are three files related to shadow mode: shadow.c,
shadow32.c, and shadow_public.c. In my x86 build, only shadow32.c is
built. shadow.c seems to contain a lot of similar code. The comments
at the top of the files are also confusing; shadow32.c claims that it is
shadow.c, and shadow.c claims that it is shadow_64.c.
The Makefile is not very illuminating; for an x86_64 build, shadow32.o
is not built (not surprising), otherwise, shadow.o, shadow_public.o, and
shadow_xxx.o are skipped (the first two names sound rather generic to
me, and shadow_xxx.o looks like part of a not-quite-finished change).
Can anyone explain how this code is supposed to be structured, what is
supposed to end up in each of the files, and whether the files are still
in need of some renaming (say, shadow.c -> shadow64.c)?
Xen-devel mailing list