]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Universal/Acpi/S3Resume2Pei/X64/AsmFuncs.S
Set correct DS/ES/FS/GS/SS segment selectors after GDT loaded.
[mirror_edk2.git] / UefiCpuPkg / Universal / Acpi / S3Resume2Pei / X64 / AsmFuncs.S
diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/X64/AsmFuncs.S b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/X64/AsmFuncs.S
new file mode 100644 (file)
index 0000000..2ced09f
--- /dev/null
@@ -0,0 +1,37 @@
+#------------------------------------------------------------------------------\r
+#*\r
+#*   Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>\r
+#*   This program and the accompanying materials\r
+#*   are licensed and made available under the terms and conditions of the BSD License\r
+#*   which accompanies this distribution.  The full text of the license may be found at\r
+#*   http://opensource.org/licenses/bsd-license.php\r
+#*\r
+#*   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+#*   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#*\r
+#*    AsmFuncs.S\r
+#*\r
+#*   Abstract:\r
+#*\r
+#*     Assembly function to set segment selectors.\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+.text\r
+\r
+#------------------------------------------------------------------------------\r
+# \r
+# VOID\r
+# EFIAPI\r
+# AsmSetDataSelectors (\r
+#   IN UINT16   SelectorValue\r
+#   );\r
+#------------------------------------------------------------------------------\r
+ASM_GLOBAL ASM_PFX(AsmSetDataSelectors)\r
+ASM_PFX(AsmSetDataSelectors):\r
+    movw    %cx, %ss\r
+    movw    %cx, %ds\r
+    movw    %cx, %es\r
+    movw    %cx, %fs\r
+    movw    %cx, %gs \r
+    ret\r