java/ocaml/python: add the missing generic instruction operand types
diff --git a/bindings/ocaml/capstone.ml b/bindings/ocaml/capstone.ml
index d3127bc..92f340a 100644
--- a/bindings/ocaml/capstone.ml
+++ b/bindings/ocaml/capstone.ml
@@ -11,6 +11,7 @@
open Xcore
open Printf (* debug *)
+(* Hardware architectures *)
type arch =
| CS_ARCH_ARM
| CS_ARCH_ARM64
@@ -21,6 +22,7 @@
| CS_ARCH_SYSZ
| CS_ARCH_XCORE
+(* Hardware modes *)
type mode =
| CS_MODE_LITTLE_ENDIAN (* little-endian mode (default mode) *)
| CS_MODE_ARM (* ARM mode *)
@@ -37,6 +39,7 @@
| CS_MODE_BIG_ENDIAN (* big-endian mode *)
+(* Runtime option for the disassembled engine *)
type opt_type =
| CS_OPT_SYNTAX (* Asssembly output syntax *)
| CS_OPT_DETAIL (* Break down instruction structure into details *)
@@ -46,6 +49,7 @@
| CS_OPT_SKIPDATA_SETUP (* Setup user-defined function for SKIPDATA option *)
+(* Runtime option value (associated with option type above) *)
let _CS_OPT_OFF = 0L;; (* Turn OFF an option - default option of CS_OPT_DETAIL, CS_OPT_SKIPDATA. *)
let _CS_OPT_ON = 3L;; (* Turn ON an option (CS_OPT_DETAIL, CS_OPT_SKIPDATA). *)
let _CS_OPT_SYNTAX_DEFAULT = 0L;; (* Default asm syntax (CS_OPT_SYNTAX). *)
@@ -53,6 +57,12 @@
let _CS_OPT_SYNTAX_ATT = 2L;; (* X86 ATT asm syntax (CS_OPT_SYNTAX). *)
let _CS_OPT_SYNTAX_NOREGNAME = 3L;; (* Prints register name with only number (CS_OPT_SYNTAX) *)
+(* Common instruction operand types - to be consistent across all architectures. *)
+let _CS_OP_INVALID = 0;; (* uninitialized/invalid operand. *)
+let _CS_OP_REG = 1;; (* Register operand. *)
+let _CS_OP_IMM = 2;; (* Immediate operand. *)
+let _CS_OP_MEM = 3;; (* Memory operand. *)
+let _CS_OP_FP = 4;; (* Floating-Point operand. *)
type cs_arch =
| CS_INFO_ARM of cs_arm