2 #include "per_cpu_data.h"
4 EXTENSION class Sched_context
7 static Per_cpu<Ready_queue> _ready_q;
14 DEFINE_PER_CPU Per_cpu<Sched_context::Ready_queue> Sched_context::_ready_q;
17 Sched_context::Ready_queue &
18 Sched_context::rq(unsigned cpu)
19 { return _ready_q.cpu(cpu); }
23 * \param cpu must be current_cpu()
25 PUBLIC inline NEEDS["kdb_ke.h"]
27 Sched_context::deblock(unsigned cpu)
29 assert_kdb(cpu_lock.test());
31 Sched_context *cs = rq(cpu).current_sched();
39 * \param cpu must be current_cpu()
40 * \param crs the Sched_context of the current context
41 * \param lazy_q queue lazily if applicable
43 PUBLIC inline NEEDS["kdb_ke.h"]
45 Sched_context::deblock(unsigned cpu, Sched_context *crs, bool lazy_q = false)
47 assert_kdb(cpu_lock.test());
49 Sched_context *cs = rq(cpu).current_sched();
53 if (crs->dominates(this))
60 if ((EXPECT_TRUE(cs != 0) && cs->dominates(this)) || crs->dominates(this))