@@ -9,6 +9,7 @@
#include <efi.h>
#include <errno.h>
#include <malloc.h>
+#include <sort.h>
static const char *const type_name[] = {
"reserved",
@@ -10,6 +10,7 @@
*/
#include <common.h>
+#include <sort.h>
#include <linux/libfdt.h>
#include <malloc.h>
#include <linux/compiler.h>
@@ -11,6 +11,7 @@
#include <command.h>
#include <env.h>
#include <env_internal.h>
+#include <sort.h>
#include <linux/stddef.h>
#include <search.h>
#include <errno.h>
@@ -5,6 +5,7 @@
*/
#include "yportenv.h"
+#include <sort.h>
/* #include <linux/string.h> */
/*
@@ -304,11 +304,6 @@ ulong ticks2usec (unsigned long ticks);
/* lib/lz4_wrapper.c */
int ulz4fn(const void *src, size_t srcn, void *dst, size_t *dstn);
-/* lib/qsort.c */
-void qsort(void *base, size_t nmemb, size_t size,
- int(*compar)(const void *, const void *));
-int strcmp_compar(const void *, const void *);
-
/* lib/uuid.c */
#include <uuid.h>
new file mode 100644
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 Google LLC
+ */
+
+#ifndef __SORT_H
+#define __SORT_H
+
+/**
+ * qsort() - Use the quicksort algorithm to sort some values
+ *
+ * @base: Base address of array to sort
+ * @nmemb: Number of members to sort
+ * @size: Size of each member in bytes
+ * @compar: Comparison function which should return:
+ * < 0 if element at s1 < element at s2,
+ * 0 if element at s1 == element at s2,
+ * > 0 if element at s1 > element at s2,
+ */
+void qsort(void *base, size_t nmemb, size_t size,
+ int (*compar)(const void *s1, const void *s2));
+
+/**
+ * strcmp_compar() - compar function for string arrays
+ *
+ * This can be passed to qsort when a string array is being sorted
+ *
+ * @s1: First string to compare
+ * @s2: Second string to compare
+ * @return comparison value (less than, equal to, or greater than 0)
+ */
+int strcmp_compar(const void *s1, const void *s2);
+
+#endif
@@ -14,6 +14,7 @@
#include <errno.h>
#include <malloc.h>
+#include <sort.h>
#ifdef USE_HOSTCC /* HOST build */
# include <string.h>
@@ -18,6 +18,7 @@
#include <linux/types.h>
#include <common.h>
#include <exports.h>
+#include <sort.h>
void qsort(void *base,
size_t nel,
These don't need to be in common.h so move them out into a new header. Also add some missing comments. Signed-off-by: Simon Glass <sjg@chromium.org> --- cmd/efi.c | 1 + common/bootstage.c | 1 + env/common.c | 1 + fs/yaffs2/yaffs_qsort.c | 1 + include/common.h | 5 ----- include/sort.h | 34 ++++++++++++++++++++++++++++++++++ lib/hashtable.c | 1 + lib/qsort.c | 1 + 8 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 include/sort.h