1 #!/usr/bin/perl 2 # This file is part of ltrace. 3 # Copyright (C) 2006 Heiko Carstens, IBM Corporation 4 # 5 # This program is free software; you can redistribute it and/or 6 # modify it under the terms of the GNU General Public License as 7 # published by the Free Software Foundation; either version 2 of the 8 # License, or (at your option) any later version. 9 # 10 # This program is distributed in the hope that it will be useful, but 11 # WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 # General Public License for more details. 14 # 15 # You should have received a copy of the GNU General Public License 16 # along with this program; if not, write to the Free Software 17 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 18 # 02110-1301 USA 19 20 # 21 # Generate syscall table for s390/s390x 22 # 23 # Use this on arch/s390/kernel/syscall.s after removing the first few 24 # nonsyscall lines. 25 # 26 # cat syscall.s | mksyscallent_s390 > syscalls31.h 27 # cat syscall.s | mksyscallent_s390 -x > syscalls64.h 28 # 29 30 use Getopt::Std; 31 use integer; 32 getopts('x'); 33 $i = 0; 34 $s390x = 0; 35 $opt_x and $s390x = 1; 36 37 while (<>) { 38 chomp; 39 40 if ($s390x==1) { 41 s/^SYSCALL\([^,]*,//; 42 } else { 43 s/^SYSCALL\(//; 44 } 45 46 s/,.*//; 47 s/^sys_//; 48 s/^s390[x]*_//; 49 s/_glue$//; 50 s/^ni_syscall.*/$i/i; 51 $len = 32 - length(); 52 $tab = $len / 8; 53 $space = $len % 8; 54 print " \"$_\"," ," " x $space , "\t" x $tab, " \/* $i \*\/\n"; 55 $i++; 56 } 57