Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2006-10-18 23:00:21 +0400
committerIgor Sysoev <igor@sysoev.ru>2006-10-18 23:00:21 +0400
commit5864fc0fcc3743bd91577cb6d6f1dcadb150459c (patch)
treec5e7d3ea9f449246aef8944130b7041512e3a2e7 /src/core/ngx_crc32.h
parent289e3caa4664402a06535445f3505ad5b9a85073 (diff)
ngx_crc32()
Diffstat (limited to 'src/core/ngx_crc32.h')
-rw-r--r--src/core/ngx_crc32.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/core/ngx_crc32.h b/src/core/ngx_crc32.h
new file mode 100644
index 000000000..22da02c53
--- /dev/null
+++ b/src/core/ngx_crc32.h
@@ -0,0 +1,33 @@
+
+/*
+ * 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[];
+
+
+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_ */