sysstub.ph
来自「klibc精简化的c程序库」· PH 代码 · 共 64 行
PH
64 行
# -*- perl -*-## arch/s390/sysstub.ph## Script to generate system call stubs#sub make_sysstub($$$$$@) { my($outputdir, $fname, $type, $sname, $stype, @args) = @_; my($t); my($r, $llregs) = (0, ($typesize{'void *'} == 8) ? 1 : 2); foreach $t (@args) { $r += ($typesize{$t} == 8) ? $llregs : 1; } open(OUT, '>', "${outputdir}/${fname}.S"); print OUT <<EOF;#include <asm/unistd.h> .type ${fname},\@function .globl ${fname}${fname}:.if ${r} > 6.print "System call with more than six parameters not supported yet.".err.endif.if ${r} == 6#ifndef __s390x__ st %r7,56(%r15) l %r7,96(%r15)#else stg %r7,80(%r15) lg %r7,160(%r15)#endif.endif.if __NR_${sname} < 256 svc __NR_${sname}.else la %r1,__NR_${sname} svc 0.endif.if ${r} == 6#ifndef __s390x__ l %r7,56(%r15)#else lg %r7,160(%r15)#endif.endif#ifndef __s390x__ bras %r3,1f .long __syscall_common1: l %r3,0(%r3) br %r3#else brasl %r3,__syscall_common#endif .size ${fname},.-${fname}EOF close(OUT);}1;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?