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 ---