11#include <unordered_map>
13using MutStrPair = std::pair<std::shared_ptr<std::recursive_mutex>, std::string>;
14using MutexMap = std::unordered_map<std::string, MutStrPair>;
15using RegLockGuard = std::unique_lock<std::recursive_mutex>;
26 bool lock(std::string reg,
bool critic =
true);
27 bool unlock(std::string reg,
bool critic =
true);
28 bool addReg(std::string reg, std::string tag =
"NoTag",
bool critic =
true);
29 unsigned int addRegs(std::list<std::string> regs,
bool critic =
true);
30 unsigned int removeReg(std::string reg,
bool critic =
true);
31 unsigned int removeRegs(std::list<std::string> regs,
bool critic =
true);
32 RegLockGuard
lockGuard(std::string reg, std::string tag =
"NoTag");
34 RegMutex(std::list<FENRegMap> registers);
35 RegMutex(std::list<std::shared_ptr<FENRegMap>> registers);
40 void addMap(FENRegMap registers);
43 friend class RMMRegisterAccess;
RMMLog(const char *name)
Constructs the RMMLog object with a name for the log.
Definition RMMLog.cpp:30
RegLockGuard lockGuard(std::string reg, std::string tag="NoTag")
returns a lock guard object for that register mutex.
Definition RegMutex.cpp:182
unsigned int addRegs(std::list< std::string > regs, bool critic=true)
Calls addReg for each register address of a list of strings.
Definition RegMutex.cpp:81
bool addReg(std::string reg, std::string tag="NoTag", bool critic=true)
Adds a register to the map, initializing a mutex to it.
Definition RegMutex.cpp:61
unsigned int removeReg(std::string reg, bool critic=true)
Removes a register from the map, destroying it's mutex.
Definition RegMutex.cpp:97
RegMutex(FENRegMap map)
Constructor that uses one register map. It will throw an exception if there are duplicate register ad...
Definition RegMutex.cpp:32
unsigned int removeRegs(std::list< std::string > regs, bool critic=true)
Calls removeReg for each register address of a list of strings.
Definition RegMutex.cpp:117
void printRegisters()
prints registers and addresses inside internal list. Mostly used for debugging purposes.
Definition RegMutex.cpp:129
bool unlock(std::string reg, bool critic=true)
Receives a string representing a register address. Unlocks the mutex associated with it....
Definition RegMutex.cpp:163
bool lock(std::string reg, bool critic=true)
Receives a string representing a register address. Locks the mutex associated with it....
Definition RegMutex.cpp:143