From: Kevin O'Connor Date: Fri, 30 Jul 2010 22:51:29 +0000 (-0400) Subject: Add tools/trandump.py tool for converting hexdump() output. X-Git-Tag: rel-0.6.1~13 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=597040dd3dba3471c9ed012a5056c42949f34962;p=seabios.git Add tools/trandump.py tool for converting hexdump() output. Add tool for converting the output from hexdump() back into its original binary form. This can be useful for use with tools such as hexdump and objdump. --- diff --git a/tools/transdump.py b/tools/transdump.py new file mode 100755 index 0000000..c6f0e07 --- /dev/null +++ b/tools/transdump.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +# This script is useful for taking the output of memdump() and +# converting it back into binary output. This can be useful, for +# example, when one wants to push that data into other tools like +# objdump or hexdump. +# +# (C) Copyright 2010 Kevin O'Connor +# +# This file may be distributed under the terms of the GNU GPLv3 license. + +import sys +import struct + +def unhex(str): + return int(str, 16) + +def parseMem(filehdl): + mem = [] + for line in filehdl: + parts = line.split(':') + if len(parts) < 2: + continue + try: + vaddr = unhex(parts[0]) + except ValueError: + continue + parts = parts[1].split() + mem.extend([unhex(v) for v in parts]) + return mem + +def printUsage(): + sys.stderr.write("Usage:\n %s \n" + % (sys.argv[0],)) + sys.exit(1) + +def main(): + if len(sys.argv) != 2: + printUsage() + filename = sys.argv[1] + if filename == '-': + filehdl = sys.stdin + else: + filehdl = open(filename, 'r') + mem = parseMem(filehdl) + for i in mem: + sys.stdout.write(struct.pack("