regtools: rename error_t to err_t to avoid name clash
Change-Id: Ib8d34e4f58f3225b1dafc533ce7e1b7867ad053b
This commit is contained in:
parent
84ff8a4df9
commit
7b1bcae879
5 changed files with 38 additions and 39 deletions
|
@ -87,12 +87,12 @@ void print_context(const error_context_t& ctx)
|
|||
{
|
||||
for(size_t j = 0; j < ctx.count(); j++)
|
||||
{
|
||||
error_t e = ctx.get(j);
|
||||
err_t e = ctx.get(j);
|
||||
switch(e.level())
|
||||
{
|
||||
case error_t::INFO: printf("[INFO]"); break;
|
||||
case error_t::WARNING: printf("[WARN]"); break;
|
||||
case error_t::FATAL: printf("[FATAL]"); break;
|
||||
case err_t::INFO: printf("[INFO]"); break;
|
||||
case err_t::WARNING: printf("[WARN]"); break;
|
||||
case err_t::FATAL: printf("[FATAL]"); break;
|
||||
default: printf("[UNK]"); break;
|
||||
}
|
||||
if(e.location().size() != 0)
|
||||
|
|
|
@ -43,7 +43,7 @@ typedef int soc_id_t;
|
|||
const soc_id_t DEFAULT_ID = 0xcafebabe;
|
||||
|
||||
/** Error class */
|
||||
class error_t
|
||||
class err_t
|
||||
{
|
||||
public:
|
||||
enum level_t
|
||||
|
@ -52,7 +52,7 @@ public:
|
|||
WARNING,
|
||||
FATAL
|
||||
};
|
||||
error_t(level_t lvl, const std::string& loc, const std::string& msg)
|
||||
err_t(level_t lvl, const std::string& loc, const std::string& msg)
|
||||
:m_level(lvl), m_loc(loc), m_msg(msg) {}
|
||||
level_t level() const { return m_level; }
|
||||
std::string location() const { return m_loc; }
|
||||
|
@ -66,11 +66,11 @@ protected:
|
|||
class error_context_t
|
||||
{
|
||||
public:
|
||||
void add(const error_t& err) { m_list.push_back(err); }
|
||||
void add(const err_t& err) { m_list.push_back(err); }
|
||||
size_t count() const { return m_list.size(); }
|
||||
error_t get(size_t i) const { return m_list[i]; }
|
||||
err_t get(size_t i) const { return m_list[i]; }
|
||||
protected:
|
||||
std::vector< error_t > m_list;
|
||||
std::vector< err_t > m_list;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,7 +24,7 @@ struct formula_evaluator
|
|||
va_start(args, fmt);
|
||||
vsnprintf(buffer,sizeof(buffer), fmt, args);
|
||||
va_end(args);
|
||||
ctx.add(error_t(error_t::FATAL, m_loc, buffer));
|
||||
ctx.add(err_t(err_t::FATAL, m_loc, buffer));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -149,23 +149,23 @@ std::string xml_loc(xmlAttr *attr)
|
|||
}
|
||||
|
||||
template<typename T>
|
||||
bool add_error(error_context_t& ctx, error_t::level_t lvl, T *node,
|
||||
bool add_error(error_context_t& ctx, err_t::level_t lvl, T *node,
|
||||
const std::string& msg)
|
||||
{
|
||||
ctx.add(error_t(lvl, xml_loc(node), msg));
|
||||
ctx.add(err_t(lvl, xml_loc(node), msg));
|
||||
return false;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
bool add_fatal(error_context_t& ctx, T *node, const std::string& msg)
|
||||
{
|
||||
return add_error(ctx, error_t::FATAL, node, msg);
|
||||
return add_error(ctx, err_t::FATAL, node, msg);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
bool add_warning(error_context_t& ctx, T *node, const std::string& msg)
|
||||
{
|
||||
return add_error(ctx, error_t::WARNING, node, msg);
|
||||
return add_error(ctx, err_t::WARNING, node, msg);
|
||||
}
|
||||
|
||||
bool parse_wrong_version_error(xmlNode *node, error_context_t& ctx)
|
||||
|
@ -529,7 +529,7 @@ bool parse_root_elem(xmlNode *node, soc_t& soc, error_context_t& ctx)
|
|||
END_ATTR_MATCH()
|
||||
if(!has_version)
|
||||
{
|
||||
ctx.add(error_t(error_t::FATAL, xml_loc(node), "no version attribute, is this a v1 file ?"));
|
||||
ctx.add(err_t(err_t::FATAL, xml_loc(node), "no version attribute, is this a v1 file ?"));
|
||||
return false;
|
||||
}
|
||||
if(ver != MAJOR_VERSION)
|
||||
|
@ -660,7 +660,7 @@ namespace
|
|||
if((x) < 0) { \
|
||||
std::ostringstream oss; \
|
||||
oss << __FILE__ << ":" << __LINE__; \
|
||||
ctx.add(error_t(error_t::FATAL, oss.str(), "write error")); \
|
||||
ctx.add(err_t(err_t::FATAL, oss.str(), "write error")); \
|
||||
return -1; \
|
||||
} \
|
||||
}while(0)
|
||||
|
@ -1576,7 +1576,6 @@ node_inst_t node_inst_t::child(const std::string& name) const
|
|||
return child(name, INST_NO_INDEX);
|
||||
}
|
||||
|
||||
|
||||
node_inst_t node_inst_t::child(const std::string& name, size_t index) const
|
||||
{
|
||||
std::vector< node_t > *nodes = get_children(m_node);
|
||||
|
|
|
@ -35,12 +35,12 @@ void print_context(const error_context_t& ctx)
|
|||
{
|
||||
for(size_t j = 0; j < ctx.count(); j++)
|
||||
{
|
||||
error_t e = ctx.get(j);
|
||||
err_t e = ctx.get(j);
|
||||
switch(e.level())
|
||||
{
|
||||
case error_t::INFO: printf("[INFO]"); break;
|
||||
case error_t::WARNING: printf("[WARN]"); break;
|
||||
case error_t::FATAL: printf("[FATAL]"); break;
|
||||
case err_t::INFO: printf("[INFO]"); break;
|
||||
case err_t::WARNING: printf("[WARN]"); break;
|
||||
case err_t::FATAL: printf("[FATAL]"); break;
|
||||
default: printf("[UNK]"); break;
|
||||
}
|
||||
if(e.location().size() != 0)
|
||||
|
@ -110,7 +110,7 @@ bool convert_v1_to_v2(const soc_desc_v1::soc_reg_t& in, node_t& out, error_conte
|
|||
soc_word_t base = 0, stride = 0;
|
||||
if(in.addr.size() <= 1)
|
||||
{
|
||||
ctx.add(error_t(error_t::WARNING, loc,
|
||||
ctx.add(err_t(err_t::WARNING, loc,
|
||||
"register uses a formula but has only one instance"));
|
||||
is_stride = false;
|
||||
}
|
||||
|
@ -125,7 +125,7 @@ bool convert_v1_to_v2(const soc_desc_v1::soc_reg_t& in, node_t& out, error_conte
|
|||
|
||||
if(is_stride)
|
||||
{
|
||||
ctx.add(error_t(error_t::INFO, loc, "promoted formula to base/stride"));
|
||||
ctx.add(err_t(err_t::INFO, loc, "promoted formula to base/stride"));
|
||||
out.instance[0].range.type = range_t::STRIDE;
|
||||
out.instance[0].range.base = base;
|
||||
out.instance[0].range.stride = stride;
|
||||
|
@ -167,7 +167,7 @@ bool convert_v1_to_v2(const soc_desc_v1::soc_dev_t& in, node_t& out, error_conte
|
|||
{
|
||||
std::string loc = _loc + "." + in.name;
|
||||
if(!in.version.empty())
|
||||
ctx.add(error_t(error_t::INFO, loc, "dropped version"));
|
||||
ctx.add(err_t(err_t::INFO, loc, "dropped version"));
|
||||
out.name = in.name;
|
||||
out.title = in.long_name;
|
||||
out.desc = in.desc;
|
||||
|
@ -330,10 +330,10 @@ int do_write(int argc, char **argv)
|
|||
void check_name(const std::string& path, const std::string& name, error_context_t& ctx)
|
||||
{
|
||||
if(name.empty())
|
||||
ctx.add(error_t(error_t::FATAL, path, "name is empty"));
|
||||
ctx.add(err_t(err_t::FATAL, path, "name is empty"));
|
||||
for(size_t i = 0; i < name.size(); i++)
|
||||
if(!isalnum(name[i]) && name[i] != '_')
|
||||
ctx.add(error_t(error_t::FATAL, path, "name '" + name +
|
||||
ctx.add(err_t(err_t::FATAL, path, "name '" + name +
|
||||
"' must only contain alphanumeric characters or '_'"));
|
||||
}
|
||||
|
||||
|
@ -351,7 +351,7 @@ void check_instance(const std::string& _path, const instance_t& inst, error_cont
|
|||
var[inst.range.variable] = inst.range.first;
|
||||
soc_word_t res;
|
||||
if(!evaluate_formula(inst.range.formula, var, res, path + ".<formula>", ctx))
|
||||
ctx.add(error_t(error_t::FATAL, path + ".<formula>",
|
||||
ctx.add(err_t(err_t::FATAL, path + ".<formula>",
|
||||
"cannot evaluate formula"));
|
||||
}
|
||||
}
|
||||
|
@ -362,7 +362,7 @@ void check_field(const std::string& _path, const field_t& field, error_context_t
|
|||
std::string path = _path + "." + field.name;
|
||||
check_name(path, field.name, ctx);
|
||||
if(field.width == 0)
|
||||
ctx.add(error_t(error_t::WARNING, path, "field has width 0"));
|
||||
ctx.add(err_t(err_t::WARNING, path, "field has width 0"));
|
||||
soc_word_t max = field.bitmask() >> field.pos;
|
||||
std::set< std::string > names;
|
||||
std::map< soc_word_t, std::string > map;
|
||||
|
@ -373,12 +373,12 @@ void check_field(const std::string& _path, const field_t& field, error_context_t
|
|||
std::string path_ = path + "." + n;
|
||||
check_name(path_, n, ctx);
|
||||
if(v > max)
|
||||
ctx.add(error_t(error_t::FATAL, path_, "value does not fit into the field"));
|
||||
ctx.add(err_t(err_t::FATAL, path_, "value does not fit into the field"));
|
||||
if(names.find(n) != names.end())
|
||||
ctx.add(error_t(error_t::FATAL, path, "duplicate name '" + n + "' in enums"));
|
||||
ctx.add(err_t(err_t::FATAL, path, "duplicate name '" + n + "' in enums"));
|
||||
names.insert(n);
|
||||
if(map.find(v) != map.end())
|
||||
ctx.add(error_t(error_t::WARNING, path, "'" + n + "' and '" + map[v] + "' have the same value"));
|
||||
ctx.add(err_t(err_t::WARNING, path, "'" + n + "' and '" + map[v] + "' have the same value"));
|
||||
map[v] = n;
|
||||
}
|
||||
}
|
||||
|
@ -387,7 +387,7 @@ void check_register(const std::string& _path, const soc_desc::register_t& reg, e
|
|||
{
|
||||
std::string path = _path + ".<register>";
|
||||
if(reg.width != 8 && reg.width != 16 && reg.width != 32)
|
||||
ctx.add(error_t(error_t::WARNING, path, "width is not 8, 16 or 32"));
|
||||
ctx.add(err_t(err_t::WARNING, path, "width is not 8, 16 or 32"));
|
||||
for(size_t i = 0; i < reg.field.size(); i++)
|
||||
check_field(path, reg.field[i], ctx);
|
||||
std::set< std::string > names;
|
||||
|
@ -396,16 +396,16 @@ void check_register(const std::string& _path, const soc_desc::register_t& reg, e
|
|||
{
|
||||
std::string n = reg.field[i].name;
|
||||
if(names.find(n) != names.end())
|
||||
ctx.add(error_t(error_t::FATAL, path, "duplicate name '" + n + "' in fields"));
|
||||
ctx.add(err_t(err_t::FATAL, path, "duplicate name '" + n + "' in fields"));
|
||||
if(reg.field[i].pos + reg.field[i].width > reg.width)
|
||||
ctx.add(error_t(error_t::FATAL, path, "field '" + n + "' does not fit into the register"));
|
||||
ctx.add(err_t(err_t::FATAL, path, "field '" + n + "' does not fit into the register"));
|
||||
names.insert(n);
|
||||
if(bitmap & reg.field[i].bitmask())
|
||||
{
|
||||
/* find the duplicate to ease debugging */
|
||||
for(size_t j = 0; j < i; j++)
|
||||
if(reg.field[j].bitmask() & reg.field[i].bitmask())
|
||||
ctx.add(error_t(error_t::FATAL, path, "overlap between fields '" +
|
||||
ctx.add(err_t(err_t::FATAL, path, "overlap between fields '" +
|
||||
reg.field[j].name + "' and '" + n + "'"));
|
||||
}
|
||||
bitmap |= reg.field[i].bitmask();
|
||||
|
@ -420,7 +420,7 @@ void check_node(const std::string& _path, const node_t& node, error_context_t& c
|
|||
std::string path = _path + "." + node.name;
|
||||
check_name(_path, node.name, ctx);
|
||||
if(node.instance.empty())
|
||||
ctx.add(error_t(error_t::WARNING, path, "subnode with no instances"));
|
||||
ctx.add(err_t(err_t::WARNING, path, "subnode with no instances"));
|
||||
for(size_t j = 0; j < node.instance.size(); j++)
|
||||
check_instance(path, node.instance[j], ctx);
|
||||
for(size_t i = 0; i < node.register_.size(); i++)
|
||||
|
@ -440,7 +440,7 @@ void check_nodes(const std::string& path, const std::vector< node_t >& nodes,
|
|||
{
|
||||
std::string n = nodes[i].instance[j].name;
|
||||
if(names.find(n) != names.end())
|
||||
ctx.add(error_t(error_t::FATAL, path, "duplicate instance name '" +
|
||||
ctx.add(err_t(err_t::FATAL, path, "duplicate instance name '" +
|
||||
n + "' in subnodes"));
|
||||
names.insert(n);
|
||||
}
|
||||
|
@ -450,7 +450,7 @@ void check_nodes(const std::string& path, const std::vector< node_t >& nodes,
|
|||
{
|
||||
std::string n = nodes[i].name;
|
||||
if(names.find(n) != names.end())
|
||||
ctx.add(error_t(error_t::FATAL, path, "duplicate node name '" + n +
|
||||
ctx.add(err_t(err_t::FATAL, path, "duplicate node name '" + n +
|
||||
"' in subnodes"));
|
||||
names.insert(n);
|
||||
}
|
||||
|
@ -832,4 +832,4 @@ int main(int argc, char **argv)
|
|||
else
|
||||
usage();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue