100,166d99
<
< template<class Context, class MemType>
< Fault read(Context *xc, Addr EA, MemType & Mem, unsigned flags) const
< {
< Fault fault = NoFault;
< switch(dataSize)
< {
< case 1:
< fault = xc->read(EA, (uint8_t&)Mem, flags);
< break;
< case 2:
< fault = xc->read(EA, (uint16_t&)Mem, flags);
< break;
< case 4:
< fault = xc->read(EA, (uint32_t&)Mem, flags);
< break;
< case 8:
< fault = xc->read(EA, (uint64_t&)Mem, flags);
< break;
< default:
< panic("Bad operand size %d for read at %#x.\n", dataSize, EA);
< }
< return fault;
< }
<
< template<class Context, class MemType>
< Fault write(Context *xc, MemType & Mem, Addr EA, unsigned flags) const
< {
< Fault fault = NoFault;
< switch(dataSize)
< {
< case 1:
< fault = xc->write((uint8_t&)Mem, EA, flags, 0);
< break;
< case 2:
< fault = xc->write((uint16_t&)Mem, EA, flags, 0);
< break;
< case 4:
< fault = xc->write((uint32_t&)Mem, EA, flags, 0);
< break;
< case 8:
< fault = xc->write((uint64_t&)Mem, EA, flags, 0);
< break;
< default:
< panic("Bad operand size %d for write at %#x.\n", dataSize, EA);
< }
< return fault;
< }
<
< uint64_t
< get(PacketPtr pkt) const
< {
< switch(dataSize)
< {
< case 1:
< return pkt->get<uint8_t>();
< case 2:
< return pkt->get<uint16_t>();
< case 4:
< return pkt->get<uint32_t>();
< case 8:
< return pkt->get<uint64_t>();
< default:
< panic("Bad operand size %d for read at %#x.\n",
< dataSize, pkt->getAddr());
< }
< }