diff options
| author | 2015-07-21 22:54:38 -0400 | |
|---|---|---|
| committer | 2015-08-15 17:33:46 -0400 | |
| commit | d67e2f78b77c0739caa8c6a915685aa8961a519c (patch) | |
| tree | 6973754fc51ceb01efecd8618150084fd0608487 /src/common/hash.h | |
| parent | Common: Ported over boilerplate x86 JIT code from Dolphin/PPSSPP. (diff) | |
| download | yuzu-d67e2f78b77c0739caa8c6a915685aa8961a519c.tar.gz yuzu-d67e2f78b77c0739caa8c6a915685aa8961a519c.tar.xz yuzu-d67e2f78b77c0739caa8c6a915685aa8961a519c.zip | |
Common: Added MurmurHash3 hash function for general-purpose use.
Diffstat (limited to '')
| -rw-r--r-- | src/common/hash.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/common/hash.h b/src/common/hash.h new file mode 100644 index 000000000..a3850be68 --- /dev/null +++ b/src/common/hash.h | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | // Copyright 2015 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "common/common_types.h" | ||
| 8 | |||
| 9 | namespace Common { | ||
| 10 | |||
| 11 | void MurmurHash3_128(const void* key, int len, u32 seed, void* out); | ||
| 12 | |||
| 13 | /** | ||
| 14 | * Computes a 64-bit hash over the specified block of data | ||
| 15 | * @param data Block of data to compute hash over | ||
| 16 | * @param len Length of data (in bytes) to compute hash over | ||
| 17 | * @returns 64-bit hash value that was computed over the data block | ||
| 18 | */ | ||
| 19 | static inline u64 ComputeHash64(const void* data, int len) { | ||
| 20 | u64 res[2]; | ||
| 21 | MurmurHash3_128(data, len, 0, res); | ||
| 22 | return res[0]; | ||
| 23 | } | ||
| 24 | |||
| 25 | } // namespace Common | ||