sched/wqueue: replace some global variables to macro

replace to macro will help to extend the scheduling implementation

Signed-off-by: chao an <anchao@lixiang.com>
This commit is contained in:
chao an 2024-03-20 15:14:58 +08:00 committed by Masayuki Ishikawa
parent f1c877d67d
commit ad0efd04ee
5 changed files with 18 additions and 14 deletions

View File

@ -148,7 +148,7 @@ int work_cancel(int qid, FAR struct work_s *work)
{ {
/* Cancel high priority work */ /* Cancel high priority work */
return work_qcancel((FAR struct kwork_wqueue_s *)&g_hpwork, return work_qcancel((FAR struct kwork_wqueue_s *)&hpwork(),
-1, work); -1, work);
} }
else else
@ -158,7 +158,7 @@ int work_cancel(int qid, FAR struct work_s *work)
{ {
/* Cancel low priority work */ /* Cancel low priority work */
return work_qcancel((FAR struct kwork_wqueue_s *)&g_lpwork, return work_qcancel((FAR struct kwork_wqueue_s *)&lpwork(),
-1, work); -1, work);
} }
else else
@ -196,7 +196,7 @@ int work_cancel_sync(int qid, FAR struct work_s *work)
{ {
/* Cancel high priority work */ /* Cancel high priority work */
return work_qcancel((FAR struct kwork_wqueue_s *)&g_hpwork, return work_qcancel((FAR struct kwork_wqueue_s *)&hpwork(),
CONFIG_SCHED_HPNTHREADS, work); CONFIG_SCHED_HPNTHREADS, work);
} }
else else
@ -206,7 +206,7 @@ int work_cancel_sync(int qid, FAR struct work_s *work)
{ {
/* Cancel low priority work */ /* Cancel low priority work */
return work_qcancel((FAR struct kwork_wqueue_s *)&g_lpwork, return work_qcancel((FAR struct kwork_wqueue_s *)&lpwork(),
CONFIG_SCHED_LPNTHREADS, work); CONFIG_SCHED_LPNTHREADS, work);
} }
else else

View File

@ -225,7 +225,7 @@ void lpwork_boostpriority(uint8_t reqprio)
for (wndx = 0; wndx < CONFIG_SCHED_LPNTHREADS; wndx++) for (wndx = 0; wndx < CONFIG_SCHED_LPNTHREADS; wndx++)
{ {
lpwork_boostworker(g_lpwork.worker[wndx].pid, reqprio); lpwork_boostworker(lpwork().worker[wndx].pid, reqprio);
} }
sched_unlock(); sched_unlock();
@ -271,7 +271,7 @@ void lpwork_restorepriority(uint8_t reqprio)
for (wndx = 0; wndx < CONFIG_SCHED_LPNTHREADS; wndx++) for (wndx = 0; wndx < CONFIG_SCHED_LPNTHREADS; wndx++)
{ {
lpwork_restoreworker(g_lpwork.worker[wndx].pid, reqprio); lpwork_restoreworker(lpwork().worker[wndx].pid, reqprio);
} }
sched_unlock(); sched_unlock();

View File

@ -67,7 +67,7 @@
static void hp_work_timer_expiry(wdparm_t arg) static void hp_work_timer_expiry(wdparm_t arg)
{ {
irqstate_t flags = enter_critical_section(); irqstate_t flags = enter_critical_section();
queue_work(g_hpwork, arg); queue_work(hpwork(), arg);
leave_critical_section(flags); leave_critical_section(flags);
} }
#endif #endif
@ -80,7 +80,7 @@ static void hp_work_timer_expiry(wdparm_t arg)
static void lp_work_timer_expiry(wdparm_t arg) static void lp_work_timer_expiry(wdparm_t arg)
{ {
irqstate_t flags = enter_critical_section(); irqstate_t flags = enter_critical_section();
queue_work(g_lpwork, arg); queue_work(lpwork(), arg);
leave_critical_section(flags); leave_critical_section(flags);
} }
#endif #endif
@ -152,7 +152,7 @@ int work_queue(int qid, FAR struct work_s *work, worker_t worker,
if (!delay) if (!delay)
{ {
queue_work(g_hpwork, work); queue_work(hpwork(), work);
} }
else else
{ {
@ -169,7 +169,7 @@ int work_queue(int qid, FAR struct work_s *work, worker_t worker,
if (!delay) if (!delay)
{ {
queue_work(g_lpwork, work); queue_work(lpwork(), work);
} }
else else
{ {

View File

@ -305,7 +305,7 @@ void work_foreach(int qid, work_foreach_t handler, FAR void *arg)
#ifdef CONFIG_SCHED_HPWORK #ifdef CONFIG_SCHED_HPWORK
if (qid == HPWORK) if (qid == HPWORK)
{ {
wqueue = (FAR struct kwork_wqueue_s *)&g_hpwork; wqueue = (FAR struct kwork_wqueue_s *)&hpwork();
nthread = CONFIG_SCHED_HPNTHREADS; nthread = CONFIG_SCHED_HPNTHREADS;
} }
else else
@ -313,7 +313,7 @@ void work_foreach(int qid, work_foreach_t handler, FAR void *arg)
#ifdef CONFIG_SCHED_LPWORK #ifdef CONFIG_SCHED_LPWORK
if (qid == LPWORK) if (qid == LPWORK)
{ {
wqueue = (FAR struct kwork_wqueue_s *)&g_lpwork; wqueue = (FAR struct kwork_wqueue_s *)&lpwork();
nthread = CONFIG_SCHED_LPNTHREADS; nthread = CONFIG_SCHED_LPNTHREADS;
} }
else else
@ -352,7 +352,7 @@ int work_start_highpri(void)
return work_thread_create(HPWORKNAME, CONFIG_SCHED_HPWORKPRIORITY, return work_thread_create(HPWORKNAME, CONFIG_SCHED_HPWORKPRIORITY,
CONFIG_SCHED_HPWORKSTACKSIZE, CONFIG_SCHED_HPWORKSTACKSIZE,
CONFIG_SCHED_HPNTHREADS, CONFIG_SCHED_HPNTHREADS,
(FAR struct kwork_wqueue_s *)&g_hpwork); (FAR struct kwork_wqueue_s *)&hpwork());
} }
#endif /* CONFIG_SCHED_HPWORK */ #endif /* CONFIG_SCHED_HPWORK */
@ -380,7 +380,7 @@ int work_start_lowpri(void)
return work_thread_create(LPWORKNAME, CONFIG_SCHED_LPWORKPRIORITY, return work_thread_create(LPWORKNAME, CONFIG_SCHED_LPWORKPRIORITY,
CONFIG_SCHED_LPWORKSTACKSIZE, CONFIG_SCHED_LPWORKSTACKSIZE,
CONFIG_SCHED_LPNTHREADS, CONFIG_SCHED_LPNTHREADS,
(FAR struct kwork_wqueue_s *)&g_lpwork); (FAR struct kwork_wqueue_s *)&lpwork());
} }
#endif /* CONFIG_SCHED_LPWORK */ #endif /* CONFIG_SCHED_LPWORK */

View File

@ -105,12 +105,16 @@ struct lp_wqueue_s
#ifdef CONFIG_SCHED_HPWORK #ifdef CONFIG_SCHED_HPWORK
/* The state of the kernel mode, high priority work queue. */ /* The state of the kernel mode, high priority work queue. */
#define hpwork() g_hpwork
extern struct hp_wqueue_s g_hpwork; extern struct hp_wqueue_s g_hpwork;
#endif #endif
#ifdef CONFIG_SCHED_LPWORK #ifdef CONFIG_SCHED_LPWORK
/* The state of the kernel mode, low priority work queue(s). */ /* The state of the kernel mode, low priority work queue(s). */
#define lpwork() g_lpwork
extern struct lp_wqueue_s g_lpwork; extern struct lp_wqueue_s g_lpwork;
#endif #endif