locore.s (51984) | locore.s (52140) |
---|---|
1/*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * from: @(#)locore.s 7.3 (Berkeley) 5/13/91 | 1/*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * from: @(#)locore.s 7.3 (Berkeley) 5/13/91 |
37 * $FreeBSD: head/sys/i386/i386/locore.s 51984 1999-10-07 12:40:34Z marcel $ | 37 * $FreeBSD: head/sys/i386/i386/locore.s 52140 1999-10-11 20:33:17Z luoqi $ |
38 * 39 * originally from: locore.s, by William F. Jolitz 40 * 41 * Substantially rewritten by David Greenman, Rod Grimes, 42 * Bruce Evans, Wolfgang Solfrank, Poul-Henning Kamp 43 * and many others. 44 */ 45 --- 366 unchanged lines hidden (view full) --- 412 413/* 414 * Signal trampoline, copied to top of user stack 415 */ 416NON_GPROF_ENTRY(sigcode) 417 call SIGF_HANDLER(%esp) /* call signal handler */ 418 lea SIGF_UC(%esp),%eax /* get ucontext_t */ 419 pushl %eax | 38 * 39 * originally from: locore.s, by William F. Jolitz 40 * 41 * Substantially rewritten by David Greenman, Rod Grimes, 42 * Bruce Evans, Wolfgang Solfrank, Poul-Henning Kamp 43 * and many others. 44 */ 45 --- 366 unchanged lines hidden (view full) --- 412 413/* 414 * Signal trampoline, copied to top of user stack 415 */ 416NON_GPROF_ENTRY(sigcode) 417 call SIGF_HANDLER(%esp) /* call signal handler */ 418 lea SIGF_UC(%esp),%eax /* get ucontext_t */ 419 pushl %eax |
420 movl $SYS_osigreturn,%eax | 420 testl $PSL_VM,UC_EFLAGS(%eax) 421 jne 9f 422 movl UC_GS(%eax),%gs /* restore %gs */ 4239: 424 movl $SYS_sigreturn,%eax |
421 pushl %eax /* junk to fake return addr. */ 422 int $0x80 /* enter kernel with args */ | 425 pushl %eax /* junk to fake return addr. */ 426 int $0x80 /* enter kernel with args */ |
423 /* on stack */ 4241: 425 jmp 1b | 4270: jmp 0b 428 |
426 ALIGN_TEXT | 429 ALIGN_TEXT |
430_osigcode: 431 call SIGF_HANDLER(%esp) /* call signal handler */ 432 lea SIGF_SC(%esp),%eax /* get sigcontext */ 433 pushl %eax 434 testl $PSL_VM,SC_PS(%eax) 435 jne 9f 436 movl SC_GS(%eax),%gs /* restore %gs */ 4379: 438 movl $0x01d516,SC_TRAPNO(%eax) /* magic: 0ldSiG */ 439 movl $SYS_sigreturn,%eax 440 pushl %eax /* junk to fake return addr. */ 441 int $0x80 /* enter kernel with args */ 4420: jmp 0b 443 444 ALIGN_TEXT |
|
427_esigcode: 428 429 .data | 445_esigcode: 446 447 .data |
430 .globl _szsigcode | 448 .globl _szsigcode, _oszsigcode |
431_szsigcode: 432 .long _esigcode-_sigcode | 449_szsigcode: 450 .long _esigcode-_sigcode |
451_oszsigcode: 452 .long _esigcode-_osigcode |
|
433 .text 434 435/********************************************************************** 436 * 437 * Recover the bootinfo passed to us from the boot program 438 * 439 */ 440recover_bootinfo: --- 555 unchanged lines hidden --- | 453 .text 454 455/********************************************************************** 456 * 457 * Recover the bootinfo passed to us from the boot program 458 * 459 */ 460recover_bootinfo: --- 555 unchanged lines hidden --- |