#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "misc/util/abc_global.h"
#include "zutil.h"
Go to the source code of this file.
|
| #define | local static |
| |
| #define | BASE 65521UL /* largest prime smaller than 65536 */ |
| |
| #define | NMAX 5552 |
| |
| #define | DO1(buf, i) |
| |
| #define | DO2(buf, i) |
| |
| #define | DO4(buf, i) |
| |
| #define | DO8(buf, i) |
| |
| #define | DO16(buf) |
| |
| #define | MOD(a) |
| |
| #define | MOD4(a) |
| |
◆ BASE
| #define BASE 65521UL /* largest prime smaller than 65536 */ |
◆ DO1
Value:{adler += (buf)[i]; sum2 += adler;}
Definition at line 25 of file adler32.c.
◆ DO16
◆ DO2
◆ DO4
◆ DO8
◆ local
◆ MOD
◆ MOD4
◆ NMAX
◆ adler32()
Definition at line 67 of file adler32.c.
68{
69 unsigned long sum2;
70 unsigned n;
71
72
73 sum2 = (adler >> 16) & 0xffff;
74 adler &= 0xffff;
75
76
77 if (len == 1) {
78 adler += buf[0];
81 sum2 += adler;
84 return adler | (sum2 << 16);
85 }
86
87
89 return 1L;
90
91
92 if (len < 16) {
93 while (len--) {
94 adler += *buf++;
95 sum2 += adler;
96 }
100 return adler | (sum2 << 16);
101 }
102
103
104 while (len >=
NMAX) {
107 do {
109 buf += 16;
110 } while (--n);
113 }
114
115
116 if (len) {
117 while (len >= 16) {
118 len -= 16;
120 buf += 16;
121 }
122 while (len--) {
123 adler += *buf++;
124 sum2 += adler;
125 }
128 }
129
130
131 return adler | (sum2 << 16);
132}
◆ adler32_combine()
Definition at line 156 of file adler32.c.
157{
159}
local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2)
◆ adler32_combine64()
◆ adler32_combine_()
Definition at line 135 of file adler32.c.
136{
137 unsigned long sum1;
138 unsigned long sum2;
139 unsigned rem;
140
141
142 rem = (unsigned)(len2 %
BASE);
143 sum1 = adler1 & 0xffff;
144 sum2 = rem * sum1;
146 sum1 += (adler2 & 0xffff) +
BASE - 1;
147 sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) +
BASE - rem;
150 if (sum2 >= (
BASE << 1)) sum2 -= (
BASE << 1);
152 return sum1 | (sum2 << 16);
153}