/src/barebox/lib/zstd/mem.h
Line | Count | Source |
1 | | /** |
2 | | * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. |
3 | | * All rights reserved. |
4 | | * |
5 | | * This source code is licensed under the BSD-style license found in the |
6 | | * LICENSE file in the root directory of https://github.com/facebook/zstd. |
7 | | * An additional grant of patent rights can be found in the PATENTS file in the |
8 | | * same directory. |
9 | | * |
10 | | * This program is free software; you can redistribute it and/or modify it under |
11 | | * the terms of the GNU General Public License version 2 as published by the |
12 | | * Free Software Foundation. This program is dual-licensed; you may select |
13 | | * either version 2 of the GNU General Public License ("GPL") or BSD license |
14 | | * ("BSD"). |
15 | | */ |
16 | | |
17 | | #ifndef MEM_H_MODULE |
18 | | #define MEM_H_MODULE |
19 | | |
20 | | /*-**************************************** |
21 | | * Dependencies |
22 | | ******************************************/ |
23 | | #include <asm/unaligned.h> |
24 | | #include <linux/string.h> /* memcpy */ |
25 | | #include <linux/types.h> /* size_t, ptrdiff_t */ |
26 | | |
27 | | /*-**************************************** |
28 | | * Compiler specifics |
29 | | ******************************************/ |
30 | | #define ZSTD_STATIC static __inline __attribute__((unused)) |
31 | | |
32 | | /*-************************************************************** |
33 | | * Basic Types |
34 | | *****************************************************************/ |
35 | | typedef uint8_t BYTE; |
36 | | typedef uint16_t U16; |
37 | | typedef int16_t S16; |
38 | | typedef uint32_t U32; |
39 | | typedef int32_t S32; |
40 | | typedef uint64_t U64; |
41 | | typedef int64_t S64; |
42 | | typedef ptrdiff_t iPtrDiff; |
43 | | typedef uintptr_t uPtrDiff; |
44 | | |
45 | | /*-************************************************************** |
46 | | * Memory I/O |
47 | | *****************************************************************/ |
48 | 24.5M | ZSTD_STATIC unsigned ZSTD_32bits(void) { return sizeof(size_t) == 4; }huf_decompress.c:ZSTD_32bits Line | Count | Source | 48 | 517k | ZSTD_STATIC unsigned ZSTD_32bits(void) { return sizeof(size_t) == 4; } |
Line | Count | Source | 48 | 23.9M | ZSTD_STATIC unsigned ZSTD_32bits(void) { return sizeof(size_t) == 4; } |
Unexecuted instantiation: entropy_common.c:ZSTD_32bits fse_decompress.c:ZSTD_32bits Line | Count | Source | 48 | 65.4k | ZSTD_STATIC unsigned ZSTD_32bits(void) { return sizeof(size_t) == 4; } |
Unexecuted instantiation: zstd_common.c:ZSTD_32bits |
49 | 1.50M | ZSTD_STATIC unsigned ZSTD_64bits(void) { return sizeof(size_t) == 8; }huf_decompress.c:ZSTD_64bits Line | Count | Source | 49 | 1.50M | ZSTD_STATIC unsigned ZSTD_64bits(void) { return sizeof(size_t) == 8; } |
Unexecuted instantiation: decompress.c:ZSTD_64bits Unexecuted instantiation: entropy_common.c:ZSTD_64bits Unexecuted instantiation: fse_decompress.c:ZSTD_64bits Unexecuted instantiation: zstd_common.c:ZSTD_64bits |
50 | | |
51 | | #if defined(__LITTLE_ENDIAN) |
52 | | #define ZSTD_LITTLE_ENDIAN 1 |
53 | | #else |
54 | | #define ZSTD_LITTLE_ENDIAN 0 |
55 | | #endif |
56 | | |
57 | 0 | ZSTD_STATIC unsigned ZSTD_isLittleEndian(void) { return ZSTD_LITTLE_ENDIAN; }Unexecuted instantiation: huf_decompress.c:ZSTD_isLittleEndian Unexecuted instantiation: decompress.c:ZSTD_isLittleEndian Unexecuted instantiation: entropy_common.c:ZSTD_isLittleEndian Unexecuted instantiation: fse_decompress.c:ZSTD_isLittleEndian Unexecuted instantiation: zstd_common.c:ZSTD_isLittleEndian |
58 | | |
59 | 0 | ZSTD_STATIC U16 ZSTD_read16(const void *memPtr) { return get_unaligned((const U16 *)memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_read16 Unexecuted instantiation: decompress.c:ZSTD_read16 Unexecuted instantiation: entropy_common.c:ZSTD_read16 Unexecuted instantiation: fse_decompress.c:ZSTD_read16 Unexecuted instantiation: zstd_common.c:ZSTD_read16 |
60 | | |
61 | 0 | ZSTD_STATIC U32 ZSTD_read32(const void *memPtr) { return get_unaligned((const U32 *)memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_read32 Unexecuted instantiation: decompress.c:ZSTD_read32 Unexecuted instantiation: entropy_common.c:ZSTD_read32 Unexecuted instantiation: fse_decompress.c:ZSTD_read32 Unexecuted instantiation: zstd_common.c:ZSTD_read32 |
62 | | |
63 | 0 | ZSTD_STATIC U64 ZSTD_read64(const void *memPtr) { return get_unaligned((const U64 *)memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_read64 Unexecuted instantiation: decompress.c:ZSTD_read64 Unexecuted instantiation: entropy_common.c:ZSTD_read64 Unexecuted instantiation: fse_decompress.c:ZSTD_read64 Unexecuted instantiation: zstd_common.c:ZSTD_read64 |
64 | | |
65 | 0 | ZSTD_STATIC size_t ZSTD_readST(const void *memPtr) { return get_unaligned((const size_t *)memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_readST Unexecuted instantiation: decompress.c:ZSTD_readST Unexecuted instantiation: entropy_common.c:ZSTD_readST Unexecuted instantiation: fse_decompress.c:ZSTD_readST Unexecuted instantiation: zstd_common.c:ZSTD_readST |
66 | | |
67 | 0 | ZSTD_STATIC void ZSTD_write16(void *memPtr, U16 value) { put_unaligned(value, (U16 *)memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_write16 Unexecuted instantiation: decompress.c:ZSTD_write16 Unexecuted instantiation: entropy_common.c:ZSTD_write16 Unexecuted instantiation: fse_decompress.c:ZSTD_write16 Unexecuted instantiation: zstd_common.c:ZSTD_write16 |
68 | | |
69 | 0 | ZSTD_STATIC void ZSTD_write32(void *memPtr, U32 value) { put_unaligned(value, (U32 *)memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_write32 Unexecuted instantiation: decompress.c:ZSTD_write32 Unexecuted instantiation: entropy_common.c:ZSTD_write32 Unexecuted instantiation: fse_decompress.c:ZSTD_write32 Unexecuted instantiation: zstd_common.c:ZSTD_write32 |
70 | | |
71 | 0 | ZSTD_STATIC void ZSTD_write64(void *memPtr, U64 value) { put_unaligned(value, (U64 *)memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_write64 Unexecuted instantiation: decompress.c:ZSTD_write64 Unexecuted instantiation: entropy_common.c:ZSTD_write64 Unexecuted instantiation: fse_decompress.c:ZSTD_write64 Unexecuted instantiation: zstd_common.c:ZSTD_write64 |
72 | | |
73 | | /*=== Little endian r/w ===*/ |
74 | | |
75 | 710k | ZSTD_STATIC U16 ZSTD_readLE16(const void *memPtr) { return get_unaligned_le16(memPtr); }huf_decompress.c:ZSTD_readLE16 Line | Count | Source | 75 | 8.16k | ZSTD_STATIC U16 ZSTD_readLE16(const void *memPtr) { return get_unaligned_le16(memPtr); } |
decompress.c:ZSTD_readLE16 Line | Count | Source | 75 | 702k | ZSTD_STATIC U16 ZSTD_readLE16(const void *memPtr) { return get_unaligned_le16(memPtr); } |
Unexecuted instantiation: entropy_common.c:ZSTD_readLE16 Unexecuted instantiation: fse_decompress.c:ZSTD_readLE16 Unexecuted instantiation: zstd_common.c:ZSTD_readLE16 |
76 | | |
77 | 617k | ZSTD_STATIC void ZSTD_writeLE16(void *memPtr, U16 val) { put_unaligned_le16(val, memPtr); }huf_decompress.c:ZSTD_writeLE16 Line | Count | Source | 77 | 617k | ZSTD_STATIC void ZSTD_writeLE16(void *memPtr, U16 val) { put_unaligned_le16(val, memPtr); } |
Unexecuted instantiation: decompress.c:ZSTD_writeLE16 Unexecuted instantiation: entropy_common.c:ZSTD_writeLE16 Unexecuted instantiation: fse_decompress.c:ZSTD_writeLE16 Unexecuted instantiation: zstd_common.c:ZSTD_writeLE16 |
78 | | |
79 | 689k | ZSTD_STATIC U32 ZSTD_readLE24(const void *memPtr) { return ZSTD_readLE16(memPtr) + (((const BYTE *)memPtr)[2] << 16); }Unexecuted instantiation: huf_decompress.c:ZSTD_readLE24 decompress.c:ZSTD_readLE24 Line | Count | Source | 79 | 689k | ZSTD_STATIC U32 ZSTD_readLE24(const void *memPtr) { return ZSTD_readLE16(memPtr) + (((const BYTE *)memPtr)[2] << 16); } |
Unexecuted instantiation: entropy_common.c:ZSTD_readLE24 Unexecuted instantiation: fse_decompress.c:ZSTD_readLE24 Unexecuted instantiation: zstd_common.c:ZSTD_readLE24 |
80 | | |
81 | | ZSTD_STATIC void ZSTD_writeLE24(void *memPtr, U32 val) |
82 | 0 | { |
83 | 0 | ZSTD_writeLE16(memPtr, (U16)val); |
84 | 0 | ((BYTE *)memPtr)[2] = (BYTE)(val >> 16); |
85 | 0 | } Unexecuted instantiation: huf_decompress.c:ZSTD_writeLE24 Unexecuted instantiation: decompress.c:ZSTD_writeLE24 Unexecuted instantiation: entropy_common.c:ZSTD_writeLE24 Unexecuted instantiation: fse_decompress.c:ZSTD_writeLE24 Unexecuted instantiation: zstd_common.c:ZSTD_writeLE24 |
86 | | |
87 | 476k | ZSTD_STATIC U32 ZSTD_readLE32(const void *memPtr) { return get_unaligned_le32(memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_readLE32 decompress.c:ZSTD_readLE32 Line | Count | Source | 87 | 66.4k | ZSTD_STATIC U32 ZSTD_readLE32(const void *memPtr) { return get_unaligned_le32(memPtr); } |
entropy_common.c:ZSTD_readLE32 Line | Count | Source | 87 | 410k | ZSTD_STATIC U32 ZSTD_readLE32(const void *memPtr) { return get_unaligned_le32(memPtr); } |
Unexecuted instantiation: fse_decompress.c:ZSTD_readLE32 Unexecuted instantiation: zstd_common.c:ZSTD_readLE32 |
88 | | |
89 | 0 | ZSTD_STATIC void ZSTD_writeLE32(void *memPtr, U32 val32) { put_unaligned_le32(val32, memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_writeLE32 Unexecuted instantiation: decompress.c:ZSTD_writeLE32 Unexecuted instantiation: entropy_common.c:ZSTD_writeLE32 Unexecuted instantiation: fse_decompress.c:ZSTD_writeLE32 Unexecuted instantiation: zstd_common.c:ZSTD_writeLE32 |
90 | | |
91 | 4.93M | ZSTD_STATIC U64 ZSTD_readLE64(const void *memPtr) { return get_unaligned_le64(memPtr); }huf_decompress.c:ZSTD_readLE64 Line | Count | Source | 91 | 517k | ZSTD_STATIC U64 ZSTD_readLE64(const void *memPtr) { return get_unaligned_le64(memPtr); } |
decompress.c:ZSTD_readLE64 Line | Count | Source | 91 | 4.35M | ZSTD_STATIC U64 ZSTD_readLE64(const void *memPtr) { return get_unaligned_le64(memPtr); } |
Unexecuted instantiation: entropy_common.c:ZSTD_readLE64 fse_decompress.c:ZSTD_readLE64 Line | Count | Source | 91 | 65.4k | ZSTD_STATIC U64 ZSTD_readLE64(const void *memPtr) { return get_unaligned_le64(memPtr); } |
Unexecuted instantiation: zstd_common.c:ZSTD_readLE64 |
92 | | |
93 | 0 | ZSTD_STATIC void ZSTD_writeLE64(void *memPtr, U64 val64) { put_unaligned_le64(val64, memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_writeLE64 Unexecuted instantiation: decompress.c:ZSTD_writeLE64 Unexecuted instantiation: entropy_common.c:ZSTD_writeLE64 Unexecuted instantiation: fse_decompress.c:ZSTD_writeLE64 Unexecuted instantiation: zstd_common.c:ZSTD_writeLE64 |
94 | | |
95 | | ZSTD_STATIC size_t ZSTD_readLEST(const void *memPtr) |
96 | 4.93M | { |
97 | 4.93M | if (ZSTD_32bits()) |
98 | 0 | return (size_t)ZSTD_readLE32(memPtr); |
99 | 4.93M | else |
100 | 4.93M | return (size_t)ZSTD_readLE64(memPtr); |
101 | 4.93M | } huf_decompress.c:ZSTD_readLEST Line | Count | Source | 96 | 517k | { | 97 | 517k | if (ZSTD_32bits()) | 98 | 0 | return (size_t)ZSTD_readLE32(memPtr); | 99 | 517k | else | 100 | 517k | return (size_t)ZSTD_readLE64(memPtr); | 101 | 517k | } |
decompress.c:ZSTD_readLEST Line | Count | Source | 96 | 4.35M | { | 97 | 4.35M | if (ZSTD_32bits()) | 98 | 0 | return (size_t)ZSTD_readLE32(memPtr); | 99 | 4.35M | else | 100 | 4.35M | return (size_t)ZSTD_readLE64(memPtr); | 101 | 4.35M | } |
Unexecuted instantiation: entropy_common.c:ZSTD_readLEST fse_decompress.c:ZSTD_readLEST Line | Count | Source | 96 | 65.4k | { | 97 | 65.4k | if (ZSTD_32bits()) | 98 | 0 | return (size_t)ZSTD_readLE32(memPtr); | 99 | 65.4k | else | 100 | 65.4k | return (size_t)ZSTD_readLE64(memPtr); | 101 | 65.4k | } |
Unexecuted instantiation: zstd_common.c:ZSTD_readLEST |
102 | | |
103 | | ZSTD_STATIC void ZSTD_writeLEST(void *memPtr, size_t val) |
104 | 0 | { |
105 | 0 | if (ZSTD_32bits()) |
106 | 0 | ZSTD_writeLE32(memPtr, (U32)val); |
107 | 0 | else |
108 | 0 | ZSTD_writeLE64(memPtr, (U64)val); |
109 | 0 | } Unexecuted instantiation: huf_decompress.c:ZSTD_writeLEST Unexecuted instantiation: decompress.c:ZSTD_writeLEST Unexecuted instantiation: entropy_common.c:ZSTD_writeLEST Unexecuted instantiation: fse_decompress.c:ZSTD_writeLEST Unexecuted instantiation: zstd_common.c:ZSTD_writeLEST |
110 | | |
111 | | /*=== Big endian r/w ===*/ |
112 | | |
113 | 0 | ZSTD_STATIC U32 ZSTD_readBE32(const void *memPtr) { return get_unaligned_be32(memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_readBE32 Unexecuted instantiation: decompress.c:ZSTD_readBE32 Unexecuted instantiation: entropy_common.c:ZSTD_readBE32 Unexecuted instantiation: fse_decompress.c:ZSTD_readBE32 Unexecuted instantiation: zstd_common.c:ZSTD_readBE32 |
114 | | |
115 | 0 | ZSTD_STATIC void ZSTD_writeBE32(void *memPtr, U32 val32) { put_unaligned_be32(val32, memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_writeBE32 Unexecuted instantiation: decompress.c:ZSTD_writeBE32 Unexecuted instantiation: entropy_common.c:ZSTD_writeBE32 Unexecuted instantiation: fse_decompress.c:ZSTD_writeBE32 Unexecuted instantiation: zstd_common.c:ZSTD_writeBE32 |
116 | | |
117 | 0 | ZSTD_STATIC U64 ZSTD_readBE64(const void *memPtr) { return get_unaligned_be64(memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_readBE64 Unexecuted instantiation: decompress.c:ZSTD_readBE64 Unexecuted instantiation: entropy_common.c:ZSTD_readBE64 Unexecuted instantiation: fse_decompress.c:ZSTD_readBE64 Unexecuted instantiation: zstd_common.c:ZSTD_readBE64 |
118 | | |
119 | 0 | ZSTD_STATIC void ZSTD_writeBE64(void *memPtr, U64 val64) { put_unaligned_be64(val64, memPtr); }Unexecuted instantiation: huf_decompress.c:ZSTD_writeBE64 Unexecuted instantiation: decompress.c:ZSTD_writeBE64 Unexecuted instantiation: entropy_common.c:ZSTD_writeBE64 Unexecuted instantiation: fse_decompress.c:ZSTD_writeBE64 Unexecuted instantiation: zstd_common.c:ZSTD_writeBE64 |
120 | | |
121 | | ZSTD_STATIC size_t ZSTD_readBEST(const void *memPtr) |
122 | 0 | { |
123 | 0 | if (ZSTD_32bits()) |
124 | 0 | return (size_t)ZSTD_readBE32(memPtr); |
125 | 0 | else |
126 | 0 | return (size_t)ZSTD_readBE64(memPtr); |
127 | 0 | } Unexecuted instantiation: huf_decompress.c:ZSTD_readBEST Unexecuted instantiation: decompress.c:ZSTD_readBEST Unexecuted instantiation: entropy_common.c:ZSTD_readBEST Unexecuted instantiation: fse_decompress.c:ZSTD_readBEST Unexecuted instantiation: zstd_common.c:ZSTD_readBEST |
128 | | |
129 | | ZSTD_STATIC void ZSTD_writeBEST(void *memPtr, size_t val) |
130 | 0 | { |
131 | 0 | if (ZSTD_32bits()) |
132 | 0 | ZSTD_writeBE32(memPtr, (U32)val); |
133 | 0 | else |
134 | 0 | ZSTD_writeBE64(memPtr, (U64)val); |
135 | 0 | } Unexecuted instantiation: huf_decompress.c:ZSTD_writeBEST Unexecuted instantiation: decompress.c:ZSTD_writeBEST Unexecuted instantiation: entropy_common.c:ZSTD_writeBEST Unexecuted instantiation: fse_decompress.c:ZSTD_writeBEST Unexecuted instantiation: zstd_common.c:ZSTD_writeBEST |
136 | | |
137 | | /* function safe only for comparisons */ |
138 | | ZSTD_STATIC U32 ZSTD_readMINMATCH(const void *memPtr, U32 length) |
139 | 0 | { |
140 | 0 | switch (length) { |
141 | 0 | default: |
142 | 0 | case 4: return ZSTD_read32(memPtr); |
143 | 0 | case 3: |
144 | 0 | if (ZSTD_isLittleEndian()) |
145 | 0 | return ZSTD_read32(memPtr) << 8; |
146 | 0 | else |
147 | 0 | return ZSTD_read32(memPtr) >> 8; |
148 | 0 | } |
149 | 0 | } Unexecuted instantiation: huf_decompress.c:ZSTD_readMINMATCH Unexecuted instantiation: decompress.c:ZSTD_readMINMATCH Unexecuted instantiation: entropy_common.c:ZSTD_readMINMATCH Unexecuted instantiation: fse_decompress.c:ZSTD_readMINMATCH Unexecuted instantiation: zstd_common.c:ZSTD_readMINMATCH |
150 | | |
151 | | #endif /* MEM_H_MODULE */ |