# -*- perl -*-
#
# arch/ppc64/sysstub.ph
#
# Script to generate system call stubs
#

sub make_sysstub($$$$@) {
    my($fname, $type, $sname, $stype, @args) = @_;

    open(OUT, '>', "syscalls/${fname}.S");
    print OUT "#include <asm/unistd.h>\n";
    print OUT "\n";
    print OUT "\t.globl ${fname}\n";
    print OUT "\t.section \".opd\",\"aw\"\n";
    print OUT "\t.align 3\n";
    print OUT "${fname}:\n";
    print OUT "\t.quad .${fname},.TOC.\@tocbase,0\n";
    print OUT "\t.size ${fname},24\n";
    print OUT "\t.text\n";
    print OUT "\t.type .${fname},\@function\n";
    print OUT "\t.globl .${fname}\n";
    print OUT ".${fname}:\n";
    print OUT "\tli 0,__NR_${sname}\n";
    print OUT "\tsc\n";
    print OUT "\tbnslr\n";
    print OUT "\tb __syscall_error\n";
    print OUT "\t.size .${fname},.-.${fname}\n";
    close(OUT);
}

1;
