sim/usrsock: move g_work_queue init before net_initialize

usrsock register work in net_initialize before g_work_queue is created, so move g_work_queue in irq_initialize.

Signed-off-by: guanyi3 <guanyi3@xiaomi.com>
This commit is contained in:
guanyi3 2025-10-24 19:56:57 +08:00 committed by Xiang Xiao
parent 7dde767155
commit f99dd20c4e
4 changed files with 45 additions and 26 deletions

View file

@ -134,20 +134,6 @@ void up_irq_enable(void)
up_irq_restore(0);
}
/****************************************************************************
* Name: up_irqinitialize
****************************************************************************/
void up_irqinitialize(void)
{
#ifdef CONFIG_SMP
/* Register the pause handler */
sim_init_ipi(SIGUSR1);
sim_init_func_call_ipi(SIGUSR2);
#endif
}
/****************************************************************************
* Name: up_enable_irq
*
@ -192,3 +178,17 @@ void up_disable_irq(int irq)
signal(irq, SIG_IGN);
}
/****************************************************************************
* Name: host_irqinitialize
****************************************************************************/
void host_irqinitialize(void)
{
#ifdef CONFIG_SMP
/* Register the pause handler */
sim_init_ipi(SIGUSR1);
sim_init_func_call_ipi(SIGUSR2);
#endif
}

View file

@ -252,10 +252,6 @@ void up_initialize(void)
host_init_cwd();
#endif
g_work_queue = work_queue_create("sim_loop_wq",
CONFIG_SCHED_HPWORKPRIORITY, NULL,
CONFIG_SCHED_HPWORKSTACKSIZE, 1u);
#ifdef CONFIG_PM
/* Initialize the power management subsystem. This MCU-specific function
* must be called *very* early in the initialization sequence *before* any
@ -337,3 +333,22 @@ void up_initialize(void)
NULL, SIM_X11UPDATE_PERIOD);
#endif
}
/****************************************************************************
* Name: up_irqinitialize
*
* Description:
* initialize the high-priority work queue used for handling
* periodic or async tasks within the simulator, then invokes the
* platform-specific IRQ initialize.
*
****************************************************************************/
void up_irqinitialize(void)
{
g_work_queue = work_queue_create("sim_loop_wq",
CONFIG_SCHED_HPWORKPRIORITY, NULL,
CONFIG_SCHED_HPWORKSTACKSIZE, 1u);
host_irqinitialize();
}

View file

@ -219,6 +219,10 @@ int host_errno_convert(int errcode);
int host_errno_get(void);
void host_errno_set(int errcode);
/* sim_hostirq.c ************************************************************/
void host_irqinitialize(void);
/* sim_hostmisc.c ***********************************************************/
void host_abort(int status);

View file

@ -80,14 +80,6 @@ void up_irq_restore(uint64_t flags)
{
}
/****************************************************************************
* Name: up_irqinitialize
****************************************************************************/
void up_irqinitialize(void)
{
}
/****************************************************************************
* Name: up_enable_irq
*
@ -111,3 +103,11 @@ void up_enable_irq(int irq)
void up_disable_irq(int irq)
{
}
/****************************************************************************
* Name: host_irqinitialize
****************************************************************************/
void host_irqinitialize(void)
{
}