packet.hh (3074:e87fbe7941f8) packet.hh (3135:8e008e281579)
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 298 unchanged lines hidden (view full) ---

307 arrayData = false;
308 }
309 }
310
311 /** Take a request packet and modify it in place to be suitable
312 * for returning as a response to that request. Used for timing
313 * accesses only. For atomic and functional accesses, the
314 * request packet is always implicitly passed back *without*
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 298 unchanged lines hidden (view full) ---

307 arrayData = false;
308 }
309 }
310
311 /** Take a request packet and modify it in place to be suitable
312 * for returning as a response to that request. Used for timing
313 * accesses only. For atomic and functional accesses, the
314 * request packet is always implicitly passed back *without*
315 * modifying the command or destination fields, so this function
315 * modifying the destination fields, so this function
316 * should not be called. */
317 void makeTimingResponse() {
318 assert(needsResponse());
319 assert(isRequest());
320 int icmd = (int)cmd;
321 icmd &= ~(IsRequest);
322 icmd |= IsResponse;
323 cmd = (Command)icmd;
324 dest = src;
325 srcValid = false;
326 }
327
316 * should not be called. */
317 void makeTimingResponse() {
318 assert(needsResponse());
319 assert(isRequest());
320 int icmd = (int)cmd;
321 icmd &= ~(IsRequest);
322 icmd |= IsResponse;
323 cmd = (Command)icmd;
324 dest = src;
325 srcValid = false;
326 }
327
328 /** Take a request packet and modify it in place to be suitable
329 * for returning as a response to that request.
330 */
331 void makeAtomicResponse() {
332 assert(needsResponse());
333 assert(isRequest());
334 int icmd = (int)cmd;
335 icmd &= ~(IsRequest);
336 icmd |= IsResponse;
337 cmd = (Command)icmd;
338 }
339
328 /** Take a request packet that has been returned as NACKED and modify it so
329 * that it can be sent out again. Only packets that need a response can be
330 * NACKED, so verify that that is true. */
331 void reinitNacked() {
332 assert(needsResponse() && result == Nacked);
333 dest = Broadcast;
334 result = Unknown;
335 }

--- 40 unchanged lines hidden ---
340 /** Take a request packet that has been returned as NACKED and modify it so
341 * that it can be sent out again. Only packets that need a response can be
342 * NACKED, so verify that that is true. */
343 void reinitNacked() {
344 assert(needsResponse() && result == Nacked);
345 dest = Broadcast;
346 result = Unknown;
347 }

--- 40 unchanged lines hidden ---