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