/* * Copyright (C) Igor Sysoev */ #ifndef _NGX_CRC32_H_INCLUDED_ #define _NGX_CRC32_H_INCLUDED_ #include #include extern uint32_t ngx_crc32_table[]; static ngx_inline uint32_t ngx_crc32(u_char *p, size_t len) { uint32_t crc; crc = 0xffffffff; while (len--) { crc = ngx_crc32_table[(crc ^ *p++) & 0xff] ^ (crc >> 8); } return crc ^ 0xffffffff; } #endif /* _NGX_CRC32_H_INCLUDED_ */