
特定のバッファのハッシュ値を見つけるために、で宣言されで定義されているarch_fast_hash
Linux カーネル v3.16 の関数を使用しました。include/linux/hash.h
linux/lib/hash.c
しかし、Linux カーネル v3.19 では、その関数はなくなりました。いくつかの新しい関数とマクロがありますが、適切なドキュメントはありません。
arch_fast_hash
適切なハッシュ手法、またはv3.19の代替手段についてどなたか教えてください。
また、ハッシュよりも高速な代替手段はありますか?
リンク
Linux カーネル v3.16 の include/linux/hash.h
Linux カーネル v3.19 の include/linux/hash.h
答え1
試す:
#include <linux/jhash.h>
この関数を使用します:
/*
* jhash - hash an arbitrary key
* @k: sequence of bytes as key
* @length: the length of the key
* @initval: the previous hash, or an arbitray value
*
* The generic version, hashes an arbitrary sequence of bytes.
* No alignment or length assumptions are made about the input key.
* Returns the hash value of the key. The result depends on endianness.
*/
u32 jhash(const void *key, u32 length, u32 initval);