strace/linux/hppa/set_scno.c

6 lines
106 B
C
Raw Normal View History

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.
2016-11-15 17:38:21 +00:00
static int
Change scno type from long to unsigned long Use an unsigned type for syscall numbers as they are not intended for signed arithmetics. Introduce kernel_scno_t as a typedef to unsigned long, that could be changed later to kernel_ulong_t. * kernel_types.h (kernel_scno_t): New type, typedef to unsigned long. * defs.h (struct tcb): Change type of scno field from long to kernel_scno_t. (syscall_name): Change argument type from long to kernel_scno_t. (scno_in_range, scno_is_valid): Change argument type from unsigned long to kernel_scno_t. * linux/aarch64/set_scno.c (arch_set_scno): Change scno argument type from long to kernel_scno_t. * linux/alpha/set_scno.c (arch_set_scno): Likewise. * linux/arc/set_scno.c (arch_set_scno): Likewise. * linux/arm/set_scno.c (arch_set_scno): Likewise. * linux/avr32/set_scno.c (arch_set_scno): Likewise. * linux/bfin/set_scno.c (arch_set_scno): Likewise. * linux/crisv10/set_scno.c (arch_set_scno): Likewise. * linux/hppa/set_scno.c (arch_set_scno): Likewise. * linux/i386/set_scno.c (arch_set_scno): Likewise. * linux/ia64/set_scno.c (arch_set_scno): Likewise. * linux/m68k/set_scno.c (arch_set_scno): Likewise. * linux/metag/set_scno.c (arch_set_scno): Likewise. * linux/microblaze/set_scno.c (arch_set_scno): Likewise. * linux/mips/set_scno.c (arch_set_scno): Likewise. * linux/nios2/set_scno.c (arch_set_scno): Likewise. * linux/or1k/set_scno.c (arch_set_scno): Likewise. * linux/powerpc/set_scno.c (arch_set_scno): Likewise. * linux/riscv/set_scno.c (arch_set_scno): Likewise. * linux/s390/set_scno.c (arch_set_scno): Likewise. * linux/sh/set_scno.c (arch_set_scno): Likewise. * linux/sh64/set_scno.c (arch_set_scno): Likewise. * linux/sparc/set_scno.c (arch_set_scno): Likewise. * linux/tile/set_scno.c (arch_set_scno): Likewise. * linux/x86_64/set_scno.c (arch_set_scno): Likewise. * linux/xtensa/set_scno.c (arch_set_scno): Likewise. * linux/aarch64/get_scno.c (arch_get_scno): Change scno variable type from long to kernel_scno_t. * linux/alpha/get_scno.c (arch_get_scno): Likewise. * linux/arm/get_scno.c (arch_get_scno): Likewise. * linux/sh/get_scno.c (arch_get_scno): Likewise. * linux/x86_64/get_scno.c (arch_get_scno): Likewise. * syscall.c (arch_set_scno): Likewise. (shuffle_scno): Change return type from long to kernel_scno_t. (syscall_name): Change argument type from long to kernel_scno_t.
2016-12-18 17:20:44 +00:00
arch_set_scno(struct tcb *tcp, kernel_scno_t scno)
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.
2016-11-15 17:38:21 +00:00
{
return upoke(tcp->pid, PT_GR20, scno);
}