[BACK]Return to compat_ohash.h CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/compat_ohash.h between version 1.1 and 1.5

version 1.1, 2012/06/09 11:00:13 version 1.5, 2014/08/08 23:43:47
Line 1 
Line 1 
 #ifndef OHASH_H  
 #define OHASH_H  
 /* $OpenBSD$ */  /* $OpenBSD$ */
 /* ex:ts=8 sw=4:  
  */  
   
 /* Copyright (c) 1999, 2004 Marc Espie <espie@openbsd.org>  /* Copyright (c) 1999, 2004 Marc Espie <espie@openbsd.org>
  *   *
Line 19 
Line 15 
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */   */
   
   #ifndef OHASH_H
   #define OHASH_H
   
 /* Open hashing support.  /* Open hashing support.
  * Open hashing was chosen because it is much lighter than other hash   * Open hashing was chosen because it is much lighter than other hash
  * techniques, and more efficient in most cases.   * techniques, and more efficient in most cases.
  */   */
   
   /* user-visible data structure */
 struct ohash_info {  struct ohash_info {
         ptrdiff_t key_offset;          ptrdiff_t key_offset;
         void *data;     /* user data */          void *data;     /* user data */
         void *(*halloc)(size_t, void *);          void *(*calloc)(size_t, size_t, void *);
         void (*hfree)(void *, size_t, void *);          void (*free)(void *, void *);
         void *(*alloc)(size_t, void *);          void *(*alloc)(size_t, void *);
 };  };
   
 struct _ohash_record;  struct _ohash_record;
   
   /* private structure. It's there just so you can do a sizeof */
 struct ohash {  struct ohash {
         struct _ohash_record    *t;          struct _ohash_record    *t;
         struct ohash_info       info;          struct ohash_info       info;
Line 55  void ohash_delete(struct ohash *);
Line 56  void ohash_delete(struct ohash *);
 unsigned int ohash_lookup_interval(struct ohash *, const char *,  unsigned int ohash_lookup_interval(struct ohash *, const char *,
             const char *, uint32_t);              const char *, uint32_t);
 unsigned int ohash_lookup_memory(struct ohash *, const char *,  unsigned int ohash_lookup_memory(struct ohash *, const char *,
             size_t, uint32_t)              size_t, uint32_t);
                 __attribute__ ((__bounded__(__string__,2,3)));  
 void *ohash_find(struct ohash *, unsigned int);  void *ohash_find(struct ohash *, unsigned int);
 void *ohash_remove(struct ohash *, unsigned int);  void *ohash_remove(struct ohash *, unsigned int);
 void *ohash_insert(struct ohash *, unsigned int, void *);  void *ohash_insert(struct ohash *, unsigned int, void *);
Line 65  void *ohash_next(struct ohash *, unsigned int *);
Line 65  void *ohash_next(struct ohash *, unsigned int *);
 unsigned int ohash_entries(struct ohash *);  unsigned int ohash_entries(struct ohash *);
   
 void *ohash_create_entry(struct ohash_info *, const char *, const char **);  void *ohash_create_entry(struct ohash_info *, const char *, const char **);
 u_int32_t ohash_interval(const char *, const char **);  uint32_t ohash_interval(const char *, const char **);
   
 unsigned int ohash_qlookupi(struct ohash *, const char *, const char **);  unsigned int ohash_qlookupi(struct ohash *, const char *, const char **);
 unsigned int ohash_qlookup(struct ohash *, const char *);  unsigned int ohash_qlookup(struct ohash *, const char *);

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

CVSweb