fehQlibs 29
Qlibs
Loading...
Searching...
No Matches
uint_t.h
Go to the documentation of this file.
1#include <stdint.h>
2
11
12#define uint_pack(s,X) _Generic((X),\
13 uint8: uint8_pack, \
14 uint16: uint16_pack, \
15 uint32: uint32_pack, \
16 uint64: uint64_pack, \
17 uint128: uint128_pack \
18 ) (s,X)
19
20#define uint_pack_big(s,X) _Generic((X),\
21 uint8: uint8_pack_big, \
22 uint16: uint16_pack_big, \
23 uint32: uint32_pack_big, \
24 uint64: uint64_pack_big, \
25 uint128: uint128_pack_big \
26 ) (s,X)
27
28#define uint_unpack(s,X) _Generic((X),\
29 uint8 *: uint8_unpack, \
30 uint16 *: uint16_unpack, \
31 uint32 *: uint32_unpack, \
32 uint64 *: uint64_unpack, \
33 uint128 *: uint128_unpack \
34 ) (s,X)
35
36#define uint_unpack_big(s,X) _Generic((X),\
37 uint8 *: uint8_unpack_big, \
38 uint16 *: uint16_unpack_big, \
39 uint32 *: uint32_unpack_big, \
40 uint64 *: uint64_unpack_big, \
41 uint128 *: uint128_unpack_big \
42 ) (s,X)
43
44#ifndef UINT8_H
45#define UINT8_H
46
47#ifdef HAS_UINT8_H
48typedef uint8_t uint8;
49#else
50typedef unsigned char uint8;
51#endif
52
53extern void uint8_pack(char [2],uint8);
54extern void uint8_pack_big(char [2],uint8);
55extern void uint8_unpack(char [2],uint8 *);
56extern void uint8_unpack_big(char [2],uint8 *);
57#endif
58
59#ifndef UINT16_H
60#define UINT16_H
61
62typedef uint16_t uint16;
63
64extern void uint16_pack(char [2],uint16);
65extern void uint16_pack_big(char [2],uint16);
66extern void uint16_unpack(char [2],uint16 *);
67extern void uint16_unpack_big(char [2],uint16 *);
68#endif
69
70#ifndef UINT32_H
71#define UINT32_H
72
73typedef uint32_t uint32;
74
75extern void uint32_pack(char [4],uint32);
76extern void uint32_pack_big(char [4],uint32);
77extern void uint32_unpack(char [4],uint32 *);
78extern void uint32_unpack_big(char [4],uint32 *);
79#endif
80
81#ifndef UINT64_H
82#define UINT64_H
83
84#ifdef HAS_UINT64_H
85typedef uint64_t uint64;
86#else
87typedef unsigned long long uint64;
88#endif
89
90extern void uint64_pack(char [8],uint64);
91extern void uint64_pack_big(char [8],uint64);
92extern void uint64_unpack(char [8],uint64 *);
93extern void uint64_unpack_big(char [8],uint64 *);
94#endif
95
96#ifndef UINT128_H
97#define UINT128_H
98
99/* uint128 used for native IPv6 address presentation */
100
102{
103 uint64_t hi; /* routing area */
104 uint64_t lo; /* local area */
105};
106
107typedef struct uint128_t uint128;
108
109extern void uint128_pack(char [16],uint128);
110extern void uint128_pack_big(char [16],uint128);
111extern void uint128_unpack(char [16],uint128 *);
112extern void uint128_unpack_big(char [16],uint128 *);
113#endif
void uint64_unpack(char[8], uint64 *)
Definition uint64p.c:33
unsigned long long uint64
Definition uint_t.h:87
void uint128_pack_big(char[16], uint128)
Definition uint128p.c:30
void uint8_pack_big(char[2], uint8)
Definition uint8p.c:15
void uint32_pack(char[4], uint32)
Definition uint32p.c:10
struct uint128_t uint128
Definition uint_t.h:107
void uint8_unpack_big(char[2], uint8 *)
Definition uint8p.c:31
void uint16_unpack_big(char[2], uint16 *)
Definition uint16p.c:32
void uint8_pack(char[2], uint8)
Definition uint8p.c:9
void uint64_unpack_big(char[8], uint64 *)
Definition uint64p.c:48
void uint128_unpack_big(char[16], uint128 *)
Definition uint128p.c:76
void uint128_unpack(char[16], uint128 *)
Definition uint128p.c:51
void uint128_pack(char[16], uint128)
Definition uint128p.c:10
void uint32_unpack_big(char[4], uint32 *)
Definition uint32p.c:37
void uint64_pack_big(char[8], uint64)
Definition uint64p.c:21
void uint32_pack_big(char[4], uint32)
Definition uint32p.c:17
void uint16_pack(char[2], uint16)
Definition uint16p.c:10
void uint8_unpack(char[2], uint8 *)
Definition uint8p.c:21
void uint32_unpack(char[4], uint32 *)
Definition uint32p.c:25
uint16_t uint16
Definition uint_t.h:62
void uint64_pack(char[8], uint64)
Definition uint64p.c:10
void uint16_pack_big(char[2], uint16)
Definition uint16p.c:16
uint32_t uint32
Definition uint_t.h:73
unsigned char uint8
Definition uint_t.h:50
void uint16_unpack(char[2], uint16 *)
Definition uint16p.c:22
uint64_t hi
Definition uint_t.h:103
uint64_t lo
Definition uint_t.h:104