Parolin
0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
val
xcx_Zstandard
zstd-1.5.6
contrib
linux-kernel
zstd_deps.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
2
/*
3
* Copyright (c) Meta Platforms, Inc. and affiliates.
4
* All rights reserved.
5
*
6
* This source code is licensed under both the BSD-style license (found in the
7
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
8
* in the COPYING file in the root directory of this source tree).
9
* You may select, at your option, one of the above-listed licenses.
10
*/
11
12
/*
13
* This file provides common libc dependencies that zstd requires.
14
* The purpose is to allow replacing this file with a custom implementation
15
* to compile zstd without libc support.
16
*/
17
18
/* Need:
19
* NULL
20
* INT_MAX
21
* UINT_MAX
22
* ZSTD_memcpy()
23
* ZSTD_memset()
24
* ZSTD_memmove()
25
*/
26
#ifndef ZSTD_DEPS_COMMON
27
#define ZSTD_DEPS_COMMON
28
29
#include <linux/limits.h>
30
#include <linux/stddef.h>
31
32
#define ZSTD_memcpy(d,s,n) __builtin_memcpy((d),(s),(n))
33
#define ZSTD_memmove(d,s,n) __builtin_memmove((d),(s),(n))
34
#define ZSTD_memset(d,s,n) __builtin_memset((d),(s),(n))
35
36
#endif
/* ZSTD_DEPS_COMMON */
37
38
/*
39
* Define malloc as always failing. That means the user must
40
* either use ZSTD_customMem or statically allocate memory.
41
* Need:
42
* ZSTD_malloc()
43
* ZSTD_free()
44
* ZSTD_calloc()
45
*/
46
#ifdef ZSTD_DEPS_NEED_MALLOC
47
#ifndef ZSTD_DEPS_MALLOC
48
#define ZSTD_DEPS_MALLOC
49
50
#define ZSTD_malloc(s) ({ (void)(s); NULL; })
51
#define ZSTD_free(p) ((void)(p))
52
#define ZSTD_calloc(n,s) ({ (void)(n); (void)(s); NULL; })
53
54
#endif
/* ZSTD_DEPS_MALLOC */
55
#endif
/* ZSTD_DEPS_NEED_MALLOC */
56
57
/*
58
* Provides 64-bit math support.
59
* Need:
60
* U64 ZSTD_div64(U64 dividend, U32 divisor)
61
*/
62
#ifdef ZSTD_DEPS_NEED_MATH64
63
#ifndef ZSTD_DEPS_MATH64
64
#define ZSTD_DEPS_MATH64
65
66
#include <linux/math64.h>
67
68
static
uint64_t ZSTD_div64(uint64_t dividend, uint32_t divisor) {
69
return
div_u64
(dividend, divisor);
70
}
71
72
#endif
/* ZSTD_DEPS_MATH64 */
73
#endif
/* ZSTD_DEPS_NEED_MATH64 */
74
75
/*
76
* This is only requested when DEBUGLEVEL >= 1, meaning
77
* it is disabled in production.
78
* Need:
79
* assert()
80
*/
81
#ifdef ZSTD_DEPS_NEED_ASSERT
82
#ifndef ZSTD_DEPS_ASSERT
83
#define ZSTD_DEPS_ASSERT
84
85
#include <linux/kernel.h>
86
87
#define assert(x) WARN_ON(!(x))
88
89
#endif
/* ZSTD_DEPS_ASSERT */
90
#endif
/* ZSTD_DEPS_NEED_ASSERT */
91
92
/*
93
* This is only requested when DEBUGLEVEL >= 2, meaning
94
* it is disabled in production.
95
* Need:
96
* ZSTD_DEBUG_PRINT()
97
*/
98
#ifdef ZSTD_DEPS_NEED_IO
99
#ifndef ZSTD_DEPS_IO
100
#define ZSTD_DEPS_IO
101
102
#include <linux/printk.h>
103
104
#define ZSTD_DEBUG_PRINT(...) pr_debug(__VA_ARGS__)
105
106
#endif
/* ZSTD_DEPS_IO */
107
#endif
/* ZSTD_DEPS_NEED_IO */
108
109
/*
110
* Only requested when MSAN is enabled.
111
* Need:
112
* intptr_t
113
*/
114
#ifdef ZSTD_DEPS_NEED_STDINT
115
#ifndef ZSTD_DEPS_STDINT
116
#define ZSTD_DEPS_STDINT
117
118
/* intptr_t already provided by ZSTD_DEPS_COMMON */
119
120
#endif
/* ZSTD_DEPS_STDINT */
121
#endif
/* ZSTD_DEPS_NEED_STDINT */
div_u64
#define div_u64(dividend, divisor)
Definition
math64.h:13
Generated by
1.12.0