diff --git a/bindings/java/unicorn/Unicorn.java b/bindings/java/unicorn/Unicorn.java index 26f04dec..7e8aee05 100644 --- a/bindings/java/unicorn/Unicorn.java +++ b/bindings/java/unicorn/Unicorn.java @@ -821,5 +821,11 @@ public class Unicorn implements UnicornConst, ArmConst, Arm64Const, M68kConst, S */ public native void context_restore(long context); + /** + * Set the emulated cpu model. + * + * @param cpu_model CPU model type (see UC_CPU_*). +*/ + public native void ctl_set_cpu_model(int cpu_model); } diff --git a/bindings/java/unicorn_Unicorn.c b/bindings/java/unicorn_Unicorn.c index ccf335f2..fb7f220f 100644 --- a/bindings/java/unicorn_Unicorn.c +++ b/bindings/java/unicorn_Unicorn.c @@ -779,3 +779,17 @@ JNIEXPORT void JNICALL Java_unicorn_Unicorn_context_1restore throwException(env, err); } } + +/* + * Class: unicorn_Unicorn + * Method: ctl_set_cpu_model + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_unicorn_Unicorn_ctl_1set_1cpu_1model + (JNIEnv *env, jobject self, jint cpu_model) { + uc_engine *eng = getEngine(env, self); + uc_err err = uc_ctl_set_cpu_model(eng, cpu_model); + if (err != UC_ERR_OK) { + throwException(env, err); + } +}