This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / arch / x86_64 / ia32 / vsyscall-int80.S
1 /*
2  * Code for the vsyscall page.  This version uses the old int $0x80 method.
3  *
4  * NOTE:
5  * 1) __kernel_vsyscall _must_ be first in this page.
6  * 2) there are alignment constraints on this stub, see vsyscall-sigreturn.S
7  *    for details.
8  */
9 #include <asm/ia32_unistd.h>
10 #include <asm/asm-offsets.h>
11
12         .code32
13         .text
14         .section .text.vsyscall,"ax"
15         .globl __kernel_vsyscall
16         .type __kernel_vsyscall,@function
17 __kernel_vsyscall:
18 .LSTART_vsyscall:
19         int $0x80
20         ret
21 .LEND_vsyscall:
22         .size __kernel_vsyscall,.-.LSTART_vsyscall
23         .previous
24
25         .section .eh_frame,"a",@progbits
26 .LSTARTFRAME:
27         .long .LENDCIE-.LSTARTCIE
28 .LSTARTCIE:
29         .long 0                 /* CIE ID */
30         .byte 1                 /* Version number */
31         .string "zR"            /* NUL-terminated augmentation string */
32         .uleb128 1              /* Code alignment factor */
33         .sleb128 -4             /* Data alignment factor */
34         .byte 8                 /* Return address register column */
35         .uleb128 1              /* Augmentation value length */
36         .byte 0x1b              /* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */
37         .byte 0x0c              /* DW_CFA_def_cfa */
38         .uleb128 4
39         .uleb128 4
40         .byte 0x88              /* DW_CFA_offset, column 0x8 */
41         .uleb128 1
42         .align 4
43 .LENDCIE:
44
45         .long .LENDFDE1-.LSTARTFDE1     /* Length FDE */
46 .LSTARTFDE1:
47         .long .LSTARTFDE1-.LSTARTFRAME  /* CIE pointer */
48         .long .LSTART_vsyscall-.        /* PC-relative start address */
49         .long .LEND_vsyscall-.LSTART_vsyscall
50         .uleb128 0                      /* Augmentation length */
51         .align 4
52 .LENDFDE1:
53                 
54 /*
55  * Get the common code for the sigreturn entry points.
56  */
57 #define SYSCALL_ENTER_KERNEL    int $0x80
58 #include "vsyscall-sigreturn.S"