summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor/backend.h
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-08-21 20:16:26 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-08-21 20:18:37 +0200
commitc323381f0b3ee68b0093442335e8e7cbb112858a (patch)
treeac27964bd0da6bc56f05ad965ce4de957ef22d59 /utils/regtools/qeditor/backend.h
parent902306378e38ce571f4595ae8dabb2acd2412faa (diff)
downloadrockbox-c323381f0b3ee68b0093442335e8e7cbb112858a.tar.gz
rockbox-c323381f0b3ee68b0093442335e8e7cbb112858a.zip
regtools: add graphical register explorer + analyser
This tool allows one to explore any register map. Register dumps (like produced by hwstub tools) can be loaded and decoded by the tool. Finally some analysers are provided for specific soc analysis like clock tree and emi on imx233 for example. Change-Id: Iaf81bd52d15f3e44ab4fe9bc039153fcf60cf92a
Diffstat (limited to 'utils/regtools/qeditor/backend.h')
-rw-r--r--utils/regtools/qeditor/backend.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/utils/regtools/qeditor/backend.h b/utils/regtools/qeditor/backend.h
new file mode 100644
index 0000000000..536eb8cec5
--- /dev/null
+++ b/utils/regtools/qeditor/backend.h
@@ -0,0 +1,77 @@
1#ifndef __BACKEND_H__
2#define __BACKEND_H__
3
4#include <QObject>
5#include <QStringList>
6#include <QMap>
7#include "soc_desc.hpp"
8
9class IoBackend : public QObject
10{
11 Q_OBJECT
12public:
13 IoBackend();
14
15 virtual QString GetSocName() = 0;
16 virtual bool ReadRegister(const QString& name, soc_word_t& value) = 0;
17 virtual bool Reload() = 0;
18};
19
20class DummyIoBackend : public IoBackend
21{
22 Q_OBJECT
23public:
24 DummyIoBackend();
25
26 virtual QString GetSocName();
27 virtual bool ReadRegister(const QString& name, soc_word_t& value);
28 virtual bool Reload();
29};
30
31class FileIoBackend : public IoBackend
32{
33 Q_OBJECT
34public:
35 FileIoBackend(const QString& filename);
36
37 virtual QString GetSocName();
38 virtual bool ReadRegister(const QString& name, soc_word_t& value);
39 virtual bool Reload();
40
41protected:
42 QString m_filename;
43 QString m_soc;
44 QMap< QString, soc_word_t > m_map;
45};
46
47class Backend : public QObject
48{
49 Q_OBJECT
50public:
51 Backend();
52
53 QStringList GetSocNameList();
54 bool LoadSocDesc(const QString& filename);
55 bool GetSocByName(const QString& name, soc_t& s);
56 IoBackend *CreateDummyIoBackend();
57 IoBackend *CreateFileIoBackend(const QString& filename);
58
59signals:
60 void OnSocListChanged();
61private:
62 std::vector< soc_t > m_socs;
63};
64
65class BackendHelper
66{
67public:
68 BackendHelper(IoBackend *io_backend, const soc_t& soc);
69 bool ReadRegister(const QString& dev, const QString& reg, soc_word_t& v);
70 bool ReadRegisterField(const QString& dev, const QString& reg,
71 const QString& field, soc_word_t& v);
72private:
73 IoBackend *m_io_backend;
74 soc_t m_soc;
75};
76
77#endif /* __BACKEND_H__ */