packet.hh (10940:49d9b53b21dc) | packet.hh (10975:eba4e93665fc) |
---|---|
1/* 2 * Copyright (c) 2012-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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated 11 * unmodified and in its entirety in all distributions of the software, 12 * modified or unmodified, in source code or in binary form. 13 * 14 * Copyright (c) 2006 The Regents of The University of Michigan | 1/* 2 * Copyright (c) 2012-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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated 11 * unmodified and in its entirety in all distributions of the software, 12 * modified or unmodified, in source code or in binary form. 13 * 14 * Copyright (c) 2006 The Regents of The University of Michigan |
15 * Copyright (c) 2010 Advanced Micro Devices, Inc. | 15 * Copyright (c) 2010,2015 Advanced Micro Devices, Inc. |
16 * All rights reserved. 17 * 18 * Redistribution and use in source and binary forms, with or without 19 * modification, are permitted provided that the following conditions are 20 * met: redistributions of source code must retain the above copyright 21 * notice, this list of conditions and the following disclaimer; 22 * redistributions in binary form must reproduce the above copyright 23 * notice, this list of conditions and the following disclaimer in the --- 81 unchanged lines hidden (view full) --- 105 LoadLockedReq, 106 StoreCondReq, 107 StoreCondFailReq, // Failed StoreCondReq in MSHR (never sent) 108 StoreCondResp, 109 SwapReq, 110 SwapResp, 111 MessageReq, 112 MessageResp, | 16 * All rights reserved. 17 * 18 * Redistribution and use in source and binary forms, with or without 19 * modification, are permitted provided that the following conditions are 20 * met: redistributions of source code must retain the above copyright 21 * notice, this list of conditions and the following disclaimer; 22 * redistributions in binary form must reproduce the above copyright 23 * notice, this list of conditions and the following disclaimer in the --- 81 unchanged lines hidden (view full) --- 105 LoadLockedReq, 106 StoreCondReq, 107 StoreCondFailReq, // Failed StoreCondReq in MSHR (never sent) 108 StoreCondResp, 109 SwapReq, 110 SwapResp, 111 MessageReq, 112 MessageResp, |
113 ReleaseReq, 114 ReleaseResp, 115 AcquireReq, 116 AcquireResp, |
|
113 // Error responses 114 // @TODO these should be classified as responses rather than 115 // requests; coding them as requests initially for backwards 116 // compatibility 117 InvalidDestError, // packet dest field invalid 118 BadAddressError, // memory address invalid 119 FunctionalReadError, // unable to fulfill functional read 120 FunctionalWriteError, // unable to fulfill functional write --- 21 unchanged lines hidden (view full) --- 142 NeedsResponse, //!< Requester needs response from target 143 IsSWPrefetch, 144 IsHWPrefetch, 145 IsLlsc, //!< Alpha/MIPS LL or SC access 146 HasData, //!< There is an associated payload 147 IsError, //!< Error response 148 IsPrint, //!< Print state matching address (for debugging) 149 IsFlush, //!< Flush the address from caches | 117 // Error responses 118 // @TODO these should be classified as responses rather than 119 // requests; coding them as requests initially for backwards 120 // compatibility 121 InvalidDestError, // packet dest field invalid 122 BadAddressError, // memory address invalid 123 FunctionalReadError, // unable to fulfill functional read 124 FunctionalWriteError, // unable to fulfill functional write --- 21 unchanged lines hidden (view full) --- 146 NeedsResponse, //!< Requester needs response from target 147 IsSWPrefetch, 148 IsHWPrefetch, 149 IsLlsc, //!< Alpha/MIPS LL or SC access 150 HasData, //!< There is an associated payload 151 IsError, //!< Error response 152 IsPrint, //!< Print state matching address (for debugging) 153 IsFlush, //!< Flush the address from caches |
154 IsAcquire, //!< Acquire operation 155 IsRelease, //!< Release operation |
|
150 NUM_COMMAND_ATTRIBUTES 151 }; 152 153 /** 154 * Structure that defines attributes and other data associated 155 * with a Command. 156 */ 157 struct CommandInfo --- 40 unchanged lines hidden (view full) --- 198 bool isLLSC() const { return testCmdAttrib(IsLlsc); } 199 bool isSWPrefetch() const { return testCmdAttrib(IsSWPrefetch); } 200 bool isHWPrefetch() const { return testCmdAttrib(IsHWPrefetch); } 201 bool isPrefetch() const { return testCmdAttrib(IsSWPrefetch) || 202 testCmdAttrib(IsHWPrefetch); } 203 bool isError() const { return testCmdAttrib(IsError); } 204 bool isPrint() const { return testCmdAttrib(IsPrint); } 205 bool isFlush() const { return testCmdAttrib(IsFlush); } | 156 NUM_COMMAND_ATTRIBUTES 157 }; 158 159 /** 160 * Structure that defines attributes and other data associated 161 * with a Command. 162 */ 163 struct CommandInfo --- 40 unchanged lines hidden (view full) --- 204 bool isLLSC() const { return testCmdAttrib(IsLlsc); } 205 bool isSWPrefetch() const { return testCmdAttrib(IsSWPrefetch); } 206 bool isHWPrefetch() const { return testCmdAttrib(IsHWPrefetch); } 207 bool isPrefetch() const { return testCmdAttrib(IsSWPrefetch) || 208 testCmdAttrib(IsHWPrefetch); } 209 bool isError() const { return testCmdAttrib(IsError); } 210 bool isPrint() const { return testCmdAttrib(IsPrint); } 211 bool isFlush() const { return testCmdAttrib(IsFlush); } |
212 bool isAcquire() const { return testCmdAttrib(IsAcquire); } 213 bool isRelease() const { return testCmdAttrib(IsRelease); } |
|
206 207 const Command 208 responseCommand() const 209 { 210 return commandInfo[cmd].response; 211 } 212 213 /// Return the string to a cmd given by idx. --- 265 unchanged lines hidden (view full) --- 479 bool needsExclusive() const { return cmd.needsExclusive(); } 480 bool needsResponse() const { return cmd.needsResponse(); } 481 bool isInvalidate() const { return cmd.isInvalidate(); } 482 bool hasData() const { return cmd.hasData(); } 483 bool isLLSC() const { return cmd.isLLSC(); } 484 bool isError() const { return cmd.isError(); } 485 bool isPrint() const { return cmd.isPrint(); } 486 bool isFlush() const { return cmd.isFlush(); } | 214 215 const Command 216 responseCommand() const 217 { 218 return commandInfo[cmd].response; 219 } 220 221 /// Return the string to a cmd given by idx. --- 265 unchanged lines hidden (view full) --- 487 bool needsExclusive() const { return cmd.needsExclusive(); } 488 bool needsResponse() const { return cmd.needsResponse(); } 489 bool isInvalidate() const { return cmd.isInvalidate(); } 490 bool hasData() const { return cmd.hasData(); } 491 bool isLLSC() const { return cmd.isLLSC(); } 492 bool isError() const { return cmd.isError(); } 493 bool isPrint() const { return cmd.isPrint(); } 494 bool isFlush() const { return cmd.isFlush(); } |
495 bool isAcquire() const { return cmd.isAcquire(); } 496 bool isRelease() const { return cmd.isRelease(); } |
|
487 488 // Snoop flags 489 void assertMemInhibit() 490 { 491 assert(isRequest()); 492 assert(!flags.isSet(MEM_INHIBIT)); 493 flags.set(MEM_INHIBIT); 494 } --- 514 unchanged lines hidden --- | 497 498 // Snoop flags 499 void assertMemInhibit() 500 { 501 assert(isRequest()); 502 assert(!flags.isSet(MEM_INHIBIT)); 503 flags.set(MEM_INHIBIT); 504 } --- 514 unchanged lines hidden --- |