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