diff options
Diffstat (limited to 'utils/regtools/qeditor/backend.h')
-rw-r--r-- | utils/regtools/qeditor/backend.h | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/utils/regtools/qeditor/backend.h b/utils/regtools/qeditor/backend.h index 72a19b6ec1..939ed9529f 100644 --- a/utils/regtools/qeditor/backend.h +++ b/utils/regtools/qeditor/backend.h | |||
@@ -17,12 +17,21 @@ public: | |||
17 | IoBackend() {} | 17 | IoBackend() {} |
18 | virtual ~IoBackend() {} | 18 | virtual ~IoBackend() {} |
19 | 19 | ||
20 | enum WriteMode | ||
21 | { | ||
22 | Write, Set, Clear, Toggle | ||
23 | }; | ||
24 | |||
20 | enum AccessType | 25 | enum AccessType |
21 | { | 26 | { |
22 | ByName, | 27 | ByName, |
23 | ByAddress, | 28 | ByAddress, |
24 | }; | 29 | }; |
25 | 30 | ||
31 | /** Register naming convention: name based access are of the form: | ||
32 | * HW.dev.reg | ||
33 | * where <dev> is the device name (including index like APPUART1) | ||
34 | * and <reg> is the register name (including index like PRIORITY29) */ | ||
26 | /* report whether backend supports register access type */ | 35 | /* report whether backend supports register access type */ |
27 | virtual bool SupportAccess(AccessType type) = 0; | 36 | virtual bool SupportAccess(AccessType type) = 0; |
28 | /* get SoC name */ | 37 | /* get SoC name */ |
@@ -37,8 +46,10 @@ public: | |||
37 | /* write a register by name or address | 46 | /* write a register by name or address |
38 | * NOTE: even on a read-only backend, a write is allowed be successful as long | 47 | * NOTE: even on a read-only backend, a write is allowed be successful as long |
39 | * as commit fails */ | 48 | * as commit fails */ |
40 | virtual bool WriteRegister(const QString& name, soc_word_t value) = 0; | 49 | virtual bool WriteRegister(const QString& name, soc_word_t value, |
41 | virtual bool WriteRegister(soc_addr_t addr, soc_word_t value) = 0; | 50 | WriteMode mode = Write) = 0; |
51 | virtual bool WriteRegister(soc_addr_t addr, soc_word_t value, | ||
52 | WriteMode mode = Write) = 0; | ||
42 | /* check whether backend contains uncommitted (ie cached) writes */ | 53 | /* check whether backend contains uncommitted (ie cached) writes */ |
43 | virtual bool IsDirty() = 0; | 54 | virtual bool IsDirty() = 0; |
44 | /* commit all writes */ | 55 | /* commit all writes */ |
@@ -59,10 +70,10 @@ public: | |||
59 | { (void) addr; (void) value; return false; } | 70 | { (void) addr; (void) value; return false; } |
60 | virtual bool Reload() { return false; } | 71 | virtual bool Reload() { return false; } |
61 | virtual bool IsReadOnly() { return true; } | 72 | virtual bool IsReadOnly() { return true; } |
62 | virtual bool WriteRegister(const QString& name, soc_word_t value) | 73 | virtual bool WriteRegister(const QString& name, soc_word_t value, WriteMode mode) |
63 | { (void) name; (void) value; return false; } | 74 | { (void) name; (void) value; (void) mode; return false; } |
64 | virtual bool WriteRegister(soc_addr_t addr, soc_word_t value) | 75 | virtual bool WriteRegister(soc_addr_t addr, soc_word_t value, WriteMode mode) |
65 | { (void) addr; (void) value; return false; } | 76 | { (void) addr; (void) value; (void) mode; return false; } |
66 | virtual bool IsDirty() { return false; } | 77 | virtual bool IsDirty() { return false; } |
67 | virtual bool Commit() { return false; } | 78 | virtual bool Commit() { return false; } |
68 | }; | 79 | }; |
@@ -82,9 +93,9 @@ public: | |||
82 | { (void) addr; (void) value; return false; } | 93 | { (void) addr; (void) value; return false; } |
83 | virtual bool Reload(); | 94 | virtual bool Reload(); |
84 | virtual bool IsReadOnly() { return m_readonly; } | 95 | virtual bool IsReadOnly() { return m_readonly; } |
85 | virtual bool WriteRegister(const QString& name, soc_word_t value); | 96 | virtual bool WriteRegister(const QString& name, soc_word_t value, WriteMode mode); |
86 | virtual bool WriteRegister(soc_addr_t addr, soc_word_t value) | 97 | virtual bool WriteRegister(soc_addr_t addr, soc_word_t value, WriteMode mode) |
87 | { (void) addr; (void) value; return false; } | 98 | { (void) addr; (void) value; (void) mode; return false; } |
88 | virtual bool IsDirty() { return m_dirty; } | 99 | virtual bool IsDirty() { return m_dirty; } |
89 | virtual bool Commit(); | 100 | virtual bool Commit(); |
90 | 101 | ||
@@ -142,9 +153,9 @@ public: | |||
142 | virtual bool ReadRegister(soc_addr_t addr, soc_word_t& value); | 153 | virtual bool ReadRegister(soc_addr_t addr, soc_word_t& value); |
143 | virtual bool Reload(); | 154 | virtual bool Reload(); |
144 | virtual bool IsReadOnly() { return false; } | 155 | virtual bool IsReadOnly() { return false; } |
145 | virtual bool WriteRegister(const QString& name, soc_word_t value) | 156 | virtual bool WriteRegister(const QString& name, soc_word_t value, WriteMode mode) |
146 | { (void) name; (void) value; return false; } | 157 | { (void) name; (void) value; (void) mode; return false; } |
147 | virtual bool WriteRegister(soc_addr_t addr, soc_word_t value); | 158 | virtual bool WriteRegister(soc_addr_t addr, soc_word_t value, WriteMode mode); |
148 | virtual bool IsDirty() { return false; } | 159 | virtual bool IsDirty() { return false; } |
149 | virtual bool Commit() { return true; } | 160 | virtual bool Commit() { return true; } |
150 | 161 | ||
@@ -258,6 +269,8 @@ public: | |||
258 | bool ReadRegister(const QString& dev, const QString& reg, soc_word_t& v); | 269 | bool ReadRegister(const QString& dev, const QString& reg, soc_word_t& v); |
259 | bool ReadRegisterField(const QString& dev, const QString& reg, | 270 | bool ReadRegisterField(const QString& dev, const QString& reg, |
260 | const QString& field, soc_word_t& v); | 271 | const QString& field, soc_word_t& v); |
272 | bool WriteRegister(const QString& dev, const QString& reg, soc_word_t v, | ||
273 | IoBackend::WriteMode mode = IoBackend::Write); | ||
261 | bool GetDevRef(const QString& dev, SocDevRef& ref); | 274 | bool GetDevRef(const QString& dev, SocDevRef& ref); |
262 | bool GetRegRef(const SocDevRef& dev, const QString& reg, SocRegRef& ref); | 275 | bool GetRegRef(const SocDevRef& dev, const QString& reg, SocRegRef& ref); |
263 | bool GetFieldRef(const SocRegRef& reg, const QString& field, SocFieldRef& ref); | 276 | bool GetFieldRef(const SocRegRef& reg, const QString& field, SocFieldRef& ref); |