blob: 6919f2f407960e0010cc831eec83347a9579195d (
plain) (
tree)
|
|
(* open Ctypes *)
module Types = Types_generated
module Functions (F : Ctypes.FOREIGN) = struct
(* open F *)
open Ctypes_static
let os_extension =
if Sys.os_type = "Unix" then
let ic = Unix.open_process_in "uname" in
let uname = input_line ic in
let () = close_in ic in
if uname = "Darwin" then "dylib" else "so"
else "dll"
let libmerklecpp =
Dl.dlopen ~flags:[ RTLD_GLOBAL; RTLD_NOW ]
~filename:
(Sys.getenv "LIBRELATIONAL_ENGINE_LIB_PATH"
^ "/librelational_engine." ^ os_extension)
let compute_hash =
Foreign.foreign ~from:libmerklecpp "compute_hash"
(ptr char @-> Ctypes.string @-> returning void)
let merkle_generate_root =
Foreign.foreign ~from:libmerklecpp "merkle_generate_root"
(ptr Ctypes.string @-> int @-> ptr char @-> returning void)
end
|