VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SelRealModeCodeToProtMode.asm@ 97624

Last change on this file since 97624 was 96407, checked in by vboxsync, 2 years ago

scm copyright and license note update

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1; $Id: bs3-cmn-SelRealModeCodeToProtMode.asm 96407 2022-08-22 17:43:14Z vboxsync $
2;; @file
3; BS3Kit - Bs3SelRealModeCodeToProtMode.
4;
5
6;
7; Copyright (C) 2007-2022 Oracle and/or its affiliates.
8;
9; This file is part of VirtualBox base platform packages, as
10; available from https://www.virtualbox.org.
11;
12; This program is free software; you can redistribute it and/or
13; modify it under the terms of the GNU General Public License
14; as published by the Free Software Foundation, in version 3 of the
15; License.
16;
17; This program is distributed in the hope that it will be useful, but
18; WITHOUT ANY WARRANTY; without even the implied warranty of
19; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20; General Public License for more details.
21;
22; You should have received a copy of the GNU General Public License
23; along with this program; if not, see <https://www.gnu.org/licenses>.
24;
25; The contents of this file may alternatively be used under the terms
26; of the Common Development and Distribution License Version 1.0
27; (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
28; in the VirtualBox distribution, in which case the provisions of the
29; CDDL are applicable instead of those of the GPL.
30;
31; You may elect to license modified versions of this file under the
32; terms and conditions of either the GPL or the CDDL or both.
33;
34; SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
35;
36
37%include "bs3kit-template-header.mac"
38
39;
40; Make sure we can get at all the segments.
41;
42BS3_BEGIN_TEXT16
43BS3_BEGIN_RMTEXT16
44BS3_BEGIN_X0TEXT16
45BS3_BEGIN_X1TEXT16
46TMPL_BEGIN_TEXT
47
48
49;;
50; @cproto BS3_CMN_PROTO(uint16_t, Bs3SelRealModeCodeToProtMode,(uint16_t uRealSel), false);
51; @uses ax (return register)
52;
53BS3_PROC_BEGIN_CMN Bs3SelRealModeCodeToProtMode, BS3_PBC_NEAR
54 BS3_CALL_CONV_PROLOG 1
55 push xBP
56 mov xBP, xSP
57
58 mov ax, [xBP + xCB + cbCurRetAddr]
59 cmp ax, CGROUP16
60 je .bs3text16
61 cmp ax, BS3GROUPRMTEXT16
62 je .bs3rmtext16
63 cmp ax, BS3GROUPX0TEXT16
64 je .bs3x0text16
65 cmp ax, BS3GROUPX1TEXT16
66 je .bs3x1text16
67
68 extern BS3_CMN_NM(Bs3Panic)
69 call BS3_CMN_NM(Bs3Panic)
70 jmp .return
71
72.bs3x1text16:
73 mov ax, BS3_SEL_X1TEXT16_CS
74 jmp .return
75.bs3x0text16:
76 mov ax, BS3_SEL_X0TEXT16_CS
77 jmp .return
78.bs3rmtext16:
79 mov ax, BS3_SEL_RMTEXT16_CS
80 jmp .return
81.bs3text16:
82 mov ax, BS3_SEL_R0_CS16
83.return:
84 pop xBP
85 BS3_CALL_CONV_EPILOG 1
86 BS3_HYBRID_RET
87BS3_PROC_END_CMN Bs3SelRealModeCodeToProtMode
88
89;
90; We may be using the near code in some critical code paths, so don't
91; penalize it.
92;
93BS3_CMN_FAR_STUB Bs3SelRealModeCodeToProtMode, 2
94
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette