exec_context.hh (13953:43ae8a30ec1f) | exec_context.hh (13954:2f400a5f2627) |
---|---|
1/* 2 * Copyright (c) 2014, 2016-2018 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 --- 221 unchanged lines hidden (view full) --- 230 /** 231 * Perform an atomic memory read operation. Must be overridden 232 * for exec contexts that support atomic memory mode. Not pure 233 * virtual since exec contexts that only support timing memory 234 * mode need not override (though in that case this function 235 * should never be called). 236 */ 237 virtual Fault readMem(Addr addr, uint8_t *data, unsigned int size, | 1/* 2 * Copyright (c) 2014, 2016-2018 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 --- 221 unchanged lines hidden (view full) --- 230 /** 231 * Perform an atomic memory read operation. Must be overridden 232 * for exec contexts that support atomic memory mode. Not pure 233 * virtual since exec contexts that only support timing memory 234 * mode need not override (though in that case this function 235 * should never be called). 236 */ 237 virtual Fault readMem(Addr addr, uint8_t *data, unsigned int size, |
238 Request::Flags flags) | 238 Request::Flags flags, 239 const std::vector<bool>& byteEnable = std::vector<bool>()) |
239 { 240 panic("ExecContext::readMem() should be overridden\n"); 241 } 242 243 /** 244 * Initiate a timing memory read operation. Must be overridden 245 * for exec contexts that support timing memory mode. Not pure 246 * virtual since exec contexts that only support atomic memory 247 * mode need not override (though in that case this function 248 * should never be called). 249 */ 250 virtual Fault initiateMemRead(Addr addr, unsigned int size, | 240 { 241 panic("ExecContext::readMem() should be overridden\n"); 242 } 243 244 /** 245 * Initiate a timing memory read operation. Must be overridden 246 * for exec contexts that support timing memory mode. Not pure 247 * virtual since exec contexts that only support atomic memory 248 * mode need not override (though in that case this function 249 * should never be called). 250 */ 251 virtual Fault initiateMemRead(Addr addr, unsigned int size, |
251 Request::Flags flags) | 252 Request::Flags flags, 253 const std::vector<bool>& byteEnable = std::vector<bool>()) |
252 { 253 panic("ExecContext::initiateMemRead() should be overridden\n"); 254 } 255 256 /** 257 * For atomic-mode contexts, perform an atomic memory write operation. 258 * For timing-mode contexts, initiate a timing memory write operation. 259 */ 260 virtual Fault writeMem(uint8_t *data, unsigned int size, Addr addr, | 254 { 255 panic("ExecContext::initiateMemRead() should be overridden\n"); 256 } 257 258 /** 259 * For atomic-mode contexts, perform an atomic memory write operation. 260 * For timing-mode contexts, initiate a timing memory write operation. 261 */ 262 virtual Fault writeMem(uint8_t *data, unsigned int size, Addr addr, |
261 Request::Flags flags, uint64_t *res) = 0; | 263 Request::Flags flags, uint64_t *res, 264 const std::vector<bool>& byteEnable = 265 std::vector<bool>()) = 0; |
262 263 /** 264 * For atomic-mode contexts, perform an atomic AMO (a.k.a., Atomic 265 * Read-Modify-Write Memory Operation) 266 */ 267 virtual Fault amoMem(Addr addr, uint8_t *data, unsigned int size, 268 Request::Flags flags, 269 AtomicOpFunctor *amo_op) --- 72 unchanged lines hidden --- | 266 267 /** 268 * For atomic-mode contexts, perform an atomic AMO (a.k.a., Atomic 269 * Read-Modify-Write Memory Operation) 270 */ 271 virtual Fault amoMem(Addr addr, uint8_t *data, unsigned int size, 272 Request::Flags flags, 273 AtomicOpFunctor *amo_op) --- 72 unchanged lines hidden --- |