[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v2 06/14] Add IND_WRITE64 primitive to kexec kimage
From: David Woodhouse <dwmw@xxxxxxxxxxxx> This allows a single page-aligned physical address to be written to the current destination, intended to pass the location of the live update data stream from one Xen to the next. Signed-off-by: David Woodhouse <dwmw@xxxxxxxxxxxx> --- xen/arch/x86/x86_64/kexec_reloc.S | 9 ++++++++- xen/include/xen/kimage.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/x86_64/kexec_reloc.S b/xen/arch/x86/x86_64/kexec_reloc.S index d488d127cf..a75f989926 100644 --- a/xen/arch/x86/x86_64/kexec_reloc.S +++ b/xen/arch/x86/x86_64/kexec_reloc.S @@ -131,11 +131,18 @@ is_source: jmp next_entry is_zero: testb $IND_ZERO, %cl - jz next_entry + jz is_write64 movl $(PAGE_SIZE / 8), %ecx /* Zero the destination page. */ xorl %eax, %eax rep stosq jmp next_entry +is_write64: + testb $IND_WRITE64, %cl + jz next_entry + andq $PAGE_MASK, %rcx + movq %rcx, %rax + stosq + jmp next_entry done: popq %rbx ret diff --git a/xen/include/xen/kimage.h b/xen/include/xen/kimage.h index cbfb9e9054..e94839d7c3 100644 --- a/xen/include/xen/kimage.h +++ b/xen/include/xen/kimage.h @@ -6,6 +6,7 @@ #define IND_DONE 0x4 #define IND_SOURCE 0x8 #define IND_ZERO 0x10 +#define IND_WRITE64 0x20 #ifndef __ASSEMBLY__ -- 2.21.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |