Lines Matching defs:pkt

157 RubyPort::PioMasterPort::recvTimingResp(PacketPtr pkt)
160 DPRINTF(RubyPort, "Response for address: 0x%#x\n", pkt->getAddr());
164 pkt, curTick() + rp->m_ruby_system->clockPeriod());
168 bool RubyPort::MemMasterPort::recvTimingResp(PacketPtr pkt)
171 assert(pkt->isResponse());
175 safe_cast<RubyPort::SenderState *>(pkt->popSenderState());
183 pkt->getAddr(), port->name());
187 port->schedTimingResp(pkt, curTick() + rp->m_ruby_system->clockPeriod());
193 RubyPort::PioSlavePort::recvTimingReq(PacketPtr pkt)
200 if (it->contains(pkt->getAddr())) {
204 ruby_port->master_ports[i]->sendTimingReq(pkt);
214 RubyPort::PioSlavePort::recvAtomic(PacketPtr pkt)
225 if (it->contains(pkt->getAddr())) {
226 return ruby_port->master_ports[i]->sendAtomic(pkt);
234 RubyPort::MemSlavePort::recvTimingReq(PacketPtr pkt)
237 pkt->getAddr(), id);
240 if (pkt->cacheResponding())
246 if (pkt->req->isCacheMaintenance()) {
248 pkt->makeResponse();
249 schedTimingResp(pkt, curTick());
254 if (pkt->cmd != MemCmd::MemFenceReq) {
255 if (!isPhysMemAddress(pkt->getAddr())) {
258 "pio address\n", pkt->getAddr());
262 pkt->pushSenderState(new SenderState(this));
266 ruby_port->memMasterPort.schedTimingReq(pkt,
271 assert(getOffset(pkt->getAddr()) + pkt->getSize() <=
276 RequestStatus requestStatus = ruby_port->makeRequest(pkt);
284 pkt->pushSenderState(new SenderState(this));
286 DPRINTF(RubyPort, "Request %s address %#x issued\n", pkt->cmdString(),
287 pkt->getAddr());
291 if (pkt->cmd != MemCmd::MemFenceReq) {
294 pkt->cmdString(), pkt->getAddr(),
304 RubyPort::MemSlavePort::recvAtomic(PacketPtr pkt)
314 if (pkt->cmd != MemCmd::MemFenceReq) {
315 if (!isPhysMemAddress(pkt->getAddr())) {
318 "pio address\n", pkt->getAddr());
322 pkt->pushSenderState(new SenderState(this));
325 Tick req_ticks = ruby_port->memMasterPort.sendAtomic(pkt);
329 assert(getOffset(pkt->getAddr()) + pkt->getSize() <=
338 pkt->getAddr(), MachineType_Directory);
342 return directory->recvAtomic(pkt);
361 RubyPort::MemSlavePort::recvFunctional(PacketPtr pkt)
363 DPRINTF(RubyPort, "Functional access for address: %#x\n", pkt->getAddr());
370 if (!isPhysMemAddress(pkt->getAddr())) {
371 DPRINTF(RubyPort, "Pio Request for address: 0x%#x\n", pkt->getAddr());
373 rp->pioMasterPort.sendFunctional(pkt);
377 assert(pkt->getAddr() + pkt->getSize() <=
378 makeLineAddress(pkt->getAddr()) + RubySystem::getBlockSizeBytes());
385 rs->getPhysMem()->functionalAccess(pkt);
388 bool needsResponse = pkt->needsResponse();
391 if (pkt->isRead()) {
392 accessSucceeded = rs->functionalRead(pkt);
393 } else if (pkt->isWrite()) {
394 accessSucceeded = rs->functionalWrite(pkt);
396 panic("Unsupported functional command %s\n", pkt->cmdString());
401 if (!accessSucceeded && !pkt->suppressFuncError()) {
403 pkt->isWrite() ? "write" : "read", pkt->getAddr());
408 pkt->setFunctionalResponseStatus(accessSucceeded);
417 RubyPort::ruby_hit_callback(PacketPtr pkt)
419 DPRINTF(RubyPort, "Hit callback for %s 0x%x\n", pkt->cmdString(),
420 pkt->getAddr());
424 assert(system->isMemAddr(pkt->getAddr()));
425 assert(pkt->isRequest());
429 safe_cast<RubyPort::SenderState *>(pkt->popSenderState());
434 port->hitCallback(pkt);
500 RubyPort::MemSlavePort::hitCallback(PacketPtr pkt)
502 bool needsResponse = pkt->needsResponse();
508 if (pkt->isLLSC()) {
509 if (pkt->isWrite()) {
510 if (pkt->req->getExtraData() != 0) {
514 pkt->convertScToWrite();
527 pkt->convertLlToRead();
532 if (pkt->isFlush() || pkt->cmd == MemCmd::MemFenceReq) {
536 if (pkt->req->isKernel()) {
546 rs->getPhysMem()->access(pkt);
548 pkt->makeResponse();
557 schedTimingResp(pkt, curTick());
559 delete pkt;
601 Packet pkt(request, MemCmd::InvalidateReq);
606 (*p)->sendTimingSnoopReq(&pkt);