mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
merged
This commit is contained in:
commit
755455e15c
37 changed files with 498 additions and 219 deletions
|
|
@ -29,7 +29,7 @@ libmysys_a_SOURCES = my_init.c my_getwd.c mf_getdate.c\
|
|||
mf_path.c mf_loadpath.c\
|
||||
my_open.c my_create.c my_dup.c my_seek.c my_read.c \
|
||||
my_pread.c my_write.c \
|
||||
mf_keycache.c \
|
||||
mf_keycache.c my_crc32.c \
|
||||
mf_iocache.c mf_iocache2.c mf_cache.c mf_tempfile.c \
|
||||
mf_tempdir.c my_lock.c mf_brkhant.c my_alarm.c \
|
||||
my_malloc.c my_realloc.c my_once.c mulalloc.c \
|
||||
|
|
|
|||
|
|
@ -19,19 +19,22 @@
|
|||
#include "my_sys.h"
|
||||
|
||||
/*
|
||||
Calculate a long checksum for a memoryblock. Used to verify pack_isam
|
||||
|
||||
Calculate a long checksum for a memoryblock.
|
||||
|
||||
SYNOPSIS
|
||||
checksum()
|
||||
mem Pointer to memory block
|
||||
count Count of bytes
|
||||
my_checksum()
|
||||
crc start value for crc
|
||||
pos pointer to memory block
|
||||
length length of the block
|
||||
*/
|
||||
|
||||
ulong checksum(const byte *mem, uint count)
|
||||
ha_checksum my_checksum(ha_checksum crc, const byte *pos, uint length)
|
||||
{
|
||||
ulong crc;
|
||||
for (crc= 0; count-- ; mem++)
|
||||
crc= ((crc << 1) + *((uchar*) mem)) +
|
||||
test(crc & ((ulong) 1L << (8*sizeof(ulong)-1)));
|
||||
/* const byte *end=pos+length;
|
||||
for ( ; pos != end ; pos++)
|
||||
crc=((crc << 8) + *((uchar*) pos)) + (crc >> (8*sizeof(ha_checksum)-8));
|
||||
return crc;
|
||||
*/
|
||||
return (ha_checksum)crc32((uint)crc, (const uchar *)pos, length);
|
||||
}
|
||||
|
||||
|
|
|
|||
36
mysys/my_crc32.c
Normal file
36
mysys/my_crc32.c
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* Copyright (C) 2003 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#include "mysys_priv.h"
|
||||
|
||||
#ifndef HAVE_COMPRESS
|
||||
|
||||
/* minimal set of defines for using crc32() from zlib codebase */
|
||||
#define _ZLIB_H
|
||||
#define ZEXPORT
|
||||
#define Z_NULL 0
|
||||
#define OF(args) args
|
||||
#undef DYNAMIC_CRC_TABLE
|
||||
typedef uchar Byte;
|
||||
typedef uchar Bytef;
|
||||
typedef uint uInt;
|
||||
typedef ulong uLong;
|
||||
typedef ulong uLongf;
|
||||
|
||||
#include "../zlib/crc32.c"
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue