| print("Missing arguments: ./radv_check_va.py <bo_history> <64-bit VA>") |
| bo_history = str(sys.argv[1]) |
| va = int(sys.argv[2], 16) |
| with open(bo_history) as f: |
| p = re.compile('timestamp=(.*), VA=(.*)-(.*), destroyed=(.*), is_virtual=(.*)') |
| mapped_p = re.compile('timestamp=(.*), VA=(.*)-(.*), mapped_to=(.*)') |
| mapped_m = mapped_p.match(line) |
| va_start = int(m.group(2), 16) |
| va_end = int(m.group(3), 16) |
| va_start = int(mapped_m.group(2), 16) |
| va_end = int(mapped_m.group(3), 16) |
| mapped_va = int(mapped_m.group(4), 16) |
| # Check if the given VA was ever valid and print info. |
| if va >= va_start and va < va_end: |
| print("VA found: %s" % line, end='') |
| effective_va = (va - va_start) + mapped_va |
| print(" Virtual mapping: %016x -> %016x" % (va, effective_va)) |
| if __name__ == '__main__': |