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:
@ -23,3 +23,7 @@ uc_err uc_reg_write_batch_helper(uc_engine *handle, int *regs, uint64_t *val_in,
|
|||||||
free(val_ref);
|
free(val_ref);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uc_err uc_ctl_set_cpu_model_helper(uc_engine *handle, int model) {
|
||||||
|
return uc_ctl_set_cpu_model(handle, model);
|
||||||
|
}
|
||||||
|
@ -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_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_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);
|
||||||
|
@ -62,6 +62,7 @@ type Unicorn interface {
|
|||||||
Handle() *C.uc_engine
|
Handle() *C.uc_engine
|
||||||
RegWriteX86Msr(reg uint64, val uint64) error
|
RegWriteX86Msr(reg uint64, val uint64) error
|
||||||
RegReadX86Msr(reg uint64) (uint64, error)
|
RegReadX86Msr(reg uint64) (uint64, error)
|
||||||
|
SetCPUModel(model int) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type uc struct {
|
type uc struct {
|
||||||
@ -233,3 +234,8 @@ func (u *uc) Query(queryType int) (uint64, error) {
|
|||||||
func (u *uc) Handle() *C.uc_engine {
|
func (u *uc) Handle() *C.uc_engine {
|
||||||
return u.handle
|
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)
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user