HASH(9)

HASH(9) | NetBSD 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 5.99