mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-31 06:01:39 +01:00 
			
		
		
		
	
		
			
	
	
		
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*	$NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $	*/ | ||
|  | /* $FreeBSD: src/include/search.h,v 1.4 2002/03/23 17:24:53 imp Exp $ */ | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Written by J.T. Conklin <jtc@netbsd.org> | ||
|  |  * Public domain. | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef _SEARCH_H_
 | ||
|  | #define _SEARCH_H_
 | ||
|  | 
 | ||
|  | #include <sys/cdefs.h>
 | ||
|  | #include <machine/ansi.h>
 | ||
|  | #include <sys/types.h>
 | ||
|  | 
 | ||
|  | typedef struct entry { | ||
|  | 	char *key; | ||
|  | 	void *data; | ||
|  | } ENTRY; | ||
|  | 
 | ||
|  | typedef enum { | ||
|  | 	FIND, ENTER | ||
|  | } ACTION; | ||
|  | 
 | ||
|  | typedef enum { | ||
|  | 	preorder, | ||
|  | 	postorder, | ||
|  | 	endorder, | ||
|  | 	leaf | ||
|  | } VISIT; | ||
|  | 
 | ||
|  | #ifdef _SEARCH_PRIVATE
 | ||
|  | typedef struct node { | ||
|  | 	char         *key; | ||
|  | 	struct node  *llink, *rlink; | ||
|  | } node_t; | ||
|  | #endif
 | ||
|  | 
 | ||
|  | struct hsearch_data | ||
|  | { | ||
|  |   struct internal_head *htable; | ||
|  |   size_t htablesize; | ||
|  | }; | ||
|  | 
 | ||
|  | #ifndef __compar_fn_t_defined
 | ||
|  | #define __compar_fn_t_defined
 | ||
|  | typedef int (*__compar_fn_t) (const void *, const void *); | ||
|  | #endif
 | ||
|  | 
 | ||
|  | __BEGIN_DECLS | ||
|  | int	 hcreate(size_t); | ||
|  | void	 hdestroy(void); | ||
|  | ENTRY	*hsearch(ENTRY, ACTION); | ||
|  | int	 hcreate_r(size_t, struct hsearch_data *); | ||
|  | void	 hdestroy_r(struct hsearch_data *); | ||
|  | int	hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *); | ||
|  | void	*tdelete(const void *__restrict, void **__restrict, __compar_fn_t); | ||
|  | void	tdestroy (void *, void (*)(void *)); | ||
|  | void	*tfind(const void *, void **, __compar_fn_t); | ||
|  | void	*tsearch(const void *, void **, __compar_fn_t); | ||
|  | void      twalk(const void *, void (*)(const void *, VISIT, int)); | ||
|  | __END_DECLS | ||
|  | 
 | ||
|  | #endif /* !_SEARCH_H_ */
 |