Io_pageSourceMemory allocation.
Memory allocation interface.
Type of memory blocks.
Size of one page of memory in bytes.
get_addr t returns the address of the underlying bigarray of t. This is useful for debugging
get_page t returns the page offset (get_addr t) mod page_size, starting at 0 .
get n allocates and returns a memory block of n pages. If there is not enough memory, an Out_of_memory exception is raised. Note that this may be a recoverable situation, since this function allocates memory from a page-aligned pool, whereas the OCaml garbage collector will be running in its own heap that may have spare memory despite the Out_of_memory being raised from this function call.
get_buf n allocates and returns a memory block of n pages, represented as a Cstruct.t. If there is not enough memory, an Out_of_memory exception is raised.
pages n allocates a memory block of n pages and return the list of pages allocated.
of_cstruct t converts a page-aligned buffer back to an Io_page. It raises Buffer_is_not_page_aligned if t is not page aligned or Buffer_not_multiple_of_page_size if t is not a whole number of pages in length. TODO: currently assumes the underlying Bigarray is page aligned.
to_string t will allocate a fresh string and copy the contents of t into the string.
to_pages t is a list of size memory blocks of one page each, where size is the size of t in pages.
string_blit src srcoff dst dstoff len copies len bytes from string src, starting at byte number srcoff, to memory block dst, starting at byte number dstoff.
blit t1 t2 is the same as Bigarray.Array1.blit.
round_to_page_size n returns the number of bytes that will be allocated for storing n bytes in memory