[U-Boot] [PATCH v4 11/42] common: Move sorting functions to their own header file

Simon Glass sjg at chromium.org
Thu Nov 14 19:57:19 UTC 2019


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 at chromium.org>
Reviewed-by: Tom Rini <trini at konsulko.com>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 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

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,
-- 
2.24.0.rc1.363.gb1bccd3e3d-goog



More information about the U-Boot mailing list