summaryrefslogtreecommitdiff
path: root/MdePkg/Library/BaseLib/X64/Thunk16.asm
diff options
context:
space:
mode:
authorbxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524>2006-07-21 08:47:38 +0000
committerbxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524>2006-07-21 08:47:38 +0000
commit3f566587aea64bb986866c7f69a6b82891bf59db (patch)
tree406fa713c2baaa46f9c357f49bcef7d710e7f044 /MdePkg/Library/BaseLib/X64/Thunk16.asm
parent31a9215c3223d3818d1709f39d06774e18df103f (diff)
downloadedk2-platforms-3f566587aea64bb986866c7f69a6b82891bf59db.tar.xz
1. Updated function headers in all assembly files.
2. Split x86LowLevel.c into a bunch of C files to make images linked with BaseLib smaller. 3. Fixed a few minor bugs. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1066 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BaseLib/X64/Thunk16.asm')
-rw-r--r--MdePkg/Library/BaseLib/X64/Thunk16.asm21
1 files changed, 16 insertions, 5 deletions
diff --git a/MdePkg/Library/BaseLib/X64/Thunk16.asm b/MdePkg/Library/BaseLib/X64/Thunk16.asm
index b120434efb..2c35c72a57 100644
--- a/MdePkg/Library/BaseLib/X64/Thunk16.asm
+++ b/MdePkg/Library/BaseLib/X64/Thunk16.asm
@@ -61,6 +61,10 @@ SavedGdt LABEL FWORD
DW ?
DQ ?
+;------------------------------------------------------------------------------
+; _BackFromUserCode() takes control in real mode after 'retf' has been executed
+; by user code. It will be shadowed to somewhere in memory below 1MB.
+;------------------------------------------------------------------------------
_BackFromUserCode PROC
DB 16h ; push ss
DB 0eh ; push cs
@@ -125,6 +129,10 @@ _16Gdtr LABEL FWORD
_16GdtrBase DQ _NullSegDesc
_16Idtr FWORD (1 SHL 10) - 1
+;------------------------------------------------------------------------------
+; _ToUserCode() takes control in real mode before passing control to user code.
+; It will be shadowed to somewhere in memory below 1MB.
+;------------------------------------------------------------------------------
_ToUserCode PROC
mov edi, ss
mov ss, edx ; set new segment selectors
@@ -184,11 +192,14 @@ _16DsDesc LABEL QWORD
DB 0
GdtEnd LABEL QWORD
-;
-; @param RegSet Pointer to a IA32_DWORD_REGS structure
-; @param Transition Pointer to the transition code
-; @return The address of the 16-bit stack after returning from user code
-;
+;------------------------------------------------------------------------------
+; IA32_REGISTER_SET *
+; EFIAPI
+; InternalAsmThunk16 (
+; IN IA32_REGISTER_SET *RegisterSet,
+; IN OUT VOID *Transition
+; );
+;------------------------------------------------------------------------------
InternalAsmThunk16 PROC USES rbp rbx rsi rdi
mov r10d, ds
mov r11d, es