Revision 91138037 target-s390x/kvm.c
b/target-s390x/kvm.c | ||
---|---|---|
93 | 93 |
|
94 | 94 |
static int cap_sync_regs; |
95 | 95 |
|
96 |
static void *legacy_s390_alloc(ram_addr_t size); |
|
97 |
|
|
96 | 98 |
int kvm_arch_init(KVMState *s) |
97 | 99 |
{ |
98 | 100 |
cap_sync_regs = kvm_check_extension(s, KVM_CAP_SYNC_REGS); |
101 |
if (!kvm_check_extension(s, KVM_CAP_S390_GMAP) |
|
102 |
|| !kvm_check_extension(s, KVM_CAP_S390_COW)) { |
|
103 |
phys_mem_set_alloc(legacy_s390_alloc); |
|
104 |
} |
|
99 | 105 |
return 0; |
100 | 106 |
} |
101 | 107 |
|
... | ... | |
333 | 339 |
return mem; |
334 | 340 |
} |
335 | 341 |
|
336 |
void *kvm_arch_ram_alloc(ram_addr_t size) |
|
337 |
{ |
|
338 |
/* Can we use the standard allocation ? */ |
|
339 |
if (kvm_check_extension(kvm_state, KVM_CAP_S390_GMAP) && |
|
340 |
kvm_check_extension(kvm_state, KVM_CAP_S390_COW)) { |
|
341 |
return NULL; |
|
342 |
} else { |
|
343 |
return legacy_s390_alloc(size); |
|
344 |
} |
|
345 |
} |
|
346 |
|
|
347 | 342 |
int kvm_arch_insert_sw_breakpoint(CPUState *cs, struct kvm_sw_breakpoint *bp) |
348 | 343 |
{ |
349 | 344 |
static const uint8_t diag_501[] = {0x83, 0x24, 0x05, 0x01}; |
Also available in: Unified diff