This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit f99dd20c4e204d3b5fe3dda2b0db71d7923c8630
Author: guanyi3 <[email protected]>
AuthorDate: Fri Oct 24 19:56:57 2025 +0800

    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 <[email protected]>
---
 arch/sim/src/sim/posix/sim_hostirq.c | 28 ++++++++++++++--------------
 arch/sim/src/sim/sim_initialize.c    | 23 +++++++++++++++++++----
 arch/sim/src/sim/sim_internal.h      |  4 ++++
 arch/sim/src/sim/win/sim_hostirq.c   | 16 ++++++++--------
 4 files changed, 45 insertions(+), 26 deletions(-)

diff --git a/arch/sim/src/sim/posix/sim_hostirq.c 
b/arch/sim/src/sim/posix/sim_hostirq.c
index 06c2f70d81a..6a678589be8 100644
--- a/arch/sim/src/sim/posix/sim_hostirq.c
+++ b/arch/sim/src/sim/posix/sim_hostirq.c
@@ -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
+}
diff --git a/arch/sim/src/sim/sim_initialize.c 
b/arch/sim/src/sim/sim_initialize.c
index e9e18f41eb5..45584ed8ed3 100644
--- a/arch/sim/src/sim/sim_initialize.c
+++ b/arch/sim/src/sim/sim_initialize.c
@@ -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();
+}
diff --git a/arch/sim/src/sim/sim_internal.h b/arch/sim/src/sim/sim_internal.h
index d6ee442b6ce..1db555c4140 100644
--- a/arch/sim/src/sim/sim_internal.h
+++ b/arch/sim/src/sim/sim_internal.h
@@ -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);
diff --git a/arch/sim/src/sim/win/sim_hostirq.c 
b/arch/sim/src/sim/win/sim_hostirq.c
index 2945f33eed5..3db2b92a1fd 100644
--- a/arch/sim/src/sim/win/sim_hostirq.c
+++ b/arch/sim/src/sim/win/sim_hostirq.c
@@ -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)
+{
+}

Reply via email to