45 lines
910 B
C
45 lines
910 B
C
|
|
||
|
//***************************************************************************
|
||
|
//
|
||
|
// (c) 1999-2001 by Microsoft Corp. All Rights Reserved.
|
||
|
//
|
||
|
// crc64.h
|
||
|
//
|
||
|
// cvadai 12-Nov-1999 created
|
||
|
//
|
||
|
//***************************************************************************
|
||
|
|
||
|
#ifndef _CRC64_H_
|
||
|
#define _CRC64_H_
|
||
|
|
||
|
#define TESTHSIZE (4 * 1024 * 1024)
|
||
|
#define TESTHMASK (TESTHSIZE - 1)
|
||
|
|
||
|
#define HINIT1 0xFAC432B1UL
|
||
|
#define HINIT2 0x0CD5E44AUL
|
||
|
|
||
|
#define POLY1 0x00600340UL
|
||
|
#define POLY2 0x00F0D50BUL
|
||
|
|
||
|
typedef unsigned int hint_t; /* we want a 32 bit unsigned integer here */
|
||
|
|
||
|
typedef __int64 hash_t ;
|
||
|
|
||
|
class POLARITY CRC64
|
||
|
{
|
||
|
public:
|
||
|
static hash_t GenerateHashValue(const wchar_t *p);
|
||
|
|
||
|
private:
|
||
|
static void Initialize(void);
|
||
|
static void * RMalloc(int bytes);
|
||
|
|
||
|
CRC64() {};
|
||
|
~CRC64() {};
|
||
|
|
||
|
static BOOL bInit;
|
||
|
static hash_t CrcXor[256];
|
||
|
static hash_t Poly[64+1];
|
||
|
};
|
||
|
|
||
|
#endif
|