|
|
@ -1,4 +1,4 @@ |
|
|
|
/* $OpenBSD: search.h,v 1.6 2004/06/24 16:14:40 deraadt Exp $ */ |
|
|
|
/* $OpenBSD: search.h,v 1.7 2004/07/08 21:15:11 millert Exp $ */ |
|
|
|
/* $NetBSD: search.h,v 1.9 1995/08/08 21:14:45 jtc Exp $ */ |
|
|
|
|
|
|
|
/* |
|
|
@ -8,6 +8,7 @@ |
|
|
|
|
|
|
|
#ifndef _SEARCH_H_ |
|
|
|
#define _SEARCH_H_ |
|
|
|
|
|
|
|
#include <sys/cdefs.h> |
|
|
|
#include <machine/ansi.h> |
|
|
|
|
|
|
@ -18,7 +19,7 @@ typedef _BSD_SIZE_T_ size_t; |
|
|
|
|
|
|
|
typedef struct entry { |
|
|
|
char *key; |
|
|
|
char *data; |
|
|
|
void *data; |
|
|
|
} ENTRY; |
|
|
|
|
|
|
|
typedef enum { |
|
|
@ -33,26 +34,26 @@ typedef enum { |
|
|
|
} VISIT; |
|
|
|
|
|
|
|
__BEGIN_DECLS |
|
|
|
extern void *bsearch(const void *, const void *, size_t, size_t, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
extern int hcreate(size_t); |
|
|
|
extern void hdestroy(void); |
|
|
|
extern ENTRY *hsearch(ENTRY, ACTION); |
|
|
|
|
|
|
|
extern void *lfind(const void *, const void *, size_t *, size_t, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
extern void *lsearch(const void *, const void *, size_t *, size_t, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
extern void insque(void *, void *); |
|
|
|
extern void remque(void *); |
|
|
|
|
|
|
|
extern void *tdelete(const void *, void **, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
extern void *tfind(const void *, void * const *, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
extern void *tsearch(const void *, void **, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
extern void twalk(const void *, void (*)(const void *, VISIT, int)); |
|
|
|
void *bsearch(const void *, const void *, size_t, size_t, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
int hcreate(size_t); |
|
|
|
void hdestroy(void); |
|
|
|
ENTRY *hsearch(ENTRY, ACTION); |
|
|
|
|
|
|
|
void *lfind(const void *, const void *, size_t *, size_t, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
void *lsearch(const void *, const void *, size_t *, size_t, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
void insque(void *, void *); |
|
|
|
void remque(void *); |
|
|
|
|
|
|
|
void *tdelete(const void *, void **, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
void *tfind(const void *, void * const *, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
void *tsearch(const void *, void **, |
|
|
|
int (*)(const void *, const void *)); |
|
|
|
void twalk(const void *, void (*)(const void *, VISIT, int)); |
|
|
|
__END_DECLS |
|
|
|
|
|
|
|
#endif |
|
|
|
#endif /* !_SEARCH_H_ */ |