| # -*- perl -*- |
| # |
| # arch/ppc64/sysstub.ph |
| # |
| # Script to generate system call stubs |
| # |
| |
| sub make_sysstub($$$$$@) { |
| my($outputdir, $fname, $type, $sname, $stype, @args) = @_; |
| |
| open(OUT, '>', "${outputdir}/${fname}.S"); |
| print OUT <<EOF; |
| #include <asm/unistd.h> |
| |
| .text |
| .balign 4 |
| .globl ${fname} |
| #if _CALL_ELF == 2 |
| .type ${fname},\@function |
| ${fname}: |
| #else |
| .section ".opd","aw" |
| .balign 8 |
| ${fname}: |
| .quad .${fname}, .TOC.\@tocbase, 0 |
| .previous |
| .type .${fname},\@function |
| .globl .${fname} |
| .${fname}: |
| #endif |
| li 0, __NR_${sname} |
| sc |
| bnslr |
| b __syscall_error |
| #if _CALL_ELF == 2 |
| .size ${fname},.-${fname} |
| #else |
| .size ${fname},.-.${fname} |
| #endif |
| EOF |
| close(OUT); |
| } |
| |
| 1; |