VirtualBox

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

Last change on this file since 65145 was 60557, checked in by vboxsync, 9 years ago

bs3kit: move real mode version of Bs3TestDoModes out of the default 16-bit code segment.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1; $Id: bs3-cmn-SelRealModeCodeToProtMode.asm 60557 2016-04-19 03:01:35Z vboxsync $
2;; @file
3; BS3Kit - Bs3SelRealModeCodeToProtMode.
4;
5
6;
7; Copyright (C) 2007-2016 Oracle Corporation
8;
9; This file is part of VirtualBox Open Source Edition (OSE), as
10; available from http://www.virtualbox.org. This file is free software;
11; you can redistribute it and/or modify it under the terms of the GNU
12; General Public License (GPL) as published by the Free Software
13; Foundation, in version 2 as it comes in the "COPYING" file of the
14; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16;
17; The contents of this file may alternatively be used under the terms
18; of the Common Development and Distribution License Version 1.0
19; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20; VirtualBox OSE distribution, in which case the provisions of the
21; CDDL are applicable instead of those of the GPL.
22;
23; You may elect to license modified versions of this file under the
24; terms and conditions of either the GPL or the CDDL or both.
25;
26
27%include "bs3kit-template-header.mac"
28
29;
30; Make sure we can get at all the segments.
31;
32BS3_BEGIN_TEXT16
33BS3_BEGIN_RMTEXT16
34BS3_BEGIN_X0TEXT16
35BS3_BEGIN_X1TEXT16
36TMPL_BEGIN_TEXT
37
38
39;;
40; @cproto BS3_CMN_PROTO(uint16_t, Bs3SelRealModeCodeToProtMode,(uint16_t uRealSel), false);
41; @uses ax (return register)
42;
43BS3_PROC_BEGIN_CMN Bs3SelRealModeCodeToProtMode, BS3_PBC_NEAR
44 BS3_CALL_CONV_PROLOG 1
45 push xBP
46 mov xBP, xSP
47
48 mov ax, [xBP + xCB + cbCurRetAddr]
49 cmp ax, CGROUP16
50 je .bs3text16
51 cmp ax, BS3GROUPRMTEXT16
52 je .bs3rmtext16
53 cmp ax, BS3GROUPX0TEXT16
54 je .bs3x0text16
55 cmp ax, BS3GROUPX1TEXT16
56 je .bs3x1text16
57
58 extern BS3_CMN_NM(Bs3Panic)
59 call BS3_CMN_NM(Bs3Panic)
60 jmp .return
61
62.bs3x1text16:
63 mov ax, BS3_SEL_X1TEXT16_CS
64 jmp .return
65.bs3x0text16:
66 mov ax, BS3_SEL_X0TEXT16_CS
67 jmp .return
68.bs3rmtext16:
69 mov ax, BS3_SEL_RMTEXT16_CS
70 jmp .return
71.bs3text16:
72 mov ax, BS3_SEL_R0_CS16
73.return:
74 pop xBP
75 BS3_CALL_CONV_EPILOG 1
76 BS3_HYBRID_RET
77BS3_PROC_END_CMN Bs3SelRealModeCodeToProtMode
78
79;
80; We may be using the near code in some critical code paths, so don't
81; penalize it.
82;
83BS3_CMN_FAR_STUB Bs3SelRealModeCodeToProtMode, 2
84
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