You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by pk...@apache.org on 2023/04/27 20:21:12 UTC
[nuttx] branch master updated: arch: Return directly when arch not support interrupt context save
This is an automated email from the ASF dual-hosted git repository.
pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new f48693eaf5 arch: Return directly when arch not support interrupt context save
f48693eaf5 is described below
commit f48693eaf5d3cec9161b796be91c7d6d24f09e91
Author: zhangyuan21 <zh...@xiaomi.com>
AuthorDate: Mon Apr 10 20:55:19 2023 +0800
arch: Return directly when arch not support interrupt context save
Signed-off-by: zhangyuan21 <zh...@xiaomi.com>
---
arch/ceva/src/common/ceva_saveusercontext.c | 10 ++++++++++
arch/mips/src/mips32/mips_saveusercontext.c | 11 +++++++++++
arch/misoc/src/lm32/lm32_saveusercontext.c | 11 +++++++++++
arch/misoc/src/minerva/minerva_saveusercontext.c | 11 +++++++++++
arch/sparc/src/sparc_v8/sparc_v8_saveusercontext.c | 11 +++++++++++
5 files changed, 54 insertions(+)
diff --git a/arch/ceva/src/common/ceva_saveusercontext.c b/arch/ceva/src/common/ceva_saveusercontext.c
index 7206720461..090587295d 100644
--- a/arch/ceva/src/common/ceva_saveusercontext.c
+++ b/arch/ceva/src/common/ceva_saveusercontext.c
@@ -25,6 +25,8 @@
#include <nuttx/config.h>
#include <nuttx/irq.h>
+#include <string.h>
+
#include <arch/syscall.h>
#include "ceva_internal.h"
@@ -51,6 +53,14 @@ int up_saveusercontext(void *saveregs)
{
int ret;
+ if (up_interrupt_context())
+ {
+ /* TODO: save interrupt context */
+
+ memset(saveregs, 0x0, XCPTCONTEXT_SIZE);
+ return 0;
+ }
+
/* Let sys_call1() do all of the work */
ret = sys_call1(SYS_save_context, (uintptr_t)saveregs);
diff --git a/arch/mips/src/mips32/mips_saveusercontext.c b/arch/mips/src/mips32/mips_saveusercontext.c
index 19b9b30900..001714de51 100644
--- a/arch/mips/src/mips32/mips_saveusercontext.c
+++ b/arch/mips/src/mips32/mips_saveusercontext.c
@@ -23,6 +23,9 @@
****************************************************************************/
#include <nuttx/config.h>
+#include <nuttx/irq.h>
+
+#include <string.h>
#include <arch/syscall.h>
@@ -46,5 +49,13 @@
int up_saveusercontext(void *saveregs)
{
+ if (up_interrupt_context())
+ {
+ /* TODO: save interrupt context */
+
+ memset(saveregs, 0x0, XCPTCONTEXT_SIZE);
+ return 0;
+ }
+
return sys_call1(SYS_save_context, (uintptr_t)saveregs);
}
diff --git a/arch/misoc/src/lm32/lm32_saveusercontext.c b/arch/misoc/src/lm32/lm32_saveusercontext.c
index 110e770543..2733002104 100644
--- a/arch/misoc/src/lm32/lm32_saveusercontext.c
+++ b/arch/misoc/src/lm32/lm32_saveusercontext.c
@@ -23,6 +23,9 @@
****************************************************************************/
#include <nuttx/config.h>
+#include <nuttx/irq.h>
+
+#include <string.h>
#include <arch/syscall.h>
@@ -46,5 +49,13 @@
int up_saveusercontext(void *saveregs)
{
+ if (up_interrupt_context())
+ {
+ /* TODO: save interrupt context */
+
+ memset(saveregs, 0x0, XCPTCONTEXT_SIZE);
+ return 0;
+ }
+
return sys_call1(SYS_save_context, (uintptr_t)saveregs);
}
diff --git a/arch/misoc/src/minerva/minerva_saveusercontext.c b/arch/misoc/src/minerva/minerva_saveusercontext.c
index a35b998bcc..6c4190bdc0 100644
--- a/arch/misoc/src/minerva/minerva_saveusercontext.c
+++ b/arch/misoc/src/minerva/minerva_saveusercontext.c
@@ -23,6 +23,9 @@
****************************************************************************/
#include <nuttx/config.h>
+#include <nuttx/irq.h>
+
+#include <string.h>
#include <arch/syscall.h>
@@ -46,5 +49,13 @@
int up_saveusercontext(void *saveregs)
{
+ if (up_interrupt_context())
+ {
+ /* TODO: save interrupt context */
+
+ memset(saveregs, 0x0, XCPTCONTEXT_SIZE);
+ return 0;
+ }
+
return sys_call1(SYS_save_context, (uintptr_t)saveregs);
}
diff --git a/arch/sparc/src/sparc_v8/sparc_v8_saveusercontext.c b/arch/sparc/src/sparc_v8/sparc_v8_saveusercontext.c
index 14bfbfa15d..ab28d2692a 100644
--- a/arch/sparc/src/sparc_v8/sparc_v8_saveusercontext.c
+++ b/arch/sparc/src/sparc_v8/sparc_v8_saveusercontext.c
@@ -23,6 +23,9 @@
****************************************************************************/
#include <nuttx/config.h>
+#include <nuttx/irq.h>
+
+#include <string.h>
#include <arch/syscall.h>
@@ -46,5 +49,13 @@
int up_saveusercontext(void *saveregs)
{
+ if (up_interrupt_context())
+ {
+ /* TODO: save interrupt context */
+
+ memset(saveregs, 0x0, XCPTCONTEXT_SIZE);
+ return 0;
+ }
+
return sys_call1(SYS_save_context, (uintptr_t)saveregs);
}