All.BigEndian
Conversion functions from host to big endian byte order and back
Conversion of 16bit integers
uint16_from_host u16
converts an unsigned 16bit integer from host to big endian byte order
int16_from_host i16
converts a signed 16bit integer from host to big endian byte order
uint16_to_host u16
converts an unsigned 16bit integer from big endian to host byte order
int16_to_host i16
converts a signed 16bit integer from big endian to host byte order
Conversion of 31bit integeres On 64bit platforms this actualy converts 32bit integers without the need to allocate a new int32. On 32bit platforms it produces garbage. For use on 64bit platforms only!
uint31_from_host u31
converts an unsigned 31bit integer from host to big endian byte order
int31_from_host i31
converts a signed 31bit integer from host to big endian byte order
uint31_to_host u31
converts an unsigned 31bit integer from big endian to host byte order
int31_to_host i31
converts a signed 31bit integer from big endian to host byte order
Conversion of 32bit integers
int32_from_host int32
converts a 32bit integer from host to big endian byte order
int32_to_host int32
converts a 32bit integer from big endian to host byte order
Conversion of 64bit integers
int64_from_host int64
converts a 64bit integer from host to big endian byte order
int64_to_host int64
converts a 64bit integer from big endian to host byte order
unsafe_get_X str off
extract integer of type X
from string str
starting at offset off
. Unsigned types are 0 extended and signed types are sign extended to fill the ocaml type. Bounds checking is not performed. Use with caution and only when the program logic guarantees that the access is within bounds.
Note: The 31bit functions extract a 32bit integer and return it as ocaml int. On 32bit platforms this can overflow as ocaml integers are 31bit signed there. No error is reported if this occurs. Use with care. Note: The same applies to 63bit functions.
unsafe_set_X buf off v
stores the integer v
as type X
in the buffer buf
starting at offset off
. Bounds checking is not performed. Use with caution and only when the program logic guarantees that the access is within bounds.
Note: The 31bit functions store an ocaml int as 32bit integer. On 32bit platforms ocaml integers are 31bit signed and will be sign extended to 32bit first. Use with care. Note: The same applies to 63bit functions.
set_X buf off v
same as unsafe_set_X
but with bounds checking.