diff options
Diffstat (limited to 'utils/regtools/qeditor/backend.h')
-rw-r--r-- | utils/regtools/qeditor/backend.h | 77 |
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 | |||
9 | class IoBackend : public QObject | ||
10 | { | ||
11 | Q_OBJECT | ||
12 | public: | ||
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 | |||
20 | class DummyIoBackend : public IoBackend | ||
21 | { | ||
22 | Q_OBJECT | ||
23 | public: | ||
24 | DummyIoBackend(); | ||
25 | |||
26 | virtual QString GetSocName(); | ||
27 | virtual bool ReadRegister(const QString& name, soc_word_t& value); | ||
28 | virtual bool Reload(); | ||
29 | }; | ||
30 | |||
31 | class FileIoBackend : public IoBackend | ||
32 | { | ||
33 | Q_OBJECT | ||
34 | public: | ||
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 | |||
41 | protected: | ||
42 | QString m_filename; | ||
43 | QString m_soc; | ||
44 | QMap< QString, soc_word_t > m_map; | ||
45 | }; | ||
46 | |||
47 | class Backend : public QObject | ||
48 | { | ||
49 | Q_OBJECT | ||
50 | public: | ||
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 | |||
59 | signals: | ||
60 | void OnSocListChanged(); | ||
61 | private: | ||
62 | std::vector< soc_t > m_socs; | ||
63 | }; | ||
64 | |||
65 | class BackendHelper | ||
66 | { | ||
67 | public: | ||
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); | ||
72 | private: | ||
73 | IoBackend *m_io_backend; | ||
74 | soc_t m_soc; | ||
75 | }; | ||
76 | |||
77 | #endif /* __BACKEND_H__ */ | ||