]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/h8300/vfork.S
update
[l4.git] / l4 / pkg / uclibc / lib / contrib / uclibc / libc / sysdeps / linux / h8300 / vfork.S
1
2 #include <sys/syscall.h>
3
4 #ifndef __NR_vfork
5 #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
6 #endif
7
8 #ifdef __H8300S__
9         .h8300s
10 #else
11         .h8300h
12 #endif
13         .text
14         .align 2
15         .globl  ___vfork
16         .hidden ___vfork
17         .type   ___vfork,@function
18 ___vfork:
19         mov.l   @sp+, er1
20         sub.l   er0,er0
21         mov.b   #__NR_vfork,r0l
22         trapa   #0
23         mov.l   #-4096, er2
24         cmp.l   er0,er2
25         bcs     fix_errno
26         jmp     @er1                     /* don't return,  just jmp directly */
27 fix_errno:
28         neg.l   er0
29 #if !defined(__PIC__)
30         mov.l   er0,@_errno
31 #else
32         mov.l   @(_errno@GOTOFF,er5),er2
33         mov.l   er0,@er2
34 #endif
35         sub.l   er0,er0
36         dec.l   #1,er0
37         jmp     @er1                     /* don't return,  just jmp directly */
38
39 weak_alias(__vfork,vfork)
40 libc_hidden_def(vfork)