aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/zstd/lib/common/zstd_deps.h
blob: ba734b770bc6c67b4c989d838348c5798011538a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/* 
 * Copyright (c) Facebook, Inc. 
 * All rights reserved. 
 * 
 * This source code is licensed under both the BSD-style license (found in the 
 * LICENSE file in the root directory of this source tree) and the GPLv2 (found 
 * in the COPYING file in the root directory of this source tree). 
 * You may select, at your option, one of the above-listed licenses. 
 */ 
 
/* This file provides common libc dependencies that zstd requires. 
 * The purpose is to allow replacing this file with a custom implementation 
 * to compile zstd without libc support. 
 */ 
 
/* Need: 
 * NULL 
 * INT_MAX 
 * UINT_MAX 
 * ZSTD_memcpy() 
 * ZSTD_memset() 
 * ZSTD_memmove() 
 */ 
#ifndef ZSTD_DEPS_COMMON 
#define ZSTD_DEPS_COMMON 
 
#include <limits.h> 
#include <stddef.h> 
#include <string.h> 
 
#if defined(__GNUC__) && __GNUC__ >= 4 
# define ZSTD_memcpy(d,s,l) __builtin_memcpy((d),(s),(l)) 
# define ZSTD_memmove(d,s,l) __builtin_memmove((d),(s),(l)) 
# define ZSTD_memset(p,v,l) __builtin_memset((p),(v),(l)) 
#else 
# define ZSTD_memcpy(d,s,l) memcpy((d),(s),(l)) 
# define ZSTD_memmove(d,s,l) memmove((d),(s),(l)) 
# define ZSTD_memset(p,v,l) memset((p),(v),(l)) 
#endif 
 
#endif /* ZSTD_DEPS_COMMON */ 
 
/* Need: 
 * ZSTD_malloc() 
 * ZSTD_free() 
 * ZSTD_calloc() 
 */ 
#ifdef ZSTD_DEPS_NEED_MALLOC 
#ifndef ZSTD_DEPS_MALLOC 
#define ZSTD_DEPS_MALLOC 
 
#include <stdlib.h> 
 
#define ZSTD_malloc(s) malloc(s) 
#define ZSTD_calloc(n,s) calloc((n), (s)) 
#define ZSTD_free(p) free((p)) 
 
#endif /* ZSTD_DEPS_MALLOC */ 
#endif /* ZSTD_DEPS_NEED_MALLOC */ 
 
/* 
 * Provides 64-bit math support. 
 * Need: 
 * U64 ZSTD_div64(U64 dividend, U32 divisor) 
 */ 
#ifdef ZSTD_DEPS_NEED_MATH64 
#ifndef ZSTD_DEPS_MATH64 
#define ZSTD_DEPS_MATH64 
 
#define ZSTD_div64(dividend, divisor) ((dividend) / (divisor)) 
 
#endif /* ZSTD_DEPS_MATH64 */ 
#endif /* ZSTD_DEPS_NEED_MATH64 */ 
 
/* Need: 
 * assert() 
 */ 
#ifdef ZSTD_DEPS_NEED_ASSERT 
#ifndef ZSTD_DEPS_ASSERT 
#define ZSTD_DEPS_ASSERT 
 
#include <assert.h> 
 
#endif /* ZSTD_DEPS_ASSERT */ 
#endif /* ZSTD_DEPS_NEED_ASSERT */ 
 
/* Need: 
 * ZSTD_DEBUG_PRINT() 
 */ 
#ifdef ZSTD_DEPS_NEED_IO 
#ifndef ZSTD_DEPS_IO 
#define ZSTD_DEPS_IO 
 
#include <stdio.h> 
#define ZSTD_DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__) 
 
#endif /* ZSTD_DEPS_IO */ 
#endif /* ZSTD_DEPS_NEED_IO */ 
 
/* Only requested when <stdint.h> is known to be present. 
 * Need: 
 * intptr_t 
 */ 
#ifdef ZSTD_DEPS_NEED_STDINT 
#ifndef ZSTD_DEPS_STDINT 
#define ZSTD_DEPS_STDINT 
 
#include <stdint.h> 
 
#endif /* ZSTD_DEPS_STDINT */ 
#endif /* ZSTD_DEPS_NEED_STDINT */