X-Git-Url: https://git.ozlabs.org/?p=bitfield;a=blobdiff_plain;f=bitfield;h=71e495813fb2bc788f1460e08959e00fdf761e49;hp=6f1bcefb2b2fd872fa47870816a05d870bb5fcd9;hb=cef5dceb1252128844bcf0c7039d378a7d635714;hpb=16a99be51e5256126d55557d368bd725a3510c7d diff --git a/bitfield b/bitfield index 6f1bcef..71e4958 100644 --- a/bitfield +++ b/bitfield @@ -15,9 +15,9 @@ from getopt import getopt, GetoptError # List of paths to look for configuration files. If a directory is specified, # it will be (recursively) scanned for .conf files. -configs = [os.path.join(os.getenv("HOME"), ".bitfield.conf"), +configs = ["/etc/bitfield.d", "/etc/bitfield", os.path.join(os.getenv("HOME"), ".bitfield.d"), - "/etc/bitfield.d", "/etc/bitfield", ] + os.path.join(os.getenv("HOME"), ".bitfield.conf")] class bitfield: def __init__(self, bits, name): @@ -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,