Home | History | Annotate | Line # | Download | only in cvt
      1 /*
      2  * CDDL HEADER START
      3  *
      4  * The contents of this file are subject to the terms of the
      5  * Common Development and Distribution License, Version 1.0 only
      6  * (the "License").  You may not use this file except in compliance
      7  * with the License.
      8  *
      9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  * or http://www.opensolaris.org/os/licensing.
     11  * See the License for the specific language governing permissions
     12  * and limitations under the License.
     13  *
     14  * When distributing Covered Code, include this CDDL HEADER in each
     15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  * If applicable, add the following below this CDDL HEADER, with the
     17  * fields enclosed by brackets "[]" replaced with your own identifying
     18  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  *
     20  * CDDL HEADER END
     21  */
     22 /*
     23  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
     24  * Use is subject to license terms.
     25  */
     26 
     27 #ifndef _HASH_H
     28 #define	_HASH_H
     29 
     30 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     31 
     32 /*
     33  * Routines for manipulating hash tables
     34  */
     35 
     36 #ifdef __cplusplus
     37 extern "C" {
     38 #endif
     39 
     40 typedef struct hash hash_t;
     41 
     42 hash_t *hash_new(int, int (*)(int, void *), int (*)(void *, void *));
     43 void hash_add(hash_t *, void *);
     44 void hash_merge(hash_t *, hash_t *);
     45 void hash_remove(hash_t *, void *);
     46 int hash_find(hash_t *, void *, void **);
     47 int hash_find_iter(hash_t *, void *, int (*)(void *, void *), void *);
     48 int hash_iter(hash_t *, int (*)(void *, void *), void *);
     49 int hash_match(hash_t *, void *, int (*)(void *, void *), void *);
     50 int hash_count(hash_t *);
     51 int hash_name(int, const char *);
     52 void hash_stats(hash_t *, int);
     53 void hash_free(hash_t *, void (*)(void *, void *), void *);
     54 
     55 #ifdef __cplusplus
     56 }
     57 #endif
     58 
     59 #endif /* _HASH_H */
     60