hash.h 700 B

1234567891011121314151617181920212223242526
  1. // Copyright 2015 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <cstddef>
  6. #include "common/common_types.h"
  7. namespace Common {
  8. void MurmurHash3_128(const void* key, size_t len, u32 seed, void* out);
  9. /**
  10. * Computes a 64-bit hash over the specified block of data
  11. * @param data Block of data to compute hash over
  12. * @param len Length of data (in bytes) to compute hash over
  13. * @returns 64-bit hash value that was computed over the data block
  14. */
  15. static inline u64 ComputeHash64(const void* data, size_t len) {
  16. u64 res[2];
  17. MurmurHash3_128(data, len, 0, res);
  18. return res[0];
  19. }
  20. } // namespace Common