diff options
Diffstat (limited to 'src/core/ngx_crc32.h')
| -rw-r--r-- | src/core/ngx_crc32.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/core/ngx_crc32.h b/src/core/ngx_crc32.h index 7d5279d36..fe76156dc 100644 --- a/src/core/ngx_crc32.h +++ b/src/core/ngx_crc32.h @@ -49,7 +49,30 @@ ngx_crc32_long(u_char *p, size_t len) } -ngx_int_t ngx_crc32_init(void); +#define ngx_crc32_init(crc) \ + crc = 0xffffffff + + +static 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 /* _NGX_CRC32_H_INCLUDED_ */ |
