diff options
author | Igor Sysoev <igor@sysoev.ru> | 2007-12-07 20:19:41 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2007-12-07 20:19:41 +0000 |
commit | ac7586e9520861a78146afe387c981d6be9b4d7b (patch) | |
tree | a1ebc66ab56ed98505ed962109d1c19d0bfe7519 | |
parent | 27dd6a62bd76983e6bdc5c45e108aae816fac761 (diff) | |
download | nginx-ac7586e9520861a78146afe387c981d6be9b4d7b.tar.gz nginx-ac7586e9520861a78146afe387c981d6be9b4d7b.zip |
rename ngx_crc32_init() to ngx_crc32_table_init()
ngx_crc32_init(), ngx_crc32_update(), ngx_crc32_final()
-rw-r--r-- | src/core/nginx.c | 6 | ||||
-rw-r--r-- | src/core/ngx_crc32.c | 2 | ||||
-rw-r--r-- | src/core/ngx_crc32.h | 25 |
3 files changed, 29 insertions, 4 deletions
diff --git a/src/core/nginx.c b/src/core/nginx.c index 579ee161b..ae68605ef 100644 --- a/src/core/nginx.c +++ b/src/core/nginx.c @@ -273,9 +273,11 @@ main(int argc, char *const *argv) return 1; } - /* ngx_crc32_init() requires ngx_cacheline_size set in ngx_os_init() */ + /* + * ngx_crc32_table_init() requires ngx_cacheline_size set in ngx_os_init() + */ - if (ngx_crc32_init() != NGX_OK) { + if (ngx_crc32_table_init() != NGX_OK) { return 1; } diff --git a/src/core/ngx_crc32.c b/src/core/ngx_crc32.c index 64b02ac7a..624510cee 100644 --- a/src/core/ngx_crc32.c +++ b/src/core/ngx_crc32.c @@ -102,7 +102,7 @@ uint32_t *ngx_crc32_table_short = ngx_crc32_table16; ngx_int_t -ngx_crc32_init(void) +ngx_crc32_table_init(void) { void *p; 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_ */ |