Home | History | Annotate | Download | only in linux-gnu
      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