xxhash128-php.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #define FFI_LIB "libxxhash.so"
  2. typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
  3. typedef uint32_t XXH32_hash_t;
  4. typedef uint64_t XXH64_hash_t;
  5. struct XXH3_state_s {
  6. XXH64_hash_t acc[8];
  7. unsigned char customSecret[192]; /* used to store a custom secret generated from the seed. Makes state larger. Design might change */
  8. unsigned char buffer[256];
  9. XXH32_hash_t bufferedSize;
  10. XXH32_hash_t nbStripesPerBlock;
  11. XXH32_hash_t nbStripesSoFar;
  12. XXH32_hash_t secretLimit;
  13. XXH32_hash_t reserved32;
  14. XXH32_hash_t reserved32_2;
  15. XXH64_hash_t totalLen;
  16. XXH64_hash_t seed;
  17. XXH64_hash_t reserved64;
  18. const unsigned char* secret; /* note : there is some padding after, due to alignment on 64 bytes */
  19. }; /* typedef'd to XXH3_state_t */
  20. typedef struct XXH3_state_s XXH3_state_t;
  21. extern XXH3_state_t* XXH3_createState(void);
  22. extern XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr);
  23. typedef struct {
  24. XXH64_hash_t low64;
  25. XXH64_hash_t high64;
  26. } XXH128_hash_t;
  27. extern XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t seed);
  28. extern XXH128_hash_t XXH3_128bits(const void* data, size_t len);
  29. extern XXH128_hash_t XXH3_128bits_withSeed(const void* data, size_t len, XXH64_hash_t seed); /* == XXH128() */
  30. extern XXH128_hash_t XXH3_128bits_withSecret(const void* data, size_t len, const void* secret, size_t secretSize);
  31. extern XXH_errorcode XXH3_128bits_reset(XXH3_state_t* statePtr);
  32. extern XXH_errorcode XXH3_128bits_reset_withSeed(XXH3_state_t* statePtr, XXH64_hash_t seed);
  33. extern XXH_errorcode XXH3_128bits_reset_withSecret(XXH3_state_t* statePtr, const void* secret, size_t secretSize);
  34. extern XXH_errorcode XXH3_128bits_update (XXH3_state_t* statePtr, const void* input, size_t length);
  35. extern XXH128_hash_t XXH3_128bits_digest (const XXH3_state_t* statePtr);
  36. typedef struct { unsigned char digest[16]; } XXH128_canonical_t;
  37. extern void XXH128_canonicalFromHash(XXH128_canonical_t* dst, XXH128_hash_t hash);
  38. extern XXH128_hash_t XXH128_hashFromCanonical(const XXH128_canonical_t* src);