Deleted Added
full compact
linux32_locore.s (133819) linux32_locore.s (168035)
1/* $FreeBSD: head/sys/amd64/linux32/linux32_locore.s 133819 2004-08-16 07:55:06Z tjr $ */
1/* $FreeBSD: head/sys/amd64/linux32/linux32_locore.s 168035 2007-03-30 00:06:21Z jkim $ */
2
3#include "linux32_assym.h" /* system definitions */
4#include <machine/asmacros.h> /* miscellaneous asm macros */
5
6#include <amd64/linux32/linux32_syscall.h> /* system call numbers */
7
8.text
9.code32
10
11NON_GPROF_ENTRY(linux_sigcode)
12 call *LINUX_SIGF_HANDLER(%esp)
13 leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */
2
3#include "linux32_assym.h" /* system definitions */
4#include <machine/asmacros.h> /* miscellaneous asm macros */
5
6#include <amd64/linux32/linux32_syscall.h> /* system call numbers */
7
8.text
9.code32
10
11NON_GPROF_ENTRY(linux_sigcode)
12 call *LINUX_SIGF_HANDLER(%esp)
13 leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */
14 movl LINUX_SC_GS(%ebx),%gs
15 movl LINUX_SC_FS(%ebx),%fs
16 movl LINUX_SC_ES(%ebx),%es
17 movl LINUX_SC_DS(%ebx),%ds
18 movl %esp, %ebx /* pass sigframe */
19 push %eax /* fake ret addr */
20 movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */
21 int $0x80 /* enter kernel with args */
220: jmp 0b
23 ALIGN_TEXT
24/* XXXXX */
25linux_rt_sigcode:
26 call *LINUX_RT_SIGF_HANDLER(%esp)
27 leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */
14 movl LINUX_SC_ES(%ebx),%es
15 movl LINUX_SC_DS(%ebx),%ds
16 movl %esp, %ebx /* pass sigframe */
17 push %eax /* fake ret addr */
18 movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */
19 int $0x80 /* enter kernel with args */
200: jmp 0b
21 ALIGN_TEXT
22/* XXXXX */
23linux_rt_sigcode:
24 call *LINUX_RT_SIGF_HANDLER(%esp)
25 leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */
28 movl LINUX_SC_GS(%ebx),%gs
29 movl LINUX_SC_FS(%ebx),%fs
30 movl LINUX_SC_ES(%ebx),%es
31 movl LINUX_SC_DS(%ebx),%ds
32 push %eax /* fake ret addr */
33 movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */
34 int $0x80 /* enter kernel with args */
350: jmp 0b
36 ALIGN_TEXT
37/* XXXXX */
38linux_esigcode:
39
40 .data
41 .globl linux_szsigcode, linux_sznonrtsigcode
42linux_szsigcode:
43 .long linux_esigcode-linux_sigcode
44linux_sznonrtsigcode:
45 .long linux_rt_sigcode-linux_sigcode
26 movl LINUX_SC_ES(%ebx),%es
27 movl LINUX_SC_DS(%ebx),%ds
28 push %eax /* fake ret addr */
29 movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */
30 int $0x80 /* enter kernel with args */
310: jmp 0b
32 ALIGN_TEXT
33/* XXXXX */
34linux_esigcode:
35
36 .data
37 .globl linux_szsigcode, linux_sznonrtsigcode
38linux_szsigcode:
39 .long linux_esigcode-linux_sigcode
40linux_sznonrtsigcode:
41 .long linux_rt_sigcode-linux_sigcode