12345678910111213141516171819202122232425262728293031323334353637383940 |
- #include <sys/syscall.h>
- #ifndef __NR_vfork
- #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
- #endif
- #ifdef __H8300S__
- .h8300s
- #else
- .h8300h
- #endif
- .text
- .align 2
- .globl ___vfork
- .hidden ___vfork
- .type ___vfork,@function
- ___vfork:
- mov.l @sp+, er1
- sub.l er0,er0
- mov.b #__NR_vfork,r0l
- trapa #0
- mov.l #-4096, er2
- cmp.l er0,er2
- bcs fix_errno
- jmp @er1 /* don't return, just jmp directly */
- fix_errno:
- neg.l er0
- #if !defined(__PIC__)
- mov.l er0,@_errno
- #else
- mov.l @(_errno@GOTOFF,er5),er2
- mov.l er0,@er2
- #endif
- sub.l er0,er0
- dec.l #1,er0
- jmp @er1 /* don't return, just jmp directly */
- weak_alias(__vfork,vfork)
- libc_hidden_def(vfork)
|