[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/amd64/linux32/linux32_locore.s

Version: -  FREEBSD  -  FREEBSD7  -  FREEBSD71  -  FREEBSD70  -  FREEBSD6  -  FREEBSD64  -  FREEBSD63  -  FREEBSD62  -  FREEBSD61  -  FREEBSD60  -  FREEBSD5  -  FREEBSD55  -  FREEBSD54  -  FREEBSD53  -  FREEBSD52  -  FREEBSD51  -  FREEBSD50  -  FREEBSD4  -  FREEBSD3  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD5  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  OPENSOLARIS  -  minix-3-1-1  -  TRUSTEDBSD-SEBSD  -  FREEBSD-LIBC  -  FREEBSD7-LIBC  -  FREEBSD6-LIBC  -  GLIBC27 
SearchContext: -  none  -  excerpts  -  bigexcerpts 

  1 /* $FreeBSD: src/sys/amd64/linux32/linux32_locore.s,v 1.3 2008/09/07 16:39:21 kib Exp $ */
  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 
 11 NON_GPROF_ENTRY(linux_sigcode)
 12         call    *LINUX_SIGF_HANDLER(%esp)
 13         leal    LINUX_SIGF_SC(%esp),%ebx        /* linux scp */
 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 */
 20 0:      jmp     0b
 21         ALIGN_TEXT
 22 /* XXXXX */
 23 linux_rt_sigcode:
 24         call    *LINUX_RT_SIGF_HANDLER(%esp)
 25         leal    LINUX_RT_SIGF_UC(%esp),%ebx     /* linux ucp */
 26         leal    LINUX_RT_SIGF_SC(%ebx),%ecx     /* linux sigcontext */
 27         movl    LINUX_SC_ES(%ecx),%es
 28         movl    LINUX_SC_DS(%ecx),%ds
 29         push    %eax                            /* fake ret addr */
 30         movl    $LINUX_SYS_linux_rt_sigreturn,%eax   /* linux_rt_sigreturn() */
 31         int     $0x80                           /* enter kernel with args */
 32 0:      jmp     0b
 33         ALIGN_TEXT
 34 /* XXXXX */
 35 linux_esigcode:
 36 
 37         .data
 38         .globl  linux_szsigcode, linux_sznonrtsigcode
 39 linux_szsigcode:
 40         .long   linux_esigcode-linux_sigcode
 41 linux_sznonrtsigcode:
 42         .long   linux_rt_sigcode-linux_sigcode

Cache object: 077c80d9b73333719609bfe611049431


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.