This allocates a page-aligned page in the kernel text segment to be used by the hypercall interface. The content of the page is provided by the Hypervisor itself when it's physical address is communicated via an MSR write (in the next diff).
OK? --- sys/arch/amd64/amd64/locore.S | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git sys/arch/amd64/amd64/locore.S sys/arch/amd64/amd64/locore.S index 618c6e7..f147131 100644 --- sys/arch/amd64/amd64/locore.S +++ sys/arch/amd64/amd64/locore.S @@ -107,10 +107,11 @@ #include "assym.h" #include "lapic.h" #include "ioapic.h" #include "ksyms.h" #include "acpi.h" +#include "xen.h" #include <sys/errno.h> #include <sys/syscall.h> #include <machine/param.h> @@ -1169,5 +1170,14 @@ _C_LABEL(codepatch_begin): .section .codepatchend,"a" .globl _C_LABEL(codepatch_end) _C_LABEL(codepatch_end): .previous + +#if NXEN > 0 + /* Hypercall_page needs to be PAGE aligned */ + .text + .align NBPG + .globl _C_LABEL(xen_hypercall_page) +_C_LABEL(xen_hypercall_page): + .skip 0x1000, 0x90 /* Fill with NOPs */ +#endif /* NXEN > 0 */ -- 2.6.3