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