You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
652 B
30 lines
652 B
/* |
|
* Copyright (c) 2018,2024 Intel Corporation |
|
* |
|
* SPDX-License-Identifier: Apache-2.0 |
|
*/ |
|
|
|
#include <zephyr/kernel.h> |
|
#include <ksched.h> |
|
#include <zephyr/sys/math_extras.h> |
|
#include <zephyr/sys/dlist.h> |
|
|
|
bool z_priq_rb_lessthan(struct rbnode *a, struct rbnode *b) |
|
{ |
|
struct k_thread *thread_a, *thread_b; |
|
int32_t cmp; |
|
|
|
thread_a = CONTAINER_OF(a, struct k_thread, base.qnode_rb); |
|
thread_b = CONTAINER_OF(b, struct k_thread, base.qnode_rb); |
|
|
|
cmp = z_sched_prio_cmp(thread_a, thread_b); |
|
|
|
if (cmp > 0) { |
|
return true; |
|
} else if (cmp < 0) { |
|
return false; |
|
} else { |
|
return thread_a->base.order_key < thread_b->base.order_key |
|
? 1 : 0; |
|
} |
|
}
|
|
|