home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume1 / 8712 / mkmf / 2 / src / hash.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-13  |  1.2 KB  |  48 lines

  1. /* $Header: hash.h,v 1.2 85/03/26 15:49:56 nicklin Exp $ */
  2.  
  3. /*
  4.  * Hash table definitions
  5.  *
  6.  * Author: Peter J. Nicklin
  7.  */
  8.  
  9. /*
  10.  * Singly-linked list block containing a pointer to a hash table
  11.  * block for an include file
  12.  */
  13. typedef struct _iblk
  14.     {
  15.     int i_loop;
  16.     struct _hblk *i_hblk;
  17.     struct _iblk *i_next;
  18.     } INCBLK;
  19. /*
  20.  * Hash table block
  21.  */
  22. typedef struct _hblk
  23.     {
  24.     char *h_key;            /* points to key */
  25.     char *h_def;            /* points to definition string */
  26.     int h_val;            /* integer value */
  27.     struct _iblk *h_sub;        /* ptr to include subchain */
  28.     struct _hblk *h_tag;        /* ptr to auxiliary tag chain */
  29.     struct _hblk *h_next;        /* ptr to next block */
  30.     } HASHBLK;
  31. /*
  32.  * Hash pointer table struct
  33.  */
  34. typedef struct _hash
  35.     {
  36.     HASHBLK **hashtab;        /* hash pointer table */
  37.     int hashsiz;            /* hash table size */
  38.     } HASH;
  39. /*
  40.  * Functions defined for hash tables
  41.  */
  42. extern HASHBLK *htbrm();        /* remove hash table block */
  43. extern int hthash();            /* compute hash value */
  44. extern HASH *htinit();            /* initialize hash table */
  45. extern HASHBLK *htinstall();        /* install hash table entry */
  46. extern HASHBLK *htlookup();        /* find hash table entry */
  47. extern void htrm();            /* remove hash table entry */
  48.