1e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff#------------------------------------------------------------------------------ 2e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# 3bb817c56c51fabe92915fe30b168b4833cb2aed9hhtian# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> 4bb817c56c51fabe92915fe30b168b4833cb2aed9hhtian# This program and the accompanying materials 5e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# are licensed and made available under the terms and conditions of the BSD License 6e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# which accompanies this distribution. The full text of the license may be found at 735a171541199329108aa8c5417386d7afce9ddbfmyronporter# http://opensource.org/licenses/bsd-license.php. 8e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# 9e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# 12e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# Module Name: 13e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# 141f86b07d91e78e998991659cfc4d625b3e3e3171xli# DisablePaging32.S 15e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# 16e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# Abstract: 17e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# 18e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# InternalX86DisablePaging32 function 19e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# 20e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# Notes: 21e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# 22e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff#------------------------------------------------------------------------------ 23e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 24132f41f0a92082775d931067089a63ca50367225xliASM_GLOBAL ASM_PFX(InternalX86DisablePaging32) 25e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 26e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff#------------------------------------------------------------------------------ 27e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# VOID 28e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# EFIAPI 29e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# InternalX86DisablePaging32 ( 30e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# IN SWITCH_STACK_ENTRY_POINT EntryPoint, 31e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# IN VOID *Context1, OPTIONAL 32e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# IN VOID *Context2, OPTIONAL 33e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# IN VOID *NewStack 34e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff# ); 35e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff#------------------------------------------------------------------------------ 36e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffASM_PFX(InternalX86DisablePaging32): 37e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff movl 4(%esp), %ebx 38e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff movl 8(%esp), %ecx 39e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff movl 12(%esp), %edx 40e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff pushfl 4157246fe073e7946e03387576fca76eba86b51694vanjeff pop %edi # save EFLAGS to edi 42e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff cli 43e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff movl %cr0, %eax 44e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff btrl $31, %eax 45e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff movl 16(%esp), %esp 46e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff movl %eax, %cr0 47e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff push %edi 4857246fe073e7946e03387576fca76eba86b51694vanjeff popfl # restore EFLAGS from edi 49e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff push %edx 50e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff push %ecx 51e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff call *%ebx 5257246fe073e7946e03387576fca76eba86b51694vanjeff jmp . # EntryPoint() should not return 53