HASH(9) | Kernel Developer's Manual | HASH(9)

# NAME

`hash`, `hash32_buf`, `hash32_str`, `hash32_strn` —
kernel hash functions

# SYNOPSIS

`#include <sys/types.h>`
`#include <sys/hash.h>`

uint32_t
`hash32_buf`(const void *buf, size_t len, uint32_t ihash);

uint32_t
`hash32_str`(const void *buf, uint32_t ihash);

uint32_t
`hash32_strn`(const void *buf, size_t len, uint32_t ihash);

# DESCRIPTION

The `hash` functions returns a hash of the given buffer.

The `hash32_buf`() function returns a 32 bit hash of buf, which is len bytes long, seeded with an initial hash of ihash (which is usually `HASH32_BUF_INIT`). This function may use a different algorithm to `hash32_str`() and `hash32_strn`().

The `hash32_str`() function returns a 32 bit hash of buf, which is a `NUL` terminated ASCII string, seeded with an initial hash of ihash (which is usually `HASH32_STR_INIT`). This function must use the same algorithm as `hash32_strn`(), so that the same data returns the same hash.

The `hash32_strn`() function returns a 32 bit hash of buf, which is a `NUL` terminated ASCII string, up to a maximum of len bytes, seeded with an initial hash of ihash (which is usually `HASH32_STR_INIT`). This function must use the same algorithm as `hash32_str`(), so that the same data returns the same hash.

The ihash parameter is provided to allow for incremental hashing by allowing successive calls to use a previous hash value.

# RETURN VALUES

The hash32_* functions return a 32 bit hash of the provided buffer.

# HISTORY

The kernel hashing API first appeared in NetBSD 1.6.

December 5, 2001 | NetBSD 9.3