Packet pkt(req, MemCmd::ReadReq);
pkt.dataStatic(static_cast<uint8_t *>(p));
- _port.sendFunctional(&pkt);
+ sendFunctional(&pkt);
p = static_cast<uint8_t *>(p) + gen.size();
}
}
Packet pkt(req, MemCmd::WriteReq);
pkt.dataStaticConst(static_cast<const uint8_t *>(p));
- _port.sendFunctional(&pkt);
+ sendFunctional(&pkt);
p = static_cast<const uint8_t *>(p) + gen.size();
}
}
str += c;
}
}
+
+bool
+PortProxy::tryReadString(char *str, Addr addr, size_t maxlen) const
+{
+ assert(maxlen);
+ while (maxlen--) {
+ if (!tryReadBlob(addr++, str, 1))
+ return false;
+ if (!*str++)
+ return true;
+ }
+ // We ran out of room, so back up and add a terminator.
+ *--str = '\0';
+ return true;
+}