void *MMapBusInit3(MMapBus *bus0,int MemBase8,int MemBase16,int Pages) { bus0 = MMapBusInit(bus0,MemBase8,Pages); if (Pages <= 0) Pages = 1; if (bus0->Mem16 == 0) { // make multiple calls to Init safe bus0->Mem16 = MemMap(MemBase16,Pages); } return bus0; }
SPI *ts4800__SPIInit0(SPI *spi,int inst) { // write 8 to 0x83fda00c to set up WEIM to use byte selects volatile unsigned *reg = MemMap(0x83fda000,1); reg[0xC/sizeof(unsigned)] = 8; MemUnmap(reg); Bus *bus; dio0 = ts4800__DIOInit0(0,0); // needed by ts4800SPIChipSelect ts4800SPI0.LockNum = 7; bus = ts4800__BusInit0(0,0); return WBSPIInit(&ts4800SPI0,ts4800__BusInit16(0,16),ts4800__BusInit16(0,16), 0,ts4800SPIChipSelect); }
void *MMapBusInit(MMapBus *bus,int MemBase,int Pages) { if (bus->InitStatus > 0) return bus; bus->Init = (void *)MMapBusInit; bus->Fini = (void *)MMapBusFini; bus->Lock = (void *)MMapBusLock; bus->Unlock = (void *)MMapBusUnlock; bus->Preempt = (void *)MMapBusPreempt; bus->Peek8 = (void *)MMapBusPeek8; bus->Poke8 = (void *)MMapBusPoke8; bus->Peek16 = (void *)MMapBusPeek16; bus->Poke16 = (void *)MMapBusPoke16; bus->Peek32 = (void *)MMapBusPeek32; bus->Poke32 = (void *)MMapBusPoke32; bus->BitGet8 = (void *)MMapBusBitGet8; bus->BitAssign8 = (void *)MMapBusBitAssign8; bus->BitSet8 = (void *)MMapBusBitSet8; bus->BitClear8 = (void *)MMapBusBitClear8; bus->BitGet16 = (void *)MMapBusBitGet16; bus->BitAssign16 = (void *)MMapBusBitAssign16; bus->BitSet16 = (void *)MMapBusBitSet16; bus->BitClear16 = (void *)MMapBusBitClear16; bus->BitGet32 = (void *)MMapBusBitGet32; bus->BitAssign32 = (void *)MMapBusBitAssign32; bus->BitSet32 = (void *)MMapBusBitSet32; bus->BitClear32 = (void *)MMapBusBitClear32; bus->PeekStream = (void *)MMapBusPeekStream; bus->PokeStream = (void *)MMapBusPokeStream; bus->Refresh = (void *)MMapBusRefresh; bus->Commit = (void *)MMapBusCommit; bus->BitToggle8 = (void *)MMapBusBitToggle8; bus->BitToggle16 = (void *)MMapBusBitToggle16; bus->BitToggle32 = (void *)MMapBusBitToggle32; bus->Assign8X = (void *)MMapBusAssign8X; bus->Assign16X = (void *)MMapBusAssign16X; bus->Assign32X = (void *)MMapBusAssign32X; bus->BitsGet8 = (void *)MMapBusBitsGet8; bus->BitsGet16 = (void *)MMapBusBitsGet16; bus->BitsGet32 = (void *)MMapBusBitsGet32; MMapBusLockInit(bus,1); if (Pages <= 0) { Pages = 1; } if (bus->Mem == 0) { // make multiple calls to Init safe bus->Mem = bus->Mem16 = MemMap(MemBase,Pages); } bus->InitStatus = (bus->Mem == 0) ? MapBusErrorMapping : 1; return bus; }
void Stats::OutputMem(vector<char> memory) { MemMap(memory); //print memory map PercentHoles(memory); //print percentage of holes in memory map return; }