packet.cc (9663:45df88079f04) | packet.cc (10028:fb8c44de891a) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2011-2012 ARM Limited | 2 * Copyright (c) 2011-2013 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 --- 156 unchanged lines hidden (view full) --- 167 /* Flush Request */ 168 { SET3(IsRequest, IsFlush, NeedsExclusive), InvalidCmd, "FlushReq" }, 169 /* Invalidation Request */ 170 { SET3(NeedsExclusive, IsInvalidate, IsRequest), 171 InvalidCmd, "InvalidationReq" }, 172}; 173 174bool | 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 --- 156 unchanged lines hidden (view full) --- 167 /* Flush Request */ 168 { SET3(IsRequest, IsFlush, NeedsExclusive), InvalidCmd, "FlushReq" }, 169 /* Invalidation Request */ 170 { SET3(NeedsExclusive, IsInvalidate, IsRequest), 171 InvalidCmd, "InvalidationReq" }, 172}; 173 174bool |
175Packet::checkFunctional(Printable *obj, Addr addr, int size, uint8_t *data) | 175Packet::checkFunctional(Printable *obj, Addr addr, bool is_secure, int size, 176 uint8_t *data) |
176{ 177 Addr func_start = getAddr(); 178 Addr func_end = getAddr() + getSize() - 1; 179 Addr val_start = addr; 180 Addr val_end = val_start + size - 1; 181 | 177{ 178 Addr func_start = getAddr(); 179 Addr func_end = getAddr() + getSize() - 1; 180 Addr val_start = addr; 181 Addr val_end = val_start + size - 1; 182 |
182 if (func_start > val_end || val_start > func_end) { | 183 if (is_secure != _isSecure || func_start > val_end || 184 val_start > func_end) { |
183 // no intersection 184 return false; 185 } 186 187 // check print first since it doesn't require data 188 if (isPrint()) { 189 dynamic_cast<PrintReqState*>(senderState)->printObj(obj); 190 return false; --- 218 unchanged lines hidden --- | 185 // no intersection 186 return false; 187 } 188 189 // check print first since it doesn't require data 190 if (isPrint()) { 191 dynamic_cast<PrintReqState*>(senderState)->printObj(obj); 192 return false; --- 218 unchanged lines hidden --- |