<linux/hash.h>: Add support for architecture-specific functions

This is just the infrastructure; there are no users yet.

This is modelled on CONFIG_ARCH_RANDOM; a CONFIG_ symbol declares
the existence of <asm/hash.h>.

That file may define its own versions of various functions, and define
HAVE_* symbols (no CONFIG_ prefix!) to suppress the generic ones.

Included is a self-test (in lib/test_hash.c) that verifies the basics.
It is NOT in general required that the arch-specific functions compute
the same thing as the generic, but if a HAVE_* symbol is defined with
the value 1, then equality is tested.

Signed-off-by: George Spelvin <[email protected]>
Cc: Geert Uytterhoeven <[email protected]>
Cc: Greg Ungerer <[email protected]>
Cc: Andreas Schwab <[email protected]>
Cc: Philippe De Muyter <[email protected]>
Cc: [email protected]
Cc: Alistair Francis <[email protected]>
Cc: Michal Simek <[email protected]>
Cc: Yoshinori Sato <[email protected]>
Cc: [email protected]
This commit is contained in:
George Spelvin 2016-05-26 22:11:51 -04:00
commit 468a942852
6 changed files with 299 additions and 4 deletions

View file

@ -1815,6 +1815,17 @@ config TEST_RHASHTABLE
If unsure, say N.
config TEST_HASH
tristate "Perform selftest on hash functions"
default n
help
Enable this option to test the kernel's integer (<linux/hash,h>)
and string (<linux/stringhash.h>) hash functions on boot
(or module load).
This is intended to help people writing architecture-specific
optimized versions. If unsure, say N.
endmenu # runtime tests
config PROVIDE_OHCI1394_DMA_INIT