diff --git a/arch/xtensa/include/irq.h b/arch/xtensa/include/irq.h index 3e8dfd46660..49bfc5b1384 100644 --- a/arch/xtensa/include/irq.h +++ b/arch/xtensa/include/irq.h @@ -158,9 +158,9 @@ struct xcptcontext uint32_t saved_cpsr; #endif - /* Register save area */ + /* Pointer to the register save area on the stack*/ - uint32_t regs[XCPTCONTEXT_REGS]; + uint32_t *regs; #ifdef CONFIG_LIB_SYSCALL /* The following array holds the return address and the exc_return value diff --git a/arch/xtensa/src/common/xtensa.h b/arch/xtensa/src/common/xtensa.h index cef80d3ae99..01a3ed9e061 100644 --- a/arch/xtensa/src/common/xtensa.h +++ b/arch/xtensa/src/common/xtensa.h @@ -1,7 +1,7 @@ /**************************************************************************** - * arch/xtensa/common/xtensa_internal.h + * arch/xtensa/common/xtensa.h * - * Copyright (C) 2011, 2012, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -33,8 +33,8 @@ * ****************************************************************************/ -#ifndef __ARCH_XTENSA_SRC_COMMON_XTENSA_INTERNAL_H -#define __ARCH_XTENSA_SRC_COMMON_XTENSA_INTERNAL_H +#ifndef __ARCH_XTENSA_SRC_COMMON_XTENSA_H +#define __ARCH_XTENSA_SRC_COMMON_XTENSA_H /**************************************************************************** * Included Files @@ -104,12 +104,12 @@ # define CONFIG_ARCH_INTERRUPTSTACK 0 #endif -/* In the XTENSA model, the state is copied from the stack to the TCB, but - * only a referenced is passed to get the state from the TCB. +/* In the XTENSA model, only a pointer to register state on the stack is + * saved in the TCB. */ -#define up_savestate(regs) up_copystate(regs, (uint32_t*)g_current_regs) -#define up_restorestate(regs) (g_current_regs = regs) +#define up_savestate(regs) do { reg = g_current_regs; } while (0) +#define up_restorestate(regs) do { g_current_regs = regs; } while (0) /**************************************************************************** * Public Types @@ -183,7 +183,7 @@ extern uint32_t _bmxdupba_address; /* BMX register setting */ #ifndef __ASSEMBLY__ /* Common Functions *********************************************************/ -/* Common functions define in arch/xtensa/src/common. These may be replaced +/* Common functions define in arch/mips/src/common. These may be replaced * with chip-specific functions of the same name if needed. See also * functions prototyped in include/nuttx/arch.h. */ @@ -213,21 +213,21 @@ void up_dumpstate(void); # define up_dumpstate() #endif -/* Common XTENSA32 functions defined in arch/xtensa/src/XTENSA32 */ +/* Common XTENSA functions */ /* IRQs */ uint32_t *up_doirq(int irq, uint32_t *regs); -/* Software interrupt 0 handler */ +/* Software interrupt handler */ -int up_swint0(int irq, FAR void *context); +int up_swint(int irq, FAR void *context); /* Signals */ void up_sigdeliver(void); /* Chip-specific functions **************************************************/ -/* Chip specific functions defined in arch/xtensa/src/ */ +/* Chip specific functions defined in arch/mips/src/ */ /* IRQs */ void up_irqinitialize(void); @@ -282,4 +282,4 @@ void up_usbuninitialize(void); #endif #endif /* __ASSEMBLY__ */ -#endif /* __ARCH_XTENSA_SRC_COMMON_XTENSA_INTERNAL_H */ +#endif /* __ARCH_XTENSA_SRC_COMMON_XTENSA_H */ diff --git a/arch/xtensa/src/common/xtensa_allocateheap.c b/arch/xtensa/src/common/xtensa_allocateheap.c index fc2178b5d10..b821eb4e34b 100644 --- a/arch/xtensa/src/common/xtensa_allocateheap.c +++ b/arch/xtensa/src/common/xtensa_allocateheap.c @@ -47,7 +47,7 @@ #include #include "up_arch.h" -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Pre-processor Definitions diff --git a/arch/xtensa/src/common/xtensa_createstack.c b/arch/xtensa/src/common/xtensa_createstack.c index 08d310e4979..f895f47a503 100644 --- a/arch/xtensa/src/common/xtensa_createstack.c +++ b/arch/xtensa/src/common/xtensa_createstack.c @@ -50,7 +50,7 @@ #include #include "up_arch.h" -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Pre-processor Macros diff --git a/arch/xtensa/src/common/xtensa_etherstub.c b/arch/xtensa/src/common/xtensa_etherstub.c index e19b26a208a..b41b7bf6d4a 100644 --- a/arch/xtensa/src/common/xtensa_etherstub.c +++ b/arch/xtensa/src/common/xtensa_etherstub.c @@ -39,7 +39,7 @@ #include -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Pre-processor Definitions diff --git a/arch/xtensa/src/common/xtensa_exit.c b/arch/xtensa/src/common/xtensa_exit.c index f300c9b89a7..4f451539d2b 100644 --- a/arch/xtensa/src/common/xtensa_exit.c +++ b/arch/xtensa/src/common/xtensa_exit.c @@ -52,7 +52,7 @@ #include "task/task.h" #include "sched/sched.h" #include "group/group.h" -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Pre-processor Definitions diff --git a/arch/xtensa/src/common/xtensa_idle.c b/arch/xtensa/src/common/xtensa_idle.c index e48441d5b4f..672a0fae1c5 100644 --- a/arch/xtensa/src/common/xtensa_idle.c +++ b/arch/xtensa/src/common/xtensa_idle.c @@ -41,7 +41,7 @@ #include #include -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Public Functions diff --git a/arch/xtensa/src/common/xtensa_initialize.c b/arch/xtensa/src/common/xtensa_initialize.c index 1fedf991493..46de907db40 100644 --- a/arch/xtensa/src/common/xtensa_initialize.c +++ b/arch/xtensa/src/common/xtensa_initialize.c @@ -58,7 +58,7 @@ #include #include "up_arch.h" -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Private Functions diff --git a/arch/xtensa/src/common/xtensa_interruptcontext.c b/arch/xtensa/src/common/xtensa_interruptcontext.c index c6d83d05e06..8b6bf802ec1 100644 --- a/arch/xtensa/src/common/xtensa_interruptcontext.c +++ b/arch/xtensa/src/common/xtensa_interruptcontext.c @@ -43,7 +43,7 @@ #include #include -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Private Types diff --git a/arch/xtensa/src/common/xtensa_lowputs.c b/arch/xtensa/src/common/xtensa_lowputs.c index 764f8393a63..f1acb1059de 100644 --- a/arch/xtensa/src/common/xtensa_lowputs.c +++ b/arch/xtensa/src/common/xtensa_lowputs.c @@ -39,7 +39,7 @@ #include -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Pre-processor Definitions diff --git a/arch/xtensa/src/common/xtensa_puts.c b/arch/xtensa/src/common/xtensa_puts.c index 47675baa8d6..3eaa3078a4c 100644 --- a/arch/xtensa/src/common/xtensa_puts.c +++ b/arch/xtensa/src/common/xtensa_puts.c @@ -40,7 +40,7 @@ #include #include -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Pre-processor Definitions diff --git a/arch/xtensa/src/common/xtensa_releasestack.c b/arch/xtensa/src/common/xtensa_releasestack.c index 76b3164bce6..40b5bd75717 100644 --- a/arch/xtensa/src/common/xtensa_releasestack.c +++ b/arch/xtensa/src/common/xtensa_releasestack.c @@ -45,7 +45,7 @@ #include #include -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Private Types diff --git a/arch/xtensa/src/common/xtensa_stackframe.c b/arch/xtensa/src/common/xtensa_stackframe.c index f0a1da976df..6c1adc992bd 100644 --- a/arch/xtensa/src/common/xtensa_stackframe.c +++ b/arch/xtensa/src/common/xtensa_stackframe.c @@ -46,7 +46,7 @@ #include -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Pre-processor Macros diff --git a/arch/xtensa/src/common/xtensa_usestack.c b/arch/xtensa/src/common/xtensa_usestack.c index 9b35e2d0a93..83daf2729cb 100644 --- a/arch/xtensa/src/common/xtensa_usestack.c +++ b/arch/xtensa/src/common/xtensa_usestack.c @@ -47,7 +47,7 @@ #include #include -#include "up_internal.h" +#include "xtensa.h" /**************************************************************************** * Pre-processor Definitions