#!/usr/bin/perl # This file is part of ltrace. # Copyright (C) 2006 Heiko Carstens, IBM Corporation # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA # 02110-1301 USA # # Generate syscall table for s390/s390x # # Use this on arch/s390/kernel/syscall.s after removing the first few # nonsyscall lines. # # cat syscall.s | mksyscallent_s390 > syscalls31.h # cat syscall.s | mksyscallent_s390 -x > syscalls64.h # use Getopt::Std; use integer; getopts('x'); $i = 0; $s390x = 0; $opt_x and $s390x = 1; while (<>) { chomp; if ($s390x==1) { s/^SYSCALL\([^,]*,//; } else { s/^SYSCALL\(//; } s/,.*//; s/^sys_//; s/^s390[x]*_//; s/_glue$//; s/^ni_syscall.*/$i/i; $len = 32 - length(); $tab = $len / 8; $space = $len % 8; print " \"$_\"," ," " x $space , "\t" x $tab, " \/* $i \*\/\n"; $i++; }