sig
  type t =
      (int, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
  exception Unaligned
  external page_size : unit -> int = "caml_aio_buffer_page_size" "noalloc"
  external create : int -> Aio.Buffer.t = "caml_aio_buffer_create"
  val clear : Aio.Buffer.t -> unit
  val length : Aio.Buffer.t -> int
  val get_int8 : Aio.Buffer.t -> int -> int
  val get_uint8 : Aio.Buffer.t -> int -> int
  val get_int16 : Aio.Buffer.t -> int -> int
  val get_uint16 : Aio.Buffer.t -> int -> int
  val get_int31 : Aio.Buffer.t -> int -> int
  val get_int32 : Aio.Buffer.t -> int -> int32
  val get_int64 : Aio.Buffer.t -> int -> int64
  val unsafe_get_uint8 : Aio.Buffer.t -> int -> int
  external unsafe_get_int8 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_int8" "noalloc"
  external unsafe_get_uint16 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_uint16" "noalloc"
  external unsafe_get_int16 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_int16" "noalloc"
  external unsafe_get_int31 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_int31" "noalloc"
  external unsafe_get_int32 : Aio.Buffer.t -> int -> int32
    = "caml_aio_buffer_get_int32"
  external unsafe_get_int64 : Aio.Buffer.t -> int -> int64
    = "caml_aio_buffer_get_int64"
  val set_int8 : Aio.Buffer.t -> int -> int -> unit
  val set_uint8 : Aio.Buffer.t -> int -> int -> unit
  val set_int16 : Aio.Buffer.t -> int -> int -> unit
  val set_uint16 : Aio.Buffer.t -> int -> int -> unit
  val set_int31 : Aio.Buffer.t -> int -> int -> unit
  val set_int32 : Aio.Buffer.t -> int -> int32 -> unit
  val set_int64 : Aio.Buffer.t -> int -> int64 -> unit
  val unsafe_set_uint8 : Aio.Buffer.t -> int -> int -> unit
  external unsafe_set_int8 : Aio.Buffer.t -> int -> int -> unit
    = "caml_aio_buffer_set_int8" "noalloc"
  val unsafe_set_uint16 : Aio.Buffer.t -> int -> int -> unit
  val unsafe_set_int16 : Aio.Buffer.t -> int -> int -> unit
  external unsafe_set_int31 : Aio.Buffer.t -> int -> int -> unit
    = "caml_aio_buffer_set_int31" "noalloc"
  external unsafe_set_int32 : Aio.Buffer.t -> int -> int32 -> unit
    = "caml_aio_buffer_set_int32" "noalloc"
  external unsafe_set_int64 : Aio.Buffer.t -> int -> int64 -> unit
    = "caml_aio_buffer_set_int64" "noalloc"
  external unsafe_get_substr : Aio.Buffer.t -> int -> int -> string
    = "caml_aio_buf_unsafe_get_substr_stub"
  val get_substr : Aio.Buffer.t -> int -> int -> string
  val get_str : Aio.Buffer.t -> string
  external unsafe_set_substr : Aio.Buffer.t -> int -> string -> unit
    = "caml_aio_buf_unsafe_set_substr_stub"
  val set_substr : Aio.Buffer.t -> int -> string -> unit
  val set_str : string -> Aio.Buffer.t
  val get_be_int16 : Aio.Buffer.t -> int -> int
  val get_be_uint16 : Aio.Buffer.t -> int -> int
  val get_be_int31 : Aio.Buffer.t -> int -> int
  val get_be_int32 : Aio.Buffer.t -> int -> int32
  val get_be_int64 : Aio.Buffer.t -> int -> int64
  external unsafe_get_be_int16 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_be_int16" "noalloc"
  external unsafe_get_be_uint16 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_be_uint16" "noalloc"
  external unsafe_get_be_int31 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_be_int31" "noalloc"
  external unsafe_get_be_int32 : Aio.Buffer.t -> int -> int32
    = "caml_aio_buffer_get_be_int32"
  external unsafe_get_be_int64 : Aio.Buffer.t -> int -> int64
    = "caml_aio_buffer_get_be_int64"
  val set_be_int16 : Aio.Buffer.t -> int -> int -> unit
  val set_be_uint16 : Aio.Buffer.t -> int -> int -> unit
  val set_be_int31 : Aio.Buffer.t -> int -> int -> unit
  val set_be_int32 : Aio.Buffer.t -> int -> int32 -> unit
  val set_be_int64 : Aio.Buffer.t -> int -> int64 -> unit
  external unsafe_set_be_int16 : Aio.Buffer.t -> int -> int -> unit
    = "caml_aio_buffer_set_be_int16" "noalloc"
  external unsafe_set_be_uint16 : Aio.Buffer.t -> int -> int -> unit
    = "caml_aio_buffer_set_be_uint16" "noalloc"
  external unsafe_set_be_int31 : Aio.Buffer.t -> int -> int -> unit
    = "caml_aio_buffer_set_be_int31" "noalloc"
  external unsafe_set_be_int32 : Aio.Buffer.t -> int -> int32 -> unit
    = "caml_aio_buffer_set_be_int32" "noalloc"
  external unsafe_set_be_int64 : Aio.Buffer.t -> int -> int64 -> unit
    = "caml_aio_buffer_set_be_int64" "noalloc"
  val get_le_int16 : Aio.Buffer.t -> int -> int
  val get_le_uint16 : Aio.Buffer.t -> int -> int
  val get_le_int31 : Aio.Buffer.t -> int -> int
  val get_le_int32 : Aio.Buffer.t -> int -> int32
  val get_le_int64 : Aio.Buffer.t -> int -> int64
  external unsafe_get_le_int16 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_le_int16" "noalloc"
  external unsafe_get_le_uint16 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_le_uint16" "noalloc"
  external unsafe_get_le_int31 : Aio.Buffer.t -> int -> int
    = "caml_aio_buffer_get_le_int31" "noalloc"
  external unsafe_get_le_int32 : Aio.Buffer.t -> int -> int32
    = "caml_aio_buffer_get_le_int32"
  external unsafe_get_le_int64 : Aio.Buffer.t -> int -> int64
    = "caml_aio_buffer_get_le_int64"
  val set_le_int16 : Aio.Buffer.t -> int -> int -> unit
  val set_le_uint16 : Aio.Buffer.t -> int -> int -> unit
  val set_le_int31 : Aio.Buffer.t -> int -> int -> unit
  val set_le_int32 : Aio.Buffer.t -> int -> int32 -> unit
  val set_le_int64 : Aio.Buffer.t -> int -> int64 -> unit
  external unsafe_set_le_int16 : Aio.Buffer.t -> int -> int -> unit
    = "caml_aio_buffer_set_le_int16" "noalloc"
  external unsafe_set_le_uint16 : Aio.Buffer.t -> int -> int -> unit
    = "caml_aio_buffer_set_le_uint16" "noalloc"
  external unsafe_set_le_int31 : Aio.Buffer.t -> int -> int -> unit
    = "caml_aio_buffer_set_le_int31" "noalloc"
  external unsafe_set_le_int32 : Aio.Buffer.t -> int -> int32 -> unit
    = "caml_aio_buffer_set_le_int32" "noalloc"
  external unsafe_set_le_int64 : Aio.Buffer.t -> int -> int64 -> unit
    = "caml_aio_buffer_set_le_int64" "noalloc"
  val get_net_int16 : Aio.Buffer.t -> int -> int
  val get_net_uint16 : Aio.Buffer.t -> int -> int
  val get_net_int31 : Aio.Buffer.t -> int -> int
  val get_net_int32 : Aio.Buffer.t -> int -> int32
  val get_net_int64 : Aio.Buffer.t -> int -> int64
  val unsafe_get_net_int16 : Aio.Buffer.t -> int -> int
  val unsafe_get_net_uint16 : Aio.Buffer.t -> int -> int
  val unsafe_get_net_int31 : Aio.Buffer.t -> int -> int
  val unsafe_get_net_int32 : Aio.Buffer.t -> int -> int32
  val unsafe_get_net_int64 : Aio.Buffer.t -> int -> int64
  val set_net_int16 : Aio.Buffer.t -> int -> int -> unit
  val set_net_uint16 : Aio.Buffer.t -> int -> int -> unit
  val set_net_int31 : Aio.Buffer.t -> int -> int -> unit
  val set_net_int32 : Aio.Buffer.t -> int -> int32 -> unit
  val set_net_int64 : Aio.Buffer.t -> int -> int64 -> unit
  val unsafe_set_net_int16 : Aio.Buffer.t -> int -> int -> unit
  val unsafe_set_net_uint16 : Aio.Buffer.t -> int -> int -> unit
  val unsafe_set_net_int31 : Aio.Buffer.t -> int -> int -> unit
  val unsafe_set_net_int32 : Aio.Buffer.t -> int -> int32 -> unit
  val unsafe_set_net_int64 : Aio.Buffer.t -> int -> int64 -> unit
end