xref: /openbsd-src/share/man/man9/hashinit.9 (revision f2da64fbbbf1b03f09f390ab01267c93dfd77c4c)
1.\"	$OpenBSD: hashinit.9,v 1.7 2016/09/02 18:32:39 jmc Exp $
2.\"
3.\" Copyright (c) 2001 Tobias Weingartner
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. The name of the author may not be used to endorse or promote products
15.\"    derived from this software without specific prior written permission.
16.\"
17.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27.\"
28.Dd $Mdocdate: September 2 2016 $
29.Dt HASHINIT 9
30.Os
31.Sh NAME
32.Nm hashinit
33.\" This should be ported from netbsd as well...
34.\" .Nm hashdone
35.Nd kernel hashtable functions
36.Sh SYNOPSIS
37.In sys/systm.h
38.Ft void *
39.Fn hashinit "int num" "int type" "int flags" "u_long *mask"
40.Sh DESCRIPTION
41The
42.Fn hashinit
43function is used to allocate a hashtable of a desired size given by the
44.Fa num
45argument.
46The
47.Fn hashinit
48function will round this number to the next power of two, and
49allocate and initialize the requested hashtable.
50The
51.Fa type
52and
53.Fa flags
54arguments are passed to the
55.Xr malloc 9
56function unchanged.
57The
58.Fa mask
59argument is used to pass back the mask for use with the allocated
60hashing table.
61.Sh RETURN VALUES
62The
63.Fn hashinit
64function returns a pointer to the allocated and initialized hash table.
65.Sh SEE ALSO
66.Xr free 9 ,
67.Xr malloc 9
68.Sh LIMITATIONS
69The
70.Fn hashinit
71function currently only allocates hash tables with LIST bucket pointers
72at this time.
73Future enhancements to allocate QUEUE bucket pointers may be warranted.
74This may necessitate an API change to accommodate.
75.Sh HISTORY
76The
77.Nm
78function first appeared in
79.Bx 4.4 .
80