Remove last traces of discard_all_inferiors
[deliverable/binutils-gdb.git] / libctf / ctf-decls.h
index 5e9ede48099de2c105d408609c6a0ba17a80b714..51041c592f452f3be5f18199adb59c12bf5dd2fb 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for missing functions.
-   Copyright (C) 2019 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
 
    This file is part of libctf.
 
 
 #include "config.h"
 
-#if !HAVE_DECL_QSORT_R
 #include <stddef.h>
-void qsort_r (void *base, size_t nmemb, size_t size,
+#include <stdlib.h>
+#include "libiberty.h"
+
+#if HAVE_QSORT_R_ARG_LAST
+static inline void
+ctf_qsort_r (void *base, size_t nmemb, size_t size,
+            int (*compar)(const void *, const void *, void *),
+            void *arg)
+{
+  qsort_r (base, nmemb, size, compar, arg);
+}
+#elif HAVE_QSORT_R_COMPAR_LAST
+struct ctf_qsort_arg
+{
+  int (*compar) (const void *, const void *, void *);
+  void *arg;
+};
+
+static int
+ctf_qsort_compar_thunk (void *arg, const void *a, const void *b)
+{
+  struct ctf_qsort_arg *qsort_arg = (struct ctf_qsort_arg *) arg;
+
+  return qsort_arg->compar (a, b, arg);
+}
+
+static inline void
+ctf_qsort_r (void *base, size_t nmemb, size_t size,
+            int (*compar)(const void *, const void *, void *),
+            void *arg)
+{
+  struct ctf_qsort_arg thunk = { compar, arg };
+  qsort_r (base, nmemb, size, &thunk, ctf_qsort_compar_thunk);
+}
+#else
+void ctf_qsort_r (void *base, size_t nmemb, size_t size,
              int (*compar)(const void *, const void *, void *),
              void *arg);
-#endif /* !HAVE_DECL_QSORT_R */
+#endif
+
+#ifndef HAVE_O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
 
 #undef MAX
 #undef MIN
This page took 0.024626 seconds and 4 git commands to generate.