diff -r da7c1a80df0d -r d2d6724aef32 holdingarea/llvm/llvm-gcc4.2-2.7-x86-mingw32/include/search.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/holdingarea/llvm/llvm-gcc4.2-2.7-x86-mingw32/include/search.h Thu Sep 16 09:43:14 2010 +0100 @@ -0,0 +1,106 @@ +/* + * search.h + * + * Functions for searching and sorting. + * + * This file is part of the Mingw32 package. + * + * Contributors: + * Created by Danny Smith + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef _SEARCH_H_ +#define _SEARCH_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +#ifndef RC_INVOKED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _SIZE_T_DEFINED +typedef unsigned int size_t; +#define _SIZE_T_DEFINED +#endif + +/* bsearch and qsort are also declared in stdlib.h */ +_CRTIMP void* __cdecl bsearch (const void*, const void*, size_t, size_t, + int (*)(const void*, const void*)); +_CRTIMP void __cdecl qsort (void*, size_t, size_t, + int (*)(const void*, const void*)); + +_CRTIMP void* __cdecl _lfind (const void*, const void*, unsigned int*, + unsigned int, int (*)(const void*, const void*)); +_CRTIMP void* __cdecl _lsearch (const void*, void*, unsigned int*, unsigned int, + int (*)(const void*, const void*)); +/* +Documentation for these POSIX definitions and prototypes can be found in +The Open Group Base Specifications Issue 6 +IEEE Std 1003.1, 2004 Edition. +eg: http://www.opengroup.org/onlinepubs/009695399/functions/twalk.html +*/ + + +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 + +void * __cdecl tdelete (const void * __restrict__, void ** __restrict__, + int (*)(const void *, const void *)) + __MINGW_ATTRIB_NONNULL (1) __MINGW_ATTRIB_NONNULL (3); +void * __cdecl tfind (const void *, void * const *, + int (*)(const void *, const void *)) + __MINGW_ATTRIB_NONNULL (1) __MINGW_ATTRIB_NONNULL (3); +void * __cdecl tsearch (const void *, void **, + int (*)(const void *, const void *)) + __MINGW_ATTRIB_NONNULL (1) __MINGW_ATTRIB_NONNULL (3); +void __cdecl twalk (const void *, void (*)(const void *, VISIT, int)); + +#ifndef _NO_OLDNAMES +_CRTIMP void* __cdecl lfind (const void*, const void*, unsigned int*, + unsigned int, int (*)(const void*, const void*)); +_CRTIMP void* __cdecl lsearch (const void*, void*, unsigned int*, unsigned int, + int (*)(const void*, const void*)); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* RC_INVOKED */ + +#endif /* _SEARCH_H_ */