@@ -36,6 +36,14 @@
#define GET_C_STRUCT(a) ((struct mmap_interface *) a)
+/*
+ * Bytes_val has been introduced by Ocaml 4.06.1. So define our own version
+ * if needed.
+ */
+#ifndef Bytes_val
+#define Bytes_val(x) ((unsigned char *) Bp_val(x))
+#endif
+
CAMLprim value ml_interface_read(value ml_interface,
value ml_buffer,
value ml_len)
@@ -44,7 +52,7 @@ CAMLprim value ml_interface_read(value ml_interface,
CAMLlocal1(ml_result);
struct mmap_interface *interface = GET_C_STRUCT(ml_interface);
- char *buffer = String_val(ml_buffer);
+ unsigned char *buffer = Bytes_val(ml_buffer);
int len = Int_val(ml_len);
int result;
@@ -103,7 +111,7 @@ CAMLprim value ml_interface_write(value ml_interface,
CAMLlocal1(ml_result);
struct mmap_interface *interface = GET_C_STRUCT(ml_interface);
- char *buffer = String_val(ml_buffer);
+ const unsigned char *buffer = Bytes_val(ml_buffer);
int len = Int_val(ml_len);
int result;