X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Fsearch.h;h=02e407e3c2aba21b6fe4d015c6430c3155c3db69;hb=4653b98711f280270fa049654460610f587ba7b4;hp=680eee75a15583a054e79fc7056ad62f3d9a906e;hpb=400c5e5c8307a2ebe44ef1f203f5a15669f20347;p=musl diff --git a/include/search.h b/include/search.h index 680eee75..02e407e3 100644 --- a/include/search.h +++ b/include/search.h @@ -5,12 +5,7 @@ extern "C" { #endif -#if __STDC_VERSION__ >= 199901L -#define __restrict restrict -#elif !defined(__GNUC__) -#define __restrict -#endif - +#include #define __NEED_size_t #include @@ -18,7 +13,7 @@ extern "C" { typedef enum { FIND, ENTER } ACTION; typedef enum { preorder, postorder, endorder, leaf } VISIT; -typedef struct { +typedef struct entry { char *key; void *data; } ENTRY; @@ -27,6 +22,18 @@ int hcreate(size_t); void hdestroy(void); ENTRY *hsearch(ENTRY, ACTION); +#ifdef _GNU_SOURCE +struct hsearch_data { + struct __tab *__tab; + unsigned int __unused1; + unsigned int __unused2; +}; + +int hcreate_r(size_t, struct hsearch_data *); +void hdestroy_r(struct hsearch_data *); +int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *); +#endif + void insque(void *, void *); void remque(void *);