1 |
commit: 3ae4d849ae4aaaf469bc9a58b01d8a2b2931c14a |
2 |
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Dec 20 09:48:47 2015 +0000 |
4 |
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Dec 20 09:48:47 2015 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/sandbox.git/commit/?id=3ae4d849 |
7 |
|
8 |
libsandbox: new arm ptrace port |
9 |
|
10 |
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org> |
11 |
|
12 |
libsandbox/trace/linux/arch.c | 2 ++ |
13 |
libsandbox/trace/linux/arm.c | 22 ++++++++++++++++++++++ |
14 |
2 files changed, 24 insertions(+) |
15 |
|
16 |
diff --git a/libsandbox/trace/linux/arch.c b/libsandbox/trace/linux/arch.c |
17 |
index 53461d6..83b6977 100644 |
18 |
--- a/libsandbox/trace/linux/arch.c |
19 |
+++ b/libsandbox/trace/linux/arch.c |
20 |
@@ -7,6 +7,8 @@ |
21 |
#if !defined(HAVE_PTRACE) || !defined(HAVE_SYS_PTRACE_H) || \ |
22 |
!defined(HAVE_SYS_USER_H) || !defined(PTRACE_SETOPTIONS) |
23 |
# define SB_NO_TRACE_ARCH |
24 |
+#elif defined(__arm__) |
25 |
+# include "arm.c" |
26 |
#elif defined(__bfin__) |
27 |
# include "bfin.c" |
28 |
#elif defined(__hppa__) |
29 |
|
30 |
diff --git a/libsandbox/trace/linux/arm.c b/libsandbox/trace/linux/arm.c |
31 |
new file mode 100644 |
32 |
index 0000000..fbbf7cb |
33 |
--- /dev/null |
34 |
+++ b/libsandbox/trace/linux/arm.c |
35 |
@@ -0,0 +1,22 @@ |
36 |
+#define trace_reg_ret ARM_r0 |
37 |
+ |
38 |
+static int trace_get_sysnum(void *vregs) |
39 |
+{ |
40 |
+ trace_regs *regs = vregs; |
41 |
+ return regs->ARM_r7; |
42 |
+} |
43 |
+static void trace_set_sysnum(void *vregs, long nr) |
44 |
+{ |
45 |
+ trace_regs *regs = vregs; |
46 |
+ regs->ARM_r0 = nr; |
47 |
+ trace_set_regs(regs); |
48 |
+} |
49 |
+ |
50 |
+static unsigned long trace_arg(void *vregs, int num) |
51 |
+{ |
52 |
+ trace_regs *regs = vregs; |
53 |
+ if (num < 7) |
54 |
+ return regs->uregs[num - 1]; |
55 |
+ else |
56 |
+ return -1; |
57 |
+} |