From cef5dceb1252128844bcf0c7039d378a7d635714 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Tue, 21 Nov 2006 15:33:35 +1100 Subject: [PATCH] Add support for aliased definitions. Allows defintions to be linked with the 'alias:' conf syntax. For example: [MSR] alias: MSR_64 Signed-off-by: Jeremy Kerr --- bitfield | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/bitfield b/bitfield index 27605d3..71e4958 100644 --- a/bitfield +++ b/bitfield @@ -130,6 +130,7 @@ def parse_config(bnf, regs, file): # default to 64 bit registers width = 64 name = None + alias_id = None fields = [] for t in ts: @@ -154,6 +155,22 @@ def parse_config(bnf, regs, file): "Invalid value in %s" % id) fields[-1].add_value(v[0], v[1]) + elif t[0] == 'alias': + alias_id = t[1].strip() + + if alias_id is not None: + if name is not None or fields != []: + raise ConfigurationError(file, ("Definiton " \ + + "for %s is an alias, but has other " \ + + "attributes") % id) + + if not regs.has_key(alias_id): + raise ConfigurationError(file, "Aliasing " + "non-existent register %s (from %s)" \ + % (alias_id, id)) + + regs[id] = regs[alias_id] + continue if name is None or name == '': raise ConfigurationError(file, -- 2.39.2