fehQlibs 28
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 *,uint8);
54extern void uint8_pack_big(char *,uint8);
55extern void uint8_unpack(char *,uint8 *);
56extern void uint8_unpack_big(char *,uint8 *);
57#endif
58
59#ifndef UINT16_H
60#define UINT16_H
61
62typedef uint16_t uint16;
63
64extern void uint16_pack(char *,uint16);
65extern void uint16_pack_big(char *,uint16);
66extern void uint16_unpack(char *,uint16 *);
67extern void uint16_unpack_big(char *,uint16 *);
68#endif
69
70#ifndef UINT32_H
71#define UINT32_H
72
73typedef uint32_t uint32;
74
75extern void uint32_pack(char *,uint32);
76extern void uint32_pack_big(char *,uint32);
77extern void uint32_unpack(char *,uint32 *);
78extern void uint32_unpack_big(char *,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 *,uint64);
91extern void uint64_pack_big(char *,uint64);
92extern void uint64_unpack(char *,uint64 *);
93extern void uint64_unpack_big(char *,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 *,uint128);
110extern void uint128_pack_big(char *,uint128);
111extern void uint128_unpack(char *,uint128 *);
112extern void uint128_unpack_big(char *,uint128 *);
113#endif
void uint16_pack(char *, uint16)
void uint32_pack(char *, uint32)
void uint128_pack_big(char *, uint128)
unsigned long long uint64
Definition uint_t.h:87
void uint8_pack_big(char *, uint8)
void uint128_unpack_big(char *, uint128 *)
void uint64_unpack_big(char *, uint64 *)
void uint128_pack(char *, uint128)
void uint32_unpack(char *, uint32 *)
void uint16_unpack_big(char *, uint16 *)
struct uint128_t uint128
Definition uint_t.h:107
void uint32_pack_big(char *, uint32)
void uint16_pack_big(char *, uint16)
void uint8_pack(char *, uint8)
void uint64_pack(char *, uint64)
void uint16_unpack(char *, uint16 *)
void uint64_pack_big(char *, uint64)
void uint8_unpack(char *, uint8 *)
void uint128_unpack(char *, uint128 *)
uint16_t uint16
Definition uint_t.h:62
uint32_t uint32
Definition uint_t.h:73
void uint32_unpack_big(char *, uint32 *)
void uint8_unpack_big(char *, uint8 *)
unsigned char uint8
Definition uint_t.h:50
void uint64_unpack(char *, uint64 *)
uint64_t hi
Definition uint_t.h:103
uint64_t lo
Definition uint_t.h:104