# 2.11BSD#431 - /usr/src/usr.bin/lint/hash.c

##### Functions

    hashstr           X

       1: #if !defined(lint) && defined(DOSCCS)
       2: static char sccsid[] = "@(#)hash.c	1.1	(Berkeley)	3/29/83";
       3: #endif lint
       4:
       5: #include "config.h"
       6:
       7: /*
       8:  * Hash function.  Used for pass 2 symbol table and string table,
       9:  * and structure/union name passing between passes.
      10:  * The hash function is a modular hash of
      11:  * the sum of the characters with the sum
      12:  * rotated before each successive character
      13:  * is added.
      14:  * Only 15 bits are used.
      15:  */
      16: #ifdef FLEXNAMES
      17: hashstr(s)
      18: #else
      19: hashstr(s, n)
      20: register n;
      21: #endif
      22: register char *s;
      23: {
      24:     register i;
      25:
      26:     i = 0;
      27: #ifdef FLEXNAMES
      28:     while (*s)
      29: #else
      30:     while (n-- > 0 && *s)
      31: #endif
      32:         i = (i << 3 | i >> 12 & 0x07) + *s++;
      33:     return i & 0x7fff;
      34: }

#### Defined functions

hashstr defined in line 17; used 4 times

- in /usr/src/usr.bin/lint/lint.c line 192-194(2)
- in /usr/src/usr.bin/lint/lpass2.c line 192, 697

#### Defined variables

sccsid defined in line 2; never used

Last modified: 1991-08-18 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 703 |