sig
  type addr = nativeint
  val ( + ) : Rpi.Mem.addr -> Rpi.Mem.addr -> Rpi.Mem.addr
  val ( - ) : Rpi.Mem.addr -> Rpi.Mem.addr -> Rpi.Mem.addr
  val offset : Rpi.Mem.addr -> int -> Rpi.Mem.addr
  val of_int32 : int32 -> Rpi.Mem.addr
  val pp_addr : Format.formatter -> Rpi.Mem.addr -> unit
  val wait : int -> unit
  val dsb : unit -> unit
  val dmb : unit -> unit
  val isb : unit -> unit
  val get : Rpi.Mem.addr -> int
  val get_int : Rpi.Mem.addr -> int
  val get_int32 : Rpi.Mem.addr -> int32
  val get_int64 : Rpi.Mem.addr -> int64
  val set : Rpi.Mem.addr -> int -> unit
  val set_int : Rpi.Mem.addr -> int -> unit
  val set_int32 : Rpi.Mem.addr -> int32 -> unit
  val set_int64 : Rpi.Mem.addr -> int64 -> unit
  val set_bits : Rpi.Mem.addr -> bits:int -> int -> unit
  val set_int_bits : Rpi.Mem.addr -> bits:int -> int -> unit
  val set_int32_bits : Rpi.Mem.addr -> bits:int32 -> int32 -> unit
  val set_int64_bits : Rpi.Mem.addr -> bits:int64 -> int64 -> unit
  module Map :
    sig
      type ('a, 'b) t = ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t
      type bytes = (int, Bigarray.int8_unsigned_elt) Rpi.Mem.Map.t
      type int32s = (int32, Bigarray.int32_elt) Rpi.Mem.Map.t
      type int64s = (int64, Bigarray.int64_elt) Rpi.Mem.Map.t
      val length : ('a, 'b) Rpi.Mem.Map.t -> int
      val byte_length : ('a, 'b) Rpi.Mem.Map.t -> int
      val base : ('a, 'b) Rpi.Mem.Map.t -> Rpi.Mem.addr
      val bytes : Rpi.Mem.addr -> len:int -> Rpi.Mem.Map.bytes
      val int32s : Rpi.Mem.addr -> len:int -> Rpi.Mem.Map.int32s
      val int64s : Rpi.Mem.addr -> len:int -> Rpi.Mem.Map.int64s
    end
end