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 13extern "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/* 30Documentation for these POSIX definitions and prototypes can be found in 31The Open Group Base Specifications Issue 6 32IEEE Std 1003.1, 2004 Edition. 33eg: http://www.opengroup.org/onlinepubs/009695399/functions/twalk.html 34*/ 35 36typedef struct entry { 37 char *key; 38 void *data; 39} ENTRY; 40 41typedef enum { 42 FIND, 43 ENTER 44} ACTION; 45 46typedef enum { 47 preorder, 48 postorder, 49 endorder, 50 leaf 51} VISIT; 52 53#ifdef _SEARCH_PRIVATE 54typedef struct node { 55 char *key; 56 struct node *llink, *rlink; 57} node_t; 58#endif 59 60void * __cdecl tdelete (const void * __restrict__, void ** __restrict__, int (*)(const void *, const void *)) __MINGW_ATTRIB_NONNULL (2) __MINGW_ATTRIB_NONNULL (3); 61void * __cdecl tfind (const void *, void * const *, int (*)(const void *, const void *)) __MINGW_ATTRIB_NONNULL (2) __MINGW_ATTRIB_NONNULL (3); 62void * __cdecl tsearch (const void *, void **, int (*)(const void *, const void *)) __MINGW_ATTRIB_NONNULL (2) __MINGW_ATTRIB_NONNULL (3); 63void __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