VirtualBox

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

Last change on this file since 382 was 19, checked in by vboxsync, 18 years ago

nasm.mac -> asmdefs.mac + header adjustments.

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