1/* 2 * Copyright (c) 2012-2013,2015 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 110 unchanged lines hidden (view full) --- 119 void 120 markDelayed() 121 { 122 assert(cpu->_status == BaseSimpleCPU::Running); 123 cpu->_status = ITBWaitResponse; 124 } 125 126 void |
127 finish(const Fault &fault, const RequestPtr &req, ThreadContext *tc, |
128 BaseTLB::Mode mode) 129 { 130 cpu->sendFetch(fault, req, tc); 131 } 132 }; 133 FetchTranslation fetchTranslation; 134 135 void threadSnoop(PacketPtr pkt, ThreadID sender); |
136 void sendData(const RequestPtr &req, 137 uint8_t *data, uint64_t *res, bool read); 138 void sendSplitData(const RequestPtr &req1, const RequestPtr &req2, 139 const RequestPtr &req, |
140 uint8_t *data, bool read); 141 142 void translationFault(const Fault &fault); 143 |
144 PacketPtr buildPacket(const RequestPtr &req, bool read); |
145 void buildSplitPacket(PacketPtr &pkt1, PacketPtr &pkt2, |
146 const RequestPtr &req1, const RequestPtr &req2, 147 const RequestPtr &req, |
148 uint8_t *data, bool read); 149 150 bool handleReadPacket(PacketPtr pkt); 151 // This function always implicitly uses dcache_pkt. 152 bool handleWritePacket(); 153 154 /** 155 * A TimingCPUPort overrides the default behaviour of the --- 131 unchanged lines hidden (view full) --- 287 288 Fault initiateMemRead(Addr addr, unsigned size, 289 Request::Flags flags) override; 290 291 Fault writeMem(uint8_t *data, unsigned size, 292 Addr addr, Request::Flags flags, uint64_t *res) override; 293 294 void fetch(); |
295 void sendFetch(const Fault &fault, 296 const RequestPtr &req, ThreadContext *tc); |
297 void completeIfetch(PacketPtr ); 298 void completeDataAccess(PacketPtr pkt); 299 void advanceInst(const Fault &fault); 300 301 /** This function is used by the page table walker to determine if it could 302 * translate the a pending request or if the underlying request has been 303 * squashed. This always returns false for the simple timing CPU as it never 304 * executes any instructions speculatively. --- 61 unchanged lines hidden --- |