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