Added SetCPUModel go binding

Go cannot use C macros directly, so I followed existing convention and
added a helper to uc.c to call the uc_ctl_set_cpu_model macro
This commit is contained in:
Brandon Miller 2021-12-04 16:25:23 -05:00
parent c190069b10
commit 2cc15c7260
3 changed files with 11 additions and 0 deletions

View File

@ -23,3 +23,7 @@ uc_err uc_reg_write_batch_helper(uc_engine *handle, int *regs, uint64_t *val_in,
free(val_ref);
return ret;
}
uc_err uc_ctl_set_cpu_model_helper(uc_engine *handle, int model) {
return uc_ctl_set_cpu_model(handle, model);
}

View File

@ -1,2 +1,3 @@
uc_err uc_reg_read_batch_helper(uc_engine *handle, int *regs, uint64_t *val_out, int count);
uc_err uc_reg_write_batch_helper(uc_engine *handle, int *regs, uint64_t *val_in, int count);
uc_err uc_ctl_set_cpu_model_helper(uc_engine *handle, int model);

View File

@ -62,6 +62,7 @@ type Unicorn interface {
Handle() *C.uc_engine
RegWriteX86Msr(reg uint64, val uint64) error
RegReadX86Msr(reg uint64) (uint64, error)
SetCPUModel(model int) error
}
type uc struct {
@ -233,3 +234,8 @@ func (u *uc) Query(queryType int) (uint64, error) {
func (u *uc) Handle() *C.uc_engine {
return u.handle
}
func (u *uc) SetCPUModel(model int) error {
ucerr := C.uc_ctl_set_cpu_model_helper(u.handle, C.int(model))
return errReturn(ucerr)
}