printf core: fix gratuitous integer formatting buffer size
[musl] / include / search.h
index 680eee7..02e407e 100644 (file)
@@ -5,12 +5,7 @@
 extern "C" {
 #endif
 
-#if __STDC_VERSION__ >= 199901L
-#define __restrict restrict
-#elif !defined(__GNUC__)
-#define __restrict
-#endif
-
+#include <features.h>
 
 #define __NEED_size_t
 #include <bits/alltypes.h>
@@ -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 *);