# 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"), ".bitfields.conf"),
- os.path.join(os.getenv("HOME"), ".bitfields.d")]
+configs = ["/etc/bitfield.d", "/etc/bitfield",
+ os.path.join(os.getenv("HOME"), ".bitfield.d"),
+ os.path.join(os.getenv("HOME"), ".bitfield.conf")]
class bitfield:
def __init__(self, bits, name):
# default to 64 bit registers
width = 64
name = None
+ alias_id = None
fields = []
for t in ts:
"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,