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

FreeBSD Manual Pages

  
 
  

home | help
OHASH_INTERVAL(3)	 BSD 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 func-
     tions 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-ter-
     minated strings.

SEE ALSO
     ohash_init(3)

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

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

BSD				 June 5, 2013				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | SEE ALSO | STANDARDS | HISTORY

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

home | help