exec.c: Allow target CPUs to define multiple AddressSpaces

Allow multiple calls to cpu_address_space_init(); each
call adds an entry to the cpu->ases array at the specified
index. It is up to the target-specific CPU code to actually use
these extra address spaces.

Since this multiple AddressSpace support won't work with
KVM, add an assertion to avoid confusing failures.

Backports commit 12ebc9a76dd7702aef0a3618717a826c19c34ef4 from qemu
This commit is contained in:
Peter Maydell 2018-02-17 22:33:49 -05:00 committed by Lioncash
parent f1b237236c
commit 51369b67cd
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
5 changed files with 28 additions and 11 deletions

View file

@ -95,6 +95,10 @@ void cpu_reload_memory_map(CPUState *cpu);
* The target-specific code which registers ASes is responsible
* for defining what semantics address space 0, 1, 2, etc have.
*
* Before the first call to this function, the caller must set
* cpu->num_ases to the total number of address spaces it needs
* to support.
*
* Note that with KVM only one address space is supported.
*/
void cpu_address_space_init(CPUState *cpu, AddressSpace *as, int asidx);