373 lines
19 KiB
ObjectPascal
373 lines
19 KiB
ObjectPascal
//remove this to use SSE2 only
|
|
{.$DEFINE AVX2}
|
|
|
|
|
|
unit XXHASHLIB;
|
|
|
|
interface
|
|
const
|
|
XXH_VERSION_MAJOR = 0;
|
|
XXH_VERSION_MINOR = 8;
|
|
XXH_VERSION_RELEASE = 1;
|
|
XXH_VERSION_NUMBER = XXH_VERSION_MAJOR *10000 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE;
|
|
XXH3_SECRET_DEFAULT_SIZE = 192;
|
|
XXH3_INTERNALBUFFER_SIZE =256;
|
|
type
|
|
XXH_errorcode = (XXH_OK=0,XXH_ERROR);
|
|
|
|
XXH32_hash_t = Cardinal;
|
|
PXXH32_hash_t = ^XXH32_hash_t;
|
|
XXH32_canonical_t = array[0..sizeof(XXH32_hash_t)-1] of byte;
|
|
XXH32_state_t = record
|
|
total_len_32,large_len : XXH32_hash_t;
|
|
v,mem32 : array[0..3] of XXH32_hash_t;
|
|
memsize,reserved : XXH32_hash_t
|
|
end;
|
|
PXXH32_state_t = ^XXH32_state_t;
|
|
|
|
XXH64_hash_t = UINT64;
|
|
PXXH64_hash_t = ^XXH64_hash_t;
|
|
XXH64_canonical_t = array[0..sizeof(XXH64_hash_t)-1] of byte;
|
|
XXH64_state_t = record
|
|
total_len : XXH64_hash_t;
|
|
v, mem64 : array[0..3] of XXH64_hash_t;
|
|
memsize,reserved32reserved32 : XXH32_hash_t;
|
|
reserved64 : XXH64_hash_t;
|
|
end;
|
|
PXXH64_state_t = ^XXH64_state_t;
|
|
|
|
XXH128_hash_t = record
|
|
low64,high64 : XXH64_hash_t;
|
|
end;
|
|
PXXH128_hash_t = ^XXH128_hash_t;
|
|
XXH128_canonical_t = array[0..sizeof(XXH128_hash_t)-1] of byte;
|
|
XXH3_state_t = record
|
|
acc : array[0..7] of XXH64_hash_t;
|
|
customSecret : array[0..XXH3_SECRET_DEFAULT_SIZE-1] of byte;
|
|
buffer : array[0..XXH3_INTERNALBUFFER_SIZE-1] of byte;
|
|
buffersize,useSeed : XXH32_hash_t;
|
|
nbStripesSoFar : NativeInt;
|
|
totalLen : XXH64_hash_t;
|
|
nbStripesPerBlock,secretLimit : NativeInt;
|
|
seed, reserved64 : XXH64_hash_t;
|
|
extSecret : Pointer;
|
|
end;
|
|
PXXH3_state_t = ^XXH3_state_t;
|
|
|
|
function XXH_versionNumber:Cardinal;
|
|
{$IFDEF WIN32}inline; function _XXH_versionNumber:Cardinal;
|
|
{$ENDIF}cdecl; external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH32_hash_t XXH32(const void* input, size_t length, XXH32_hash_t seed);
|
|
function XXH32(input : Pointer; length : NativeInt; seed : XXH32_hash_t):
|
|
XXH32_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH32(input : Pointer; length : NativeInt; seed : XXH32_hash_t):
|
|
XXH32_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
|
|
//XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void);
|
|
function XXH32_createState : PXXH32_state_t;
|
|
{$IFDEF WIN32}inline; function _XXH32_createState : PXXH32_state_t;
|
|
{$ENDIF} cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr);
|
|
function XXH32_freeState(statePtr : PXXH32_state_t):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH32_freeState(statePtr : PXXH32_state_t):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
|
|
//XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dst_state, const XXH32_state_t* src_state);
|
|
procedure XXH32_copyState(dst_state,src_state:PXXH32_state_t); cdecl;
|
|
{$IFDEF WIN32}inline; procedure _XXH32_copyState(dst_state,src_state:PXXH32_state_t);
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t* statePtr, XXH32_hash_t seed);
|
|
function XXH32_reset(var state:XXH32_state_t; seed:XXH32_hash_t):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH32_reset(var state:XXH32_state_t; seed:XXH32_hash_t):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* statePtr, const void* input, size_t length);
|
|
function XXH32_update(var state:XXH32_state_t;input:Pointer;length:NativeInt)
|
|
: XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH32_update(var state:XXH32_state_t;input:Pointer;length:NativeInt)
|
|
: XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
|
|
//XXH_PUBLIC_API XXH32_hash_t XXH32_digest (const XXH32_state_t* statePtr);
|
|
function XXH32_digest(var state:XXH32_state_t):XXH32_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH32_digest(var state:XXH32_state_t):XXH32_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
|
|
//XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash);
|
|
procedure XXH32_canonicalFromHash(var dst:XXH32_canonical_t; hash:XXH32_hash_t);
|
|
{$IFDEF WIN32}inline; procedure _XXH32_canonicalFromHash(var dst:XXH32_canonical_t; hash:XXH32_hash_t);
|
|
{$ENDIF}cdecl; external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
|
|
//XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src);
|
|
function XXH32_hashFromCanonical(var src: XXH32_canonical_t): XXH32_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH32_hashFromCanonical(var src: XXH32_canonical_t): XXH32_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH64_hash_t XXH64(const void* input, size_t length, XXH64_hash_t seed);
|
|
function XXH64(input : Pointer; length : NativeInt; seed : XXH64_hash_t):
|
|
XXH64_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH64(input : Pointer; length : NativeInt; seed : XXH64_hash_t):
|
|
XXH64_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
|
|
//XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void);
|
|
function XXH64_createState : PXXH64_state_t;
|
|
{$IFDEF WIN32}inline; function _XXH64_createState : PXXH64_state_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr);
|
|
function XXH64_freeState(statePtr : PXXH64_state_t):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH64_freeState(statePtr : PXXH64_state_t):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API void XXH64_copyState(XXH64_state_t* dst_state, const XXH64_state_t* src_state);
|
|
procedure XXH64_copyState(dst_state,src_state:PXXH64_state_t);
|
|
{$IFDEF WIN32}inline; procedure _XXH64_copyState(dst_state,src_state:PXXH64_state_t);
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH64_state_t* statePtr, XXH64_hash_t seed);
|
|
function XXH64_reset(var state:XXH64_state_t; seed:XXH64_hash_t):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH64_reset(var state:XXH64_state_t; seed:XXH64_hash_t):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t* statePtr, const void* input, size_t length);
|
|
function XXH64_update(var state:XXH64_state_t;input:Pointer;length:NativeInt)
|
|
: XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH64_update(var state:XXH64_state_t;input:Pointer;length:NativeInt)
|
|
: XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH64_hash_t XXH64_digest (const XXH64_state_t* statePtr);
|
|
function XXH64_digest(var state:XXH64_state_t):XXH64_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH64_digest(var state:XXH64_state_t):XXH64_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH64_hash_t hash);
|
|
procedure XXH64_canonicalFromHash(var dst:XXH64_canonical_t; hash:XXH64_hash_t);
|
|
{$IFDEF WIN32}inline; procedure _XXH64_canonicalFromHash(var dst:XXH64_canonical_t; hash:XXH64_hash_t);
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src);
|
|
function XXH64_hashFromCanonical(var src: XXH64_canonical_t): XXH64_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH64_hashFromCanonical(var src: XXH64_canonical_t): XXH64_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH64_hash_t XXH3_64bits(const void* data, size_t len);
|
|
function XXH3_64bits(data : Pointer; len : NativeInt):XXH64_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH3_64bits(data : Pointer; len : NativeInt):XXH64_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH128_hash_t XXH3_128bits(const void* data, size_t len);
|
|
function XXH3_128bits(data : Pointer; len : NativeInt):XXH128_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits(data : Pointer; len : NativeInt):XXH128_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_withSeed(const void* data, size_t len, XXH64_hash_t seed);
|
|
function XXH3_128bits_withSeed(data : Pointer; len : NativeInt; seed :
|
|
XXH64_hash_t):XXH128_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_withSeed(data : Pointer; len : NativeInt; seed :
|
|
XXH64_hash_t):XXH128_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_withSecret(const void* data, size_t len, const void* secret, size_t secretSize);
|
|
function XXH3_128bits_withSecret(data : Pointer; len : NativeInt; secret :
|
|
Pointer; secretSize: NativeInt):XXH128_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_withSecret(data : Pointer; len : NativeInt; secret :
|
|
Pointer; secretSize: NativeInt):XXH128_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset(XXH3_state_t* statePtr);
|
|
function XXH3_128bits_reset(var state : XXH3_state_t):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_reset(var state : XXH3_state_t):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSeed(XXH3_state_t* statePtr, XXH64_hash_t seed);
|
|
function XXH3_128bits_reset_withSeed(var state : XXH3_state_t; seed :
|
|
XXH64_hash_t):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_reset_withSeed(var state : XXH3_state_t; seed :
|
|
XXH64_hash_t):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSecret(XXH3_state_t* statePtr, const void* secret, size_t secretSize);
|
|
function XXH3_128bits_reset_withSecret(var state : XXH3_state_t; secret :
|
|
Pointer; secretSize:NativeInt):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_reset_withSecret(var state : XXH3_state_t; secret :
|
|
Pointer; secretSize:NativeInt):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH3_128bits_update (XXH3_state_t* statePtr, const void* input, size_t length);
|
|
function XXH3_128bits_update(var state : XXH3_state_t; input : Pointer; length
|
|
: NativeInt):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_update(var state : XXH3_state_t; input : Pointer; length
|
|
: NativeInt):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_digest (const XXH3_state_t* statePtr);
|
|
function XXH3_128bits_digest(var state : XXH3_state_t):XXH128_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_digest(var state : XXH3_state_t):XXH128_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API int XXH128_isEqual(XXH128_hash_t h1, XXH128_hash_t h2);
|
|
function XXH128_isEqual(h1,h2 : XXH128_hash_t):integer;
|
|
{$IFDEF WIN32}inline; function _XXH128_isEqual(h1,h2 : XXH128_hash_t):integer;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API int XXH128_cmp(const void* h128_1, const void* h128_2);
|
|
function XXH128_cmp(h1,h2 : Pointer):integer;
|
|
{$IFDEF WIN32}inline; function _XXH128_cmp(h1,h2 : Pointer):integer;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API void XXH128_canonicalFromHash(XXH128_canonical_t* dst, XXH128_hash_t hash);
|
|
procedure XXH128_canonicalFromHash(var dst:XXH128_canonical_t; hash :
|
|
XXH128_hash_t);
|
|
{$IFDEF WIN32}inline; procedure _XXH128_canonicalFromHash(var dst:XXH128_canonical_t; hash :
|
|
XXH128_hash_t);
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH128_hash_t XXH128_hashFromCanonical(const XXH128_canonical_t* src);
|
|
function XXH128_hashFromCanonical(var src:XXH128_canonical_t):XXH128_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH128_hashFromCanonical(var src:XXH128_canonical_t):XXH128_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t seed);
|
|
function XXH128(data : Pointer; len : NativeInt; seed : XXH64_hash_t):
|
|
XXH128_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH128(data : Pointer; len : NativeInt; seed : XXH64_hash_t):
|
|
XXH128_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode XXH3_generateSecret(void* secretBuffer, size_t secretSize, const void* customSeed, size_t customSeedSize);
|
|
function XXH3_generateSecret(secretBuffer:Pointer; secretSize : NativeInt;
|
|
customSeed : Pointer; customSeedSize : NativeInt):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH3_generateSecret(secretBuffer:Pointer; secretSize : NativeInt;
|
|
customSeed : Pointer; customSeedSize : NativeInt):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API void XXH3_generateSecret_fromSeed(void* secretBuffer, XXH64_hash_t seed);
|
|
procedure XXH3_generateSecret_fromSeed(secretBuffer : Pointer; seed :
|
|
XXH64_hash_t);
|
|
{$IFDEF WIN32}inline; procedure _XXH3_generateSecret_fromSeed(secretBuffer : Pointer; seed :
|
|
XXH64_hash_t);
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH64_hash_t
|
|
//XXH3_64bits_withSecretandSeed(const void* data, size_t len,
|
|
// const void* secret, size_t secretSize,
|
|
// XXH64_hash_t seed);
|
|
function XXH3_64bits_withSecretandSeed(data : Pointer; len : NativeInt; secret
|
|
: Pointer; secretSize : NativeInt; seed : XXH64_hash_t):XXH64_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH3_64bits_withSecretandSeed(data : Pointer; len : NativeInt; secret
|
|
: Pointer; secretSize : NativeInt; seed : XXH64_hash_t):XXH64_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH128_hash_t
|
|
//XXH3_128bits_withSecretandSeed(const void* data, size_t len,
|
|
// const void* secret, size_t secretSize,
|
|
// XXH64_hash_t seed64);
|
|
function XXH3_128bits_withSecretandSeed(data : Pointer; len : NativeInt;
|
|
secret : Pointer; secretSize : NativeInt; seed : XXH64_hash_t):
|
|
XXH128_hash_t;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_withSecretandSeed(data : Pointer; len : NativeInt;
|
|
secret : Pointer; secretSize : NativeInt; seed : XXH64_hash_t):
|
|
XXH128_hash_t;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode
|
|
//XXH3_64bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
|
|
// const void* secret, size_t secretSize,
|
|
// XXH64_hash_t seed64);
|
|
function XXH3_64bits_reset_withSecretandSeed(var state : XXH3_state_t; secret
|
|
: Pointer; secretSize : NativeInt; seed64 : XXH64_hash_t):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH3_64bits_reset_withSecretandSeed(var state : XXH3_state_t; secret
|
|
: Pointer; secretSize : NativeInt; seed64 : XXH64_hash_t):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
//XXH_PUBLIC_API XXH_errorcode
|
|
//XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
|
|
// const void* secret, size_t secretSize,
|
|
// XXH64_hash_t seed64);
|
|
function XXH3_128bits_reset_withSecretandSeed(var state : XXH3_state_t; secret
|
|
: Pointer; secretSize : NativeInt; seed64 : XXH64_hash_t):XXH_errorcode;
|
|
{$IFDEF WIN32}inline; function _XXH3_128bits_reset_withSecretandSeed(var state : XXH3_state_t; secret
|
|
: Pointer; secretSize : NativeInt; seed64 : XXH64_hash_t):XXH_errorcode;
|
|
{$ENDIF}cdecl;external{$IFDEF POSIX} 'libxxhash.a'{$ENDIF};
|
|
|
|
procedure XXH3_INITSTATE(var XXH3_state : XXH3_state_t); inline;
|
|
|
|
implementation
|
|
{$IFDEF MSWINDOWS}
|
|
uses system.Win.Crtl;
|
|
{$ENDIF}
|
|
|
|
{$IFDEF WIN64}
|
|
{$IFDEF AVX2}
|
|
{$L XXHASH4DELPHI.AVX2.X64.O}
|
|
{$ELSE}
|
|
{$L XXHASH4DELPHI.SSE2.X64.O}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
{$IFDEF WIN32}
|
|
function XXH_versionNumber; begin exit(_XXH_versionNumber)end;
|
|
function XXH32;begin exit(_XXH32(input,length,seed))end;
|
|
function XXH32_createState;begin exit(_XXH32_createState)end;
|
|
function XXH32_freeState;begin exit(_XXH32_freeState(statePtr))end;
|
|
procedure XXH32_copyState;begin _XXH32_copyState(dst_state,src_state)end;
|
|
function XXH32_reset;begin exit(_XXH32_reset(state,seed))end;
|
|
function XXH32_update;begin exit(_XXH32_update(state,input,length))end;
|
|
function XXH32_digest;begin exit(_XXH32_digest(state))end;
|
|
procedure XXH32_canonicalFromHash;begin _XXH32_canonicalFromHash(dst,hash)end;
|
|
function XXH32_hashFromCanonical;begin exit(_XXH32_hashFromCanonical(src))end;
|
|
function XXH64;begin exit(_XXH64(input,length,seed))end;
|
|
function XXH64_createState;begin exit(_XXH64_createState)end;
|
|
function XXH64_freeState;begin exit(_XXH64_freeState(statePtr))end;
|
|
procedure XXH64_copyState;begin _XXH64_copyState(dst_state,src_state)end;
|
|
function XXH64_reset;begin exit(_XXH64_reset(state,seed))end;
|
|
function XXH64_update;begin exit(_XXH64_update(state,input,length))end;
|
|
function XXH64_digest;begin exit(_XXH64_digest(state))end;
|
|
procedure XXH64_canonicalFromHash;begin _XXH64_canonicalFromHash(dst,hash)end;
|
|
function XXH64_hashFromCanonical;begin exit(_XXH64_hashFromCanonical(src))end;
|
|
function XXH3_64bits;begin exit(_XXH3_64bits(data,len))end;
|
|
function XXH3_128bits;begin exit(_XXH3_128bits(data,len))end;
|
|
function XXH3_128bits_withSeed;begin exit(_XXH3_128bits_withSeed(data,len,seed))end;
|
|
function XXH3_128bits_withSecret;begin exit(_XXH3_128bits_withSecret(data,len,secret,secretSize))end;
|
|
function XXH3_128bits_reset;begin exit(_XXH3_128bits_reset(state))end;
|
|
function XXH3_128bits_reset_withSeed;begin exit(_XXH3_128bits_reset_withSeed(state,seed))end;
|
|
function XXH3_128bits_reset_withSecret;begin exit(_XXH3_128bits_reset_withSecret(state,secret,secretSize))end;
|
|
function XXH3_128bits_update;begin exit(_XXH3_128bits_update(state,input,length))end;
|
|
function XXH3_128bits_digest;begin exit(_XXH3_128bits_digest(state))end;
|
|
function XXH128_isEqual;begin exit(_XXH128_isEqual(h1,h2))end;
|
|
function XXH128_cmp;begin exit(_XXH128_cmp(h1,h2))end;
|
|
procedure XXH128_canonicalFromHash;begin _XXH128_canonicalFromHash(dst,hash)end;
|
|
function XXH128_hashFromCanonical;begin exit(_XXH128_hashFromCanonical(src))end;
|
|
function XXH128;begin exit(_XXH128(data,len,seed))end;
|
|
function XXH3_generateSecret;begin exit(_XXH3_generateSecret(secretBuffer,secretSize,customSeed,customSeedSize))end;
|
|
procedure XXH3_generateSecret_fromSeed;begin _XXH3_generateSecret_fromSeed(secretBuffer,seed)end;
|
|
function XXH3_64bits_withSecretandSeed;begin exit(_XXH3_64bits_withSecretandSeed(data,len,secret,secretSize,seed))end;
|
|
function XXH3_128bits_withSecretandSeed;begin exit(_XXH3_128bits_withSecretandSeed(data,len,secret,secretSize,seed))end;
|
|
function XXH3_64bits_reset_withSecretandSeed;begin exit(_XXH3_64bits_reset_withSecretandSeed(state,secret,secretSize,seed64))end;
|
|
function XXH3_128bits_reset_withSecretandSeed;begin exit(_XXH3_128bits_reset_withSecretandSeed(state,secret,secretSize,seed64))end;
|
|
{$IFDEF AVX2}
|
|
{$L XXHASH4DELPHI.AVX2.X86.O}
|
|
{$ELSE}
|
|
{$L XXHASH4DELPHI.SSE2.X86.O}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
procedure XXH3_INITSTATE(var XXH3_state : XXH3_state_t); inline;
|
|
begin
|
|
XXH3_state.seed := 0;
|
|
end;
|
|
|
|
end.
|