1.\" $OpenBSD: hashinit.9,v 1.5 2013/06/04 19:27:07 schwarze 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: June 4 2013 $ 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. 61For an example of its use, see 62.Xr hash 9 . 63.Sh RETURN VALUES 64The 65.Fn hashinit 66function returns a pointer to the allocated and initialized hash table. 67.Sh SEE ALSO 68.Xr free 9 , 69.Xr hash 9 , 70.Xr malloc 9 71.Sh LIMITATIONS 72The 73.Fn hashinit 74function currently only allocates hash tables with LIST bucket pointers 75at this time. 76Future enhancements to allocate QUEUE bucket pointers may be warranted. 77This may necessitate an API change to accommodate. 78.Sh HISTORY 79The 80.Nm 81function first appeared in 82.Bx 4.4 . 83