Skip to content

Commit 89455bc

Browse files
jasonbuxiaoxiang781216
authored andcommitted
arch: up_getusrsp change to inline and implement in irq.h
Signed-off-by: buxiasen <[email protected]>
1 parent 1358942 commit 89455bc

File tree

53 files changed

+205
-263
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+205
-263
lines changed

arch/arm/include/armv6-m/irq.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,12 @@ static always_inline_function uint32_t up_getsp(void)
362362
return sp;
363363
}
364364

365+
static always_inline_function uintptr_t up_getusrsp(void *regs)
366+
{
367+
uint32_t *ptr = (uint32_t *)regs;
368+
return ptr[REG_SP];
369+
}
370+
365371
static always_inline_function bool up_interrupt_context(void)
366372
{
367373
return getipsr() != 0;

arch/arm/include/armv7-a/irq.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,12 @@ static inline_function uint32_t up_getsp(void)
473473
return sp;
474474
}
475475

476+
static inline_function uintptr_t up_getusrsp(void *regs)
477+
{
478+
uint32_t *ptr = (uint32_t *)regs;
479+
return ptr[REG_SP];
480+
}
481+
476482
noinstrument_function
477483
static inline_function void up_set_interrupt_context(bool flag)
478484
{

arch/arm/include/armv7-m/irq.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,12 @@ static always_inline_function uint32_t up_getsp(void)
512512
return sp;
513513
}
514514

515+
static always_inline_function uintptr_t up_getusrsp(void *regs)
516+
{
517+
uint32_t *ptr = (uint32_t *)regs;
518+
return ptr[REG_SP];
519+
}
520+
515521
static always_inline_function bool up_interrupt_context(void)
516522
{
517523
return getipsr() != 0;

arch/arm/include/armv7-r/irq.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,12 @@ static inline_function uint32_t up_getsp(void)
468468
return sp;
469469
}
470470

471+
static inline_function uintptr_t up_getusrsp(void *regs)
472+
{
473+
uint32_t *ptr = (uint32_t *)regs;
474+
return ptr[REG_SP];
475+
}
476+
471477
noinstrument_function
472478
static inline_function void up_set_interrupt_context(bool flag)
473479
{

arch/arm/include/armv8-m/irq.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,12 @@ static always_inline_function uint32_t up_getsp(void)
487487
return sp;
488488
}
489489

490+
static always_inline_function uintptr_t up_getusrsp(void *regs)
491+
{
492+
uint32_t *ptr = (uint32_t *)regs;
493+
return ptr[REG_SP];
494+
}
495+
490496
static always_inline_function bool up_interrupt_context(void)
491497
{
492498
return getipsr() != 0;

arch/arm/include/armv8-r/irq.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,12 @@ static inline_function uint32_t up_getsp(void)
468468
return sp;
469469
}
470470

471+
static inline_function uintptr_t up_getusrsp(void *regs)
472+
{
473+
uint32_t *ptr = (uint32_t *)regs;
474+
return ptr[REG_SP];
475+
}
476+
471477
noinstrument_function
472478
static inline_function void up_set_interrupt_context(bool flag)
473479
{

arch/arm/include/tlsr82/irq.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,12 @@ static inline_function uint32_t up_getsp(void)
262262
return sp;
263263
}
264264

265+
static inline_function uintptr_t up_getusrsp(void *regs)
266+
{
267+
uint32_t *ptr = (uint32_t *)regs;
268+
return ptr[REG_SP];
269+
}
270+
265271
noinstrument_function
266272
static inline_function bool up_interrupt_context(void)
267273
{

arch/arm/src/common/arm_registerdump.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,6 @@
4343
* Public Functions
4444
****************************************************************************/
4545

46-
/****************************************************************************
47-
* Name: up_getusrsp
48-
****************************************************************************/
49-
50-
uintptr_t up_getusrsp(void *regs)
51-
{
52-
uint32_t *ptr = regs;
53-
return ptr[REG_SP];
54-
}
55-
5646
/****************************************************************************
5747
* Name: up_dump_register
5848
****************************************************************************/

arch/arm64/include/irq.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,14 @@ static inline_function void up_irq_restore(irqstate_t flags)
462462
#define up_getusrpc(regs) \
463463
(((uintptr_t *)((regs) ? (regs) : running_regs()))[REG_ELR])
464464

465+
#ifndef CONFIG_BUILD_KERNEL
466+
# define up_getusrsp(regs) \
467+
((uintptr_t)((uint64_t *)(regs))[REG_SP_ELX])
468+
#else
469+
# define up_getusrsp(regs) \
470+
((uintptr_t)((uint64_t *)(regs))[REG_SP_EL0])
471+
#endif
472+
465473
#undef EXTERN
466474
#ifdef __cplusplus
467475
}

arch/arm64/src/common/arm64_registerdump.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,6 @@
4646
* Public Functions
4747
****************************************************************************/
4848

49-
/****************************************************************************
50-
* Name: up_getusrsp
51-
****************************************************************************/
52-
53-
uintptr_t up_getusrsp(void *regs)
54-
{
55-
#ifndef CONFIG_BUILD_KERNEL
56-
return ((uint64_t *)regs)[REG_SP_ELX];
57-
#else
58-
return ((uint64_t *)regs)[REG_SP_EL0];
59-
#endif
60-
}
61-
6249
/****************************************************************************
6350
* Name: up_dump_register
6451
****************************************************************************/

0 commit comments

Comments
 (0)