def dart_translate(addr): if TCR.BYPASS_DAPF == 0: match, use_dart = dapf_search(addr) if match: if not use_dart: return addr elif addr >= (1 << 32): fault(NO_DAPF_MATCH) if TCR.TRANSLATE_ENABLE: match, paddr = dart_pt_walk(addr & 0xffffffff) if match: return paddr else: fault(NO_TTBR or NO_PMD or NO_PTE...) if TCR.BYPASS_DART: return addr else: drop()