xref: /kvm-unit-tests/x86/access_test.c (revision 92a6c9b95ab10eba66bff3ff44476ab0c015b276)
10f10d9aeSAaron Lewis #include "libcflat.h"
20f10d9aeSAaron Lewis #include "processor.h"
30f10d9aeSAaron Lewis #include "x86/vm.h"
40f10d9aeSAaron Lewis #include "access.h"
50f10d9aeSAaron Lewis 
60f10d9aeSAaron Lewis int main(void)
70f10d9aeSAaron Lewis {
80f10d9aeSAaron Lewis     int r;
90f10d9aeSAaron Lewis 
100f10d9aeSAaron Lewis     printf("starting test\n\n");
1122866f1eSAaron Lewis     r = ac_test_run(PT_LEVEL_PML4);
120f10d9aeSAaron Lewis 
13*92a6c9b9SPaolo Bonzini #ifndef TARGET_EFI
14*92a6c9b9SPaolo Bonzini     /*
15*92a6c9b9SPaolo Bonzini      * Not supported yet for UEFI, because setting up 5
16*92a6c9b9SPaolo Bonzini      * level page table requires entering real mode.
17*92a6c9b9SPaolo Bonzini      */
180f10d9aeSAaron Lewis     if (this_cpu_has(X86_FEATURE_LA57)) {
190f10d9aeSAaron Lewis         printf("starting 5-level paging test.\n\n");
200f10d9aeSAaron Lewis         setup_5level_page_table();
2122866f1eSAaron Lewis         r = ac_test_run(PT_LEVEL_PML5);
220f10d9aeSAaron Lewis     }
23*92a6c9b9SPaolo Bonzini #endif
240f10d9aeSAaron Lewis 
250f10d9aeSAaron Lewis     return r ? 0 : 1;
260f10d9aeSAaron Lewis }
27