I've been building a hypervisor using Intel's VMX technology. I've gotten to the point where I need to define the VMCS region. I'm pretty sure I know how to create the VMCS region, but having some difficulty understanding how to define the VMCS pointer. The Intel Developer's Manual, Volume 3B states,
"Software references a specific VMCS by using the 64-bit physical address of the region; such an address is called a VMCS pointer. VMCS pointers must be aligned on a 4-KByte boundary (bits 11:0 must be zero)."
Can someone please explain to me how a 4-Kbyte alligned pointer would be implemented in software? Thanks.