mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-06-20 18:47:48 +00:00
update Go bindings for #149
This commit is contained in:
parent
90eb8f2e72
commit
eb19d9bff5
|
@ -71,10 +71,7 @@ func (u *uc) HookAdd(htype int, cb interface{}, extra ...uint64) (Hook, error) {
|
||||||
case HOOK_BLOCK, HOOK_CODE:
|
case HOOK_BLOCK, HOOK_CODE:
|
||||||
rangeMode = true
|
rangeMode = true
|
||||||
callback = C.hookCode_cgo
|
callback = C.hookCode_cgo
|
||||||
case HOOK_MEM_INVALID:
|
case HOOK_MEM_READ, HOOK_MEM_WRITE, HOOK_MEM_READ | HOOK_MEM_WRITE:
|
||||||
rangeMode = true
|
|
||||||
callback = C.hookMemInvalid_cgo
|
|
||||||
case HOOK_MEM_READ, HOOK_MEM_WRITE, HOOK_MEM_READ_WRITE:
|
|
||||||
rangeMode = true
|
rangeMode = true
|
||||||
callback = C.hookMemAccess_cgo
|
callback = C.hookMemAccess_cgo
|
||||||
case HOOK_INTR:
|
case HOOK_INTR:
|
||||||
|
@ -92,8 +89,15 @@ func (u *uc) HookAdd(htype int, cb interface{}, extra ...uint64) (Hook, error) {
|
||||||
return 0, errors.New("Unknown instruction type.")
|
return 0, errors.New("Unknown instruction type.")
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
// special case for mask
|
||||||
|
if htype&(HOOK_MEM_READ_INVALID|HOOK_MEM_WRITE_INVALID|HOOK_MEM_FETCH_INVALID|
|
||||||
|
HOOK_MEM_READ_PROT|HOOK_MEM_WRITE_PROT|HOOK_MEM_FETCH_PROT) != 0 {
|
||||||
|
rangeMode = true
|
||||||
|
callback = C.hookMemInvalid_cgo
|
||||||
|
} else {
|
||||||
return 0, errors.New("Unknown hook type.")
|
return 0, errors.New("Unknown hook type.")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
var h2 C.uc_hook
|
var h2 C.uc_hook
|
||||||
data := &HookData{u, cb}
|
data := &HookData{u, cb}
|
||||||
if rangeMode {
|
if rangeMode {
|
||||||
|
|
Loading…
Reference in a new issue