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/incubator-nuttx.git
commit ea42981cc69a6ede9df76df8f2ee78d4dcf0176b Author: chao.an <anc...@xiaomi.com> AuthorDate: Tue Mar 15 00:05:41 2022 +0800 syscall/names: export the syscall name in STUB module Signed-off-by: chao.an <anc...@xiaomi.com> --- arch/arm/src/armv7-a/arm_syscall.c | 13 ++++++++++++- arch/arm/src/armv7-r/arm_syscall.c | 13 ++++++++++++- include/sys/syscall.h | 4 ---- syscall/Makefile | 2 ++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/armv7-a/arm_syscall.c b/arch/arm/src/armv7-a/arm_syscall.c index fc78010..c571b73 100644 --- a/arch/arm/src/armv7-a/arm_syscall.c +++ b/arch/arm/src/armv7-a/arm_syscall.c @@ -58,7 +58,18 @@ static void dump_syscall(const char *tag, uint32_t cmd, const uint32_t *regs) * and R1..R7 = variable number of arguments depending on the system call. */ - svcinfo("SYSCALL %s: regs: %p cmd: %" PRId32 "\n", tag, regs, cmd); +#ifdef CONFIG_LIB_SYSCALL + if (cmd >= CONFIG_SYS_RESERVED) + { + svcinfo("SYSCALL %s: regs: %p cmd: %" PRId32 " name: %s\n", tag, + regs, cmd, g_funcnames[cmd - CONFIG_SYS_RESERVED]); + } + else +#endif + { + svcinfo("SYSCALL %s: regs: %p cmd: %" PRId32 "\n", tag, regs, cmd); + } + svcinfo(" R0: %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 "\n", regs[REG_R0], regs[REG_R1], regs[REG_R2], regs[REG_R3], diff --git a/arch/arm/src/armv7-r/arm_syscall.c b/arch/arm/src/armv7-r/arm_syscall.c index b7a094d..0311803 100644 --- a/arch/arm/src/armv7-r/arm_syscall.c +++ b/arch/arm/src/armv7-r/arm_syscall.c @@ -55,7 +55,18 @@ static void dump_syscall(const char *tag, uint32_t cmd, const uint32_t *regs) * and R1..R7 = variable number of arguments depending on the system call. */ - svcinfo("SYSCALL %s: regs: %p cmd: %" PRId32 "\n", tag, regs, cmd); +#ifdef CONFIG_LIB_SYSCALL + if (cmd >= CONFIG_SYS_RESERVED) + { + svcinfo("SYSCALL %s: regs: %p cmd: %" PRId32 " name: %s\n", tag, + regs, cmd, g_funcnames[cmd - CONFIG_SYS_RESERVED]); + } + else +#endif + { + svcinfo("SYSCALL %s: regs: %p cmd: %" PRId32 "\n", tag, regs, cmd); + } + svcinfo(" R0: %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 " %08" PRIx32 "\n", regs[REG_R0], regs[REG_R1], regs[REG_R2], regs[REG_R3], diff --git a/include/sys/syscall.h b/include/sys/syscall.h index 41df746..8267f4d 100644 --- a/include/sys/syscall.h +++ b/include/sys/syscall.h @@ -89,16 +89,12 @@ EXTERN const uintptr_t g_stublookup[SYS_nsyscalls]; #endif -#ifdef CONFIG_SCHED_INSTRUMENTATION_SYSCALL - /* Given the system call number, the corresponding entry in this table * provides the name of the function. */ EXTERN const char *g_funcnames[SYS_nsyscalls]; -#endif - /**************************************************************************** * Public Function Prototypes ****************************************************************************/ diff --git a/syscall/Makefile b/syscall/Makefile index 150edb3..7965907 100644 --- a/syscall/Makefile +++ b/syscall/Makefile @@ -27,6 +27,8 @@ include wraps/Make.defs MKSYSCALL = "$(TOPDIR)$(DELIM)tools$(DELIM)mksyscall$(HOSTEXEEXT)" CSVFILE = "$(TOPDIR)$(DELIM)syscall$(DELIM)syscall.csv" +STUB_SRCS += syscall_names.c + ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y) ifeq ($(CONFIG_LIB_SYSCALL),y) PROXY_SRCS += syscall_names.c