Annotation of qemu/roms/seabios/tools/transdump.py, revision 1.1

1.1     ! root        1: #!/usr/bin/env python
        !             2: 
        !             3: # This script is useful for taking the output of memdump() and
        !             4: # converting it back into binary output.  This can be useful, for
        !             5: # example, when one wants to push that data into other tools like
        !             6: # objdump or hexdump.
        !             7: #
        !             8: # (C) Copyright 2010 Kevin O'Connor <[email protected]>
        !             9: #
        !            10: # This file may be distributed under the terms of the GNU GPLv3 license.
        !            11: 
        !            12: import sys
        !            13: import struct
        !            14: 
        !            15: def unhex(str):
        !            16:     return int(str, 16)
        !            17: 
        !            18: def parseMem(filehdl):
        !            19:     mem = []
        !            20:     for line in filehdl:
        !            21:         parts = line.split(':')
        !            22:         if len(parts) < 2:
        !            23:             continue
        !            24:         try:
        !            25:             vaddr = unhex(parts[0])
        !            26:             parts = parts[1].split()
        !            27:             mem.extend([unhex(v) for v in parts])
        !            28:         except ValueError:
        !            29:             continue
        !            30:     return mem
        !            31: 
        !            32: def printUsage():
        !            33:     sys.stderr.write("Usage:\n %s <file | ->\n"
        !            34:                      % (sys.argv[0],))
        !            35:     sys.exit(1)
        !            36: 
        !            37: def main():
        !            38:     if len(sys.argv) != 2:
        !            39:         printUsage()
        !            40:     filename = sys.argv[1]
        !            41:     if filename == '-':
        !            42:         filehdl = sys.stdin
        !            43:     else:
        !            44:         filehdl = open(filename, 'r')
        !            45:     mem = parseMem(filehdl)
        !            46:     for i in mem:
        !            47:         sys.stdout.write(struct.pack("<I", i))
        !            48: 
        !            49: if __name__ == '__main__':
        !            50:     main()

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.