translation.hh (10177:402b0e25c41b) | translation.hh (10379:c00f6d7e2681) |
---|---|
1/* 2 * Copyright (c) 2011 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 --- 97 unchanged lines hidden (view full) --- 106 /** 107 * Finish part of a translation. If there is only one request then this 108 * translation is completed. If the request has been split in two then 109 * the outstanding count determines whether the translation is complete. 110 * In this case, flags from the split request are copied to the main 111 * request to make it easier to access them later on. 112 */ 113 bool | 1/* 2 * Copyright (c) 2011 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 --- 97 unchanged lines hidden (view full) --- 106 /** 107 * Finish part of a translation. If there is only one request then this 108 * translation is completed. If the request has been split in two then 109 * the outstanding count determines whether the translation is complete. 110 * In this case, flags from the split request are copied to the main 111 * request to make it easier to access them later on. 112 */ 113 bool |
114 finish(Fault fault, int index) | 114 finish(const Fault &fault, int index) |
115 { 116 assert(outstanding); 117 faults[index] = fault; 118 outstanding--; 119 if (isSplit && outstanding == 0) { 120 121 // For ease later, we copy some state to the main request. 122 if (faults[0] == NoFault) { --- 121 unchanged lines hidden (view full) --- 244 state->delay = true; 245 } 246 247 /** 248 * Finish this part of the translation and indicate that the whole 249 * translation is complete if the state says so. 250 */ 251 void | 115 { 116 assert(outstanding); 117 faults[index] = fault; 118 outstanding--; 119 if (isSplit && outstanding == 0) { 120 121 // For ease later, we copy some state to the main request. 122 if (faults[0] == NoFault) { --- 121 unchanged lines hidden (view full) --- 244 state->delay = true; 245 } 246 247 /** 248 * Finish this part of the translation and indicate that the whole 249 * translation is complete if the state says so. 250 */ 251 void |
252 finish(Fault fault, RequestPtr req, ThreadContext *tc, | 252 finish(const Fault &fault, RequestPtr req, ThreadContext *tc, |
253 BaseTLB::Mode mode) 254 { 255 assert(state); 256 assert(mode == state->mode); 257 if (state->finish(fault, index)) { 258 if (state->getFault() == NoFault) { 259 // Don't access the request if faulted (due to squash) 260 req->setTranslateLatency(); --- 14 unchanged lines hidden --- | 253 BaseTLB::Mode mode) 254 { 255 assert(state); 256 assert(mode == state->mode); 257 if (state->finish(fault, index)) { 258 if (state->getFault() == NoFault) { 259 // Don't access the request if faulted (due to squash) 260 req->setTranslateLatency(); --- 14 unchanged lines hidden --- |