Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _INC_SEARCH
      7 #define _INC_SEARCH
      8 
      9 #include <crtdefs.h>
     10 #include <stddef.h>
     11 
     12 #ifdef __cplusplus
     13 extern "C" {
     14 #endif
     15 
     16 #ifndef _CRT_ALGO_DEFINED
     17 #define _CRT_ALGO_DEFINED
     18   void *__cdecl bsearch(const void *_Key,const void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
     19   void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
     20 #endif
     21   _CRTIMP void *__cdecl _lfind(const void *_Key,const void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
     22   _CRTIMP void *__cdecl _lsearch(const void *_Key,void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
     23 
     24 #ifndef	NO_OLDNAMES
     25   void *__cdecl lfind(const void *_Key,const void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
     26   void *__cdecl lsearch(const void *_Key,void *_Base,unsigned int *_NumOfElements,unsigned int _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *)) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
     27 #endif
     28 
     29 /*
     30 Documentation for these POSIX definitions and prototypes can be found in
     31 The Open Group Base Specifications Issue 6
     32 IEEE Std 1003.1, 2004 Edition.
     33 eg:  http://www.opengroup.org/onlinepubs/009695399/functions/twalk.html
     34 */
     35 
     36 typedef struct entry {
     37 	char *key;
     38 	void *data;
     39 } ENTRY;
     40 
     41 typedef enum {
     42 	FIND,
     43 	ENTER
     44 } ACTION;
     45 
     46 typedef enum {
     47 	preorder,
     48 	postorder,
     49 	endorder,
     50 	leaf
     51 } VISIT;
     52 
     53 #ifdef _SEARCH_PRIVATE
     54 typedef struct node {
     55 	char         *key;
     56 	struct node  *llink, *rlink;
     57 } node_t;
     58 #endif
     59 
     60 void * __cdecl tdelete (const void * __restrict__, void ** __restrict__, int (*)(const void *, const void *)) __MINGW_ATTRIB_NONNULL (2) __MINGW_ATTRIB_NONNULL (3);
     61 void * __cdecl tfind (const void *, void * const *, int (*)(const void *, const void *)) __MINGW_ATTRIB_NONNULL (2) __MINGW_ATTRIB_NONNULL (3);
     62 void * __cdecl tsearch (const void *, void **, int (*)(const void *, const void *)) __MINGW_ATTRIB_NONNULL (2) __MINGW_ATTRIB_NONNULL (3);
     63 void __cdecl twalk (const void *, void (*)(const void *, VISIT, int));
     64 
     65 #ifdef __cplusplus
     66 }
     67 #endif
     68 
     69 #include <sec_api/search_s.h>
     70 
     71 #endif
     72