mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 15:03:53 +02:00
sort.h: hoist cmp_int() into generic header file
Deduplicate the same functionality implemented in several places by moving the cmp_int() helper macro into linux/sort.h. The macro performs a three-way comparison of the arguments mostly useful in different sorting strategies and algorithms. Link: https://lkml.kernel.org/r/20250427201451.900730-1-pchelkin@ispras.ru Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru> Suggested-by: Darrick J. Wong <djwong@kernel.org> Acked-by: Kent Overstreet <kent.overstreet@linux.dev> Acked-by: Coly Li <colyli@kernel.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Carlos Maiolino <cem@kernel.org> Cc: Christian Brauner <brauner@kernel.org> Cc: Coly Li <colyli@kernel.org> Cc: Jan Kara <jack@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
1785c67e2a
commit
f3def8270c
|
@ -36,6 +36,7 @@
|
|||
#include <linux/sched/clock.h>
|
||||
#include <linux/rculist.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/sort.h>
|
||||
#include <trace/events/bcache.h>
|
||||
|
||||
/*
|
||||
|
@ -559,8 +560,6 @@ static void mca_data_alloc(struct btree *b, struct bkey *k, gfp_t gfp)
|
|||
}
|
||||
}
|
||||
|
||||
#define cmp_int(l, r) ((l > r) - (l < r))
|
||||
|
||||
#ifdef CONFIG_PROVE_LOCKING
|
||||
static int btree_lock_cmp_fn(const struct lockdep_map *_a,
|
||||
const struct lockdep_map *_b)
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <linux/preempt.h>
|
||||
#include <linux/ratelimit.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/sort.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
|
@ -669,8 +670,6 @@ static inline void percpu_memset(void __percpu *p, int c, size_t bytes)
|
|||
|
||||
u64 *bch2_acc_percpu_u64s(u64 __percpu *, unsigned);
|
||||
|
||||
#define cmp_int(l, r) ((l > r) - (l < r))
|
||||
|
||||
static inline int u8_cmp(u8 l, u8 r)
|
||||
{
|
||||
return cmp_int(l, r);
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <linux/memcontrol.h>
|
||||
#include <linux/watch_queue.h>
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/sort.h>
|
||||
|
||||
#include <linux/uaccess.h>
|
||||
#include <asm/ioctls.h>
|
||||
|
@ -76,8 +77,6 @@ static unsigned long pipe_user_pages_soft = PIPE_DEF_BUFFERS * INR_OPEN_CUR;
|
|||
* -- Manfred Spraul <manfred@colorfullife.com> 2002-05-09
|
||||
*/
|
||||
|
||||
#define cmp_int(l, r) ((l > r) - (l < r))
|
||||
|
||||
#ifdef CONFIG_PROVE_LOCKING
|
||||
static int pipe_lock_cmp_fn(const struct lockdep_map *a,
|
||||
const struct lockdep_map *b)
|
||||
|
|
|
@ -290,8 +290,6 @@ xfs_zone_gc_query_cb(
|
|||
return 0;
|
||||
}
|
||||
|
||||
#define cmp_int(l, r) ((l > r) - (l < r))
|
||||
|
||||
static int
|
||||
xfs_zone_gc_rmap_rec_cmp(
|
||||
const void *a,
|
||||
|
|
|
@ -4,6 +4,16 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* cmp_int - perform a three-way comparison of the arguments
|
||||
* @l: the left argument
|
||||
* @r: the right argument
|
||||
*
|
||||
* Return: 1 if the left argument is greater than the right one; 0 if the
|
||||
* arguments are equal; -1 if the left argument is less than the right one.
|
||||
*/
|
||||
#define cmp_int(l, r) (((l) > (r)) - ((l) < (r)))
|
||||
|
||||
void sort_r(void *base, size_t num, size_t size,
|
||||
cmp_r_func_t cmp_func,
|
||||
swap_r_func_t swap_func,
|
||||
|
|
Loading…
Reference in New Issue
Block a user