VirtualBox

source: vbox/trunk/src/VBox/Runtime/r0drv/os2/RTR0AssertPanicSystem-r0drv-os2.asm

Last change on this file was 98103, checked in by vboxsync, 17 months ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 4.6 KB
Line 
1; $Id: RTR0AssertPanicSystem-r0drv-os2.asm 98103 2023-01-17 14:15:46Z vboxsync $
2;; @file
3; IPRT - RTR0AssertPanicSystem, Ring-0 Driver, OS/2.
4;
5
6;
7; Contributed by knut st. osmundsen.
8;
9; Copyright (C) 2007-2023 Oracle and/or its affiliates.
10;
11; This file is part of VirtualBox base platform packages, as
12; available from https://www.virtualbox.org.
13;
14; This program is free software; you can redistribute it and/or
15; modify it under the terms of the GNU General Public License
16; as published by the Free Software Foundation, in version 3 of the
17; License.
18;
19; This program is distributed in the hope that it will be useful, but
20; WITHOUT ANY WARRANTY; without even the implied warranty of
21; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22; General Public License for more details.
23;
24; You should have received a copy of the GNU General Public License
25; along with this program; if not, see <https://www.gnu.org/licenses>.
26;
27; The contents of this file may alternatively be used under the terms
28; of the Common Development and Distribution License Version 1.0
29; (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
30; in the VirtualBox distribution, in which case the provisions of the
31; CDDL are applicable instead of those of the GPL.
32;
33; You may elect to license modified versions of this file under the
34; terms and conditions of either the GPL or the CDDL or both.
35;
36; SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
37; --------------------------------------------------------------------
38;
39; This code is based on:
40;
41; Copyright (c) 1999-2007 knut st. osmundsen <bird-src-spam@anduin.net>
42;
43; Permission is hereby granted, free of charge, to any person
44; obtaining a copy of this software and associated documentation
45; files (the "Software"), to deal in the Software without
46; restriction, including without limitation the rights to use,
47; copy, modify, merge, publish, distribute, sublicense, and/or sell
48; copies of the Software, and to permit persons to whom the
49; Software is furnished to do so, subject to the following
50; conditions:
51;
52; The above copyright notice and this permission notice shall be
53; included in all copies or substantial portions of the Software.
54;
55; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
56; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
57; OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
58; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
59; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
60; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
61; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
62; OTHER DEALINGS IN THE SOFTWARE.
63;
64
65
66;*******************************************************************************
67;* Header Files *
68;*******************************************************************************
69%define RT_INCL_16BIT_SEGMENTS
70%include "iprt/asmdefs.mac"
71
72
73;*******************************************************************************
74;* Defined Constants And Macros *
75;*******************************************************************************
76%define DevHlp_InternalError 02bh
77
78
79;*******************************************************************************
80;* External Symbols *
81;*******************************************************************************
82extern KernThunkStackTo16
83extern KernThunkStackTo32
84extern NAME(g_szRTAssertMsg)
85extern NAME(g_cchRTAssertMsg)
86extern NAME(g_fpfnDevHlp)
87
88
89BEGINCODE
90
91BEGINPROC_EXPORTED RTR0AssertPanicSystem
92 push ebp
93 mov ebp, esp
94 push esi
95 push edi
96 push ds
97
98 ;
99 ; Try detect debug kernel... later one day.
100 ;
101
102
103 ;
104 ; Raise an IPE.
105 ;
106 call KernThunkStackTo16
107 ;jmp far dword NAME(RTR0AssertPanicSystem_16) wrt CODE16
108 db 066h
109 db 0eah
110 dw NAME(RTR0AssertPanicSystem_16) wrt CODE16
111 dw CODE16
112BEGINCODE16
113GLOBALNAME RTR0AssertPanicSystem_16
114 ; mov ax, seg NAME(g_szRTAssertMsg) - makes wlink crash.
115 mov ax, DATA16
116 mov ds, ax
117 mov si, NAME(g_szRTAssertMsg)
118 mov di, [NAME(g_cchRTAssertMsg)]
119 mov dl, DevHlp_InternalError
120 call far [NAME(g_fpfnDevHlp)]
121
122 ; Doesn't normally return, but in case it does...
123 ;jmp far dword NAME(RTR0AssertPanicSystem_32)
124 db 066h
125 db 0eah
126 dd NAME(RTR0AssertPanicSystem_32)
127 dw TEXT32 wrt FLAT
128BEGINCODE32:
129GLOBALNAME RTR0AssertPanicSystem_32
130 call KernThunkStackTo32
131 mov eax, 1
132 pop ds
133 pop edi
134 pop esi
135 leave
136 ret
137ENDPROC RTR0AssertPanicSystem
138
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use