]> granicus.if.org Git - psmisc/commitdiff
Port peekfd to m68k
authorAndreas Schwab <schwab@suse.de>
Thu, 17 Oct 2013 10:32:56 +0000 (12:32 +0200)
committerCraig Small <csmall@enc.com.au>
Fri, 31 Jan 2014 11:53:54 +0000 (22:53 +1100)
configure.ac
src/Makefile.am
src/peekfd.c

index 6fed37ff5f4ed1d89989af8ecc3a5f8e03cbcb12..20549f69abdb7ac976d242807470217ae0aba428 100644 (file)
@@ -117,6 +117,8 @@ AC_CHECK_MEMBERS([struct pt_regs.orig_gpr3,
 AC_CHECK_MEMBERS([struct pt_regs.uregs],[],[], [#include <asm/ptrace.h>])
 AC_CHECK_MEMBERS([struct pt_regs.regs,
                   struct pt_regs.cp0_status],[],[], [#include <asm/ptrace.h>])
+AC_CHECK_MEMBERS([struct pt_regs.orig_d0,
+                  struct pt_regs.d0],[],[], [#include <asm/ptrace.h>])
 
 case ${host_os} in
   gnu*)
@@ -149,6 +151,9 @@ AM_CONDITIONAL(WANT_PEEKFD_MIPS,
    test $build_cpu = mipsel &&
    test $ac_cv_member_struct_pt_regs_regs = yes &&
    test $ac_cv_member_struct_pt_regs_cp0_status = yes)
+AM_CONDITIONAL(WANT_PEEKFD_M68K,
+   test $ac_cv_member_struct_pt_regs_orig_d0 = yes &&
+   test $ac_cv_member_struct_pt_regs_d0 = yes)
 
 dnl Checks for library functions.
 AC_FUNC_CLOSEDIR_VOID
index 9d6f777b7a104d51702bb9e41745d0e040cc0f27..3a1fe199ad6fc075f49a3927d31a82cbb5e75000 100644 (file)
@@ -25,6 +25,10 @@ if WANT_PEEKFD_MIPS
   bin_PROGRAMS += peekfd
   AM_CFLAGS += -DMIPS
 endif
+if WANT_PEEKFD_M68K
+  bin_PROGRAMS += peekfd
+  AM_CFLAGS += -DM68K
+endif
 
 fuser_SOURCES = fuser.c comm.h signals.c signals.h i18n.h fuser.h lists.h
 if WANT_TIMEOUT_STAT
index c4a347412ee7980832bb54f3d1ac451155feef07..cba21309f07d1eb60059f3450f20dab2631a73d2 100644 (file)
        #define REG_PARAM1 regs[4]
        #define REG_PARAM2 regs[5]
        #define REG_PARAM3 regs[6]
+#elif defined(M68K)
+       #define REG_ORIG_ACCUM orig_d0
+       #define REG_ACCUM d0
+       #define REG_PARAM1 d1
+       #define REG_PARAM2 d2
+       #define REG_PARAM3 d3
 #endif
 
 #define MAX_ATTACHED_PIDS 1024
@@ -270,7 +276,7 @@ int main(int argc, char **argv)
                                                }
 
                                                for (i = 0; i < regs.REG_PARAM3; i++) {
-#ifdef _BIG_ENDIAN
+#if BYTE_ORDER == BIG_ENDIAN
 #if __WORDSIZE == 64
                                                        unsigned int a = bswap_64(ptrace(PTRACE_PEEKTEXT, pid, regs.REG_PARAM2 + i, 0));
 #else