|
@ -1,6 +1,6 @@ |
|
|
#ifndef OHASH_H |
|
|
#ifndef OHASH_H |
|
|
#define OHASH_H |
|
|
#define OHASH_H |
|
|
/* $OpenBSD: ohash.h,v 1.10 2012/09/23 15:05:23 espie Exp $ */ |
|
|
|
|
|
|
|
|
/* $OpenBSD: ohash.h,v 1.11 2014/05/12 19:07:37 espie Exp $ */ |
|
|
/* ex:ts=8 sw=4: |
|
|
/* ex:ts=8 sw=4: |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
@ -24,16 +24,18 @@ |
|
|
* 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 (*hfree)(void *, size_t, void *); |
|
|
|
|
|
|
|
|
void *(*calloc)(size_t, 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; |
|
|