* linux/riscv/syscallent.h ([259]): Add riscv_flush_icache entry. * riscv.c: New file. * Makefile.am (strace_SOURCES): Add it. * xlat/riscv_flush_icache_flags.in: New file. * NEWS: Mention it. --- Makefile.am | 1 + NEWS | 1 + linux/riscv/syscallent.h | 3 +++ riscv.c | 53 ++++++++++++++++++++++++++++++++++++++++ xlat/riscv_flush_icache_flags.in | 1 + 5 files changed, 59 insertions(+) create mode 100644 riscv.c create mode 100644 xlat/riscv_flush_icache_flags.in
diff --git a/Makefile.am b/Makefile.am index db822c5..f8061df 100644 --- a/Makefile.am +++ b/Makefile.am @@ -253,6 +253,7 @@ strace_SOURCES = \ regs.h \ renameat.c \ resource.c \ + riscv.c \ rt_sigframe.c \ rt_sigreturn.c \ rtc.c \ diff --git a/NEWS b/NEWS index c1ff7b0..e0f3eb9 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,7 @@ Noteworthy changes in release ?.?? (????-??-??) * Enhanced decoding of get_thread_area, memfd_create, modify_ldt, perf_event_open, reboot, set_thread_area, and shmget syscalls. * Implemented decoding of KVM_* and DM_LIST_DEVICES ioctl commands. + * Implemented decoding of riscv_flush_icache syscall. * Enhanced decoding of getsockopt and setsockopt syscalls for SOL_NETLINK level. * Enhanced decoding of BPF_MAP_CREATE command of bpf syscall. diff --git a/linux/riscv/syscallent.h b/linux/riscv/syscallent.h index 7c416ef..3dfed89 100644 --- a/linux/riscv/syscallent.h +++ b/linux/riscv/syscallent.h @@ -1 +1,4 @@ #include "64/syscallent.h" + +/* #define __NR_riscv_flush_icache (__NR_arch_specific_syscall + 15) */ +[259] = { 3, TM, SEN(riscv_flush_icache), "riscv_flush_icache" }, diff --git a/riscv.c b/riscv.c new file mode 100644 index 0000000..aaa3932 --- /dev/null +++ b/riscv.c @@ -0,0 +1,53 @@ +/* + * RISC-V-specific syscall decoders. + * + * Copyright (c) 2018 The strace developers. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "defs.h" + +#ifdef RISCV + +# include "xlat/riscv_flush_icache_flags.h" + +SYS_FUNC(riscv_flush_icache) +{ + /* uintptr_t start */ + printaddr(tcp->u_arg[0]); + + /* uintptr_t end */ + tprints(", "); + printaddr(tcp->u_arg[1]); + + /* uintptr_t flags */ + tprints(", "); + printflags64(riscv_flush_icache_flags, tcp->u_arg[2], + "SYS_RISCV_FLUSH_ICACHE_???"); + + return RVAL_DECODED; +} + +#endif /* RISCV */ diff --git a/xlat/riscv_flush_icache_flags.in b/xlat/riscv_flush_icache_flags.in new file mode 100644 index 0000000..173da07 --- /dev/null +++ b/xlat/riscv_flush_icache_flags.in @@ -0,0 +1 @@ +SYS_RISCV_FLUSH_ICACHE_LOCAL 1 -- 2.1.4 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel