X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseLib%2FIa32%2FDisablePaging32.S;fp=MdePkg%2FLibrary%2FBaseLib%2FIa32%2FDisablePaging32.S;h=f950b058b330d2f3eabb154b9e17dcf839234a8c;hb=e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8;hp=0000000000000000000000000000000000000000;hpb=e053747a04ad7b8d71c7593b93e1575ba0057a91;p=mirror_edk2.git diff --git a/MdePkg/Library/BaseLib/Ia32/DisablePaging32.S b/MdePkg/Library/BaseLib/Ia32/DisablePaging32.S new file mode 100644 index 0000000000..f950b058b3 --- /dev/null +++ b/MdePkg/Library/BaseLib/Ia32/DisablePaging32.S @@ -0,0 +1,57 @@ +// +// Include common header file for this module. +// +#include "CommonHeader.h" + +#------------------------------------------------------------------------------ +# +# Copyright (c) 2006, Intel Corporation +# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# Module Name: +# +# DisablePaging32.Asm +# +# Abstract: +# +# InternalX86DisablePaging32 function +# +# Notes: +# +#------------------------------------------------------------------------------ + +.globl ASM_PFX(InternalX86DisablePaging32) + +#------------------------------------------------------------------------------ +# VOID +# EFIAPI +# InternalX86DisablePaging32 ( +# IN SWITCH_STACK_ENTRY_POINT EntryPoint, +# IN VOID *Context1, OPTIONAL +# IN VOID *Context2, OPTIONAL +# IN VOID *NewStack +# ); +#------------------------------------------------------------------------------ +ASM_PFX(InternalX86DisablePaging32): + movl 4(%esp), %ebx + movl 8(%esp), %ecx + movl 12(%esp), %edx + pushfl + pop %edi + cli + movl %cr0, %eax + btrl $31, %eax + movl 16(%esp), %esp + movl %eax, %cr0 + push %edi + popfl + push %edx + push %ecx + call *%ebx + jmp .