diff options
author | Moriah Waterland <Moriah.Waterland@Sun.COM> | 2009-06-03 20:16:25 -0600 |
---|---|---|
committer | Moriah Waterland <Moriah.Waterland@Sun.COM> | 2009-06-03 20:16:25 -0600 |
commit | 5c51f1241dbbdf2656d0e10011981411ed0c9673 (patch) | |
tree | 0f30a2e38fe4e5d53a5a67264ba548577d82a86f /usr/src/lib/libpkg/common/nhash.h | |
parent | 2b79d384d32b4ea1e278466cd9b0f3bb56daae22 (diff) | |
download | illumos-joyent-5c51f1241dbbdf2656d0e10011981411ed0c9673.tar.gz |
6739234 move SVR4 packaging to ONNV gate
Diffstat (limited to 'usr/src/lib/libpkg/common/nhash.h')
-rw-r--r-- | usr/src/lib/libpkg/common/nhash.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/usr/src/lib/libpkg/common/nhash.h b/usr/src/lib/libpkg/common/nhash.h new file mode 100644 index 0000000000..cc32228cb9 --- /dev/null +++ b/usr/src/lib/libpkg/common/nhash.h @@ -0,0 +1,75 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright 2003 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _NHASH_H +#define _NHASH_H + + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef NULL +#define NULL 0 +#endif /* NULL */ + +typedef struct item_t { + void *key; + int keyl; + void *data; + int datal; +} Item; + +#define Null_Item ((Item *) NULL) + +typedef struct bucket_t { + int nent; + int nalloc; + Item **itempp; +} Bucket; + +typedef struct cache_t { + int hsz; + int bsz; + Bucket *bp; + int (*hfunc)(void *, int, int); + int (*cfunc)(void *, void *, int); +} Cache; + +#ifdef _KERNEL +#define malloc bkmem_alloc +#endif /* _KERNEL */ + +extern int init_cache(Cache **cp, int hsz, int bsz, + int (*hfunc)(void *, int, int), int (*cfunc)(void *, void *, int)); +extern int add_cache(Cache *cp, Item *itemp); +extern Item *lookup_cache(Cache *cp, void *datap, int datalen); + +#ifdef __cplusplus +} +#endif + +#endif /* _NHASH_H */ |