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,
#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
};
long
getrval2(struct tcb *tcp)
{
- long r20;
+ unsigned long r20;
if (upeek(tcp->pid, 20, &r20) < 0)
return -1;
return r20;
-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
static void
arch_sigreturn(struct tcb *tcp)
{
- long addr;
+ unsigned long addr;
if (upeek(tcp->pid, REG_FP, &addr) < 0)
return;
* 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;
}
}
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)
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
-extern long *const arm_sp_ptr;
+extern unsigned long *const arm_sp_ptr;
-static long bfin_r0;
+static unsigned long bfin_r0;
#define ARCH_PC_PEEK_ADDR PT_PC
-static long cris_r10;
+static unsigned long cris_r10;
#define ARCH_PC_PEEK_ADDR (4 * PT_IRP)
-static long hppa_r28;
+static unsigned long hppa_r28;
#define ARCH_PC_PEEK_ADDR PT_IAOQ0
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
-extern long *const i386_esp_ptr;
+extern unsigned long *const i386_esp_ptr;
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
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 {
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
-extern long *const m68k_usp_ptr;
+extern unsigned long *const m68k_usp_ptr;
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;
}
-static long microblaze_r3;
+static unsigned long microblaze_r3;
#define ARCH_PC_PEEK_ADDR PT_PC
{
/* TODO: Verify that this is correct... */
- long addr;
+ unsigned long addr;
/* Read r1, the stack pointer. */
if (upeek(tcp->pid, 1 * 4, &addr) < 0)
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;
}
long
getrval2(struct tcb *tcp)
{
- long val;
+ unsigned long val;
if (upeek(tcp->pid, 4*(REG_REG0+1), &val) < 0)
return -1;
return val;
-static long sh_r0;
+static unsigned long sh_r0;
#define ARCH_PC_PEEK_ADDR (4 * REG_PC)
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;
}
-static long sh64_r9;
+static unsigned long sh64_r9;
#define ARCH_PC_PEEK_ADDR REG_PC
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;
}
-static long xtensa_a2;
+static unsigned long xtensa_a2;
#define ARCH_PC_PEEK_ADDR REG_PC
#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
#include "ptrace.h"
int
-upeek(int pid, long off, long *res)
+upeek(int pid, unsigned long off, kernel_ureg_t *res)
{
long val;
}
return -1;
}
- *res = val;
+ *res = (unsigned long) val;
return 0;
}
#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)