vm86bios.s (58764) | vm86bios.s (65557) |
---|---|
1/*- 2 * Copyright (c) 1998 Jonathan Lemon 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 1998 Jonathan Lemon 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/i386/i386/vm86bios.s 58764 2000-03-29 06:15:43Z dillon $ | 26 * $FreeBSD: head/sys/i386/i386/vm86bios.s 65557 2000-09-07 01:33:02Z jasone $ |
27 */ 28 29#include <machine/asmacros.h> /* miscellaneous asm macros */ 30#include <machine/trap.h> 31 32#include "assym.s" 33 34#define SCR_NEWPTD PCB_ESI /* readability macros */ --- 22 unchanged lines hidden (view full) --- 57 movl 4(%esp),%eax 58 movl %eax,SCR_ARGFRAME(%edx) /* save argument pointer */ 59 pushl %ebx 60 pushl %ebp 61 pushl %esi 62 pushl %edi 63 pushl %gs 64 | 27 */ 28 29#include <machine/asmacros.h> /* miscellaneous asm macros */ 30#include <machine/trap.h> 31 32#include "assym.s" 33 34#define SCR_NEWPTD PCB_ESI /* readability macros */ --- 22 unchanged lines hidden (view full) --- 57 movl 4(%esp),%eax 58 movl %eax,SCR_ARGFRAME(%edx) /* save argument pointer */ 59 pushl %ebx 60 pushl %ebp 61 pushl %esi 62 pushl %edi 63 pushl %gs 64 |
65#ifdef SMP | |
66 pushl %edx | 65 pushl %edx |
67 MP_LOCK /* Get global lock */ | 66 call __mtx_enter_giant_def /* Get global lock */ |
68 popl %edx | 67 popl %edx |
69#endif | |
70 71#if NNPX > 0 72 movl _curproc,%ecx 73 cmpl %ecx,_npxproc /* do we need to save fp? */ 74 jne 1f 75 testl %ecx,%ecx 76 je 1f /* no curproc/npxproc */ 77 pushl %edx --- 52 unchanged lines hidden (view full) --- 130 131 call _vm86_prepcall /* finish setup */ 132 133 movl $1,_in_vm86call /* set flag for trap() */ 134 135 /* 136 * Return via _doreti 137 */ | 68 69#if NNPX > 0 70 movl _curproc,%ecx 71 cmpl %ecx,_npxproc /* do we need to save fp? */ 72 jne 1f 73 testl %ecx,%ecx 74 je 1f /* no curproc/npxproc */ 75 pushl %edx --- 52 unchanged lines hidden (view full) --- 128 129 call _vm86_prepcall /* finish setup */ 130 131 movl $1,_in_vm86call /* set flag for trap() */ 132 133 /* 134 * Return via _doreti 135 */ |
138#ifdef SMP 139 pushl _cpl /* cpl to restore */ 140#else 141 pushl _cpl /* cpl to restore */ 142#endif | |
143 subl $4,%esp /* dummy unit */ 144 incb _intr_nesting_level | 136 subl $4,%esp /* dummy unit */ 137 incb _intr_nesting_level |
138 call __mtx_exit_giant_def |
|
145 MEXITCOUNT 146 jmp _doreti 147 148 149/* 150 * vm86_biosret(struct trapframe_vm86 *vm86) 151 */ 152ENTRY(vm86_biosret) --- 36 unchanged lines hidden --- | 139 MEXITCOUNT 140 jmp _doreti 141 142 143/* 144 * vm86_biosret(struct trapframe_vm86 *vm86) 145 */ 146ENTRY(vm86_biosret) --- 36 unchanged lines hidden --- |