42 #ifndef __ARCH_ARM_LOCKED_MEM_HH__
43 #define __ARCH_ARM_LOCKED_MEM_HH__
54 #include "debug/LLSC.hh"
67 DPRINTF(LLSC,
"%s: handling snoop for address: %#x locked: %d\n",
68 xc->getCpuPtr()->name(),pkt->
getAddr(),
77 DPRINTF(LLSC,
"%s: handling snoop for address: %#x locked addr: %#x\n",
78 xc->getCpuPtr()->name(),snoop_addr, locked_addr);
79 if (locked_addr == snoop_addr) {
80 DPRINTF(LLSC,
"%s: address match, clearing lock and signaling sev\n",
81 xc->getCpuPtr()->name());
95 DPRINTF(LLSC,
"%s: Placing address %#x in monitor\n", xc->getCpuPtr()->name(),
103 DPRINTF(LLSC,
"%s: handling snoop lock hit address: %#x\n",
116 DPRINTF(LLSC,
"%s: handling locked write for address %#x in monitor\n",
117 xc->getCpuPtr()->name(), req->getPaddr());
122 if (!lock_flag || (req->getPaddr() & cacheBlockMask) != lock_addr) {
125 req->setExtraData(0);
127 DPRINTF(LLSC,
"%s: clearing lock flag in handle locked write\n",
128 xc->getCpuPtr()->name());
133 int stCondFailures = xc->readStCondFailures();
135 xc->setStCondFailures(stCondFailures);
136 if (stCondFailures % 100000 == 0) {
137 warn(
"context %d: %d consecutive "
138 "store conditional failures\n",
139 xc->contextId(), stCondFailures);
156 DPRINTF(LLSC,
"Clearing lock and signaling sev\n");