diff options
-rw-r--r-- | utils/hwstub/tools/hwstub_shell.cpp | 10 | ||||
-rw-r--r-- | utils/regtools/lib/soc_desc.cpp | 12 | ||||
-rw-r--r-- | utils/regtools/lib/soc_desc.hpp | 3 | ||||
-rw-r--r-- | utils/regtools/qeditor/backend.cpp | 10 |
4 files changed, 18 insertions, 17 deletions
diff --git a/utils/hwstub/tools/hwstub_shell.cpp b/utils/hwstub/tools/hwstub_shell.cpp index 61cb617509..3cc6f8c259 100644 --- a/utils/hwstub/tools/hwstub_shell.cpp +++ b/utils/hwstub/tools/hwstub_shell.cpp | |||
@@ -647,13 +647,13 @@ bool my_lua_import_soc(const soc_t& soc) | |||
647 | return true; | 647 | return true; |
648 | } | 648 | } |
649 | 649 | ||
650 | bool my_lua_import_soc(const std::vector< soc_t >& socs) | 650 | bool my_lua_import_soc(const std::list< soc_t >& socs) |
651 | { | 651 | { |
652 | for(size_t i = 0; i < socs.size(); i++) | 652 | for(std::list< soc_t >::const_iterator it = socs.begin(); it != socs.end(); ++it) |
653 | { | 653 | { |
654 | if(!g_quiet) | 654 | if(!g_quiet) |
655 | printf("importing %s...\n", socs[i].name.c_str()); | 655 | printf("importing %s...\n", it->name.c_str()); |
656 | if(!my_lua_import_soc(socs[i])) | 656 | if(!my_lua_import_soc(*it)) |
657 | return false; | 657 | return false; |
658 | } | 658 | } |
659 | return true; | 659 | return true; |
@@ -711,7 +711,7 @@ int main(int argc, char **argv) | |||
711 | } | 711 | } |
712 | 712 | ||
713 | // load register descriptions | 713 | // load register descriptions |
714 | std::vector< soc_t > socs; | 714 | std::list< soc_t > socs; |
715 | for(int i = optind; i < argc; i++) | 715 | for(int i = optind; i < argc; i++) |
716 | if(!soc_desc_parse_xml(argv[i], socs)) | 716 | if(!soc_desc_parse_xml(argv[i], socs)) |
717 | { | 717 | { |
diff --git a/utils/regtools/lib/soc_desc.cpp b/utils/regtools/lib/soc_desc.cpp index 4b9f51b9ae..223a6d8f53 100644 --- a/utils/regtools/lib/soc_desc.cpp +++ b/utils/regtools/lib/soc_desc.cpp | |||
@@ -64,14 +64,14 @@ | |||
64 | #define MATCH_ELEM_NODE(node_name, array, parse_fn) \ | 64 | #define MATCH_ELEM_NODE(node_name, array, parse_fn) \ |
65 | if(sub->type == XML_ELEMENT_NODE && strcmp(XML_CHAR_TO_CHAR(sub->name), node_name) == 0) { \ | 65 | if(sub->type == XML_ELEMENT_NODE && strcmp(XML_CHAR_TO_CHAR(sub->name), node_name) == 0) { \ |
66 | array.resize(array.size() + 1); \ | 66 | array.resize(array.size() + 1); \ |
67 | if(!parse_fn(sub, array[array.size() - 1])) \ | 67 | if(!parse_fn(sub, array.back())) \ |
68 | return false; \ | 68 | return false; \ |
69 | } | 69 | } |
70 | 70 | ||
71 | #define SOFT_MATCH_ELEM_NODE(node_name, array, parse_fn) \ | 71 | #define SOFT_MATCH_ELEM_NODE(node_name, array, parse_fn) \ |
72 | if(sub->type == XML_ELEMENT_NODE && strcmp(XML_CHAR_TO_CHAR(sub->name), node_name) == 0) { \ | 72 | if(sub->type == XML_ELEMENT_NODE && strcmp(XML_CHAR_TO_CHAR(sub->name), node_name) == 0) { \ |
73 | array.resize(array.size() + 1); \ | 73 | array.resize(array.size() + 1); \ |
74 | if(!parse_fn(sub, array[array.size() - 1])) \ | 74 | if(!parse_fn(sub, array.back())) \ |
75 | array.pop_back(); \ | 75 | array.pop_back(); \ |
76 | } | 76 | } |
77 | 77 | ||
@@ -189,7 +189,7 @@ bool parse_add_trivial_addr(const std::string& str, soc_reg_t& reg) | |||
189 | 189 | ||
190 | bool parse_reg_elem(xmlNode *node, soc_reg_t& reg) | 190 | bool parse_reg_elem(xmlNode *node, soc_reg_t& reg) |
191 | { | 191 | { |
192 | std::vector< soc_reg_formula_t > formulas; | 192 | std::list< soc_reg_formula_t > formulas; |
193 | BEGIN_ATTR_MATCH(node->properties) | 193 | BEGIN_ATTR_MATCH(node->properties) |
194 | MATCH_TEXT_ATTR("name", reg.name) | 194 | MATCH_TEXT_ATTR("name", reg.name) |
195 | SOFT_MATCH_SCT_ATTR("sct", reg.flags) | 195 | SOFT_MATCH_SCT_ATTR("sct", reg.flags) |
@@ -208,7 +208,7 @@ bool parse_reg_elem(xmlNode *node, soc_reg_t& reg) | |||
208 | return false; | 208 | return false; |
209 | } | 209 | } |
210 | if(formulas.size() == 1) | 210 | if(formulas.size() == 1) |
211 | reg.formula = formulas[0]; | 211 | reg.formula = formulas.front(); |
212 | 212 | ||
213 | return true; | 213 | return true; |
214 | } | 214 | } |
@@ -252,7 +252,7 @@ bool parse_soc_elem(xmlNode *node, soc_t& soc) | |||
252 | return true; | 252 | return true; |
253 | } | 253 | } |
254 | 254 | ||
255 | bool parse_root_elem(xmlNode *node, std::vector< soc_t >& soc) | 255 | bool parse_root_elem(xmlNode *node, std::list< soc_t >& soc) |
256 | { | 256 | { |
257 | BEGIN_NODE_MATCH(node) | 257 | BEGIN_NODE_MATCH(node) |
258 | MATCH_ELEM_NODE("soc", soc, parse_soc_elem) | 258 | MATCH_ELEM_NODE("soc", soc, parse_soc_elem) |
@@ -260,7 +260,7 @@ bool parse_root_elem(xmlNode *node, std::vector< soc_t >& soc) | |||
260 | return true; | 260 | return true; |
261 | } | 261 | } |
262 | 262 | ||
263 | bool soc_desc_parse_xml(const std::string& filename, std::vector< soc_t >& socs) | 263 | bool soc_desc_parse_xml(const std::string& filename, std::list< soc_t >& socs) |
264 | { | 264 | { |
265 | LIBXML_TEST_VERSION | 265 | LIBXML_TEST_VERSION |
266 | 266 | ||
diff --git a/utils/regtools/lib/soc_desc.hpp b/utils/regtools/lib/soc_desc.hpp index 476ea1d242..d1a1f0cb50 100644 --- a/utils/regtools/lib/soc_desc.hpp +++ b/utils/regtools/lib/soc_desc.hpp | |||
@@ -23,6 +23,7 @@ | |||
23 | 23 | ||
24 | #include <stdint.h> | 24 | #include <stdint.h> |
25 | #include <vector> | 25 | #include <vector> |
26 | #include <list> | ||
26 | #include <string> | 27 | #include <string> |
27 | 28 | ||
28 | /** | 29 | /** |
@@ -142,6 +143,6 @@ struct soc_t | |||
142 | 143 | ||
143 | /** Parse a SoC description from a XML file, append it to <soc>. A file | 144 | /** Parse a SoC description from a XML file, append it to <soc>. A file |
144 | * can contain multiple SoC descriptions */ | 145 | * can contain multiple SoC descriptions */ |
145 | bool soc_desc_parse_xml(const std::string& filename, std::vector< soc_t >& soc); | 146 | bool soc_desc_parse_xml(const std::string& filename, std::list< soc_t >& soc); |
146 | 147 | ||
147 | #endif /* __SOC_DESC__ */ \ No newline at end of file | 148 | #endif /* __SOC_DESC__ */ \ No newline at end of file |
diff --git a/utils/regtools/qeditor/backend.cpp b/utils/regtools/qeditor/backend.cpp index d2b75be701..22210916b1 100644 --- a/utils/regtools/qeditor/backend.cpp +++ b/utils/regtools/qeditor/backend.cpp | |||
@@ -14,17 +14,17 @@ Backend::Backend() | |||
14 | QStringList Backend::GetSocNameList() | 14 | QStringList Backend::GetSocNameList() |
15 | { | 15 | { |
16 | QStringList sl; | 16 | QStringList sl; |
17 | for(size_t i = 0; i < m_socs.size(); i++) | 17 | foreach(const soc_t& soc, m_socs) |
18 | sl.append(QString(m_socs[i].name.c_str())); | 18 | sl.append(QString(soc.name.c_str())); |
19 | return sl; | 19 | return sl; |
20 | } | 20 | } |
21 | 21 | ||
22 | bool Backend::GetSocByName(const QString& name, soc_t& s) | 22 | bool Backend::GetSocByName(const QString& name, soc_t& s) |
23 | { | 23 | { |
24 | for(size_t i = 0; i < m_socs.size(); i++) | 24 | for(std::list< soc_t >::iterator it = m_socs.begin(); it != m_socs.end(); ++it) |
25 | if(m_socs[i].name == name.toStdString()) | 25 | if(it->name == name.toStdString()) |
26 | { | 26 | { |
27 | s = m_socs[i]; | 27 | s = *it; |
28 | return true; | 28 | return true; |
29 | } | 29 | } |
30 | return false; | 30 | return false; |