VirtualBox

source: vbox/trunk/src/VBox/VMM/VMMR0/TRPMR0A.asm@ 1

Last change on this file since 1 was 1, checked in by vboxsync, 55 years ago

import

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1;; @file
2;
3; TRPM - Host Context Ring-0
4
5; Copyright (C) 2006 InnoTek Systemberatung GmbH
6;
7; This file is part of VirtualBox Open Source Edition (OSE), as
8; available from http://www.virtualbox.org. This file is free software;
9; you can redistribute it and/or modify it under the terms of the GNU
10; General Public License as published by the Free Software Foundation,
11; in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
12; distribution. VirtualBox OSE is distributed in the hope that it will
13; be useful, but WITHOUT ANY WARRANTY of any kind.
14;
15; If you received this file as part of a commercial VirtualBox
16; distribution, then only the terms of your commercial VirtualBox
17; license agreement apply instead of the previous paragraph.
18
19;*******************************************************************************
20;* Header Files *
21;*******************************************************************************
22%include "VBox/nasm.mac"
23
24
25BEGINCODE
26
27 align 16
28;;
29; This is the alternative return from VMMR0Entry() used when
30; we need to dispatch an interrupt to the Host (we received it in GC).
31;
32; As seen in TRPMR0SetupInterruptDispatcherFrame() the stack is different
33; than for the normal VMMR0Entry() return.
34;
35; 32-bit:
36; 18 iret frame
37; 14 retf selector (interrupt handler)
38; 10 retf offset (interrupt handler)
39; c es
40; 8 fs
41; 4 ds
42; 0 pVM (esp here)
43;
44; 64-bit:
45; 24 iret frame
46; 18 retf selector (interrupt handler)
47; 10 retf offset (interrupt handler)
48; 8 uOperation
49; 0 pVM
50;
51BEGINPROC trpmR0InterruptDispatcher
52%ifdef __AMD64__
53 lea rsp, [rsp + 10h] ; skip pVM and uOperation
54 db 48h
55 retf
56%else ; !__AMD64__
57 add esp, byte 4 ; skip pVM
58 pop ds
59 pop fs
60 pop es
61 retf
62%endif ; !__AMD64__
63ENDPROC trpmR0InterruptDispatcher
64
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