packet.hh (10872:ebb3d0737aa7) packet.hh (10883:9294c4a60251)
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

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

82 {
83 InvalidCmd,
84 ReadReq,
85 ReadResp,
86 ReadRespWithInvalidate,
87 WriteReq,
88 WriteResp,
89 Writeback,
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

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

82 {
83 InvalidCmd,
84 ReadReq,
85 ReadResp,
86 ReadRespWithInvalidate,
87 WriteReq,
88 WriteResp,
89 Writeback,
90 CleanEvict,
90 SoftPFReq,
91 HardPFReq,
92 SoftPFResp,
93 HardPFResp,
94 WriteInvalidateReq,
95 WriteInvalidateResp,
96 UpgradeReq,
97 SCUpgradeReq, // Special "weak" upgrade for StoreCond

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

503 bool isExpressSnoop() const { return flags.isSet(EXPRESS_SNOOP); }
504 void setSupplyExclusive() { flags.set(SUPPLY_EXCLUSIVE); }
505 void clearSupplyExclusive() { flags.clear(SUPPLY_EXCLUSIVE); }
506 bool isSupplyExclusive() const { return flags.isSet(SUPPLY_EXCLUSIVE); }
507 void setSuppressFuncError() { flags.set(SUPPRESS_FUNC_ERROR); }
508 bool suppressFuncError() const { return flags.isSet(SUPPRESS_FUNC_ERROR); }
509 void setBlockCached() { flags.set(BLOCK_CACHED); }
510 bool isBlockCached() const { return flags.isSet(BLOCK_CACHED); }
91 SoftPFReq,
92 HardPFReq,
93 SoftPFResp,
94 HardPFResp,
95 WriteInvalidateReq,
96 WriteInvalidateResp,
97 UpgradeReq,
98 SCUpgradeReq, // Special "weak" upgrade for StoreCond

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

504 bool isExpressSnoop() const { return flags.isSet(EXPRESS_SNOOP); }
505 void setSupplyExclusive() { flags.set(SUPPLY_EXCLUSIVE); }
506 void clearSupplyExclusive() { flags.clear(SUPPLY_EXCLUSIVE); }
507 bool isSupplyExclusive() const { return flags.isSet(SUPPLY_EXCLUSIVE); }
508 void setSuppressFuncError() { flags.set(SUPPRESS_FUNC_ERROR); }
509 bool suppressFuncError() const { return flags.isSet(SUPPRESS_FUNC_ERROR); }
510 void setBlockCached() { flags.set(BLOCK_CACHED); }
511 bool isBlockCached() const { return flags.isSet(BLOCK_CACHED); }
512 void clearBlockCached() { flags.clear(BLOCK_CACHED); }
511
512 // Network error conditions... encapsulate them as methods since
513 // their encoding keeps changing (from result field to command
514 // field, etc.)
515 void
516 setBadAddress()
517 {
518 assert(isResponse());

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

932 // data pointer
933 return checkFunctional(other, other->getAddr(), other->isSecure(),
934 other->getSize(),
935 other->hasData() ?
936 other->getPtr<uint8_t>() : NULL);
937 }
938
939 /**
513
514 // Network error conditions... encapsulate them as methods since
515 // their encoding keeps changing (from result field to command
516 // field, etc.)
517 void
518 setBadAddress()
519 {
520 assert(isResponse());

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

934 // data pointer
935 return checkFunctional(other, other->getAddr(), other->isSecure(),
936 other->getSize(),
937 other->hasData() ?
938 other->getPtr<uint8_t>() : NULL);
939 }
940
941 /**
942 * Is this request notification of a clean or dirty eviction from the cache.
943 **/
944 bool
945 evictingBlock() const
946 {
947 return (cmd == MemCmd::Writeback ||
948 cmd == MemCmd::CleanEvict);
949 }
950
951 /**
952 * Does the request need to check for cached copies of the same block
953 * in the memory hierarchy above.
954 **/
955 bool
956 mustCheckAbove() const
957 {
958 return (cmd == MemCmd::HardPFReq ||
959 evictingBlock());
960 }
961
962 /**
940 * Check a functional request against a memory value represented
941 * by a base/size pair and an associated data array. If the
942 * current packet is a read, it may be satisfied by the memory
943 * value. If the current packet is a write, it may update the
944 * memory value.
945 */
946 bool
947 checkFunctional(Printable *obj, Addr base, bool is_secure, int size,

--- 35 unchanged lines hidden ---
963 * Check a functional request against a memory value represented
964 * by a base/size pair and an associated data array. If the
965 * current packet is a read, it may be satisfied by the memory
966 * value. If the current packet is a write, it may update the
967 * memory value.
968 */
969 bool
970 checkFunctional(Printable *obj, Addr base, bool is_secure, int size,

--- 35 unchanged lines hidden ---