summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor/backend.h
diff options
context:
space:
mode:
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__ */