diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2016-11-15 17:38:21 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2016-11-16 02:33:13 +0000 |
commit | f1d0729f17023de3228cc2e1d7204a4c6bb91648 (patch) | |
tree | 76b151896147d913925bfb376f2a5f5cb656509d /linux/microblaze | |
parent | 05a3b0b518e3094509daccd642e069a1d18f4768 (diff) | |
download | strace-f1d0729f17023de3228cc2e1d7204a4c6bb91648.tar.gz |
Implement arch specific methods of changing syscall number and error code
This introduces arch_set_error and arch_set_scno functions for each
supported architecture, needed to implement syscall fault injection.
* linux/aarch64/set_error.c: New file.
* linux/aarch64/set_scno.c: Likewise.
* linux/alpha/set_error.c: Likewise.
* linux/alpha/set_scno.c: Likewise.
* linux/arc/set_error.c: Likewise.
* linux/arc/set_scno.c: Likewise.
* linux/arm/set_error.c: Likewise.
* linux/arm/set_scno.c: Likewise.
* linux/avr32/set_error.c: Likewise.
* linux/avr32/set_scno.c: Likewise.
* linux/bfin/set_error.c: Likewise.
* linux/bfin/set_scno.c: Likewise.
* linux/crisv10/set_error.c: Likewise.
* linux/crisv10/set_scno.c: Likewise.
* linux/crisv32/set_error.c: Likewise.
* linux/crisv32/set_scno.c: Likewise.
* linux/hppa/set_error.c: Likewise.
* linux/hppa/set_scno.c: Likewise.
* linux/i386/set_error.c: Likewise.
* linux/i386/set_scno.c: Likewise.
* linux/ia64/set_error.c: Likewise.
* linux/ia64/set_scno.c: Likewise.
* linux/m68k/set_error.c: Likewise.
* linux/m68k/set_scno.c: Likewise.
* linux/metag/set_error.c: Likewise.
* linux/metag/set_scno.c: Likewise.
* linux/microblaze/set_error.c: Likewise.
* linux/microblaze/set_scno.c: Likewise.
* linux/mips/set_error.c: Likewise.
* linux/mips/set_scno.c: Likewise.
* linux/nios2/set_error.c: Likewise.
* linux/nios2/set_scno.c: Likewise.
* linux/or1k/set_error.c: Likewise.
* linux/or1k/set_scno.c: Likewise.
* linux/powerpc/set_error.c: Likewise.
* linux/powerpc/set_scno.c: Likewise.
* linux/powerpc64/set_error.c: Likewise.
* linux/powerpc64/set_scno.c: Likewise.
* linux/riscv/set_error.c: Likewise.
* linux/riscv/set_scno.c: Likewise.
* linux/s390/set_error.c: Likewise.
* linux/s390/set_scno.c: Likewise.
* linux/s390x/set_error.c: Likewise.
* linux/s390x/set_scno.c: Likewise.
* linux/sh/set_error.c: Likewise.
* linux/sh/set_scno.c: Likewise.
* linux/sh64/set_error.c: Likewise.
* linux/sh64/set_scno.c: Likewise.
* linux/sparc/set_error.c: Likewise.
* linux/sparc/set_scno.c: Likewise.
* linux/sparc64/set_error.c: Likewise.
* linux/sparc64/set_scno.c: Likewise.
* linux/tile/set_error.c: Likewise.
* linux/tile/set_scno.c: Likewise.
* linux/x32/set_error.c: Likewise.
* linux/x32/set_scno.c: Likewise.
* linux/x86_64/set_error.c: Likewise.
* linux/x86_64/set_scno.c: Likewise.
* linux/xtensa/set_error.c: Likewise.
* linux/xtensa/set_scno.c: Likewise.
* Makefile.am (EXTRA_DIST): Add them.
Diffstat (limited to 'linux/microblaze')
-rw-r--r-- | linux/microblaze/set_error.c | 6 | ||||
-rw-r--r-- | linux/microblaze/set_scno.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/linux/microblaze/set_error.c b/linux/microblaze/set_error.c new file mode 100644 index 000000000..98c5419ec --- /dev/null +++ b/linux/microblaze/set_error.c @@ -0,0 +1,6 @@ +static int +arch_set_error(struct tcb *tcp) +{ + microblaze_r3 = -tcp->u_error; + return upoke(tcp->pid, 3 * 4, microblaze_r3); +} diff --git a/linux/microblaze/set_scno.c b/linux/microblaze/set_scno.c new file mode 100644 index 000000000..0f7ce9ec7 --- /dev/null +++ b/linux/microblaze/set_scno.c @@ -0,0 +1,5 @@ +static int +arch_set_scno(struct tcb *tcp, long scno) +{ + return upoke(tcp->pid, 0, scno); +} |