📄 sysstub.ph
字号:
# -*- perl -*-## arch/arm/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 "#include <asm/unistd.h>\n"; print OUT "#include <klibc/asmmacros.h>\n"; print OUT " .text\n"; print OUT " .type ${fname}, #function\n"; print OUT " .globl ${fname}\n"; print OUT "#ifndef __thumb__\n"; print OUT "#ifndef __ARM_EABI__\n"; # ARM version first print OUT " .balign 4\n"; print OUT "${fname}:\n"; print OUT " stmfd sp!,{r4,r5,lr}\n"; print OUT " ldr r4,[sp,#12]\n"; print OUT " ldr r5,[sp,#16]\n"; print OUT " swi # __NR_${sname}\n"; print OUT " b __syscall_common\n"; print OUT "#else /* __ARM_EABI__ */\n"; # ARM EABI version print out " .balign 4\n"; print OUT "${fname}:\n"; print OUT " stmfd sp!,{r4,r5,r7,lr}\n"; print OUT " bl __syscall_common\n"; print OUT " .word __NR_${sname}\n"; print OUT "#endif /* __ARM_EABI__ */\n"; print OUT "#else /* __thumb__ */\n"; # Thumb version print OUT " .balign 8\n"; print OUT " .thumb_func\n"; print OUT "${fname}:\n"; print OUT " push {r4,r5,r7,lr}\n"; print OUT " bl __syscall_common\n"; print OUT " .short __NR_${sname}\n"; print OUT "#endif /* __thumb__*/\n"; print OUT " .size __syscall${i},.-__syscall${i}\n";}1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -