opencv

Форк
0
/
chunkset.c 
42 строки · 1.1 Кб
1
/* chunkset.c -- inline functions to copy small data chunks.
2
 * For conditions of distribution and use, see copyright notice in zlib.h
3
 */
4

5
#include "zbuild.h"
6

7
typedef uint64_t chunk_t;
8

9
#define CHUNK_SIZE 8
10

11
#define HAVE_CHUNKMEMSET_4
12
#define HAVE_CHUNKMEMSET_8
13

14
static inline void chunkmemset_4(uint8_t *from, chunk_t *chunk) {
15
    uint8_t *dest = (uint8_t *)chunk;
16
    memcpy(dest, from, sizeof(uint32_t));
17
    memcpy(dest+4, from, sizeof(uint32_t));
18
}
19

20
static inline void chunkmemset_8(uint8_t *from, chunk_t *chunk) {
21
    memcpy(chunk, from, sizeof(uint64_t));
22
}
23

24
static inline void loadchunk(uint8_t const *s, chunk_t *chunk) {
25
    memcpy(chunk, (uint8_t *)s, sizeof(uint64_t));
26
}
27

28
static inline void storechunk(uint8_t *out, chunk_t *chunk) {
29
    memcpy(out, chunk, sizeof(uint64_t));
30
}
31

32
#define CHUNKSIZE        chunksize_c
33
#define CHUNKCOPY        chunkcopy_c
34
#define CHUNKUNROLL      chunkunroll_c
35
#define CHUNKMEMSET      chunkmemset_c
36
#define CHUNKMEMSET_SAFE chunkmemset_safe_c
37

38
#include "chunkset_tpl.h"
39

40
#define INFLATE_FAST     inflate_fast_c
41

42
#include "inffast_tpl.h"
43

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.