return a
class register:
- def __init__(self, name, width):
+ def __init__(self, id, name, width):
+ self.id = id
self.name = name
self.width = width
self.fields = []
raise ConfigurationError(file,
"Register %s has no fields" % id)
- r = register(name, width)
+ r = register(id, name, width)
for f in fields:
r.add_field(f)
def usage(prog):
print "Usage: %s <-l> | <-s pattern> | [-n] register [value...]" % prog
+def decode_value(reg, value, options):
+ try:
+ i = long(value, 0)
+ except ValueError, e:
+ print "error: invalid value '%s'" % value
+ return
+
+ if i > ((1 << reg.width) - 1):
+ print ("error: value '%s' is too large " + \
+ "for %d-bit register '%s'") % (value, reg.width, reg.id)
+ return
+
+ print reg.decode(i, options.has_key('non_zero'))
+
+
def main():
try:
(opts, args) = getopt(sys.argv[1:], "hlns:", \
return
for value in values:
- i = long(value.strip(), 0)
- print r.decode(i, options['non-zero'])
+ decode_value(r, value.strip(), options)
return 0