Skip to content
Snippets Groups Projects
Commit 36db0ecd authored by Nguyen Anh Quynh's avatar Nguyen Anh Quynh Committed by GitHub
Browse files

Merge pull request #241 from aziem/ocaml-radix

Update OCaml bindings with RADIX16 option
parents 43899e83 9b4f51a9
No related branches found
No related tags found
No related merge requests found
...@@ -349,6 +349,7 @@ module Types (F: Cstubs.Types.TYPE) = ...@@ -349,6 +349,7 @@ module Types (F: Cstubs.Types.TYPE) =
| KS_OPT_SYNTAX_NASM | KS_OPT_SYNTAX_NASM
| KS_OPT_SYNTAX_MASM | KS_OPT_SYNTAX_MASM
| KS_OPT_SYNTAX_GAS | KS_OPT_SYNTAX_GAS
| KS_OPT_SYNTAX_RADIX16
let ks_opt_syntax_intel = constant "KS_OPT_SYNTAX_INTEL" int64_t let ks_opt_syntax_intel = constant "KS_OPT_SYNTAX_INTEL" int64_t
...@@ -356,6 +357,7 @@ module Types (F: Cstubs.Types.TYPE) = ...@@ -356,6 +357,7 @@ module Types (F: Cstubs.Types.TYPE) =
let ks_opt_syntax_nasm = constant "KS_OPT_SYNTAX_NASM" int64_t let ks_opt_syntax_nasm = constant "KS_OPT_SYNTAX_NASM" int64_t
let ks_opt_syntax_masm = constant "KS_OPT_SYNTAX_MASM" int64_t let ks_opt_syntax_masm = constant "KS_OPT_SYNTAX_MASM" int64_t
let ks_opt_syntax_gas = constant "KS_OPT_SYNTAX_GAS" int64_t let ks_opt_syntax_gas = constant "KS_OPT_SYNTAX_GAS" int64_t
let ks_opt_syntax_radix16 = constant "KS_OPT_SYNTAX_RADIX16" int64_t
let ks_opt_value = enum "ks_opt_value" [ let ks_opt_value = enum "ks_opt_value" [
KS_OPT_SYNTAX_INTEL, ks_opt_syntax_intel; KS_OPT_SYNTAX_INTEL, ks_opt_syntax_intel;
...@@ -363,6 +365,7 @@ module Types (F: Cstubs.Types.TYPE) = ...@@ -363,6 +365,7 @@ module Types (F: Cstubs.Types.TYPE) =
KS_OPT_SYNTAX_NASM, ks_opt_syntax_nasm; KS_OPT_SYNTAX_NASM, ks_opt_syntax_nasm;
KS_OPT_SYNTAX_MASM, ks_opt_syntax_masm; KS_OPT_SYNTAX_MASM, ks_opt_syntax_masm;
KS_OPT_SYNTAX_GAS, ks_opt_syntax_gas; KS_OPT_SYNTAX_GAS, ks_opt_syntax_gas;
KS_OPT_SYNTAX_RADIX16, ks_opt_syntax_radix16
] ]
......
...@@ -75,6 +75,7 @@ module Types : sig ...@@ -75,6 +75,7 @@ module Types : sig
| KS_OPT_SYNTAX_NASM | KS_OPT_SYNTAX_NASM
| KS_OPT_SYNTAX_MASM | KS_OPT_SYNTAX_MASM
| KS_OPT_SYNTAX_GAS | KS_OPT_SYNTAX_GAS
| KS_OPT_SYNTAX_RADIX16
type ks_mode = type ks_mode =
| KS_MODE_ARM | KS_MODE_ARM
......
...@@ -3,6 +3,7 @@ open Keystone ...@@ -3,6 +3,7 @@ open Keystone
module T = Keystone.Types module T = Keystone.Types
let test_ks arch mode ?(syntax=T.KS_OPT_SYNTAX_INTEL) ?(endian=T.KS_MODE_LITTLE_ENDIAN) asm = let test_ks arch mode ?(syntax=T.KS_OPT_SYNTAX_INTEL) ?(endian=T.KS_MODE_LITTLE_ENDIAN) asm =
Printf.printf "ASSEMBLING %s\n" asm; flush stdout;
match (ks_open arch ~endian:endian mode) with match (ks_open arch ~endian:endian mode) with
| Result.Ok engine -> | Result.Ok engine ->
begin begin
...@@ -16,7 +17,8 @@ let test_ks arch mode ?(syntax=T.KS_OPT_SYNTAX_INTEL) ?(endian=T.KS_MODE_LITTLE_ ...@@ -16,7 +17,8 @@ let test_ks arch mode ?(syntax=T.KS_OPT_SYNTAX_INTEL) ?(endian=T.KS_MODE_LITTLE_
result.stat_count; result.stat_count;
ignore(ks_close engine) ignore(ks_close engine)
| Result.Error s -> Printf.printf "ERROR: failed on ks_asm with: %s\n" s | Result.Error s -> ignore (ks_close engine);
Printf.printf "ERROR: failed on ks_asm with: %s\n" s
end end
| Result.Error e -> Printf.printf "ERROR: failed on ks_open: %s\n" e | Result.Error e -> Printf.printf "ERROR: failed on ks_open: %s\n" e
...@@ -28,6 +30,7 @@ let _ = ...@@ -28,6 +30,7 @@ let _ =
test_ks T.KS_ARCH_X86 T.KS_MODE_64 "add rax, rcx"; test_ks T.KS_ARCH_X86 T.KS_MODE_64 "add rax, rcx";
test_ks T.KS_ARCH_X86 T.KS_MODE_32 ~syntax:T.KS_OPT_SYNTAX_ATT "add %ecx, %eax"; test_ks T.KS_ARCH_X86 T.KS_MODE_32 ~syntax:T.KS_OPT_SYNTAX_ATT "add %ecx, %eax";
test_ks T.KS_ARCH_X86 T.KS_MODE_64 ~syntax:T.KS_OPT_SYNTAX_ATT "add %rcx, %rax"; test_ks T.KS_ARCH_X86 T.KS_MODE_64 ~syntax:T.KS_OPT_SYNTAX_ATT "add %rcx, %rax";
test_ks T.KS_ARCH_X86 T.KS_MODE_32 ~syntax:T.KS_OPT_SYNTAX_RADIX16 "add eax, 15";
test_ks T.KS_ARCH_ARM T.KS_MODE_ARM "sub r1, r2, r5"; test_ks T.KS_ARCH_ARM T.KS_MODE_ARM "sub r1, r2, r5";
test_ks T.KS_ARCH_ARM T.KS_MODE_ARM "sub r1, r2, r5"; test_ks T.KS_ARCH_ARM T.KS_MODE_ARM "sub r1, r2, r5";
...@@ -52,4 +55,4 @@ let _ = ...@@ -52,4 +55,4 @@ let _ =
test_ks T.KS_ARCH_SPARC T.KS_MODE_SPARC32 "add %g1, %g2, %g3"; test_ks T.KS_ARCH_SPARC T.KS_MODE_SPARC32 "add %g1, %g2, %g3";
test_ks T.KS_ARCH_SPARC T.KS_MODE_SPARC32 ~endian:T.KS_MODE_BIG_ENDIAN "add %g1, %g2, %g3"; test_ks T.KS_ARCH_SPARC T.KS_MODE_SPARC32 ~endian:T.KS_MODE_BIG_ENDIAN "add %g1, %g2, %g3";
test_ks T.KS_ARCH_SYSTEMZ T.KS_MODE_BIG_ENDIAN "a %r0, 4092(%r15, %r1)" test_ks T.KS_ARCH_SYSTEMZ T.KS_MODE_BIG_ENDIAN "a %r0, 4095(%r15, %r1)"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment