@@ -26,20 +26,20 @@ static bool have_nested_state;
26
26
27
27
void l2_guest_code (void )
28
28
{
29
- GUEST_SYNC (5 );
29
+ GUEST_SYNC (6 );
30
30
31
31
/* Exit to L1 */
32
32
vmcall ();
33
33
34
34
/* L1 has now set up a shadow VMCS for us. */
35
35
GUEST_ASSERT (vmreadz (GUEST_RIP ) == 0xc0ffee );
36
- GUEST_SYNC (9 );
36
+ GUEST_SYNC (10 );
37
37
GUEST_ASSERT (vmreadz (GUEST_RIP ) == 0xc0ffee );
38
38
GUEST_ASSERT (!vmwrite (GUEST_RIP , 0xc0fffee ));
39
- GUEST_SYNC (10 );
39
+ GUEST_SYNC (11 );
40
40
GUEST_ASSERT (vmreadz (GUEST_RIP ) == 0xc0fffee );
41
41
GUEST_ASSERT (!vmwrite (GUEST_RIP , 0xc0ffffee ));
42
- GUEST_SYNC (11 );
42
+ GUEST_SYNC (12 );
43
43
44
44
/* Done, exit to L1 and never come back. */
45
45
vmcall ();
@@ -52,15 +52,17 @@ void l1_guest_code(struct vmx_pages *vmx_pages)
52
52
53
53
GUEST_ASSERT (vmx_pages -> vmcs_gpa );
54
54
GUEST_ASSERT (prepare_for_vmx_operation (vmx_pages ));
55
+ GUEST_SYNC (3 );
56
+ GUEST_ASSERT (load_vmcs (vmx_pages ));
55
57
GUEST_ASSERT (vmptrstz () == vmx_pages -> vmcs_gpa );
56
58
57
- GUEST_SYNC (3 );
59
+ GUEST_SYNC (4 );
58
60
GUEST_ASSERT (vmptrstz () == vmx_pages -> vmcs_gpa );
59
61
60
62
prepare_vmcs (vmx_pages , l2_guest_code ,
61
63
& l2_guest_stack [L2_GUEST_STACK_SIZE ]);
62
64
63
- GUEST_SYNC (4 );
65
+ GUEST_SYNC (5 );
64
66
GUEST_ASSERT (vmptrstz () == vmx_pages -> vmcs_gpa );
65
67
GUEST_ASSERT (!vmlaunch ());
66
68
GUEST_ASSERT (vmptrstz () == vmx_pages -> vmcs_gpa );
@@ -72,7 +74,7 @@ void l1_guest_code(struct vmx_pages *vmx_pages)
72
74
GUEST_ASSERT (!vmresume ());
73
75
GUEST_ASSERT (vmreadz (VM_EXIT_REASON ) == EXIT_REASON_VMCALL );
74
76
75
- GUEST_SYNC (6 );
77
+ GUEST_SYNC (7 );
76
78
GUEST_ASSERT (vmreadz (VM_EXIT_REASON ) == EXIT_REASON_VMCALL );
77
79
78
80
GUEST_ASSERT (!vmresume ());
@@ -85,12 +87,12 @@ void l1_guest_code(struct vmx_pages *vmx_pages)
85
87
86
88
GUEST_ASSERT (!vmptrld (vmx_pages -> shadow_vmcs_gpa ));
87
89
GUEST_ASSERT (vmlaunch ());
88
- GUEST_SYNC (7 );
90
+ GUEST_SYNC (8 );
89
91
GUEST_ASSERT (vmlaunch ());
90
92
GUEST_ASSERT (vmresume ());
91
93
92
94
vmwrite (GUEST_RIP , 0xc0ffee );
93
- GUEST_SYNC (8 );
95
+ GUEST_SYNC (9 );
94
96
GUEST_ASSERT (vmreadz (GUEST_RIP ) == 0xc0ffee );
95
97
96
98
GUEST_ASSERT (!vmptrld (vmx_pages -> vmcs_gpa ));
@@ -101,7 +103,7 @@ void l1_guest_code(struct vmx_pages *vmx_pages)
101
103
GUEST_ASSERT (vmreadz (GUEST_RIP ) == 0xc0ffffee );
102
104
GUEST_ASSERT (vmlaunch ());
103
105
GUEST_ASSERT (vmresume ());
104
- GUEST_SYNC (12 );
106
+ GUEST_SYNC (13 );
105
107
GUEST_ASSERT (vmreadz (GUEST_RIP ) == 0xc0ffffee );
106
108
GUEST_ASSERT (vmlaunch ());
107
109
GUEST_ASSERT (vmresume ());
0 commit comments