Lines Matching +full:run +full:- +full:control
1 // SPDX-License-Identifier: GPL-2.0
69 struct kvm_run *run; in main() local
89 run = vcpu_state(vm, VCPU_ID); in main()
91 /* Test software BPs - int3 */ in main()
93 debug.control = KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_SW_BP; in main()
96 TEST_ASSERT(run->exit_reason == KVM_EXIT_DEBUG && in main()
97 run->debug.arch.exception == BP_VECTOR && in main()
98 run->debug.arch.pc == CAST_TO_RIP(sw_bp), in main()
100 run->exit_reason, run->debug.arch.exception, in main()
101 run->debug.arch.pc, CAST_TO_RIP(sw_bp)); in main()
104 /* Test instruction HW BP over DR[0-3] */ in main()
107 debug.control = KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_HW_BP; in main()
113 TEST_ASSERT(run->exit_reason == KVM_EXIT_DEBUG && in main()
114 run->debug.arch.exception == DB_VECTOR && in main()
115 run->debug.arch.pc == CAST_TO_RIP(hw_bp) && in main()
116 run->debug.arch.dr6 == target_dr6, in main()
119 i, run->exit_reason, run->debug.arch.exception, in main()
120 run->debug.arch.pc, CAST_TO_RIP(hw_bp), in main()
121 run->debug.arch.dr6, target_dr6); in main()
126 /* Test data access HW BP over DR[0-3] */ in main()
129 debug.control = KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_HW_BP; in main()
136 TEST_ASSERT(run->exit_reason == KVM_EXIT_DEBUG && in main()
137 run->debug.arch.exception == DB_VECTOR && in main()
138 run->debug.arch.pc == CAST_TO_RIP(write_data) && in main()
139 run->debug.arch.dr6 == target_dr6, in main()
142 i, run->exit_reason, run->debug.arch.exception, in main()
143 run->debug.arch.pc, CAST_TO_RIP(write_data), in main()
144 run->debug.arch.dr6, target_dr6); in main()
145 /* Rollback the 4-bytes "mov" */ in main()
146 MOVE_RIP(-7); in main()
148 /* Skip the 4-bytes "mov" */ in main()
158 debug.control = KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_SINGLESTEP; in main()
162 TEST_ASSERT(run->exit_reason == KVM_EXIT_DEBUG && in main()
163 run->debug.arch.exception == DB_VECTOR && in main()
164 run->debug.arch.pc == target_rip && in main()
165 run->debug.arch.dr6 == target_dr6, in main()
168 i, run->exit_reason, run->debug.arch.exception, in main()
169 run->debug.arch.pc, target_rip, run->debug.arch.dr6, in main()
175 debug.control = KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_HW_BP; in main()
180 TEST_ASSERT(run->exit_reason == KVM_EXIT_DEBUG && in main()
181 run->debug.arch.exception == DB_VECTOR && in main()
182 run->debug.arch.pc == CAST_TO_RIP(bd_start) && in main()
183 run->debug.arch.dr6 == target_dr6, in main()
186 run->exit_reason, run->debug.arch.exception, in main()
187 run->debug.arch.pc, target_rip, run->debug.arch.dr6, in main()
190 /* Disable all debug controls, run to the end */ in main()
195 TEST_ASSERT(run->exit_reason == KVM_EXIT_IO, "KVM_EXIT_IO"); in main()