summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-11-14 12:57:19 -0700
committerTom Rini <trini@konsulko.com>2019-12-02 18:23:08 -0500
commit8bef79bf3c30cd1fc5367cc1f78f72e6552629e9 (patch)
tree318647c77cc039fd2a0e8d611c2156027a3c4691
parentf083583786913de7652312c137dd4fea5c2e291f (diff)
common: Move sorting functions to their own header file
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> Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r--cmd/efi.c1
-rw-r--r--common/bootstage.c1
-rw-r--r--env/common.c1
-rw-r--r--fs/yaffs2/yaffs_qsort.c1
-rw-r--r--include/common.h5
-rw-r--r--include/sort.h34
-rw-r--r--lib/hashtable.c1
-rw-r--r--lib/qsort.c1
8 files changed, 40 insertions, 5 deletions
diff --git a/cmd/efi.c b/cmd/efi.c
index 919cb2fcfd..ea239a01f0 100644
--- a/cmd/efi.c
+++ b/cmd/efi.c
@@ -9,6 +9,7 @@
#include <efi.h>
#include <errno.h>
#include <malloc.h>
+#include <sort.h>
static const char *const type_name[] = {
"reserved",
diff --git a/common/bootstage.c b/common/bootstage.c
index e8b7bbf81a..79972e46f2 100644
--- a/common/bootstage.c
+++ b/common/bootstage.c
@@ -11,6 +11,7 @@
#include <common.h>
#include <malloc.h>
+#include <sort.h>
#include <spl.h>
#include <linux/compiler.h>
#include <linux/libfdt.h>
diff --git a/env/common.c b/env/common.c
index 0edb6fb04c..1fd1bd01d3 100644
--- a/env/common.c
+++ b/env/common.c
@@ -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>
diff --git a/fs/yaffs2/yaffs_qsort.c b/fs/yaffs2/yaffs_qsort.c
index b463569815..32c767f359 100644
--- a/fs/yaffs2/yaffs_qsort.c
+++ b/fs/yaffs2/yaffs_qsort.c
@@ -5,6 +5,7 @@
*/
#include "yportenv.h"
+#include <sort.h>
/* #include <linux/string.h> */
/*
diff --git a/include/common.h b/include/common.h
index 97b661181b..d17a2b2642 100644
--- a/include/common.h
+++ b/include/common.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>
diff --git a/include/sort.h b/include/sort.h
new file mode 100644
index 0000000000..0c6b588fcb
--- /dev/null
+++ b/include/sort.h
@@ -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
diff --git a/lib/hashtable.c b/lib/hashtable.c
index 2caab0a4c6..907e8a642f 100644
--- a/lib/hashtable.c
+++ b/lib/hashtable.c
@@ -14,6 +14,7 @@
#include <errno.h>
#include <malloc.h>
+#include <sort.h>
#ifdef USE_HOSTCC /* HOST build */
# include <string.h>
diff --git a/lib/qsort.c b/lib/qsort.c
index 57098841f9..f63d4ef726 100644
--- a/lib/qsort.c
+++ b/lib/qsort.c
@@ -18,6 +18,7 @@
#include <linux/types.h>
#include <common.h>
#include <exports.h>
+#include <sort.h>
void qsort(void *base,
size_t nel,