| 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 |