add virtuall tlb
this virtuall tlb allows to use mmu indipendent of the architectur
This commit is contained in:
23
uc.c
23
uc.c
@@ -2377,6 +2377,19 @@ uc_err uc_ctl(uc_engine *uc, uc_control_type control, ...)
|
||||
}
|
||||
break;
|
||||
|
||||
case UC_CTL_TLB_TYPE: {
|
||||
|
||||
UC_INIT(uc);
|
||||
|
||||
if (rw == UC_CTL_IO_WRITE) {
|
||||
int mode = va_arg(args, int);
|
||||
err = uc->set_tlb(uc, mode);
|
||||
} else {
|
||||
err = UC_ERR_ARG;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
err = UC_ERR_ARG;
|
||||
break;
|
||||
@@ -2387,6 +2400,16 @@ uc_err uc_ctl(uc_engine *uc, uc_control_type control, ...)
|
||||
return err;
|
||||
}
|
||||
|
||||
gint cmp_vaddr(gconstpointer a, gconstpointer b, gpointer user_data)
|
||||
{
|
||||
uint64_t va = (uint64_t)a;
|
||||
uint64_t vb = (uint64_t)b;
|
||||
if (va == vb) {
|
||||
return 0;
|
||||
}
|
||||
return va < vb ? -1 : 1;
|
||||
}
|
||||
|
||||
#ifdef UNICORN_TRACER
|
||||
uc_tracer *get_tracer()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user