[OCaml] Implement Llvm_linker, bindings for the IR linker
[oota-llvm.git] / bindings / ocaml / linker / llvm_linker.mli
diff --git a/bindings/ocaml/linker/llvm_linker.mli b/bindings/ocaml/linker/llvm_linker.mli
new file mode 100644 (file)
index 0000000..9752b65
--- /dev/null
@@ -0,0 +1,27 @@
+(*===-- llvm_linker.mli - LLVM OCaml Interface -----------------*- OCaml -*-===*
+ *
+ *                     The LLVM Compiler Infrastructure
+ *
+ * This file is distributed under the University of Illinois Open Source
+ * License. See LICENSE.TXT for details.
+ *
+ *===----------------------------------------------------------------------===*)
+
+(** Linker.
+
+    This interface provides an OCaml API for LLVM bitcode linker,
+    the classes in the Linker library. *)
+
+exception Error of string
+
+(** Linking mode. *)
+module Mode : sig
+  type t =
+  | DestroySource
+  | PreserveSource
+end
+
+(** [link_modules dst src mode] links [src] into [dst], raising [Error]
+    if the linking fails. *)
+external link_modules : Llvm.llmodule -> Llvm.llmodule -> Mode.t -> unit
+                      = "llvm_link_modules"
\ No newline at end of file