资源简介
zlib-1.2.5 可以编译通过使用,本人亲测,用在了directfb的移植中,成功了
代码片段和文件信息
/* adler32.c -- compute the Adler-32 checksum of a data stream
* Copyright (C) 1995-2007 Mark Adler
* For conditions of distribution and use see copyright notice in zlib.h
*/
/* @(#) $Id$ */
#include “zutil.h“
#define local static
local uLong adler32_combine_(uLong adler1 uLong adler2 z_off64_t len2);
#define base 65521UL /* largest prime smaller than 65536 */
#define NMAX 5552
/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(base-1) <= 2^32-1 */
#define DO1(bufi) {adler += (buf)[i]; sum2 += adler;}
#define DO2(bufi) DO1(bufi); DO1(bufi+1);
#define DO4(bufi) DO2(bufi); DO2(bufi+2);
#define DO8(bufi) DO4(bufi); DO4(bufi+4);
#define DO16(buf) DO8(buf0); DO8(buf8);
/* use NO_DIVIDE if your processor does not do division in hardware */
#ifdef NO_DIVIDE
# define MOD(a) \
do { \
if (a >= (base << 16)) a -= (base << 16); \
if (a >= (base << 15)) a -= (base << 15); \
if (a >= (base << 14)) a -= (base << 14); \
if (a >= (base << 13)) a -= (base << 13); \
if (a >= (base << 12)) a -= (base << 12); \
if (a >= (base << 11)) a -= (base << 11); \
if (a >= (base << 10)) a -= (base << 10); \
if (a >= (base << 9)) a -= (base << 9); \
if (a >= (base << 8)) a -= (base << 8); \
if (a >= (base << 7)) a -= (base << 7); \
if (a >= (base << 6)) a -= (base << 6); \
if (a >= (base << 5)) a -= (base << 5); \
if (a >= (base << 4)) a -= (base << 4); \
if (a >= (base << 3)) a -= (base << 3); \
if (a >= (base << 2)) a -= (base << 2); \
if (a >= (base << 1)) a -= (base << 1); \
if (a >= base) a -= base; \
} while (0)
# define MOD4(a) \
do { \
if (a >= (base << 4)) a -= (base << 4); \
if (a >= (base << 3)) a -= (base << 3); \
if (a >= (base << 2)) a -= (base << 2); \
if (a >= (base << 1)) a -= (base << 1); \
if (a >= base) a -= base; \
} while (0)
#else
# define MOD(a) a %= base
# define MOD4(a) a %= base
#endif
/* ========================================================================= */
uLong ZEXPORT adler32(adler buf len)
uLong adler;
const Bytef *buf;
uInt len;
{
unsigned long sum2;
unsigned n;
/* split Adler-32 into component sums */
sum2 = (adler >> 16) & 0xffff;
adler &= 0xffff;
/* in case user likes doing a byte at a time keep it fast */
if (len == 1) {
adler += buf[0];
if (adler >= base)
adler -= base;
sum2 += adler;
if (sum2 >= base)
sum2 -= base;
return adler | (sum2 << 16);
}
/* initial Adler-32 value (deferred check for len == 1 speed) */
if (buf == Z_NULL)
return 1L;
/* in case short lengths are provided keep it somewhat fast */
if (len < 16) {
while (len--) {
adler += *buf++;
sum2 += adler;
}
if (adler >= base)
adler -= base;
- 上一篇:单面透镜光路和像差计算
- 下一篇:nurbs的程序
相关资源
- zlib 最新 1.2.8 win32 win64 编译好的dll
- zlib1.dll 支持WinXP Win7 Win8 Win10
- ZLIB解压缩STM32工程
- OpenSSH升级包、依赖包
- zlib源码+libpng源码,可运行工程
- 二维码的特征定位和信息识别
- CentOS-6.6-x86_64 nginx 依赖 pcre-devel zli
- [rar文件] libharu2.3.0 (含libhpdf.liblibp
- DirectFB-1.4.3.tar.gz
- 最新编译 libcurl.dll 7.60.0静态库包含
- 升级OpenSSH_7.4p1完整源码包
- DirectFB-1.6.1.tar.gz
- libcurl.a(with zlib openssl libssh2) 含r
-
window vs2010 中安装libxm
l2所需要的文 - nginx1.9.0和其所用到所有包
- zlib和libpng源码
- pcre-8.37.tar.gz和zlib-1.2.8.tar.gz
- zlib动态链接库x86&64;
- png++库安装指南和代码
- DirectFB-1.3.0.tar.gz
- centos7 离线安装gcc pcre-devel openssl-dev
- redis集群所需包,内含redis-3.2.1.gem,
- libpng+zlib 有源代码和已经编译好的d
- 文件加密AxCrypt源码附带cryptlib包与Z
- 海思3516A 3516D openssl zlib openssh编译
- x64 windows libcurlopensslzlib编译好,VS直接
- libcurl相关资源
- libqr库的源码及zlib库文件
- zlib-1.2.11.tar
- 使用zlib-1.2.11编译后生成,32位的zli
评论
共有 条评论