libhasha 2.2.2
Loading...
Searching...
No Matches
hadefs.h
Go to the documentation of this file.
1
2#ifndef __HASHA_INTERNAL_HADEFS_H
3#define __HASHA_INTERNAL_HADEFS_H
4
5#ifdef HA_NO_DEPRECATED
6#define HA_DEPRECATED(msg)
7#endif
8
9#if !defined(HA_DEPRECATED)
10#define HA_DEPRECATED(msg) __attribute__((deprecated(msg)))
11#endif // HA_DEPRECATED
12
13#ifdef HA_STATIC
14#define HA_EXPORT
15#endif
16
17#ifndef HA_EXPORT
18#if defined(_WIN32)
19#ifdef HA_BUILD
20#define HA_EXPORT __declspec(dllexport)
21#else
22#define HA_EXPORT __declspec(dllimport)
23#endif
24#else
25#ifdef HA_BUILD
26#define HA_EXPORT __attribute__((visibility("default")))
27#else
28#define HA_EXPORT
29#endif
30#endif
31#endif
32
33#if !defined(HA_PUBFUN)
34#define HA_PUBFUN HA_EXPORT
35#endif // HA_PUBFUN
36
37#if !defined(HA_INL_FUN)
38#if defined(_MSC_VER)
39#define HA_INL_FUN __forceinline
40#elif defined(__GNUC__) || defined(__clang__)
41#define HA_INL_FUN __inline__ __attribute__((always_inline))
42#else
43#define HA_INL_FUN inline
44#endif
45#endif // HA_INL_FUN
46
47#if !defined(HA_PRVFUN)
48#define HA_PRVFUN static HA_INL_FUN
49#endif // HA_PRVFUN
50
51#if !defined(HA_HDR_PUBFUN)
52/* public header only function */
53#define HA_HDR_PUBFUN HA_PRVFUN
54#endif // HA_HDR_PUBFUN
55
56#if !defined(HA_EXTERN_C)
57#if defined(__cplusplus)
58#define HA_EXTERN_C extern "C"
59#else
60#define HA_EXTERN_C
61#endif // __cplusplus
62#endif // HA_EXTERN_C
63
64#if !defined(HA_EXTERN_C_BEG)
65#if defined(__cplusplus)
66#define HA_EXTERN_C_BEG \
67 HA_EXTERN_C \
68 {
69#else
70#define HA_EXTERN_C_BEG
71#endif // __cplusplus
72#endif // HA_EXTERN_C_BEG
73
74#if !defined(HA_EXTERN_C_END)
75#if defined(__cplusplus)
76#define HA_EXTERN_C_END }
77#else
78#define HA_EXTERN_C_END
79#endif // __cplusplus
80#endif // HA_EXTERN_C_END
81
82#if !defined(ha_bB)
83/* bits to Bytes (bB) */
84#define ha_bB(n) n / 8
85#endif // ha_bB
86
87#if !defined(ha_Bb)
88/* Bytes to bits (Bb) */
89#define ha_Bb(n) n * 8
90#endif // ha_Bb
91
92#define ha_in_range(x, min, max) ((x) >= (min) && (x) <= (max))
93
94#if defined(__cplusplus)
95#define ha_enum_base(T) : T
96#else
97#define ha_enum_base(T)
98#endif
99
100#if !defined(__cplusplus)
101#define ha_register register
102#else
103#define ha_register
104#endif
105
106#ifndef __ha_alias2
107#define __ha_alias2(func) __attribute__((alias(func)))
108#endif
109
110#endif