hashinit , hashinit_flags, hashdestroy , phashinit - manage kernel hash tables
The
hashinit ();
function allocates hash tables that are sized to largest power of two
less than or equal to argument
Fa nelements .
The
phashinit ();
function allocates hash tables that are sized to the largest prime
number less than or equal to argument
Fa nelements .
The
hashinit_flags ();
function operates like
hashinit ();
but also accepts an additional argument
Fa flags
which control various options during allocation.
Allocated hash tables are contiguous arrays of
LIST_HEAD3
entries, allocated using
malloc(9),
and initialized using
LIST_INIT3.
The malloc arena to be used for allocation is pointed to by argument
Fa type .
The
hashdestroy ();
function frees the space occupied by the hash table pointed to by argument
Fa hashtbl .
Argument
Fa type
determines the malloc arena to use when freeing space.
The argument
Fa hashmask
should be the bit mask returned by the call to
hashinit ();
that allocated the hash table.
The argument
Fa flags
must be used with one of the following values.
The
phashinit ();
function returns a pointer to an allocated hash table and sets the
location pointed to by
Fa nentries
to the number of rows in the hash table.
... static LIST_HEAD(foo, foo) *footable; static u_long foomask; ... footable = hashinit(32, M_FOO, &foomask);
Here we allocate a hash table with 32 entries from the malloc arena
pointed to by
M_FOO
The mask for the allocated hash table is returned in
foomask
A subsequent call to
hashdestroy ();
uses the value in
foomask
... hashdestroy(footable, M_FOO, foomask);
The
hashdestroy ();
function will panic if the hash table
pointed to by
Fa hashtbl
is not empty.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |