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

# NAME

`hashinit`, `hashfree` — kernel hashtable functions

# SYNOPSIS

`#include <sys/systm.h>`

void *
`hashinit`(int num, int type, int flags, u_long *mask);

void
`hashfree`(void *hash, int num, int type);

# DESCRIPTION

The `hashinit`() function is used to allocate a hashtable of a desired size given by the num argument. The `hashinit`() function will round this number to the next power of two, and allocate and initialize the requested hashtable. The type and flags arguments are passed to the malloc(9) function unchanged. The mask argument is used to pass back the mask for use with the allocated hashing table.

The `hashfree`() function causes memory allocated by the `hashinit`() function to be released. The num and type arguments of related calls must match.

# RETURN VALUES

The `hashinit`() function returns a pointer to the allocated and initialized hash table.

# SEE ALSO

free(9), malloc(9)

# LIMITATIONS

The `hashinit`() function currently only allocates hash tables with LIST bucket pointers at this time. Future enhancements to allocate QUEUE bucket pointers may be warranted. This may necessitate an API change to accommodate.

# HISTORY

The `hashinit` function first appeared in 4.4BSD.

September 24, 2016 | Debian