Revision 9bdbe550
b/kvm-all.c | ||
---|---|---|
207 | 207 |
return ret; |
208 | 208 |
} |
209 | 209 |
|
210 |
int kvm_put_mp_state(CPUState *env) |
|
211 |
{ |
|
212 |
struct kvm_mp_state mp_state = { .mp_state = env->mp_state }; |
|
213 |
|
|
214 |
return kvm_vcpu_ioctl(env, KVM_SET_MP_STATE, &mp_state); |
|
215 |
} |
|
216 |
|
|
217 |
int kvm_get_mp_state(CPUState *env) |
|
218 |
{ |
|
219 |
struct kvm_mp_state mp_state; |
|
220 |
int ret; |
|
221 |
|
|
222 |
ret = kvm_vcpu_ioctl(env, KVM_GET_MP_STATE, &mp_state); |
|
223 |
if (ret < 0) { |
|
224 |
return ret; |
|
225 |
} |
|
226 |
env->mp_state = mp_state.mp_state; |
|
227 |
return 0; |
|
228 |
} |
|
229 |
|
|
230 | 210 |
/* |
231 | 211 |
* dirty pages logging control |
232 | 212 |
*/ |
b/kvm.h | ||
---|---|---|
74 | 74 |
|
75 | 75 |
int kvm_vcpu_ioctl(CPUState *env, int type, ...); |
76 | 76 |
|
77 |
int kvm_get_mp_state(CPUState *env); |
|
78 |
int kvm_put_mp_state(CPUState *env); |
|
79 |
|
|
80 | 77 |
/* Arch specific hooks */ |
81 | 78 |
|
82 | 79 |
int kvm_arch_post_run(CPUState *env, struct kvm_run *run); |
b/target-i386/kvm.c | ||
---|---|---|
659 | 659 |
return 0; |
660 | 660 |
} |
661 | 661 |
|
662 |
static int kvm_put_mp_state(CPUState *env) |
|
663 |
{ |
|
664 |
struct kvm_mp_state mp_state = { .mp_state = env->mp_state }; |
|
665 |
|
|
666 |
return kvm_vcpu_ioctl(env, KVM_SET_MP_STATE, &mp_state); |
|
667 |
} |
|
668 |
|
|
669 |
static int kvm_get_mp_state(CPUState *env) |
|
670 |
{ |
|
671 |
struct kvm_mp_state mp_state; |
|
672 |
int ret; |
|
673 |
|
|
674 |
ret = kvm_vcpu_ioctl(env, KVM_GET_MP_STATE, &mp_state); |
|
675 |
if (ret < 0) { |
|
676 |
return ret; |
|
677 |
} |
|
678 |
env->mp_state = mp_state.mp_state; |
|
679 |
return 0; |
|
680 |
} |
|
681 |
|
|
662 | 682 |
int kvm_arch_put_registers(CPUState *env) |
663 | 683 |
{ |
664 | 684 |
int ret; |
Also available in: Unified diff