mkstrsyscall.pl - vx32 - Local 9vx git repository for patches.
(HTM) git clone git://r-36.net/vx32
(DIR) Log
(DIR) Files
(DIR) Refs
---
mkstrsyscall.pl (581B)
---
1 #!/usr/bin/perl
2
3 open(SYS, "/usr/include/asm/unistd.h") || die "open /usr/include/asm/unistd.h: $!";
4
5 print <<'EOF';
6 #include <stdio.h>
7 #include <asm/unistd.h>
8
9 EOF
10
11 print "static char *syscall_names[] = {\n";
12 while(<SYS>){
13 if(/#define __NR_(\S+)\s+\d+\s*$/) {
14 print "\t[__NR_$1]= \"$1\",\n";
15 }
16 }
17 print "};\n\n";
18
19 print <<'EOF';
20
21 #define nelem(x) (sizeof(x)/sizeof((x)[0]))
22
23 char *strsyscall(int n) {
24 if (0 <= n && n < nelem(syscall_names) && syscall_names[n])
25 return syscall_names[n];
26 static char buf[40];
27 snprintf(buf, sizeof buf, "syscall%#x", n);
28 return buf;
29 }
30
31 EOF
32