ranhash(3x) ranhash(3x)
Name
ranhashinit, ranhash, ranlookup - access routine for the symbol table definition file in archives
Syntax
#include <ar.h>
int ranhashinit(pran, pstr, size)
struct ranlib *pran;
char *pstr;
int size;
ranhash(name)
char *name;
struct ranlib *ranhash(name)
char *name;
Description
The function initializes static information for future use by and The argument pran points to an array of ranlib structures. The argument
pstr points to the corresponding ranlib string table (these are only used by The argument size size is the size of the hash table and
should be a power of 2. If the size is not a power of 2, a 1 is returned; otherwise, a 0 is returned.
The function returns a hash number given a name. It uses a multiplicative hashing algorithm and the size argument to
The function looks up name in the ranlib table specified by ranhashinit. It uses the routine as a starting point. Then, it does a rehash
from there. This routine returns a pointer to a valid ranlib entry on a match. If no matches are found (the "emptiness" can be inferred
if the ran_off field is zero), the empty ranlib structure hash table should be sparse. This routine does not expect to run out of places
to look in the table. For example, if you collide on all entries in the table, an error is printed tostderr and a zero is returned.
See Also
ar(1), ar(5)
RISC ranhash(3x)