Adding bindings for memory buffers and module providers. Switching
[oota-llvm.git] / bindings / ocaml / bitreader / llvm_bitreader.mli
index 37750bc..bc5efc8 100644 (file)
  *===----------------------------------------------------------------------===*)
 
 
-type bitreader_result =
-| Bitreader_success of Llvm.llmodule
-| Bitreader_failure of string
+exception Error of string
 
+(** [read_bitcode_file path] reads the bitcode for a new module [m] from the
+    file at [path]. Returns [Success m] if successful, and [Failure msg]
+    otherwise, where [msg] is a description of the error encountered.
+    See the function [llvm::getBitcodeModuleProvider]. **)
+external get_module_provider : Llvm.llmemorybuffer -> Llvm.llmoduleprovider
+                             = "llvm_get_module_provider"
 
-(** [read_bitcode_file path] reads the bitcode for module [m] from the file at
-    [path]. Returns [Reader_success m] if successful, and [Reader_failure msg]
-    otherwise, where [msg] is a description of the error encountered. **)
-external read_bitcode_file : string -> bitreader_result
-                           = "llvm_read_bitcode_file"
+(** [parse_bitcode mb] parses the bitcode for a new module [m] from the memory
+    buffer [mb]. Returns [Success m] if successful, and [Failure msg] otherwise,
+    where [msg] is a description of the error encountered.
+    See the function [llvm::ParseBitcodeFile]. **)
+external parse_bitcode : Llvm.llmemorybuffer -> Llvm.llmodule
+                       = "llvm_parse_bitcode"