atomic.hh (13652:45d94ac03a27) | atomic.hh (13954:2f400a5f2627) |
---|---|
1/* 2 * Copyright (c) 2012-2013, 2015, 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 --- 181 unchanged lines hidden (view full) --- 190 void switchOut() override; 191 void takeOverFrom(BaseCPU *oldCPU) override; 192 193 void verifyMemoryMode() const override; 194 195 void activateContext(ThreadID thread_num) override; 196 void suspendContext(ThreadID thread_num) override; 197 | 1/* 2 * Copyright (c) 2012-2013, 2015, 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 --- 181 unchanged lines hidden (view full) --- 190 void switchOut() override; 191 void takeOverFrom(BaseCPU *oldCPU) override; 192 193 void verifyMemoryMode() const override; 194 195 void activateContext(ThreadID thread_num) override; 196 void suspendContext(ThreadID thread_num) override; 197 |
198 /** 199 * Helper function used to set up the request for a single fragment of a 200 * memory access. 201 * 202 * Takes care of setting up the appropriate byte-enable mask for the 203 * fragment, given the mask for the entire memory access. 204 * 205 * @param req Pointer to the Request object to populate. 206 * @param frag_addr Start address of the fragment. 207 * @param size Total size of the memory access in bytes. 208 * @param flags Request flags. 209 * @param byte_enable Byte-enable mask for the entire memory access. 210 * @param[out] frag_size Fragment size. 211 * @param[in,out] size_left Size left to be processed in the memory access. 212 * @return True if the byte-enable mask for the fragment is not all-false. 213 */ 214 bool genMemFragmentRequest(const RequestPtr& req, Addr frag_addr, 215 int size, Request::Flags flags, 216 const std::vector<bool>& byte_enable, 217 int& frag_size, int& size_left) const; 218 |
|
198 Fault readMem(Addr addr, uint8_t *data, unsigned size, | 219 Fault readMem(Addr addr, uint8_t *data, unsigned size, |
199 Request::Flags flags) override; | 220 Request::Flags flags, 221 const std::vector<bool>& byteEnable = std::vector<bool>()) 222 override; |
200 201 Fault writeMem(uint8_t *data, unsigned size, | 223 224 Fault writeMem(uint8_t *data, unsigned size, |
202 Addr addr, Request::Flags flags, uint64_t *res) override; | 225 Addr addr, Request::Flags flags, uint64_t *res, 226 const std::vector<bool>& byteEnable = std::vector<bool>()) 227 override; |
203 204 Fault amoMem(Addr addr, uint8_t* data, unsigned size, 205 Request::Flags flags, AtomicOpFunctor *amo_op) override; 206 207 void regProbePoints() override; 208 209 /** 210 * Print state of address in memory system via PrintReq (for 211 * debugging). 212 */ 213 void printAddr(Addr a); 214}; 215 216#endif // __CPU_SIMPLE_ATOMIC_HH__ | 228 229 Fault amoMem(Addr addr, uint8_t* data, unsigned size, 230 Request::Flags flags, AtomicOpFunctor *amo_op) override; 231 232 void regProbePoints() override; 233 234 /** 235 * Print state of address in memory system via PrintReq (for 236 * debugging). 237 */ 238 void printAddr(Addr a); 239}; 240 241#endif // __CPU_SIMPLE_ATOMIC_HH__ |