Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/arch/i386/varsyscall.S
Parent Directory | Revision Log
Revision 532 -
(show annotations)
(download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 8 months ago) by niro
File size: 621 byte(s)
Sat Sep 1 22:45:15 2007 UTC (16 years, 8 months ago) by niro
File size: 621 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd
1 | /* |
2 | * arch/i386/varsyscall.S |
3 | * |
4 | * Common tail-handling code for varadic system calls (which always |
5 | * use the cdecl convention.) |
6 | * |
7 | * The arguments are on the stack; the system call number in %eax. |
8 | */ |
9 | |
10 | #ifdef _REGPARM |
11 | |
12 | #define ARG(n) (4*n+20)(%esp) |
13 | |
14 | .text |
15 | .align 4 |
16 | .globl __syscall_varadic |
17 | .type __syscall_varadic,@function |
18 | __syscall_varadic: |
19 | popl %eax |
20 | pushl %ebx |
21 | pushl %esi |
22 | pushl %edi |
23 | pushl %ebp |
24 | |
25 | movl ARG(0),%ebx # Syscall arguments |
26 | movl ARG(1),%ecx |
27 | movl ARG(2),%edx |
28 | movl ARG(3),%esi |
29 | movl ARG(4),%edi |
30 | movl ARG(5),%ebp |
31 | |
32 | jmp __syscall_common_tail |
33 | |
34 | .size __syscall_varadic,.-__syscall_varadic |
35 | |
36 | #endif |