blob: d3ee9c532d5fa104b43010933070abd7b6ee2d76 [file] [log] [blame] [edit]
open Types
open Values
type memory
type t = memory
type size = int32 (* number of pages *)
type address = int64
type offset = int32
type count = int32
exception Type
exception Bounds
exception SizeOverflow
exception SizeLimit
exception OutOfMemory
val page_size : int64
val alloc : memory_type -> memory (* raises Type, SizeOverflow, OutOfMemory *)
val type_of : memory -> memory_type
val size : memory -> size
val bound : memory -> address
val grow : memory -> size -> unit
(* raises SizeLimit, SizeOverflow, OutOfMemory *)
val load_byte : memory -> address -> int (* raises Bounds *)
val store_byte : memory -> address -> int -> unit (* raises Bounds *)
val load_bytes : memory -> address -> int -> string (* raises Bounds *)
val store_bytes : memory -> address -> string -> unit (* raises Bounds *)
val load_num :
memory -> address -> offset -> num_type -> num (* raises Bounds *)
val store_num :
memory -> address -> offset -> num -> unit (* raises Bounds *)
val load_num_packed :
pack_size -> extension -> memory -> address -> offset -> num_type -> num
(* raises Type, Bounds *)
val store_num_packed :
pack_size -> memory -> address -> offset -> num -> unit
(* raises Type, Bounds *)
val load_vec :
memory -> address -> offset -> vec_type -> vec (* raises Bounds *)
val store_vec :
memory -> address -> offset -> vec -> unit
(* raises Type, Bounds *)
val load_vec_packed :
pack_size -> vec_extension -> memory -> address -> offset -> vec_type -> vec
(* raises Type, Bounds *)