One Level Up
Top Level
src/core/ngx_crc32.h - nginx-1.7.10
Functions defined
Macros defined
Source code
- #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_t
- ngx_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_t
- ngx_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 = 0xffffffff
- static ngx_inline void
- ngx_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 ^= 0xffffffff
- ngx_int_t ngx_crc32_table_init(void);
- #endif
One Level Up
Top Level