Magellan Linux

Annotation of /trunk/mkinitrd-magellan/klibc/usr/klibc/arch/arm/vfork.S

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1297 - (hide annotations) (download)
Fri May 27 15:12:11 2011 UTC (12 years, 11 months ago) by niro
File size: 723 byte(s)
-updated to klibc-1.5.22 with mntproc definitions patch included
1 niro 532 /*
2     * arch/arm/vfork.S
3     *
4     * vfork - nasty system call which must not use the stack.
5     */
6    
7 niro 1297 #include <klibc/asmmacros.h>
8 niro 532 #include <asm/unistd.h>
9    
10     .type vfork,#function
11     .globl vfork
12     #ifndef __thumb__
13    
14     .balign 4
15     vfork:
16     #ifdef __ARM_EABI__
17     mov r3, r7
18     mov r7, # __NR_vfork
19     swi 0
20     mov r7, r3
21     #else
22     swi # __NR_vfork
23     #endif
24     cmn r0, #4096
25     rsbcs r2, r0, #0
26     ldrcs r3, 1f
27     mvncs r0, #0
28     strcs r2, [r3]
29 niro 1297 BX(lr)
30 niro 532
31     .balign 4
32     1:
33     .word errno
34    
35     #else
36    
37     .thumb_func
38     .balign 2
39     vfork:
40     mov r3, r7
41     mov r7, # __NR_vfork
42     swi 0
43     mov r7, r3
44     ldr r1, 2f
45     cmp r0, r1
46     bcc 1f
47     ldr r1, 3f
48     neg r2, r0
49     mov r0, #1
50     str r2, [r1]
51     neg r0, r0
52     1:
53 niro 1297 BX(lr)
54 niro 532
55     .balign 4
56     2:
57     .word -4095
58     3:
59     .word errno
60    
61     #endif