Hi Manuel, On Mon, 11 Dec 2023, Manuel Bouyer wrote:
#ifndef GENPVH /* get a page for HYPERVISOR_shared_info */ addl $PAGE_SIZE, %ebx addl $PGOFSET,%ebx andl $~PGOFSET,%ebx movl $RELOC(HYPERVISOR_shared_info_pa),%ebp movl %ebx,(%ebp) movl $0,4(%ebp) #endif How can this work on Xen when GENPVH is defined ? Shouldn't this be made conditional on vm_guest == VM_GUEST_XENPVH ?
Well the point is that you don't define GENPVH when using Xen, PVH using qemu and friends don't need HYPERVISOR_shared_info neither any of the hypercall portion of the code. A big chunk of Xen related code is ifndef'ed to GENPVH in hypervisor.c; And I was planning on isolating GENPVH so there's as little ifdef's as possible. Or would you prefer the same kernel to be able to boot in both XENPVH and GENPVH modes? I am focusing on making the resulting kernel smaller but this could be done also. ------------------------------------------------------------------------ Emile `iMil' Heitor <imil@{home.imil.net,NetBSD.org}> | https://imil.net