seq.h

Serial Number Arithmetic (RFC 1982)

SEQ_LIMIT( X)

Maximum for the addition of a positive integer.

1
(X >> 1)

X denotes the size of the space

uint8_t seq8_t

A 8 bit sequence number.

uint16_t seq16_t

A 16 bit sequence number.

uint32_t seq32_t

A 32 bit sequence number.

uint64_t seq64_t

A 64 bit sequence number.

seq.h::seq8_t seq8_adds(seq.h::seq8_t s, uint8_t n, uint8_t space)

Addition of a 8 bit sequence number s and a positive integer n in the serial number space.

See also

3.1. Addition

Parameters

s:sequence number
n:positive integer in the range of [0 .. ((space / 2) - 1)]
space:serial number space must be a power of 2 minus 1

Return values

  • s + n, if valid
  • s, if n is out of range
seq.h::seq8_t seq8_add(seq.h::seq8_t s, uint8_t n)

Addition of a 8 bit sequence number s and a positive integer n in the serial number space UINT8_MAX.

See also

3.1. Addition

Parameters

s:sequence number
n:positive integer in the range of [0 .. 127]

Return values

  • s + n, if valid
  • s, if n is out of range
seq.h::seq8_t seq8_incs(seq.h::seq8_t s, uint8_t space)

Increment a sequence number s by 1 in the serial number space.

Parameters

s:sequence number
space:serial number space must be a power of 2 minus 1

Return values

  • s + 1
seq.h::seq8_t seq8_inc(seq.h::seq8_t s)

Increment a sequence number s by 1 in the serial number space UINT8_MAX.

Parameters

s:sequence number

Return values

  • s + 1
int seq8_compares(seq.h::seq8_t s1, seq.h::seq8_t s2, uint8_t space)

Compare sequence numbers s1, s2 in the serial number space.

Parameters

s1:first sequence number
s2:second sequence number
space:serial number space must be a power of 2 minus 1

Return values

  • -1, if s1 < s2
  • 0, if s1 == s2
  • 1, if s1 > s2
  • -EINVAL, if comparison of the pair (s1,s2) is undefined
int seq8_compare(seq.h::seq8_t s1, seq.h::seq8_t s2)

Compare sequence numbers s1, s2 in the serial number space UINT8_MAX.

Parameters

s1:first sequence number
s2:second sequence number

Return values

  • -1, if s1 < s2
  • 0, if s1 == s2
  • 1, if s1 > s2
  • -EINVAL, if comparison of the pair (s1,s2) is undefined
seq.h::seq16_t seq16_adds(seq.h::seq16_t s, uint16_t n, uint16_t space)

Addition of a 16 bit sequence number s and a positive integer n in the serial number space.

See also

3.1. Addition

Parameters

s:sequence number
n:positive integer in the range of [0 .. ((space / 2) - 1)]
space:serial number space must be a power of 2 minus 1

Return values

  • s + n, if valid
  • s, if n is out of range
seq.h::seq16_t seq16_add(seq.h::seq16_t s, uint16_t n)

Addition of a 16 bit sequence number s and a positive integer n in the serial number space UINT16_MAX.

See also

3.1. Addition

Parameters

s:sequence number
n:positive integer in the range of [0 .. 127]

Return values

  • s + n, if valid
  • s, if n is out of range
seq.h::seq16_t seq16_incs(seq.h::seq16_t s, uint16_t space)

Increment a sequence number s by 1 in the serial number space.

Parameters

s:sequence number
space:serial number space must be a power of 2 minus 1

Return values

  • s + 1
seq.h::seq16_t seq16_inc(seq.h::seq16_t s)

Increment a sequence number s by 1 in the serial number space UINT16_MAX.

Parameters

s:sequence number

Return values

  • s + 1
int seq16_compares(seq.h::seq16_t s1, seq.h::seq16_t s2, uint16_t space)

Compare sequence numbers s1, s2 in the serial number space.

Parameters

s1:first sequence number
s2:second sequence number
space:serial number space must be a power of 2 minus 1

Return values

  • -1, if s1 < s2
  • 0, if s1 == s2
  • 1, if s1 > s2
  • -EINVAL, if comparison of the pair (s1,s2) is undefined
int seq16_compare(seq.h::seq16_t s1, seq.h::seq16_t s2)

Compare sequence numbers s1, s2 in the serial number space UINT16_MAX.

Parameters

s1:first sequence number
s2:second sequence number

Return values

  • -1, if s1 < s2
  • 0, if s1 == s2
  • 1, if s1 > s2
  • -EINVAL, if comparison of the pair (s1,s2) is undefined
seq.h::seq32_t seq32_adds(seq.h::seq32_t s, uint32_t n, uint32_t space)

Addition of a 32 bit sequence number s and a positive integer n in the serial number space.

See also

3.1. Addition

Parameters

s:sequence number
n:positive integer in the range of [0 .. ((space / 2) - 1)]
space:serial number space must be a power of 2 minus 1

Return values

  • s + n, if valid
  • s, if n is out of range
seq.h::seq32_t seq32_add(seq.h::seq32_t s, uint32_t n)

Addition of a 32 bit sequence number s and a positive integer n in the serial number space UINT32_MAX.

See also

3.1. Addition

Parameters

s:sequence number
n:positive integer in the range of [0 .. 127]

Return values

  • s + n, if valid
  • s, if n is out of range
seq.h::seq32_t seq32_incs(seq.h::seq32_t s, uint32_t space)

Increment a sequence number s by 1 in the serial number space.

Parameters

s:sequence number
space:serial number space must be a power of 2 minus 1

Return values

  • s + 1
seq.h::seq32_t seq32_inc(seq.h::seq32_t s)

Increment a sequence number s by 1 in the serial number space UINT32_MAX.

Parameters

s:sequence number

Return values

  • s + 1
int seq32_compares(seq.h::seq32_t s1, seq.h::seq32_t s2, uint32_t space)

Compare sequence numbers s1, s2 in the serial number space.

Parameters

s1:first sequence number
s2:second sequence number
space:serial number space must be a power of 2 minus 1

Return values

  • -1, if s1 < s2
  • 0, if s1 == s2
  • 1, if s1 > s2
  • -EINVAL, if comparison of the pair (s1,s2) is undefined
int seq32_compare(seq.h::seq32_t s1, seq.h::seq32_t s2)

Compare sequence numbers s1, s2 in the serial number space UINT32_MAX.

Parameters

s1:first sequence number
s2:second sequence number

Return values

  • -1, if s1 < s2
  • 0, if s1 == s2
  • 1, if s1 > s2
  • -EINVAL, if comparison of the pair (s1,s2) is undefined
seq.h::seq64_t seq64_adds(seq.h::seq64_t s, uint64_t n, uint64_t space)

Addition of a 64 bit sequence number s and a positive integer n in the serial number space.

See also

3.1. Addition

Parameters

s:sequence number
n:positive integer in the range of [0 .. ((space / 2) - 1)]
space:serial number space must be a power of 2 minus 1

Return values

  • s + n, if valid
  • s, if n is out of range
seq.h::seq64_t seq64_add(seq.h::seq64_t s, uint64_t n)

Addition of a 64 bit sequence number s and a positive integer n in the serial number space UINT64_MAX.

See also

3.1. Addition

Parameters

s:sequence number
n:positive integer in the range of [0 .. 127]

Return values

  • s + n, if valid
  • s, if n is out of range
seq.h::seq64_t seq64_incs(seq.h::seq64_t s, uint64_t space)

Increment a sequence number s by 1 in the serial number space.

Parameters

s:sequence number
space:serial number space must be a power of 2 minus 1

Return values

  • s + 1
seq.h::seq64_t seq64_inc(seq.h::seq64_t s)

Increment a sequence number s by 1 in the serial number space UINT64_MAX.

Parameters

s:sequence number

Return values

  • s + 1
int seq64_compares(seq.h::seq64_t s1, seq.h::seq64_t s2, uint64_t space)

Compare sequence numbers s1, s2 in the serial number space.

Parameters

s1:first sequence number
s2:second sequence number
space:serial number space must be a power of 2 minus 1

Return values

  • -1, if s1 < s2
  • 0, if s1 == s2
  • 1, if s1 > s2
  • -EINVAL, if comparison of the pair (s1,s2) is undefined
int seq64_compare(seq.h::seq64_t s1, seq.h::seq64_t s2)

Compare sequence numbers s1, s2 in the serial number space UINT64_MAX.

Parameters

s1:first sequence number
s2:second sequence number

Return values

  • -1, if s1 < s2
  • 0, if s1 == s2
  • 1, if s1 > s2
  • -EINVAL, if comparison of the pair (s1,s2) is undefined