Allow cores to create big-endian VMAs

This commit is contained in:
Ilari Liusvaara 2013-02-17 10:27:00 +02:00
parent c53339a31d
commit 870102d3ce
4 changed files with 9 additions and 9 deletions

View file

@ -45,7 +45,7 @@ struct core_vma_info
uint64_t size; uint64_t size;
void* backing_ram; void* backing_ram;
bool readonly; bool readonly;
bool native_endian; int endian;
uint8_t (*iospace_rw)(uint64_t offset, uint8_t data, bool write); uint8_t (*iospace_rw)(uint64_t offset, uint8_t data, bool write);
}; };

View file

@ -92,7 +92,7 @@ void refresh_cart_mappings() throw(std::bad_alloc)
if(i.iospace_rw) if(i.iospace_rw)
tmp = new iospace_region(i.name, i.base, i.size, i.iospace_rw); tmp = new iospace_region(i.name, i.base, i.size, i.iospace_rw);
else else
tmp = new memory_region_direct(i.name, i.base, i.native_endian ? 0 : -1, tmp = new memory_region_direct(i.name, i.base, i.endian,
reinterpret_cast<uint8_t*>(i.backing_ram), i.size, i.readonly); reinterpret_cast<uint8_t*>(i.backing_ram), i.size, i.readonly);
regions.push_back(tmp); regions.push_back(tmp);
tmp = NULL; tmp = NULL;

View file

@ -491,7 +491,7 @@ namespace
i.base = base; i.base = base;
i.size = size; i.size = size;
i.readonly = false; i.readonly = false;
i.native_endian = false; i.endian = -1;
i.iospace_rw = iospace_rw; i.iospace_rw = iospace_rw;
inf.push_back(i); inf.push_back(i);
} }
@ -507,7 +507,7 @@ namespace
i.size = size; i.size = size;
i.backing_ram = memory; i.backing_ram = memory;
i.readonly = readonly; i.readonly = readonly;
i.native_endian = native_endian; i.endian = native_endian ? 0 : -1;
i.iospace_rw = NULL; i.iospace_rw = NULL;
inf.push_back(i); inf.push_back(i);
} }

View file

@ -198,7 +198,7 @@ namespace
sram.base = 0x20000; sram.base = 0x20000;
sram.size = g.second; sram.size = g.second;
sram.backing_ram = g.first; sram.backing_ram = g.first;
sram.native_endian = false; sram.endian = -1;
sram.readonly = false; sram.readonly = false;
sram.iospace_rw = NULL; sram.iospace_rw = NULL;
@ -207,7 +207,7 @@ namespace
wram.base = 0; wram.base = 0;
wram.size = g2.second; wram.size = g2.second;
wram.backing_ram = g2.first; wram.backing_ram = g2.first;
wram.native_endian = false; wram.endian = -1;
wram.readonly = false; wram.readonly = false;
wram.iospace_rw = NULL; wram.iospace_rw = NULL;
@ -216,7 +216,7 @@ namespace
vram.base = 0x10000; vram.base = 0x10000;
vram.size = g3.second; vram.size = g3.second;
vram.backing_ram = g3.first; vram.backing_ram = g3.first;
vram.native_endian = false; vram.endian = -1;
vram.readonly = false; vram.readonly = false;
vram.iospace_rw = NULL; vram.iospace_rw = NULL;
@ -225,7 +225,7 @@ namespace
ioamhram.base = 0x18000; ioamhram.base = 0x18000;
ioamhram.size = g4.second; ioamhram.size = g4.second;
ioamhram.backing_ram = g4.first; ioamhram.backing_ram = g4.first;
ioamhram.native_endian = false; ioamhram.endian = -1;
ioamhram.readonly = false; ioamhram.readonly = false;
ioamhram.iospace_rw = NULL; ioamhram.iospace_rw = NULL;
@ -233,7 +233,7 @@ namespace
rom.base = 0x80000000; rom.base = 0x80000000;
rom.size = romdata.size(); rom.size = romdata.size();
rom.backing_ram = (void*)&romdata[0]; rom.backing_ram = (void*)&romdata[0];
rom.native_endian = false; rom.endian = -1;
rom.readonly = true; rom.readonly = true;
rom.iospace_rw = NULL; rom.iospace_rw = NULL;