xtool/contrib/XXHASH4Delphi/XXHASHLIB.pas

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.