-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 79844 b: refs/heads/master c: 00f8b1b h: refs/heads/master v: v3
- Loading branch information
Roland McGrath
authored and
Ingo Molnar
committed
Jan 30, 2008
1 parent
e2e9751
commit 4668509
Showing
4 changed files
with
77 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 36197c92a20c142fc2a068e0366053d770fa0096 | ||
refs/heads/master: 00f8b1bc0e44ba94fb33e1fbd8ac82841d7cc570 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/* | ||
* Code for the vsyscall page. This version uses the syscall instruction. | ||
*/ | ||
|
||
#include <asm/asm-offsets.h> | ||
#include <asm/segment.h> | ||
|
||
.text | ||
.globl __kernel_vsyscall | ||
.type __kernel_vsyscall,@function | ||
__kernel_vsyscall: | ||
.LSTART_vsyscall: | ||
push %ebp | ||
.Lpush_ebp: | ||
movl %ecx, %ebp | ||
syscall | ||
movl $__USER32_DS, %ecx | ||
movl %ecx, %ss | ||
movl %ebp, %ecx | ||
popl %ebp | ||
.Lpop_ebp: | ||
ret | ||
.LEND_vsyscall: | ||
.size __kernel_vsyscall,.-.LSTART_vsyscall | ||
|
||
.section .eh_frame,"a",@progbits | ||
.LSTARTFRAME: | ||
.long .LENDCIE-.LSTARTCIE | ||
.LSTARTCIE: | ||
.long 0 /* CIE ID */ | ||
.byte 1 /* Version number */ | ||
.string "zR" /* NUL-terminated augmentation string */ | ||
.uleb128 1 /* Code alignment factor */ | ||
.sleb128 -4 /* Data alignment factor */ | ||
.byte 8 /* Return address register column */ | ||
.uleb128 1 /* Augmentation value length */ | ||
.byte 0x1b /* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */ | ||
.byte 0x0c /* DW_CFA_def_cfa */ | ||
.uleb128 4 | ||
.uleb128 4 | ||
.byte 0x88 /* DW_CFA_offset, column 0x8 */ | ||
.uleb128 1 | ||
.align 4 | ||
.LENDCIE: | ||
|
||
.long .LENDFDE1-.LSTARTFDE1 /* Length FDE */ | ||
.LSTARTFDE1: | ||
.long .LSTARTFDE1-.LSTARTFRAME /* CIE pointer */ | ||
.long .LSTART_vsyscall-. /* PC-relative start address */ | ||
.long .LEND_vsyscall-.LSTART_vsyscall | ||
.uleb128 0 /* Augmentation length */ | ||
/* What follows are the instructions for the table generation. | ||
We have to record all changes of the stack pointer. */ | ||
.byte 0x40 + .Lpush_ebp-.LSTART_vsyscall /* DW_CFA_advance_loc */ | ||
.byte 0x0e /* DW_CFA_def_cfa_offset */ | ||
.uleb128 8 | ||
.byte 0x85, 0x02 /* DW_CFA_offset %ebp -8 */ | ||
.byte 0x40 + .Lpop_ebp-.Lpush_ebp /* DW_CFA_advance_loc */ | ||
.byte 0xc5 /* DW_CFA_restore %ebp */ | ||
.byte 0x0e /* DW_CFA_def_cfa_offset */ | ||
.uleb128 4 | ||
.align 4 | ||
.LENDFDE1: | ||
|
||
/* | ||
* Get the common code for the sigreturn entry points. | ||
*/ | ||
#define SYSCALL_ENTER_KERNEL syscall | ||
#include "sigreturn.S" |