ngx_crc32.h

来自「Nginx是一个高性能的HTTP和反向代理服务器」· C头文件 代码 · 共 79 行

H
79
字号
/* * Copyright (C) Igor Sysoev */#ifndef _NGX_CRC32_H_INCLUDED_#define _NGX_CRC32_H_INCLUDED_#include <ngx_config.h>#include <ngx_core.h>extern uint32_t  *ngx_crc32_table_short;extern uint32_t   ngx_crc32_table256[];static ngx_inline uint32_tngx_crc32_short(u_char *p, size_t len){    u_char    c;    uint32_t  crc;    crc = 0xffffffff;    while (len--) {        c = *p++;        crc = ngx_crc32_table_short[(crc ^ (c & 0xf)) & 0xf] ^ (crc >> 4);        crc = ngx_crc32_table_short[(crc ^ (c >> 4)) & 0xf] ^ (crc >> 4);    }    return crc ^ 0xffffffff;}static ngx_inline uint32_tngx_crc32_long(u_char *p, size_t len){    uint32_t  crc;    crc = 0xffffffff;    while (len--) {        crc = ngx_crc32_table256[(crc ^ *p++) & 0xff] ^ (crc >> 8);    }    return crc ^ 0xffffffff;}#define ngx_crc32_init(crc)                                                   \    crc = 0xffffffffstatic ngx_inline voidngx_crc32_update(uint32_t *crc, u_char *p, size_t len){    uint32_t  c;    c = *crc;    while (len--) {        c = ngx_crc32_table256[(c ^ *p++) & 0xff] ^ (c >> 8);    }    *crc = c;}#define ngx_crc32_final(crc)                                                  \    crc ^= 0xffffffffngx_int_t ngx_crc32_table_init(void);#endif /* _NGX_CRC32_H_INCLUDED_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?