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