aboutsummaryrefslogtreecommitdiff
path: root/gdb/syscalls/arm-linux.py
diff options
context:
space:
mode:
authorSergio Durigan Junior <sergiodj@redhat.com>2013-08-22 22:06:11 +0000
committerSergio Durigan Junior <sergiodj@redhat.com>2013-08-22 22:06:11 +0000
commita5829458a109d5c8a80bd17ec8c5e5550e94c70c (patch)
treeff18169a1ca3a567007ba5e95e865d58370446f3 /gdb/syscalls/arm-linux.py
parent9f948660082197e73991d4d0db07030420c33e45 (diff)
downloadgdb-a5829458a109d5c8a80bd17ec8c5e5550e94c70c.zip
gdb-a5829458a109d5c8a80bd17ec8c5e5550e94c70c.tar.gz
gdb-a5829458a109d5c8a80bd17ec8c5e5550e94c70c.tar.bz2
Adding missing files from my last commit.
Diffstat (limited to 'gdb/syscalls/arm-linux.py')
-rw-r--r--gdb/syscalls/arm-linux.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/gdb/syscalls/arm-linux.py b/gdb/syscalls/arm-linux.py
new file mode 100644
index 0000000..0814dd4
--- /dev/null
+++ b/gdb/syscalls/arm-linux.py
@@ -0,0 +1,60 @@
+# Copyright (C) 2013 Free Software Foundation, Inc.
+
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+import sys
+import re
+import time
+
+infname = sys.argv[1]
+inf = file(infname)
+
+print("""\
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-%s Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. This file is offered as-is,
+ without any warranty. -->
+
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<!-- This file was generated using the following file:
+
+ %s
+
+ The file mentioned above belongs to the Linux Kernel.
+ Some small hand-edits were made. -->
+
+<syscalls_info>""" % (time.strftime("%Y"), infname))
+
+def record(name, number, comment=None):
+ #nm = 'name="%s"' % name
+ #s = ' <syscall %-30s number="%d"/>' % (nm, number)
+ s = ' <syscall name="%s" number="%d"/>' % (name, number)
+ if comment:
+ s += ' <!-- %s -->' % comment
+ print(s)
+
+for line in inf:
+ m = re.match(r'^#define __NR_(\w+)\s+\(__NR_SYSCALL_BASE\+\s*(\d+)\)',
+ line)
+ if m:
+ record(m.group(1), int(m.group(2)))
+ continue
+
+ m = re.match(r'^\s+/\* (\d+) was sys_(\w+) \*/$', line)
+ if m:
+ record(m.group(2), int(m.group(1)), 'removed')
+
+ m = re.match(r'^#define __ARM_NR_(\w+)\s+\(__ARM_NR_BASE\+\s*(\d+)\)',
+ line)
+ if m:
+ record('ARM_'+m.group(1), 0x0f0000+int(m.group(2)))
+ continue
+
+print('</syscalls_info>')