From 0eda4a0a4bc1192c08b8c773f9561cb048b17fce Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Sun, 25 Dec 2016 12:53:14 +0000 Subject: [PATCH] upeek, upoke: change argument types from long to unsigned long * defs.h (upeek, upoke): Change offset argument type from long to unsigned long. Change res argument type from long to kernel_ureg_t. * upeek.c (upeek): Likewise. * upoke.c (upoke.c): Likewise. * syscall.c (print_pc) [ARCH_PC_PEEK_ADDR]: Change pc type from long to kernel_ureg_t. * linux/aarch64/arch_regs.c (arm_sp_ptr): Remove redundant cast. * linux/metag/get_syscall_args.c (get_syscall_args): Likewise. * linux/sh/get_syscall_result.c (get_syscall_result_regs): Likewise. * linux/sh64/get_syscall_result.c (get_syscall_result_regs): Likewise. * linux/powerpc/getregs_old.c (getregs_old): Remove redundant casts. * linux/alpha/arch_getrval2.c (getrval2): Change r20 type from long to unsigned long. * linux/alpha/arch_regs.c (alpha_r0, alpha_a3): Change type from long to unsigned long. * linux/bfin/arch_regs.c (bfin_r0): Likewise. * linux/crisv10/arch_regs.c (cris_r10): Likewise. * linux/hppa/arch_regs.c (hppa_r28): Likewise. * linux/ia64/arch_regs.c (IA64_PSR_IS): Likewise. * linux/microblaze/arch_regs.c (microblaze_r3): Likewise. * linux/sh/arch_regs.c (sh_r0): Likewise. * linux/sh64/arch_regs.c (sh64_r9): Likewise. * linux/xtensa/arch_regs.c (xtensa_a2): Likewise. * linux/alpha/arch_sigreturn.c (arch_sigreturn): Change addr type from long to unsigned long. * linux/microblaze/arch_sigreturn.c (arch_sigreturn): Likewise. * linux/alpha/get_scno.c (arch_get_scno): Update for the change of signedness. * linux/arc/get_syscall_args.c (get_syscall_args): Change arc_args type from pointer to long to pointer to unsigned long. * linux/arm/arch_regs.c (arm_sp_ptr): Change type from pointer to long to pointer to unsigned long. * linux/arm/arch_regs.h (arm_sp_ptr): Likewise. * linux/i386/arch_regs.c (i386_esp_ptr): Likewise. * linux/i386/arch_regs.h (i386_esp_ptr): Likewise. * linux/m68k/arch_regs.c (m68k_usp_ptr): Likewise. * linux/m68k/arch_regs.h (m68k_usp_ptr): Likewise. * linux/ia64/get_syscall_args.c (get_syscall_args): Use umove instead of umoven. * linux/sh/arch_getrval2.c (getrval2): Change val type from long to unsigned long. --- defs.h | 4 ++-- linux/aarch64/arch_regs.c | 2 +- linux/alpha/arch_getrval2.c | 2 +- linux/alpha/arch_regs.c | 4 ++-- linux/alpha/arch_sigreturn.c | 2 +- linux/alpha/get_scno.c | 4 ++-- linux/arc/get_syscall_args.c | 2 +- linux/arm/arch_regs.c | 2 +- linux/arm/arch_regs.h | 2 +- linux/bfin/arch_regs.c | 2 +- linux/crisv10/arch_regs.c | 2 +- linux/hppa/arch_regs.c | 2 +- linux/i386/arch_regs.c | 2 +- linux/i386/arch_regs.h | 2 +- linux/ia64/arch_regs.c | 2 +- linux/ia64/get_syscall_args.c | 6 +++--- linux/m68k/arch_regs.c | 2 +- linux/m68k/arch_regs.h | 2 +- linux/metag/get_syscall_args.c | 2 +- linux/microblaze/arch_regs.c | 2 +- linux/microblaze/arch_sigreturn.c | 2 +- linux/powerpc/getregs_old.c | 10 +++++----- linux/sh/arch_getrval2.c | 2 +- linux/sh/arch_regs.c | 2 +- linux/sh/get_syscall_result.c | 2 +- linux/sh64/arch_regs.c | 2 +- linux/sh64/get_syscall_result.c | 2 +- linux/xtensa/arch_regs.c | 2 +- syscall.c | 2 +- upeek.c | 4 ++-- upoke.c | 2 +- 31 files changed, 41 insertions(+), 41 deletions(-) diff --git a/defs.h b/defs.h index d8a96e73..86c26f70 100644 --- a/defs.h +++ b/defs.h @@ -511,8 +511,8 @@ umoven_or_printaddr_ignore_syserror(struct tcb *tcp, kernel_ureg_t addr, extern int umovestr(struct tcb *tcp, kernel_ureg_t addr, unsigned int len, char *laddr); -extern int upeek(int pid, long, long *); -extern int upoke(int pid, long, long); +extern int upeek(int pid, unsigned long, kernel_ureg_t *); +extern int upoke(int pid, unsigned long, kernel_ureg_t); extern bool print_array(struct tcb *tcp, diff --git a/linux/aarch64/arch_regs.c b/linux/aarch64/arch_regs.c index 8e18a71c..4ccb1f5b 100644 --- a/linux/aarch64/arch_regs.c +++ b/linux/aarch64/arch_regs.c @@ -28,7 +28,7 @@ static union { #define arm_regs arm_regs_union.arm_r uint64_t *const aarch64_sp_ptr = (uint64_t *) &aarch64_regs.sp; -uint32_t *const arm_sp_ptr = (uint32_t *) &arm_regs.ARM_sp; +uint32_t *const arm_sp_ptr = &arm_regs.ARM_sp; static struct iovec aarch64_io = { .iov_base = &arm_regs_union }; diff --git a/linux/alpha/arch_getrval2.c b/linux/alpha/arch_getrval2.c index 90ee392e..f78a9f0f 100644 --- a/linux/alpha/arch_getrval2.c +++ b/linux/alpha/arch_getrval2.c @@ -1,7 +1,7 @@ long getrval2(struct tcb *tcp) { - long r20; + unsigned long r20; if (upeek(tcp->pid, 20, &r20) < 0) return -1; return r20; diff --git a/linux/alpha/arch_regs.c b/linux/alpha/arch_regs.c index df1878e2..4d397996 100644 --- a/linux/alpha/arch_regs.c +++ b/linux/alpha/arch_regs.c @@ -1,3 +1,3 @@ -static long alpha_r0; -static long alpha_a3; +static unsigned long alpha_r0; +static unsigned long alpha_a3; #define ARCH_PC_PEEK_ADDR REG_PC diff --git a/linux/alpha/arch_sigreturn.c b/linux/alpha/arch_sigreturn.c index 71a84ef2..320f91f9 100644 --- a/linux/alpha/arch_sigreturn.c +++ b/linux/alpha/arch_sigreturn.c @@ -1,7 +1,7 @@ static void arch_sigreturn(struct tcb *tcp) { - long addr; + unsigned long addr; if (upeek(tcp->pid, REG_FP, &addr) < 0) return; diff --git a/linux/alpha/get_scno.c b/linux/alpha/get_scno.c index 13002775..8e7bab6b 100644 --- a/linux/alpha/get_scno.c +++ b/linux/alpha/get_scno.c @@ -14,9 +14,9 @@ arch_get_scno(struct tcb *tcp) * really a syscall entry */ if (!scno_in_range(scno)) { - if (alpha_a3 == 0 || alpha_a3 == -1) { + if (alpha_a3 == 0 || alpha_a3 == -1UL) { if (debug_flag) - error_msg("stray syscall exit: r0 = %ld", scno); + error_msg("stray syscall exit: r0 = %lu", scno); return 0; } } diff --git a/linux/arc/get_syscall_args.c b/linux/arc/get_syscall_args.c index 4d6ace5c..85e867f0 100644 --- a/linux/arc/get_syscall_args.c +++ b/linux/arc/get_syscall_args.c @@ -2,7 +2,7 @@ static int get_syscall_args(struct tcb *tcp) { - long *arc_args = &arc_regs.scratch.r0; + unsigned long *arc_args = &arc_regs.scratch.r0; unsigned int i; for (i = 0; i < MAX_ARGS; ++i) diff --git a/linux/arm/arch_regs.c b/linux/arm/arch_regs.c index f5c02f0d..8b73cb86 100644 --- a/linux/arm/arch_regs.c +++ b/linux/arm/arch_regs.c @@ -1,5 +1,5 @@ static struct pt_regs arm_regs; -long *const arm_sp_ptr = &arm_regs.ARM_sp; +unsigned long *const arm_sp_ptr = (unsigned long *) &arm_regs.ARM_sp; #define ARCH_REGS_FOR_GETREGS arm_regs #define ARCH_PC_REG arm_regs.ARM_pc diff --git a/linux/arm/arch_regs.h b/linux/arm/arch_regs.h index bdbc8e95..4edd50c7 100644 --- a/linux/arm/arch_regs.h +++ b/linux/arm/arch_regs.h @@ -1 +1 @@ -extern long *const arm_sp_ptr; +extern unsigned long *const arm_sp_ptr; diff --git a/linux/bfin/arch_regs.c b/linux/bfin/arch_regs.c index e1aa15e4..ea76cb98 100644 --- a/linux/bfin/arch_regs.c +++ b/linux/bfin/arch_regs.c @@ -1,2 +1,2 @@ -static long bfin_r0; +static unsigned long bfin_r0; #define ARCH_PC_PEEK_ADDR PT_PC diff --git a/linux/crisv10/arch_regs.c b/linux/crisv10/arch_regs.c index 8f69b873..9c372a36 100644 --- a/linux/crisv10/arch_regs.c +++ b/linux/crisv10/arch_regs.c @@ -1,2 +1,2 @@ -static long cris_r10; +static unsigned long cris_r10; #define ARCH_PC_PEEK_ADDR (4 * PT_IRP) diff --git a/linux/hppa/arch_regs.c b/linux/hppa/arch_regs.c index 65432abb..7113bdb6 100644 --- a/linux/hppa/arch_regs.c +++ b/linux/hppa/arch_regs.c @@ -1,2 +1,2 @@ -static long hppa_r28; +static unsigned long hppa_r28; #define ARCH_PC_PEEK_ADDR PT_IAOQ0 diff --git a/linux/i386/arch_regs.c b/linux/i386/arch_regs.c index ef300465..0dcea1f0 100644 --- a/linux/i386/arch_regs.c +++ b/linux/i386/arch_regs.c @@ -1,5 +1,5 @@ static struct user_regs_struct i386_regs; -long *const i386_esp_ptr = &i386_regs.esp; +unsigned long *const i386_esp_ptr = (unsigned long *) &i386_regs.esp; #define ARCH_REGS_FOR_GETREGS i386_regs #define ARCH_PC_REG i386_regs.eip diff --git a/linux/i386/arch_regs.h b/linux/i386/arch_regs.h index 77984ff7..6f622092 100644 --- a/linux/i386/arch_regs.h +++ b/linux/i386/arch_regs.h @@ -1 +1 @@ -extern long *const i386_esp_ptr; +extern unsigned long *const i386_esp_ptr; diff --git a/linux/ia64/arch_regs.c b/linux/ia64/arch_regs.c index 14fffd5c..deec1769 100644 --- a/linux/ia64/arch_regs.c +++ b/linux/ia64/arch_regs.c @@ -1,7 +1,7 @@ static struct pt_all_user_regs ia64_regs; unsigned long *const ia64_frame_ptr = &ia64_regs.gr[12]; -#define IA64_PSR_IS ((long)1 << 34) +#define IA64_PSR_IS (1UL << 34) #define ia64_ia32mode (ia64_regs.cr_ipsr & IA64_PSR_IS) #define ARCH_REGS_FOR_GETREGS ia64_regs diff --git a/linux/ia64/get_syscall_args.c b/linux/ia64/get_syscall_args.c index 2295d08d..1b942eba 100644 --- a/linux/ia64/get_syscall_args.c +++ b/linux/ia64/get_syscall_args.c @@ -11,9 +11,9 @@ get_syscall_args(struct tcb *tcp) unsigned int i; for (i = 0; i < tcp->s_ent->nargs; ++i) { - if (umoven(tcp, - (unsigned long) ia64_rse_skip_regs(out0, i), - sizeof(long), &tcp->u_arg[i]) < 0) + if (umove(tcp, + (unsigned long) ia64_rse_skip_regs(out0, i), + &tcp->u_arg[i]) < 0) return -1; } } else { diff --git a/linux/m68k/arch_regs.c b/linux/m68k/arch_regs.c index 1198762b..3d4c3d9e 100644 --- a/linux/m68k/arch_regs.c +++ b/linux/m68k/arch_regs.c @@ -1,4 +1,4 @@ static struct user_regs_struct m68k_regs; -long *const m68k_usp_ptr = &m68k_regs.usp; +unsigned long *const m68k_usp_ptr = (unsigned long *) &m68k_regs.usp; #define ARCH_PC_REG m68k_regs.pc #define ARCH_REGS_FOR_GETREGS m68k_regs diff --git a/linux/m68k/arch_regs.h b/linux/m68k/arch_regs.h index 08293365..424ec11c 100644 --- a/linux/m68k/arch_regs.h +++ b/linux/m68k/arch_regs.h @@ -1 +1 @@ -extern long *const m68k_usp_ptr; +extern unsigned long *const m68k_usp_ptr; diff --git a/linux/metag/get_syscall_args.c b/linux/metag/get_syscall_args.c index b7c10f45..4cae04f1 100644 --- a/linux/metag/get_syscall_args.c +++ b/linux/metag/get_syscall_args.c @@ -6,7 +6,7 @@ get_syscall_args(struct tcb *tcp) for (i = 0; i < MAX_ARGS; i++) { /* arguments go backwards from D1Ar1 (D1.3) */ - tcp->u_arg[i] = ((unsigned long *)&metag_regs.dx[3][1])[-i]; + tcp->u_arg[i] = (&metag_regs.dx[3][1])[-i]; } return 1; } diff --git a/linux/microblaze/arch_regs.c b/linux/microblaze/arch_regs.c index c7bafabd..a5fec611 100644 --- a/linux/microblaze/arch_regs.c +++ b/linux/microblaze/arch_regs.c @@ -1,2 +1,2 @@ -static long microblaze_r3; +static unsigned long microblaze_r3; #define ARCH_PC_PEEK_ADDR PT_PC diff --git a/linux/microblaze/arch_sigreturn.c b/linux/microblaze/arch_sigreturn.c index 839c8057..c8948153 100644 --- a/linux/microblaze/arch_sigreturn.c +++ b/linux/microblaze/arch_sigreturn.c @@ -3,7 +3,7 @@ arch_sigreturn(struct tcb *tcp) { /* TODO: Verify that this is correct... */ - long addr; + unsigned long addr; /* Read r1, the stack pointer. */ if (upeek(tcp->pid, 1 * 4, &addr) < 0) diff --git a/linux/powerpc/getregs_old.c b/linux/powerpc/getregs_old.c index 22167cb2..1730f033 100644 --- a/linux/powerpc/getregs_old.c +++ b/linux/powerpc/getregs_old.c @@ -9,24 +9,24 @@ getregs_old(pid_t pid) long r; if (iflag) { - r = upeek(pid, sizeof(long) * PT_NIP, (long *)&ppc_regs.nip); + r = upeek(pid, sizeof(long) * PT_NIP, &ppc_regs.nip); if (r) goto out; } #ifdef POWERPC64 /* else we never use it */ - r = upeek(pid, sizeof(long) * PT_MSR, (long *)&ppc_regs.msr); + r = upeek(pid, sizeof(long) * PT_MSR, &ppc_regs.msr); if (r) goto out; #endif - r = upeek(pid, sizeof(long) * PT_CCR, (long *)&ppc_regs.ccr); + r = upeek(pid, sizeof(long) * PT_CCR, &ppc_regs.ccr); if (r) goto out; - r = upeek(pid, sizeof(long) * PT_ORIG_R3, (long *)&ppc_regs.orig_gpr3); + r = upeek(pid, sizeof(long) * PT_ORIG_R3, &ppc_regs.orig_gpr3); if (r) goto out; for (i = 0; i <= 8; i++) { r = upeek(pid, sizeof(long) * (PT_R0 + i), - (long *)&ppc_regs.gpr[i]); + &ppc_regs.gpr[i]); if (r) goto out; } diff --git a/linux/sh/arch_getrval2.c b/linux/sh/arch_getrval2.c index 8f60de74..27b7cdd0 100644 --- a/linux/sh/arch_getrval2.c +++ b/linux/sh/arch_getrval2.c @@ -1,7 +1,7 @@ long getrval2(struct tcb *tcp) { - long val; + unsigned long val; if (upeek(tcp->pid, 4*(REG_REG0+1), &val) < 0) return -1; return val; diff --git a/linux/sh/arch_regs.c b/linux/sh/arch_regs.c index 0ce81843..5429b4f5 100644 --- a/linux/sh/arch_regs.c +++ b/linux/sh/arch_regs.c @@ -1,2 +1,2 @@ -static long sh_r0; +static unsigned long sh_r0; #define ARCH_PC_PEEK_ADDR (4 * REG_PC) diff --git a/linux/sh/get_syscall_result.c b/linux/sh/get_syscall_result.c index 5db30254..f7b93b74 100644 --- a/linux/sh/get_syscall_result.c +++ b/linux/sh/get_syscall_result.c @@ -2,5 +2,5 @@ static int get_syscall_result_regs(struct tcb *tcp) { /* new syscall ABI returns result in R0 */ - return upeek(tcp->pid, 4 * REG_REG0, (long *)&sh_r0) < 0 ? -1 : 0; + return upeek(tcp->pid, 4 * REG_REG0, &sh_r0) < 0 ? -1 : 0; } diff --git a/linux/sh64/arch_regs.c b/linux/sh64/arch_regs.c index eb6701b9..8b3202a8 100644 --- a/linux/sh64/arch_regs.c +++ b/linux/sh64/arch_regs.c @@ -1,2 +1,2 @@ -static long sh64_r9; +static unsigned long sh64_r9; #define ARCH_PC_PEEK_ADDR REG_PC diff --git a/linux/sh64/get_syscall_result.c b/linux/sh64/get_syscall_result.c index 93faf3df..4264dccc 100644 --- a/linux/sh64/get_syscall_result.c +++ b/linux/sh64/get_syscall_result.c @@ -2,5 +2,5 @@ static int get_syscall_result_regs(struct tcb *tcp) { /* ABI defines result returned in r9 */ - return upeek(tcp->pid, REG_GENERAL(9), (long *)&sh64_r9) < 0 ? -1 : 0; + return upeek(tcp->pid, REG_GENERAL(9), &sh64_r9) < 0 ? -1 : 0; } diff --git a/linux/xtensa/arch_regs.c b/linux/xtensa/arch_regs.c index d36f56a0..67e5f010 100644 --- a/linux/xtensa/arch_regs.c +++ b/linux/xtensa/arch_regs.c @@ -1,2 +1,2 @@ -static long xtensa_a2; +static unsigned long xtensa_a2; #define ARCH_PC_PEEK_ADDR REG_PC diff --git a/syscall.c b/syscall.c index 6839dabe..41c89432 100644 --- a/syscall.c +++ b/syscall.c @@ -1048,7 +1048,7 @@ print_pc(struct tcb *tcp) #if defined ARCH_PC_REG # define ARCH_GET_PC 0 #elif defined ARCH_PC_PEEK_ADDR - long pc; + kernel_ureg_t pc; # define ARCH_PC_REG pc # define ARCH_GET_PC upeek(tcp->pid, ARCH_PC_PEEK_ADDR, &pc) #else diff --git a/upeek.c b/upeek.c index 1edfcaa9..fbcbd380 100644 --- a/upeek.c +++ b/upeek.c @@ -35,7 +35,7 @@ #include "ptrace.h" int -upeek(int pid, long off, long *res) +upeek(int pid, unsigned long off, kernel_ureg_t *res) { long val; @@ -47,6 +47,6 @@ upeek(int pid, long off, long *res) } return -1; } - *res = val; + *res = (unsigned long) val; return 0; } diff --git a/upoke.c b/upoke.c index e22c1eed..6746099a 100644 --- a/upoke.c +++ b/upoke.c @@ -29,7 +29,7 @@ #include "ptrace.h" int -upoke(int pid, long off, long val) +upoke(int pid, unsigned long off, kernel_ureg_t val) { if (ptrace(PTRACE_POKEUSER, (pid_t) pid, (void *) off, (void *) val)) { if (errno != ESRCH) -- 2.40.0