#!/usr/bin/perl
($arch) = @ARGV;

while ( defined($line = <STDIN>) ) {
    chomp $line;
    $line =~ s/\s*\#.*$//;	# Strip comments and trailing blanks

    if ( $line =~ /^\s*(\<[^\>]+\>\s+|)([^\(\<\>]+[^\@\:A-Za-z0-9_])([A-Za-z0-9_]+)(|\@[A-Za-z0-9_]+)(|\:\:[A-Za-z0-9_]+)\s*\(([^\:\)]*)\)\s*$/ ) {
	$archs = $1;
	$type  = $2;
	$sname = $3;
	$stype = $4;
	$fname = $5;
	$argv  = $6;

	$doit = 1;
	if ( $archs ne '' ) {
	    die "$0: Internal error"
		unless ( $archs =~ /^\<(|\!)([^\>\!]+)\>/ );
	    $not = $1;
	    $list = $2;

	    $doit = ($not eq '') ? 0 : 1;

	    @list = split(/,/, $list);
	    foreach  $a ( @list ) {
		if ( $a eq $arch ) {
		    $doit = ($not eq '') ? 1 : 0;
		    last;
		}
	    }
	}
	next if ( ! $doit );

	$type =~ s/\s*$//;

	$stype =~ s/^\@/_/;

	if ( $fname eq '' ) {
	    $fname = $sname;
	} else {
	    $fname =~ s/^\:\://;
	}

	@args = split(/\s*\,\s*/, $argv);

	open(OUT, "> syscalls/${fname}.c")
	    or die "$0: Cannot open syscalls/${fname}.c\n";
	print OUT "#include \"syscommon.h\"\n\n";
	
	if ( $fname ne $sname ) {
	    print OUT "#undef __NR_${fname}\n";
	    print OUT "#define __NR_${fname} __NR_${sname}\n\n";
	}

	print OUT "_syscall", scalar(@args), $stype, "(", $type, ',', $fname;
	$i = 0;
	foreach $arg ( @args ) {
	    print OUT ",", $arg, ",a",$i++;
	}
	print OUT ");\n";
	close(OUT);
    }
}
