You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ag...@apache.org on 2020/12/20 18:32:09 UTC

[incubator-nuttx] 02/02: sched/signal: Make the pre-allocated irq actions configurable

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

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

commit deef880daee83ad2fa1511539d7117c0be71496c
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Mon Dec 14 17:33:38 2020 +0800

    sched/signal: Make the pre-allocated irq actions configurable
    
    the action can't be dynamically allocated in any irq handler
    so it's important to let the user extend the number as needed
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
    Change-Id: Id30c5d93003e63514c24f2ca0df2f634c4c63c5f
---
 sched/Kconfig                 | 6 ++++++
 sched/signal/sig_initialize.c | 4 ++--
 sched/signal/signal.h         | 2 --
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/sched/Kconfig b/sched/Kconfig
index 2a41d1c..a112330 100644
--- a/sched/Kconfig
+++ b/sched/Kconfig
@@ -1309,6 +1309,12 @@ endmenu # RTOS hooks
 
 menu "Signal Configuration"
 
+config SIG_PREALLOC_IRQ_ACTIONS
+	int "Number of pre-allocated irq actions"
+	default 8
+	---help---
+		The number of pre-allocated irq action structures.
+
 config SIG_EVTHREAD
 	bool "Support SIGEV_THHREAD"
 	default n
diff --git a/sched/signal/sig_initialize.c b/sched/signal/sig_initialize.c
index 0a03ff2..39f4ca1 100644
--- a/sched/signal/sig_initialize.c
+++ b/sched/signal/sig_initialize.c
@@ -230,7 +230,7 @@ void nxsig_initialize(void)
 
   g_sigpendingirqactionalloc =
     nxsig_alloc_block(&g_sigpendingirqaction,
-                      NUM_PENDING_INT_ACTIONS,
+                      CONFIG_SIG_PREALLOC_IRQ_ACTIONS,
                       SIG_ALLOC_IRQ);
   DEBUGASSERT(g_sigpendingirqactionalloc != NULL);
 
@@ -242,7 +242,7 @@ void nxsig_initialize(void)
 
   g_sigpendingirqsignalalloc =
     nxsig_alloc_pendingsignalblock(&g_sigpendingirqsignal,
-                                   NUM_INT_SIGNALS_PENDING,
+                                   CONFIG_SIG_PREALLOC_IRQ_ACTIONS,
                                    SIG_ALLOC_IRQ);
   DEBUGASSERT(g_sigpendingirqsignalalloc != NULL);
 }
diff --git a/sched/signal/signal.h b/sched/signal/signal.h
index e8d36d0..5689fe2 100644
--- a/sched/signal/signal.h
+++ b/sched/signal/signal.h
@@ -60,9 +60,7 @@
 
 #define NUM_SIGNAL_ACTIONS       4
 #define NUM_PENDING_ACTIONS      4
-#define NUM_PENDING_INT_ACTIONS  8
 #define NUM_SIGNALS_PENDING      4
-#define NUM_INT_SIGNALS_PENDING  8
 
 /****************************************************************************
  * Public Type Definitions