All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches

Serial Number Arithmetic (RFC 1982) More...

Detailed Description

Serial Number Arithmetic (RFC 1982)

See also
RFC 1982 - Serial Number Arithmetic
Author
Cenk Gündoğan cnkgn.nosp@m.dgn@.nosp@m.gmail.nosp@m..com

Definition in file seq.h.

#include <stdint.h>
#include <errno.h>
+ Include dependency graph for seq.h:

Go to the source code of this file.

#define SEQ_LIMIT(X)
 Maximum for the addition of a positive integer.
 
typedef uint8_t seq8_t
 A 8 bit sequence number.
 
typedef uint16_t seq16_t
 A 16 bit sequence number.
 
typedef uint32_t seq32_t
 A 32 bit sequence number.
 
typedef uint64_t seq64_t
 A 64 bit sequence number.
 
seq8_t seq8_adds (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.
 
static seq8_t seq8_add (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.
 
static seq8_t seq8_incs (seq8_t s, uint8_t space)
 Increment a sequence number s by 1 in the serial number space.
 
static seq8_t seq8_inc (seq8_t s)
 Increment a sequence number s by 1 in the serial number space UINT8_MAX.
 
int seq8_compares (seq8_t s1, seq8_t s2, uint8_t space)
 Compare sequence numbers s1, s2 in the serial number space.
 
static int seq8_compare (seq8_t s1, seq8_t s2)
 Compare sequence numbers s1, s2 in the serial number space UINT8_MAX.
 
seq16_t seq16_adds (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.
 
static seq16_t seq16_add (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.
 
static seq16_t seq16_incs (seq16_t s, uint16_t space)
 Increment a sequence number s by 1 in the serial number space.
 
static seq16_t seq16_inc (seq16_t s)
 Increment a sequence number s by 1 in the serial number space UINT16_MAX.
 
int seq16_compares (seq16_t s1, seq16_t s2, uint16_t space)
 Compare sequence numbers s1, s2 in the serial number space.
 
static int seq16_compare (seq16_t s1, seq16_t s2)
 Compare sequence numbers s1, s2 in the serial number space UINT16_MAX.
 
seq32_t seq32_adds (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.
 
static seq32_t seq32_add (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.
 
static seq32_t seq32_incs (seq32_t s, uint32_t space)
 Increment a sequence number s by 1 in the serial number space.
 
static seq32_t seq32_inc (seq32_t s)
 Increment a sequence number s by 1 in the serial number space UINT32_MAX.
 
int seq32_compares (seq32_t s1, seq32_t s2, uint32_t space)
 Compare sequence numbers s1, s2 in the serial number space.
 
static int seq32_compare (seq32_t s1, seq32_t s2)
 Compare sequence numbers s1, s2 in the serial number space UINT32_MAX.
 
seq64_t seq64_adds (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.
 
static seq64_t seq64_add (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.
 
static seq64_t seq64_incs (seq64_t s, uint64_t space)
 Increment a sequence number s by 1 in the serial number space.
 
static seq64_t seq64_inc (seq64_t s)
 Increment a sequence number s by 1 in the serial number space UINT64_MAX.
 
int seq64_compares (seq64_t s1, seq64_t s2, uint64_t space)
 Compare sequence numbers s1, s2 in the serial number space.
 
static int seq64_compare (seq64_t s1, seq64_t s2)
 Compare sequence numbers s1, s2 in the serial number space UINT64_MAX.
 

Macro Definition Documentation

◆ SEQ_LIMIT

#define SEQ_LIMIT ( X)
Value:
(X >> 1)

Maximum for the addition of a positive integer.

X denotes the size of the space

Definition at line 35 of file seq.h.

Typedef Documentation

◆ seq16_t

typedef uint16_t seq16_t

A 16 bit sequence number.

Definition at line 45 of file seq.h.

◆ seq32_t

typedef uint32_t seq32_t

A 32 bit sequence number.

Definition at line 50 of file seq.h.

◆ seq64_t

typedef uint64_t seq64_t

A 64 bit sequence number.

Definition at line 55 of file seq.h.

◆ seq8_t

typedef uint8_t seq8_t

A 8 bit sequence number.

Definition at line 40 of file seq.h.

Function Documentation

◆ seq16_add()

static seq16_t seq16_add ( seq16_t s,
uint16_t n )
inlinestatic

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
[in]ssequence number
[in]npositive integer in the range of [0 .. 127]
Returns
s + n, if valid
s, if n is out of range

Definition at line 165 of file seq.h.

◆ seq16_adds()

seq16_t seq16_adds ( 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
[in]ssequence number
[in]npositive integer in the range of [0 .. ((space / 2) - 1)]
[in]spaceserial number space must be a power of 2 minus 1
Returns
s + n, if valid
s, if n is out of range

◆ seq16_compare()

static int seq16_compare ( seq16_t s1,
seq16_t s2 )
inlinestatic

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

See also
3.2. Comparison
Parameters
[in]s1first sequence number
[in]s2second sequence number
Returns
-1, if s1 < s2
0, if s1 == s2
1, if s1 > s2
-EINVAL, if comparison of the pair (s1,s2) is undefined

Definition at line 218 of file seq.h.

◆ seq16_compares()

int seq16_compares ( seq16_t s1,
seq16_t s2,
uint16_t space )

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

See also
3.2. Comparison
Parameters
[in]s1first sequence number
[in]s2second sequence number
[in]spaceserial number space must be a power of 2 minus 1
Returns
-1, if s1 < s2
0, if s1 == s2
1, if s1 > s2
-EINVAL, if comparison of the pair (s1,s2) is undefined

◆ seq16_inc()

static seq16_t seq16_inc ( seq16_t s)
inlinestatic

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

Parameters
[in]ssequence number
Returns
s + 1

Definition at line 186 of file seq.h.

◆ seq16_incs()

static seq16_t seq16_incs ( seq16_t s,
uint16_t space )
inlinestatic

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

Parameters
[in]ssequence number
[in]spaceserial number space must be a power of 2 minus 1
Returns
s + 1

Definition at line 176 of file seq.h.

◆ seq32_add()

static seq32_t seq32_add ( seq32_t s,
uint32_t n )
inlinestatic

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
[in]ssequence number
[in]npositive integer in the range of [0 .. 127]
Returns
s + n, if valid
s, if n is out of range

Definition at line 248 of file seq.h.

◆ seq32_adds()

seq32_t seq32_adds ( 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
[in]ssequence number
[in]npositive integer in the range of [0 .. ((space / 2) - 1)]
[in]spaceserial number space must be a power of 2 minus 1
Returns
s + n, if valid
s, if n is out of range

◆ seq32_compare()

static int seq32_compare ( seq32_t s1,
seq32_t s2 )
inlinestatic

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

See also
3.2. Comparison
Parameters
[in]s1first sequence number
[in]s2second sequence number
Returns
-1, if s1 < s2
0, if s1 == s2
1, if s1 > s2
-EINVAL, if comparison of the pair (s1,s2) is undefined

Definition at line 301 of file seq.h.

◆ seq32_compares()

int seq32_compares ( seq32_t s1,
seq32_t s2,
uint32_t space )

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

See also
3.2. Comparison
Parameters
[in]s1first sequence number
[in]s2second sequence number
[in]spaceserial number space must be a power of 2 minus 1
Returns
-1, if s1 < s2
0, if s1 == s2
1, if s1 > s2
-EINVAL, if comparison of the pair (s1,s2) is undefined

◆ seq32_inc()

static seq32_t seq32_inc ( seq32_t s)
inlinestatic

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

Parameters
[in]ssequence number
Returns
s + 1

Definition at line 269 of file seq.h.

◆ seq32_incs()

static seq32_t seq32_incs ( seq32_t s,
uint32_t space )
inlinestatic

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

Parameters
[in]ssequence number
[in]spaceserial number space must be a power of 2 minus 1
Returns
s + 1

Definition at line 259 of file seq.h.

◆ seq64_add()

static seq64_t seq64_add ( seq64_t s,
uint64_t n )
inlinestatic

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
[in]ssequence number
[in]npositive integer in the range of [0 .. 127]
Returns
s + n, if valid
s, if n is out of range

Definition at line 331 of file seq.h.

◆ seq64_adds()

seq64_t seq64_adds ( 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
[in]ssequence number
[in]npositive integer in the range of [0 .. ((space / 2) - 1)]
[in]spaceserial number space must be a power of 2 minus 1
Returns
s + n, if valid
s, if n is out of range

◆ seq64_compare()

static int seq64_compare ( seq64_t s1,
seq64_t s2 )
inlinestatic

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

See also
3.2. Comparison
Parameters
[in]s1first sequence number
[in]s2second sequence number
Returns
-1, if s1 < s2
0, if s1 == s2
1, if s1 > s2
-EINVAL, if comparison of the pair (s1,s2) is undefined

Definition at line 384 of file seq.h.

◆ seq64_compares()

int seq64_compares ( seq64_t s1,
seq64_t s2,
uint64_t space )

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

See also
3.2. Comparison
Parameters
[in]s1first sequence number
[in]s2second sequence number
[in]spaceserial number space must be a power of 2 minus 1
Returns
-1, if s1 < s2
0, if s1 == s2
1, if s1 > s2
-EINVAL, if comparison of the pair (s1,s2) is undefined

◆ seq64_inc()

static seq64_t seq64_inc ( seq64_t s)
inlinestatic

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

Parameters
[in]ssequence number
Returns
s + 1

Definition at line 352 of file seq.h.

◆ seq64_incs()

static seq64_t seq64_incs ( seq64_t s,
uint64_t space )
inlinestatic

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

Parameters
[in]ssequence number
[in]spaceserial number space must be a power of 2 minus 1
Returns
s + 1

Definition at line 342 of file seq.h.

◆ seq8_add()

static seq8_t seq8_add ( seq8_t s,
uint8_t n )
inlinestatic

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
[in]ssequence number
[in]npositive integer in the range of [0 .. 127]
Returns
s + n, if valid
s, if n is out of range

Definition at line 82 of file seq.h.

◆ seq8_adds()

seq8_t seq8_adds ( 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
[in]ssequence number
[in]npositive integer in the range of [0 .. ((space / 2) - 1)]
[in]spaceserial number space must be a power of 2 minus 1
Returns
s + n, if valid
s, if n is out of range

◆ seq8_compare()

static int seq8_compare ( seq8_t s1,
seq8_t s2 )
inlinestatic

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

See also
3.2. Comparison
Parameters
[in]s1first sequence number
[in]s2second sequence number
Returns
-1, if s1 < s2
0, if s1 == s2
1, if s1 > s2
-EINVAL, if comparison of the pair (s1,s2) is undefined

Definition at line 135 of file seq.h.

◆ seq8_compares()

int seq8_compares ( seq8_t s1,
seq8_t s2,
uint8_t space )

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

See also
3.2. Comparison
Parameters
[in]s1first sequence number
[in]s2second sequence number
[in]spaceserial number space must be a power of 2 minus 1
Returns
-1, if s1 < s2
0, if s1 == s2
1, if s1 > s2
-EINVAL, if comparison of the pair (s1,s2) is undefined

◆ seq8_inc()

static seq8_t seq8_inc ( seq8_t s)
inlinestatic

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

Parameters
[in]ssequence number
Returns
s + 1

Definition at line 103 of file seq.h.

◆ seq8_incs()

static seq8_t seq8_incs ( seq8_t s,
uint8_t space )
inlinestatic

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

Parameters
[in]ssequence number
[in]spaceserial number space must be a power of 2 minus 1
Returns
s + 1

Definition at line 93 of file seq.h.