Integer serialization

Serialized format is type and architecture independent, number of bytes generated depends only on value. Maximum integer size to be serialized is 64 bits.

Bits in first byte byte NNNNSxxx:
  • NNNN number of follower bytes.
  • S sign, 0 for positive, 1 for negative.
  • xxx Least significant 3 data bits.

Follower bytes hold the remaining data bits.

Required defines:

OSAL_SERIALIZE_SUPPORT = 1

Serializing an integer

The osal_intser_writer() function packs C integer x into buffer using serialization format. The function returns number of bytes written to the buffer.

os_int osal_intser_writer(
    os_char *buf,
    os_long x);

Reading an integer

The osal_intser_reader() function converts integer from serialization format into 64 bit C integer x. The function returns number of bytes read from the buffer.

os_int osal_intser_reader(
    os_char *buf,
    os_long *x);

191026, 23.5.2020/pekka