#!/usr/bin/env python """ Decode 64-bit address into components """ import sys def main(): if len(sys.argv) != 2 or not sys.argv[1].startswith('0x'): print "%s 0x..." % sys.argv[0] sys.exit(1) address = int(sys.argv[1],16) offset = address & 0xfff ptl3 = (address >> 12) & 0x1ff ptl2 = (address >> 21) & 0x1ff ptl1 = (address >> 30) & 0x1ff ptl0 = (address >> 39) & 0x1ff print "Ptl0: %3d" % ptl0 print "Ptl1: %3d" % ptl1 print "Ptl2: %3d" % ptl2 print "Ptl3: %3d" % ptl3 print "Offset: 0x%x" % offset if __name__ == '__main__': main()