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