Prepare for xenamd64:
- kill xen/i386/identcpu.c, use i386/i386/identcpu.c instead (with a few
  #ifndef XEN)
- move some files that can be shared between i386 and amd64 from
  xen/i386 to xen/x86 (or to xen/xen for non-cpu-specific code)
- split assembly out of xen/include/hypervisor.h to xen/include/hypercalls.h
- use <xen/...> instead of <machine/...> for cpu-independant include files.

more work needed here, i386-specific files should got out of arch/xen to
arch/xeni386, and more code shared with arch/i386.
amd64 (aka x86-64) support for Xen. Based on the OpenBSD port done by
Mathieu Ropert in 2006.
DomU-only for now. An INSTALL_XEN3_DOMU kernel with a ramdisk will boot to
sysinst if you're lucky. Often it panics because a runable LWP has
a NULL stack (really, it's all of l->l_addr which is has been zeroed out
while the process was on the queue !)
TODO:
- bug fixes :)
- Most of the xpq_* functions should be shared with xen/i386
- The xen/i386 assembly bootstrap code should be remplaced with the C
  version in xenamd64/amd64/xpmap.c
- see if a config(5) trick could allow to merge xenamd64 back to xen or amd64.
Introduce xpmap_mtop_masked().
pmap_extract(): make sure to mask the PTE flags from the returned value.
While there, use xpmap_mtop_masked() in more places.
Pass the right address to do_hypervisor_callback()/xen_failsafe_handler()
for struct intrframe*.
Explicitely set the flag argument of HYPERVISOR_iret to 0.
Xen handle %cs and %ss its own way. Don't check the values passed from
setmcontext, just reset them to sane values.  This fixes signal handlers.
Don't forget to mask pte entries with PG_FRAME to properly ignore the highter
reseved bits (xpmap_mtop doesn't do it).
Use xpmap_{mtop,ptom}_masked() in more places, it's a couple less instructions
than the non-masked versions.
Factorise some Xen pmap code in x86_xpmap.c.
More xpmap_{ptom,mtop} -> xpmap_{ptom,mtop}_masked

The xenamd64 kernel is now good enough to complete a sysinst install from
xennet to xbd.
Check for ASTs on exit from interrupt.
Protect xpq_* usage with splvm()
Make sure xen_current_user_pgd really reflects what's in the hypervisor.
Sync with HEAD.
Finish sync with HEAD. Especially use the new x86 pmap for xenamd64.
For this:
- rename pmap_pte_set() to pmap_pte_testset()
- make pmap_pte_set() a function or macro for non-atomic PTE write
- define and use pmap_pa2pte()/pmap_pte2pa() to read/write PTE entries
- define pmap_pte_flush() which is a nop in x86 case, and flush the
  MMUops queue in the Xen case
Make amd64, i386 and xen kernels build and work again.
Remove unneeded tlbflush() in #ifdef XEN code
Sync with HEAD
Remove unused file
catch up with changes in HEAD.
On Xen, pmap_pdp_ctor() doens't map the kernel. Put in a dummy entry for
the last kernel entry, so that pmap_create() won't enter an infinite loop.
A xenamd64 kernel boots again.
pmap_pdp_dtor(): invalidate the tlb entry after making the page R/W.