coreutils

General Software Utilities
git clone http://git.omkov.net/coreutils
Log | Tree | Refs | README | LICENCE | Download

coreutils/src/util/util.h (74 lines, 1.5 KiB) -rw-r--r-- file download

cdfecb8 Jamozed 2022-03-06 15:11:25
0
// util/util.h, version 1.0.1
b181413 Jamozed 2022-02-05 22:32:00
1
// Utility header file from libutil
b181413 Jamozed 2022-02-05 22:32:00
2
// Copyright (C) 2021, Jakob Wakeling
cdfecb8 Jamozed 2022-03-06 15:11:25
3
// MIT Licence
b181413 Jamozed 2022-02-05 22:32:00
4
b181413 Jamozed 2022-02-05 22:32:00
5
#ifndef UTIL_UTIL_H_KP8NS9DC
b181413 Jamozed 2022-02-05 22:32:00
6
#define UTIL_UTIL_H_KP8NS9DC
cdfecb8 Jamozed 2022-03-06 15:11:25
7
cdfecb8 Jamozed 2022-03-06 15:11:25
8
#ifdef __cplusplus
cdfecb8 Jamozed 2022-03-06 15:11:25
9
extern "C" {
cdfecb8 Jamozed 2022-03-06 15:11:25
10
#endif
b181413 Jamozed 2022-02-05 22:32:00
11
b181413 Jamozed 2022-02-05 22:32:00
12
#include <assert.h>
b181413 Jamozed 2022-02-05 22:32:00
13
#include <float.h>
b181413 Jamozed 2022-02-05 22:32:00
14
#include <stdbool.h>
b181413 Jamozed 2022-02-05 22:32:00
15
#include <stddef.h>
b181413 Jamozed 2022-02-05 22:32:00
16
#include <stdint.h>
b181413 Jamozed 2022-02-05 22:32:00
17
b181413 Jamozed 2022-02-05 22:32:00
18
/* Type Definitions */
b181413 Jamozed 2022-02-05 22:32:00
19
typedef uint8_t   u8;
b181413 Jamozed 2022-02-05 22:32:00
20
typedef uint16_t  u16;
b181413 Jamozed 2022-02-05 22:32:00
21
typedef uint32_t  u32;
b181413 Jamozed 2022-02-05 22:32:00
22
typedef uint64_t  u64;
b181413 Jamozed 2022-02-05 22:32:00
23
typedef uintptr_t UINT;
b181413 Jamozed 2022-02-05 22:32:00
24
b181413 Jamozed 2022-02-05 22:32:00
25
typedef int8_t   s8;
b181413 Jamozed 2022-02-05 22:32:00
26
typedef int16_t  s16;
b181413 Jamozed 2022-02-05 22:32:00
27
typedef int32_t  s32;
b181413 Jamozed 2022-02-05 22:32:00
28
typedef int64_t  s64;
b181413 Jamozed 2022-02-05 22:32:00
29
typedef intptr_t sint;
b181413 Jamozed 2022-02-05 22:32:00
30
b181413 Jamozed 2022-02-05 22:32:00
31
typedef float       f32;
b181413 Jamozed 2022-02-05 22:32:00
32
typedef double      f64;
b181413 Jamozed 2022-02-05 22:32:00
33
typedef long double f128;
b181413 Jamozed 2022-02-05 22:32:00
34
b181413 Jamozed 2022-02-05 22:32:00
35
/* Type Limits */
b181413 Jamozed 2022-02-05 22:32:00
36
#define U8_MIN   UINT8_MIN
b181413 Jamozed 2022-02-05 22:32:00
37
#define U8_MAX   UINT8_MAX
b181413 Jamozed 2022-02-05 22:32:00
38
#define U16_MIN  UINT16_MIN
b181413 Jamozed 2022-02-05 22:32:00
39
#define U16_MAX  UINT16_MAX
b181413 Jamozed 2022-02-05 22:32:00
40
#define U32_MIN  UINT32_MIN
b181413 Jamozed 2022-02-05 22:32:00
41
#define U32_MAX  UINT32_MAX
b181413 Jamozed 2022-02-05 22:32:00
42
#define U64_MIN  UINT64_MIN
b181413 Jamozed 2022-02-05 22:32:00
43
#define U64_MAX  UINT64_MAX
b181413 Jamozed 2022-02-05 22:32:00
44
#define UINT_MIN UINTPTR_MIN
b181413 Jamozed 2022-02-05 22:32:00
45
#define UINT_MAX UINTPTR_MAX
b181413 Jamozed 2022-02-05 22:32:00
46
b181413 Jamozed 2022-02-05 22:32:00
47
#define S8_MIN   INT8_MIN
b181413 Jamozed 2022-02-05 22:32:00
48
#define S8_MAX   INT8_MAX
b181413 Jamozed 2022-02-05 22:32:00
49
#define S16_MIN  INT16_MIN
b181413 Jamozed 2022-02-05 22:32:00
50
#define S16_MAX  INT16_MAX
b181413 Jamozed 2022-02-05 22:32:00
51
#define S32_MIN  INT32_MIN
b181413 Jamozed 2022-02-05 22:32:00
52
#define S32_MAX  INT32_MAX
b181413 Jamozed 2022-02-05 22:32:00
53
#define S64_MIN  INT64_MIN
b181413 Jamozed 2022-02-05 22:32:00
54
#define S64_MAX  INT64_MAX
b181413 Jamozed 2022-02-05 22:32:00
55
#define SINT_MIN INTPTR_MIN
b181413 Jamozed 2022-02-05 22:32:00
56
#define SINT_MAX INTPTR_MAX
b181413 Jamozed 2022-02-05 22:32:00
57
b181413 Jamozed 2022-02-05 22:32:00
58
#define F32_MIN  FLT_MIN
b181413 Jamozed 2022-02-05 22:32:00
59
#define F32_MAX  FLT_MAX
b181413 Jamozed 2022-02-05 22:32:00
60
#define F64_MIN  DBL_MIN
b181413 Jamozed 2022-02-05 22:32:00
61
#define F64_MAX  DBL_MAX
b181413 Jamozed 2022-02-05 22:32:00
62
#define F128_MIN LDBL_MIN
b181413 Jamozed 2022-02-05 22:32:00
63
#define F128_MAX LDBL_MAX
b181413 Jamozed 2022-02-05 22:32:00
64
b181413 Jamozed 2022-02-05 22:32:00
65
/* Miscellaneous */
b181413 Jamozed 2022-02-05 22:32:00
66
#define BIT(x) (1 << (x))
cdfecb8 Jamozed 2022-03-06 15:11:25
67
cdfecb8 Jamozed 2022-03-06 15:11:25
68
#ifdef __cplusplus
cdfecb8 Jamozed 2022-03-06 15:11:25
69
} // extern "C"
cdfecb8 Jamozed 2022-03-06 15:11:25
70
#endif
b181413 Jamozed 2022-02-05 22:32:00
71
b181413 Jamozed 2022-02-05 22:32:00
72
#endif // UTIL_UTIL_H_KP8NS9DC
73