add nonstandard timespec/timeval conversion macros in sys/time.h
[musl] / include / search.h
index f1246ad..27f6107 100644 (file)
@@ -5,13 +5,15 @@
 extern "C" {
 #endif
 
+#include <features.h>
+
 #define __NEED_size_t
 #include <bits/alltypes.h>
 
 typedef enum { FIND, ENTER } ACTION;
 typedef enum { preorder, postorder, endorder, leaf } VISIT;
 
-typedef struct {
+typedef struct entry {
        char *key;
        void *data;
 } ENTRY;
@@ -28,11 +30,20 @@ void *lsearch(const void *, void *, size_t *, size_t,
 void *lfind(const void *, const void *, size_t *, size_t,
        int (*)(const void *, const void *));
 
-void *tdelete(const void *, void **, int(*)(const void *, const void *));
+void *tdelete(const void *__restrict, void **__restrict, int(*)(const void *, const void *));
 void *tfind(const void *, void *const *, int(*)(const void *, const void *));
 void *tsearch(const void *, void **, int (*)(const void *, const void *));
 void twalk(const void *, void (*)(const void *, VISIT, int));
 
+#ifdef _GNU_SOURCE
+struct qelem {
+       struct qelem *q_forw, *q_back;
+       char q_data[1];
+};
+
+void tdestroy(void *, void (*)(void *));
+#endif
+
 #ifdef __cplusplus
 }
 #endif