This allows a single page-aligned physical address to be written to
the current destination, intended to place the 'breadcrumb' leading to
the live update data stream into the first page of the reserved boot
memory (which might be in active use by the running Xen, so can't be
written earlier).
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
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
#define IND_DONE 0x4
#define IND_SOURCE 0x8
#define IND_ZERO 0x10
+#define IND_WRITE64 0x20
#ifndef __ASSEMBLY__