Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
OHASH_INTERVAL(3)	     Library Functions Manual	       OHASH_INTERVAL(3)

NAME
     ohash_interval, ohash_create_entry, ohash_qlookup, ohash_qlookupi -- helper
     functions for open hashing

LIBRARY
     OpenBSD Utilities Library (libopenbsd, -lopenbsd)

SYNOPSIS
     #include <stdint.h>
     #include <stddef.h>
     #include <ohash.h>

     uint32_t
     ohash_interval(const char *start, const char **pend);

     void *
     ohash_create_entry(struct ohash_info *info, const char *start,
	 const char **pend);

     unsigned int
     ohash_qlookupi(struct ohash *h, const char *start, const char **pend);

     unsigned int
     ohash_qlookup(struct ohash *h, const char *start);

DESCRIPTION
     These  functions  are commonly used to simplify open hashing usage, and use
     similar conventions.  They operate indifferently on NUL-terminated  strings
     (by  setting *pend = NULL) or memory ranges (delimited by start and *pend).
     For NUL-terminated strings, as a side effect, those functions set *pend  to
     the terminating NUL byte.

     ohash_interval()  is  a simple hashing function that yields good results on
     common data sets.

     ohash_create_entry() can be used to create a new record with a  given  key.
     In  that  case,  the  alloc  field of info should point to a malloc(3)-like
     function to allocate the storage:

	   p = (*info->alloc)(sz, info->data);

     ohash_qlookupi() is a wrapper function that simply  calls	ohash_interval()
     and ohash_lookup_interval().

     ohash_qlookup()  is a variation on ohash_qlookupi() designed for NUL-termi-
     nated strings.

SEE ALSO
     ohash_init(3)

STANDARDS
     Those functions are  completely  non-standard  and  should  be  avoided  in
     portable programs.

HISTORY
     Those functions were designed and written for OpenBSD make(1) by Marc Espie
     in 1999.

FreeBSD ports 15.quarterly	  June 5, 2013		       OHASH_INTERVAL(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ohash_interval&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help